@dotglitch/ngx-common 1.1.20 → 1.1.21
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/components/lazy-loader/lazy-loader.service.d.ts +1 -1
- package/esm2022/components/lazy-loader/lazy-loader.component.mjs +2 -2
- package/esm2022/components/lazy-loader/lazy-loader.module.mjs +6 -2
- package/esm2022/components/lazy-loader/lazy-loader.service.mjs +5 -3
- package/fesm2022/{dotglitch-ngx-common-folder-rename.component-VI_uH5-6.mjs → dotglitch-ngx-common-folder-rename.component-xUdQXmcY.mjs} +2 -1
- package/fesm2022/dotglitch-ngx-common-folder-rename.component-xUdQXmcY.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common.mjs +9 -3
- package/fesm2022/dotglitch-ngx-common.mjs.map +1 -1
- package/package.json +1 -1
- package/fesm2022/dotglitch-ngx-common-folder-rename.component-VI_uH5-6.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotglitch-ngx-common.mjs","sources":["../../../packages/common/src/directives/utils.ts","../../../packages/common/src/components/tooltip/tooltip.component.ts","../../../packages/common/src/components/tooltip/tooltip.component.html","../../../packages/common/src/directives/tooltip.directive.ts","../../../packages/common/src/components/menu/menu.component.ts","../../../packages/common/src/components/menu/menu.component.html","../../../packages/common/src/directives/menu.directive.ts","../../../packages/common/src/directives/image-cache.directive.ts","../../../packages/common/src/pipes/html-bypass.pipe.ts","../../../packages/common/src/pipes/resource-bypass.pipe.ts","../../../packages/common/src/pipes/script-bypass.pipe.ts","../../../packages/common/src/pipes/style-bypass.pipe.ts","../../../packages/common/src/pipes/url-bypass.pipe.ts","../../../packages/common/src/utils/index.ts","../../../packages/common/src/services/dependency.service.ts","../../../packages/common/src/components/lazy-loader/types.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.service.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.component.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.component.html","../../../packages/common/src/services/dialog.service.ts","../../../packages/common/src/services/fetch.service.ts","../../../packages/common/src/services/keyboard.service.ts","../../../packages/common/src/services/file.service.ts","../../../packages/common/src/services/theme.service.ts","../../../packages/common/src/services/navigation.service.ts","../../../packages/common/src/components/command-palette/shortcut/shortcut.component.ts","../../../packages/common/src/components/command-palette/shortcut/shortcut.component.html","../../../packages/common/src/components/command-palette/breadcrumb/breadcrumb.component.ts","../../../packages/common/src/components/command-palette/breadcrumb/breadcrumb.component.html","../../../packages/common/src/components/command-palette/command-palette.component.ts","../../../packages/common/src/components/command-palette/command-palette.component.html","../../../packages/common/src/services/command-palette.service.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.module.ts","../../../packages/common/src/components/dynamic-html/types.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.service.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.component.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.module.ts","../../../packages/common/src/components/filemanager/textextensions.ts","../../../packages/common/src/assets/mat-icons.ts","../../../packages/common/src/components/filemanager/icon-resolver.ts","../../../packages/common/src/components/tabulator/tabulator.component.ts","../../../packages/common/src/components/tabulator/tabulator.component.html","../../../packages/common/src/components/filemanager/helpers.ts","../../../packages/common/src/components/filemanager/file-grid/file-grid.component.ts","../../../packages/common/src/components/filemanager/file-grid/file-grid.component.html","../../../packages/common/src/components/filemanager/toolbar/icon-button/icon-button.component.ts","../../../packages/common/src/components/filemanager/toolbar/icon-button/icon-button.component.html","../../../packages/common/src/components/filemanager/toolbar/breadcrumb/breadcrumb.component.ts","../../../packages/common/src/components/filemanager/toolbar/breadcrumb/breadcrumb.component.html","../../../packages/common/src/components/filemanager/toolbar/toolbar.component.ts","../../../packages/common/src/components/filemanager/toolbar/toolbar.component.html","../../../packages/common/src/components/filemanager/tree-view/tree-view.component.ts","../../../packages/common/src/components/filemanager/tree-view/tree-view.component.html","../../../packages/common/src/components/types.ts","../../../packages/common/src/components/filemanager/filemanager.component.ts","../../../packages/common/src/components/filemanager/filemanager.component.html","../../../packages/common/src/components/vscode/ts-type-resolver/dependency-parser.ts","../../../packages/common/src/components/vscode/ts-type-resolver/update-emitter.ts","../../../packages/common/src/components/vscode/ts-type-resolver/recursion-depth.ts","../../../packages/common/src/components/vscode/ts-type-resolver/types.ts","../../../packages/common/src/components/vscode/ts-type-resolver/unpkg-source-resolver.ts","../../../packages/common/src/components/vscode/ts-type-resolver/import-resolver.ts","../../../packages/common/src/components/vscode/ts-type-resolver/dummy-source-cache.ts","../../../packages/common/src/components/vscode/ts-type-resolver/main.ts","../../../packages/common/src/components/vscode/vscode.component.ts","../../../packages/common/src/components/parallax-card/parallax-card.component.ts","../../../packages/common/src/components/parallax-card/parallax-card.component.html","../../../packages/common/src/components/react-magic-wrapper/react-magic-wrapper.component.ts","../../../packages/common/src/public-api.ts","../../../packages/common/src/dotglitch-ngx-common.ts"],"sourcesContent":["/**\n * This utils file exists outside of the strict angular DI zone\n * This enables opening popups without requiring absolute DI bindings.\n */\n\nexport const getPosition = (el: HTMLElement | PointerEvent, config: any = {}, bounds: DOMRect) => {\n // Bounds of the popup owner\n const src: DOMRect = !!el['nodeName']\n ? (el as HTMLElement).getBoundingClientRect()\n : {\n // It's a pointer event, so we'll take the X and Y from the pointer.\n x: el['clientX'],\n y: el['clientY'],\n // Set a default tiny size, so we don't divide by zero.\n width: 0.0001,\n height: 0.0001\n } as DOMRect;\n\n // Popup bounds\n const { width, height } = bounds;\n\n const winh = window.innerHeight;\n const winw = window.innerWidth;\n\n const cords = {\n top: null,\n left: null\n };\n\n if (config?.position == \"left\" || config?.position == \"right\" || !config?.position) {\n switch (config?.alignment) {\n\n case \"end\": {\n // vertically bind to bottom\n cords.top = src.y + src.height - height;\n break;\n }\n case \"afterend\": {\n // vertically bind below bottom\n cords.top = src.y + src.height;\n break;\n }\n case \"beforestart\": {\n // vertically bind above top\n cords.top = src.y - height;\n break;\n }\n case \"start\": {\n // vertically bind to top\n cords.top = src.y;\n break;\n }\n case \"center\":\n default: {\n // vertically center\n cords.top = (src.y + (src.height / 2)) - (height / 2);\n break;\n }\n }\n\n // Apply bounds to prevent the dialog from being cut-off screen\n // Lower bound\n cords.top = Math.max(config?.edgePadding || 0, cords.top);\n // Upper bound\n cords.top = Math.min(winh - height, cords.top);\n\n if (config?.position == \"left\") {\n cords.left = src.x - (width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n if (config?.position == \"right\" || !config?.position) {\n cords.left = src.x + (src.width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n\n // Lower bound\n cords.left = Math.max(config?.edgePadding || 0, cords.left);\n // Upper bound\n cords.left = Math.min(winw - width, cords.left);\n }\n else if (config?.position == \"top\" || config?.position == \"bottom\") {\n switch (config?.alignment) {\n case \"end\": {\n // vertically bind to right\n cords.left = src.x + src.width - width;\n break;\n }\n case \"afterend\": {\n // vertically bind past right\n cords.left = src.x + src.width;\n break;\n }\n case \"beforestart\": {\n // vertically bind before left\n cords.left = src.x - width;\n break;\n }\n case \"start\": {\n // vertically bind to left\n cords.left = src.x;\n break;\n }\n case \"center\":\n default: {\n // vertically center\n cords.left = (src.x + (src.width / 2)) - (width / 2);\n break;\n }\n }\n\n // Apply bounds to prevent the dialog from being cut-off screen\n // Lower bound\n cords.left = Math.max(config?.edgePadding || 0, cords.left);\n // Upper bound\n cords.left = Math.min(winw - width, cords.left);\n\n\n if (config?.position == \"top\") {\n cords.top = src.y - (height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n if (config?.position == \"bottom\") {\n cords.top = src.y + (src.height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n\n // Lower bound\n cords.top = Math.max(config?.edgePadding || 0, cords.top);\n // Upper bound\n cords.top = Math.min(winh - height, cords.top);\n }\n\n // Assign unit\n cords.top = cords.top + 'px';\n cords.left = cords.left + 'px';\n\n return cords;\n}\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, HostListener, Inject, Input, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\nimport { Optional } from '@angular/core';\nimport { createApplication } from '@angular/platform-browser';\nimport { firstValueFrom } from 'rxjs';\nimport { TooltipOptions } from '../../types/tooltip';\n\ndeclare const Zone;\nconst zone = new Zone(Zone.current, { name: \"@dotglitch_menu\", properties: {} });\n\nexport const calcTooltipBounds = async (template: TemplateRef<any> | Type<any>, data: any, matDialogConfig: MatDialogConfig) => {\n\n const args = {\n data: data || {},\n template,\n config: {},\n selfCords: { left: \"0px\", top: \"0px\" },\n ownerCords: { x: 0, y: 0, width: 0, height: 0 },\n id: null\n }\n\n // dimensions should be in px... Might need to handle vw/v\n if (matDialogConfig?.width && matDialogConfig?.height) {\n return {\n width: parseInt(matDialogConfig.width),\n height: parseInt(matDialogConfig.height),\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n } as DOMRect;\n }\n\n return new Promise<DOMRect>((res, rej) => {\n zone.run(async () => {\n // Forcibly bootstrap the ctx menu outside of the client application's zone.\n const app = await createApplication({\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: args }\n ]\n });\n\n const del = document.createElement(\"div\");\n del.style.position = \"absolute\";\n del.style.left = '-1000vw';\n document.body.append(del);\n\n const base = app.bootstrap(TooltipComponent, del);\n const { instance } = base;\n\n await firstValueFrom(app.isStable);\n\n const el: HTMLElement = instance.viewContainer?.element?.nativeElement;\n\n const rect = el.getBoundingClientRect();\n app.destroy();\n del.remove();\n\n res(rect)\n });\n })\n}\n\n@Component({\n selector: 'ngx-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n imports: [\n NgTemplateOutlet,\n NgComponentOutlet\n ],\n standalone: true\n})\nexport class TooltipComponent {\n @Input() data: any;\n @Input() config: TooltipOptions;\n @Input() ownerCords: DOMRect;\n @Input() selfCords;\n @Input() template: TemplateRef<any> | Type<any>;\n\n public isTemplate: boolean;\n public hasBootstrapped = false;\n public pointerIsOnVoid = false;\n public isLockedOpen = false;\n\n clientWidth = window.innerWidth;\n clientHeight = window.innerHeight;\n\n coverRectCords = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n }\n\n constructor(\n public viewContainer: ViewContainerRef,\n @Optional() @Inject(MAT_DIALOG_DATA) private _data: any,\n @Optional() public dialog: MatDialog, // optional only for the purpose of estimating dimensions\n @Optional() public dialogRef: MatDialogRef<any>,\n ) {\n // Defaults are set before @Input() hooks evaluate\n this.data = this.data || this._data?.data || {};\n this.config = this.config || this._data?.config;\n this.dialog = this.dialog || this._data?.dialog;\n this.template = this.template || this._data?.template;\n this.ownerCords = this.ownerCords || this._data?.ownerCords;\n this.selfCords = this.selfCords || this._data?.selfCords;\n this.isLockedOpen = this._data?.isLockedOpen || this.config?.stayOpen;\n }\n\n ngOnInit() {\n\n const selfY = parseInt(this.selfCords.top.replace('px', ''));\n const selfX = parseInt(this.selfCords.left.replace('px', ''));\n\n this.coverRectCords = {\n top: this.ownerCords.y - selfY - 16,\n left: this.ownerCords.x - selfX - 16,\n height: this.ownerCords.height + 32,\n width: this.ownerCords.width + 32\n }\n\n if (this.template instanceof TemplateRef)\n this.isTemplate = true;\n else if (typeof this.template == \"function\")\n this.isTemplate = false;\n else\n throw new Error(\"Unrecognized template object provided.\");\n\n // TODO: resolve the event hook with the .void element\n setTimeout(() => {\n this.hasBootstrapped = true;\n if (this.pointerIsOnVoid && !this.isLockedOpen)\n this.dialogRef.close();\n }, 200);\n }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n el.addEventListener(\"keydown\", evt => {\n this.isLockedOpen = true;\n });\n\n el.addEventListener(\"pointerdown\", evt => {\n this.isLockedOpen = true;\n });\n\n el.addEventListener(\"touch\", evt => {\n this.isLockedOpen = true;\n });\n }\n\n @HostListener(\"window:keydown\", ['$event'])\n onKeyDown(evt: KeyboardEvent) {\n if (this.config.freezeOnKeyCode) {\n if (evt.code == this.config.freezeOnKeyCode)\n this.isLockedOpen = true;\n }\n }\n\n onVoidPointerDown(evt: PointerEvent) {\n if (!this.isLockedOpen) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.querySelector(\".void\").remove();\n\n setTimeout(() => {\n const clonedEvt = new PointerEvent(\"pointerdown\", evt);\n const target = document.elementFromPoint(evt.clientX, evt.clientY) as HTMLElement;\n\n console.log(\"DEBUG EVENTS\", {evt, clonedEvt});\n target.dispatchEvent(clonedEvt);\n }, 15)\n }\n\n this.closeOnVoid(true)\n }\n\n // If the void element gets stuck open, make wheel events pass through.\n onWheel(evt: WheelEvent) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.style.display = \"none\";\n const target = document.elementFromPoint(evt.clientX, evt.clientY);\n el.style.display = \"block\";\n\n target.scroll({\n top: evt.deltaY + target.scrollTop,\n left: evt.deltaX + target.scrollLeft,\n behavior: \"smooth\"\n });\n }\n\n /**\n * Close the tooltip if these actions occur\n */\n @HostListener(\"window:resize\")\n @HostListener(\"window:blur\")\n @HostListener(\"pointerleave\")\n private onClose() {\n if (!this.isLockedOpen)\n this.dialogRef?.close();\n\n this.clientWidth = window.innerWidth;\n this.clientHeight = window.innerHeight;\n }\n\n closeOnVoid(force = false) {\n if (!this.isLockedOpen || force)\n this.dialogRef.close();\n }\n}\n","<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords) {\n <!-- <div\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n ></div> -->\n\n <div class=\"void left\"\n [style.top]=\"'0px'\"\n [style.left]=\"'0px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(ownerCords.left) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void top\"\n [style.top]=\"'0px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"ownerCords.top + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void right\"\n [style.top]=\"'0px'\"\n [style.left]=\"(ownerCords.left + ownerCords.width) + 'px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(clientWidth - (ownerCords.left + ownerCords.width)) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void\"\n [style.top]=\"(ownerCords.top + ownerCords.height) + 'px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"(clientHeight - (ownerCords.top + ownerCords.height)) + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n}\n\n\n<div\n #container\n class=\"container\"\n>\n @if (isTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'element': container,\n 'tooltip': this\n }\"\n ></ng-container>\n }\n @else {\n <ng-container\n [ngComponentOutlet]=\"$any(template)\"\n >\n </ng-container>\n }\n</div>\n","import { Directive, Input, HostListener, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { getPosition } from './utils';\nimport { TooltipComponent, calcTooltipBounds } from '../components/tooltip/tooltip.component';\nimport { TooltipOptions } from '../types/tooltip';\nimport { ulid } from 'ulidx';\nimport { firstValueFrom } from 'rxjs';\n\n@Directive({\n selector: '[ngx-tooltip]',\n providers: [\n MatDialog\n ],\n standalone: true\n})\nexport class TooltipDirective {\n\n /**\n */\n @Input(\"ngx-tooltip\") template: TemplateRef<any> | Type<any>;\n\n /**\n * Configuration for opening the app menu\n */\n @Input(\"ngx-tooltip-config\") config: TooltipOptions = {};\n\n /**\n * Arbitrary data to pass into the template\n */\n @Input(\"ngx-tooltip-context\") data: any = {};\n\n private isCursorOverTarget = false;\n private dialogIsOpen = false;\n\n constructor(\n private dialog: MatDialog,\n private viewContainer: ViewContainerRef\n ) {\n }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n this.config?.triggers?.forEach(t => {\n el.addEventListener(t, () => {\n if (t == \"click\")\n this.config.stayOpen = true;\n\n this.open();\n })\n })\n }\n\n async open() {\n if (!this.dialogIsOpen) {\n const el = this.viewContainer.element.nativeElement;\n this.dialogIsOpen = true;\n await openTooltip(this.dialog, this.template, this.data, el, this.config);\n this.dialogIsOpen = false;\n }\n }\n\n @HostListener('pointerenter', ['$event'])\n public async onPointerEnter(evt: PointerEvent) {\n // If the template is not a template ref, do nothing.\n if (!(this.template instanceof TemplateRef))\n return;\n\n if (Array.isArray(this.config?.triggers) && !this.config.triggers.includes(\"hover\")) {\n return;\n }\n\n this.isCursorOverTarget = true;\n\n setTimeout(async () => {\n // If the cursor moved away in the time\n if (!this.isCursorOverTarget)\n return;\n\n this.open();\n }, this.config.delay ?? 250);\n }\n\n @HostListener('pointerleave', ['$event'])\n public async onPointerLeave(evt: PointerEvent) {\n this.isCursorOverTarget = false;\n }\n}\n\n// Helper to open the context menu without using the directive.\nexport const openTooltip = async (\n dialog: MatDialog,\n template: TemplateRef<any> | Type<any>,\n data: any,\n el: HTMLElement,\n config?: TooltipOptions,\n focusTrap = false,\n matPopupOptions?: MatDialogConfig<any>\n) => {\n\n const rect = await calcTooltipBounds(template, data, matPopupOptions);\n const ownerCords = el.getBoundingClientRect();\n const cords = getPosition(el, config, rect);\n const specificId = ulid();\n\n return firstValueFrom(\n dialog.open(TooltipComponent, {\n autoFocus: focusTrap,\n restoreFocus: focusTrap,\n data: {\n dialog,\n data: data,\n template: template,\n config: config,\n matPopupOptions,\n ownerCords: ownerCords,\n selfCords: cords,\n id: specificId\n },\n panelClass: [\"ngx-tooltip\", 'ngx-' + specificId].concat(config?.customClass || []),\n position: cords,\n hasBackdrop: false,\n ...matPopupOptions\n })\n .afterClosed()\n );\n};\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, HostListener, Inject, Input, OnInit, Optional, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { DomSanitizer, createApplication } from '@angular/platform-browser';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { firstValueFrom } from 'rxjs';\nimport { MenuItem, MenuOptions } from '../../types/menu';\nimport { TooltipDirective } from '../../directives/tooltip.directive';\n\ndeclare const Zone: any;\nconst zone = new Zone(Zone.current, { name: \"@dotglitch_menu\", properties: {} });\n\nexport const calcMenuItemBounds = async (menuItems: MenuItem[], dataObj: any) => {\n const data = {\n data: dataObj,\n items: menuItems,\n config: {},\n selfCords: { left: \"0px\", top: \"0px\" },\n ownerCords: { x: 0, y: 0, width: 0, height: 0 },\n id: null\n }\n\n return calcComponentBounds(MenuComponent, data);\n}\n\nconst calcComponentBounds = async (component: Type<any>, data: any) => {\n return new Promise<DOMRect>((res, rej) => {\n zone.run(async () => {\n const app = await createApplication({\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: data }\n ]\n });\n\n const del = document.createElement(\"div\");\n del.style.position = \"absolute\";\n del.style.left = '-1000vw';\n document.body.append(del);\n\n const base = app.bootstrap(component, del);\n const { instance } = base;\n\n await firstValueFrom(app.isStable);\n\n const el: HTMLElement = instance.viewContainer?.element?.nativeElement;\n\n const rect = el.getBoundingClientRect();\n app.destroy();\n del.remove();\n\n res(rect);\n });\n })\n}\n\nconst $data = Symbol(\"data\");\nconst $hover = Symbol(\"hover\");\n\n@Component({\n selector: 'ngx-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n imports: [\n NgTemplateOutlet,\n PortalModule,\n MatIconModule,\n MatProgressSpinnerModule,\n TooltipDirective\n ],\n standalone: true\n})\nexport class MenuComponent implements OnInit {\n\n @Input() public data: any;\n @Input() public items: MenuItem[];\n @Input() public config: MenuOptions;\n @Input() public id: string;\n @Input() public overlayOverlap = 32;\n @Input() public hoverDelay = 400;\n @Input() public showDebugOverlay = false;\n\n @Input() ownerCords: DOMRect;\n @Input() selfCords;\n @Input() parentItem;\n @Input() parentContext;\n @Input() isLockedOpen = false;\n\n public hasBootstrapped = false;\n public pointerIsOnVoid = false;\n public pointerHasBeenOverMask = false;\n\n coverRectCords = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n }\n\n // Check if there are any slashes or dots -- that will clearly exclude it from being a mat icon\n public readonly matIconRx = /[\\/\\.]/i;\n showIconColumn = true;\n showShortcutColumn = true;\n\n template: TemplateRef<any>;\n templateType: \"template\" | \"component\";\n componentPortal: ComponentPortal<any>;\n private childDialogs: MatDialogRef<any>[] = [];\n\n constructor(\n public viewContainer: ViewContainerRef,\n public sanitizer: DomSanitizer,\n @Optional() @Inject(MAT_DIALOG_DATA) private _data: any,\n @Optional() public dialog: MatDialog, // optional only for the purpose of estimating dimensions\n @Optional() public dialogRef: MatDialogRef<any>\n ) {\n // Defaults are set before @Input() hooks evaluate\n this.dialog = this.dialog || this._data?.dialog;\n this.data = this._data?.data;\n this.ownerCords = this._data?.ownerCords;\n this.selfCords = this._data?.selfCords;\n this.items = this._data?.items;\n this.config = this._data?.config;\n this.id = this._data?.id;\n this.parentItem = this._data?.parentItem;\n this.parentContext = this._data?.parentContext;\n this.isLockedOpen = this.isLockedOpen || this._data?.config?.['_isLockedOpen'];\n\n this.template = _data.template;\n\n this.templateType = this.template instanceof TemplateRef ? \"template\" : \"component\";\n\n if (this.templateType == \"component\") {\n this.componentPortal = new ComponentPortal(this.template as any);\n }\n }\n\n ngOnInit() {\n\n this.items?.forEach(i => {\n if (typeof i == \"string\") return;\n\n // Set defaults\n i['_disabled'] = false;\n i['_visible'] = true;\n i['_context'] = (typeof i.context == \"function\")\n ? i.context(this.data)\n : i.context;\n\n if (i.label)\n try { i['_formattedLabel'] = this.formatLabel(i.label); } catch (e) { console.warn(e) }\n\n if (typeof i.isDisabled == \"function\")\n try { i['_disabled'] = i.isDisabled(this.data || {}, i['_context']); } catch(e) { console.warn(e) }\n\n if (typeof i.isVisible == \"function\")\n try { i['_visible'] = i.isVisible(this.data || {}, i['_context']); } catch (e) { console.warn(e) }\n\n if (typeof i.linkTemplate == \"function\")\n try { i['_link'] = i.linkTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e) }\n\n if (typeof i.iconTemplate == \"function\")\n try { i['_icon'] = i.iconTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e); }\n });\n\n // Show the icon column if there are any items with an icon\n this.showIconColumn = !!this.items?.find(i =>\n typeof i == \"object\" &&\n typeof i['icon'] == \"string\" &&\n i['icon'].length > 2\n );\n\n this.showShortcutColumn = !!this.items?.find(i =>\n typeof i == \"object\" &&\n typeof i['shortcut'] == \"string\" &&\n i['shortcut'].length > 2\n );\n\n if (this.ownerCords) {\n const selfY = parseInt(this.selfCords.top?.replace('px', '') || '0');\n const selfX = parseInt(this.selfCords.left?.replace('px', '') || '0');\n\n this.coverRectCords = {\n top: this.ownerCords.y - selfY - (this.overlayOverlap/2),\n left: this.ownerCords.x - selfX - (this.overlayOverlap/2),\n height: this.ownerCords.height + this.overlayOverlap,\n width: this.ownerCords.width + this.overlayOverlap\n }\n }\n\n setTimeout(() => {\n this.hasBootstrapped = true;\n }, 200);\n }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.addEventListener(\"keydown\", evt => {\n this.isLockedOpen = true;\n });\n el.addEventListener(\"pointerdown\", evt => {\n this.isLockedOpen = true;\n });\n el.addEventListener(\"touch\", evt => {\n this.isLockedOpen = true;\n });\n }\n\n ngOnDestroy() {\n //\n this.childDialogs.forEach(d => d.close({[$data]: true}))\n }\n\n /**\n *\n * @param item\n * @param evt\n * @returns\n */\n async onMenuItemClick(item: MenuItem, row: HTMLTableRowElement, keepOpen = false) {\n if (typeof item == 'string') return null;\n if (item.separator) return null;\n\n const context = await item['_context'];\n\n // If cache is enabled, only load if we don't have any children.\n const forceLoad = (item.cacheResolvedChildren ? !item.children : true);\n\n if (item.childrenResolver && forceLoad) {\n item['_isResolving'] = true;\n item['_children'] = await item.childrenResolver(this.data, context);\n item['_isResolving'] = false;\n }\n else if (typeof item.children == \"function\" && forceLoad) {\n item['_isResolving'] = true;\n item['_children'] = await item.children(this.data, context);\n item['_isResolving'] = false;\n }\n else {\n item['_children'] = item.children;\n }\n\n if (item['_children'] || item.childTemplate)\n row['_open'] = true;\n\n if (!item.childTemplate && !item.children) {\n if (typeof item.action == \"function\") {\n const res = await item.action(this.data, context)\n this.close(res);\n return res;\n }\n\n // If no action, this is simply a text item.\n return null;\n }\n\n // Need X pos, Y pos, width and height\n const bounds = row.getBoundingClientRect();\n\n const cords = {\n top: null,\n left: null,\n bottom: null,\n right: null\n };\n\n // Set position coordinates\n const { width, height } = await (item.childTemplate\n ? calcComponentBounds(MenuComponent, { template: item.childTemplate })\n : calcMenuItemBounds(item['_children'], this.data));\n\n if (bounds.y + height > window.innerHeight)\n cords.bottom = \"0px\";\n if (bounds.x + bounds.width + width > window.innerWidth)\n cords.left = ((bounds.x - width)) + \"px\";\n\n if (!cords.bottom) cords.top = bounds.y + \"px\";\n if (!cords.left) cords.left = bounds.x + bounds.width + \"px\";\n\n\n const config = structuredClone(this.config)\n config['_isLockedOpen'] = keepOpen;\n\n const dialogRef = this.dialog.open(MenuComponent, {\n position: cords,\n panelClass: [\"ngx-menu\"].concat(this.config?.customClass || []),\n backdropClass: \"ngx-menu-backdrop\",\n hasBackdrop: false,\n data: {\n data: this.data,\n ownerCords: row.getBoundingClientRect(),\n selfCords: cords,\n parentItem: item,\n parentContext: context,\n items: item['_children'],\n template: item.childTemplate,\n config: config\n }\n });\n\n let _s = dialogRef\n .afterClosed()\n .subscribe(async (result) => {\n // Clicked \"void\" on a submenu\n if (typeof result == \"object\" && result[$data] == true) {\n this.close(result);\n }\n // Went back to parent menu -- do not close (same as result == null)\n else if (typeof result == \"object\" && result[$data] == false) {\n\n }\n // Got some other result value\n else if (result != null) {\n // Perform action callback\n if (typeof item.action == 'function') {\n this.close(await item.action(result, context));\n }\n // Just close.\n else {\n this.close();\n }\n }\n\n row['_open'] = false;\n\n this.childDialogs.splice(this.childDialogs.indexOf(dialogRef), 1);\n\n _s.unsubscribe();\n });\n\n this.childDialogs.push(dialogRef);\n return dialogRef;\n }\n\n /**\n *\n * @param label\n * @returns\n */\n formatLabel(label: string): string {\n return label.replace(/_([a-z0-9])_/i, (match, group) => `<u>${group}</u>`);\n }\n\n /**\n * Close the context menu under these circumstances\n */\n // @HostListener(\"window:resize\", ['event'])\n // @HostListener(\"window:blur\", ['event'])\n close(result?) {\n this.childDialogs.forEach(d => d.close())\n this.dialogRef?.close(result);\n }\n\n closeOnVoid(force = false) {\n if (!this.isLockedOpen || force) {\n this.close({[$data]: force});\n }\n }\n\n startHoverTimer(item, row) {\n\n // Invert check to make the logic simpler\n // TL;DR: if (any) of these are true, we will do the hover action\n if (!(\n Array.isArray(item.children) && item.children.length > 0 ||\n typeof item.children == \"function\" ||\n item.childTemplate ||\n item.childrenResolver\n ))\n return;\n\n item[$hover] = setTimeout(() => {\n delete item[$hover];\n\n if (!this.pointerIsOnVoid) {\n row['_open'] = true;\n this.onMenuItemClick(item, row);\n }\n }, this.hoverDelay);\n }\n stopHoverTimer(item) {\n item[$hover] && clearTimeout(item[$hover]);\n delete item[$hover];\n }\n\n /**\n * Check if the dialog is clipping offscreen\n * if so, move it back into view.\n */\n @HostListener(\"window:resize\")\n private onResize() {\n const el = this.viewContainer?.element?.nativeElement as HTMLElement;\n if (!el) return;\n\n const { width, height, x, y } = el.getBoundingClientRect();\n\n const target = document.querySelector(\".ngx-menu\") as HTMLElement;\n if (!target) return;\n\n // Move back into view if we're clipping outside of the bottom\n if (y + height > window.innerHeight) {\n const newTop = (window.innerHeight - (height + (this.config.edgePadding || 12))) + \"px\";\n target.style['margin-top'] = newTop;\n }\n\n // Move back into view if we're clipping off the right\n if (x + width > window.innerWidth) {\n const newLeft = (window.innerWidth - (width + (this.config.edgePadding || 12))) + \"px\"\n target.style['margin-left'] = newLeft;\n }\n }\n\n // If the void element gets stuck open, make wheel events pass through.\n onWheel(evt: WheelEvent) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.style.display = \"none\";\n const target = document.elementFromPoint(evt.clientX, evt.clientY);\n el.style.display = \"block\";\n\n target.scroll({\n top: evt.deltaY + target.scrollTop,\n left: evt.deltaX + target.scrollLeft,\n behavior: \"smooth\"\n })\n }\n}\n","<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords) {\n <div\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n [style.background]=\"showDebugOverlay ? '#f004' : '#0000'\"\n style=\"z-index: -1\"\n (pointerenter)=\"pointerHasBeenOverMask=true\"\n (click)=\"isLockedOpen = true\"\n ></div>\n}\n\n<div class=\"void\"\n [style.background]=\"showDebugOverlay ? '#00f4' : '#0000'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && !isLockedOpen && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"hasBootstrapped && closeOnVoid(true)\"\n (pointermove)=\"hasBootstrapped && !isLockedOpen && closeOnVoid()\"\n (wheel)=\"onWheel($event)\"\n></div>\n\n@if (!template) {\n <table>\n <tbody>\n @for (item of items; track item) {\n <!-- A row with a click action -->\n @if (item != 'separator' && item.separator != true && item['_visible']) {\n <tr #row\n [class.disabled]=\"item['_disabled']\"\n (click)=\"!item['_disabled'] && onMenuItemClick(item, row, true)\"\n [class.hover]=\"row['hover']\"\n [class.open]=\"row['_open']\"\n (pointerenter)=\"row['hover'] = true; startHoverTimer(item, row)\"\n (pointerleave)=\"row['hover'] = false; stopHoverTimer(item)\"\n >\n\n @if (showIconColumn) {\n <td class=\"icon\">\n @if (matIconRx.test(item['_icon'] ?? item.icon)) {\n <img [src]=\"item['_icon'] ?? item.icon\"/>\n }\n @else {\n <mat-icon\n [fontIcon]=\"item['_icon'] ?? item.icon\"\n [style.color]=\"item.iconColor\"\n />\n }\n </td>\n }\n\n <!-- 'Normal' action based item -->\n <td class=\"label\"\n [style.padding-left]=\"showIconColumn ? 0 : '16px'\"\n >\n <a\n #anchor\n [attr.target]=\"item.linkTarget\"\n [attr.href]=\"(item['_link'] || item.link) ? sanitizer.bypassSecurityTrustUrl(item['_link'] || item.link) : undefined\"\n >\n @if ($any(item.labelTemplate)?.prototype) {\n <ng-container\n [ngTemplateOutlet]=\"$any(item).labelTemplate\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'context': item['_context'],\n 'item': item,\n 'element': anchor,\n 'menu': this\n }\"\n />\n }\n @else {\n @if ($any(item)?.labelTemplate) {\n {{$any(item)?.labelTemplate(data || {})}}\n }\n @else {\n <div [innerHTML]=\"item['_formattedLabel']\"></div>\n }\n }\n </a>\n </td>\n\n @if (showShortcutColumn) {\n <td class=\"shortcut\">\n {{item.shortcutLabel}}\n </td>\n }\n\n <td style=\"min-width: 16px\">\n @if ((\n (item['children']?.length > 0) ||\n (item['_children']?.length > 0) ||\n item.childTemplate ||\n item.children?.['call'] ||\n item.childrenResolver\n ) &&\n !item['_isResolving']\n ) {\n <mat-icon\n style=\"transform: translateY(2px)\"\n >\n chevron_right\n </mat-icon>\n }\n\n @if (item['_isResolving']) {\n <mat-progress-spinner\n mode=\"indeterminate\"\n [diameter]=\"20\"\n style=\"margin-right: 4px\"\n />\n }\n </td>\n </tr>\n }\n @else if (item != 'separator' && item.separator == true) {\n <!-- Separator with label -->\n <tr\n class=\"disabled separator\"\n >\n <td\n class=\"center\"\n [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n >\n <span class=\"hr\">\n {{item['label'] || ''}}\n </span>\n </td>\n </tr>\n }\n @else if (item == 'separator') {\n <!-- Separator -->\n <tr\n class=\"disabled separator\"\n >\n <td\n [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n >\n <hr/>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n}\n@else {\n @if (templateType == 'template') {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'context': parentContext,\n 'item': parentItem,\n 'element': this.viewContainer?.element?.nativeElement,\n 'menu': this\n }\"\n />\n }\n @else {\n <ng-container\n [cdkPortalOutlet]=\"componentPortal\"\n />\n }\n}\n\n@if (showDebugOverlay) {\n <div>\n <div>hbs: {{hasBootstrapped}}</div>\n <div>pov: {{pointerIsOnVoid}}</div>\n <div>ilo: {{isLockedOpen}}</div>\n <div>hbom: {{pointerHasBeenOverMask}}</div>\n\n <div>type: {{templateType}}</div>\n </div>\n}\n","import { Directive, Input, ViewContainerRef, SecurityContext } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { getPosition } from './utils';\nimport { MenuItem, MenuOptions } from '../types/menu';\nimport { MenuComponent, calcMenuItemBounds } from '../components/menu/menu.component';\nimport { ulid } from 'ulidx';\nimport { firstValueFrom } from 'rxjs';\n\n@Directive({\n selector: '[ngx-contextmenu],[ngx-menu]',\n providers: [\n MatDialog\n ],\n standalone: true\n})\nexport class MenuDirective {\n\n /**\n * The data representing the item the menu was opened for.\n */\n @Input(\"ngx-menu-context\") data: any;\n\n /**\n * The items that will be bound to the context menu.\n */\n @Input(\"ngx-contextmenu\") ctxMenuItems: MenuItem[];\n\n /**\n * The items that will be bound to the menu that pops\n * up when the user clicks the element.\n */\n @Input(\"ngx-menu\") menuItems: MenuItem[];\n\n /**\n * Configuration for opening the app menu\n */\n @Input(\"ngx-menu-config\") config: MenuOptions = {};\n\n constructor(\n private dialog: MatDialog,\n private viewContainer: ViewContainerRef\n ) { }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n // Automatically attach context menu items to\n // the contextmenu event\n if (this.ctxMenuItems) {\n el.addEventListener('contextmenu', (e) => {\n e.preventDefault();\n this.openMenu(e as any, this.ctxMenuItems, true);\n });\n }\n\n if (this.menuItems?.length > 0) {\n if (!this.config?.trigger) {\n el.addEventListener('click', (e) => {\n this.openMenu(e as any, this.menuItems, true);\n });\n }\n else {\n const triggers = Array.isArray(this.config.trigger) ? this.config.trigger : [this.config.trigger];\n\n triggers.forEach(t => {\n if ([\"contextmenu\", \"click\"].includes(t)) {\n el.addEventListener(t, (e) => {\n e.preventDefault();\n this.openMenu(e as any, this.ctxMenuItems, true);\n });\n }\n else {\n el.addEventListener(t, this.openMenu.bind(this));\n }\n });\n }\n }\n }\n\n async openMenu(evt: PointerEvent, items = this.menuItems, keepOpen = false) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n el.classList.add(\"ngx-menu-open\");\n\n const isCtxEvent = evt.button == 2;\n\n const config = structuredClone(this.config);\n config['_isLockedOpen'] = keepOpen;\n\n return openMenu(\n this.dialog,\n items,\n this.data,\n evt,\n this.config,\n isCtxEvent ? null : el\n )\n .then((...res) => {\n el.classList.remove(\"ngx-menu-open\");\n return res;\n })\n .catch((ex) => {\n el.classList.remove(\"ngx-menu-open\");\n throw ex;\n });\n }\n}\n\n// Helper to open the menu without using the directive.\nexport const openMenu = async (\n dialog: MatDialog,\n menuItems: MenuItem[],\n data: any,\n evt: PointerEvent,\n config: MenuOptions = {},\n el?: HTMLElement\n) => {\n // console.log({ dialog, menuItems, data, evt, config, el });\n\n evt.preventDefault();\n evt.stopPropagation();\n\n // Apply defaults.\n if (!config.alignment)\n config.alignment = \"start\";\n\n const cords = getPosition(el || evt, config, await calcMenuItemBounds(menuItems, data));\n const specificId = ulid();\n\n return firstValueFrom(\n dialog.open(MenuComponent, {\n data: {\n dialog,\n data: data,\n ownerCords: el?.getBoundingClientRect(),\n selfCords: cords,\n items: menuItems,\n config: config,\n id: specificId\n },\n panelClass: [\"ngx-menu\", 'ngx-' + specificId].concat(config?.customClass || []),\n position: cords,\n backdropClass: \"ngx-menu-backdrop\"\n })\n .afterClosed());\n};\n","import { Directive, ElementRef, Inject, InjectionToken, Input, Optional } from '@angular/core';\nimport { INDEXEDDB, createInstance } from 'localforage';\n\nconst storage = createInstance({\n name: \"@dotglitch\",\n storeName: \"image-cache\",\n driver: INDEXEDDB,\n version: 1\n});\n\n\nconst imageCache: {\n [key: string]: HTMLImageElement;\n} = {};\n\nconst loadingSvg = `data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"32px\" height=\"32px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\"><circle cx=\"50\" cy=\"50\" fill=\"none\" stroke=\"%2340c4ff\" stroke-width=\"10\" r=\"35\" stroke-dasharray=\"164.93361431346415 56.97787143782138\"><animateTransform attributeName=\"transform\" type=\"rotate\" repeatCount=\"indefinite\" dur=\"1s\" values=\"0 50 50;360 50 50\" keyTimes=\"0;1\"></animateTransform></circle><!-- [ldio] generated by https://loading.io/ --></svg>`;\nconst brokenSvg = `data:image/svg+xml;utf8,<svg width=\"800\" height=\"800\" viewBox=\"0 0 24 24\" version=\"1.1\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\"><line x1=\"10.08\" y1=\"8.29\" x2=\"10.18\" y2=\"8.29\" style=\"fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"m 10.51,14.8 5.2,5.2 H 20 a 1,1 0 0 0 1,-1 V 15.73 L 15.29,10 Z M 3,16.71 V 19 a 1,1 0 0 0 1,1 h 11.71 l -8,-8 z M 21,5 v 14 a 1,1 0 0 1 -1,1 H 4 A 1,1 0 0 1 3,19 V 5 A 1,1 0 0 1 4,4 h 16 a 1,1 0 0 1 1,1 z\" style=\"fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"M 21.193388,21.193388 2.8066108,2.8066108 m 18.3867772,0 L 2.8066108,21.193388\" style=\"stroke:%23ff0000;stroke-width:2.62668;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1\" /></svg>`;\n\nexport type NgxImageCacheConfig = {\n /**\n * Image to use as a placeholder while loading the main image\n * Recommended to use inlined SVG or a base64 encoded image\n */\n loadingPlaceholder?: string,\n /**\n * Image to use as a placeholder where images fail to load\n * Recommended to use inlined SVG or a base64 encoded image\n */\n brokenPlaceholder?: string\n}\n\nexport const NGX_IMAGE_CACHE_CONFIG = new InjectionToken<NgxImageCacheConfig>('ngx-image-cache-config');\n\n\nexport type NgxImageCacheConfiguration = {\n /**\n * Max age to cache an image in milliseconds.\n * If set to `0` or a negative number, images will never expire.\n */\n maxAge: number,\n /**\n * Set to `false` to disable memory caching for the image\n * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n * no caching will happen. (You'll still get the loader)\n */\n cacheInMemory: boolean,\n /**\n * Set to `false` to disable indexedDB caching for the image\n * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n * no caching will happen. (You'll still get the loader)\n */\n cacheInIndexedDB: boolean\n}\n\n@Directive({\n selector: 'img[ngx-cache]',\n standalone: true\n})\nexport class NgxImageCacheDirective {\n\n @Input(\"source\")\n @Input(\"ngx-cache\") url: string;\n\n @Input(\"ngx-cache-config\") configuration: NgxImageCacheConfiguration;\n\n private get el() { return this.element.nativeElement as HTMLImageElement }\n\n constructor(\n private readonly element: ElementRef,\n @Optional() @Inject(NGX_IMAGE_CACHE_CONFIG) private readonly cacheConfig: NgxImageCacheConfig\n ) { }\n\n ngOnChanges() {\n this.getCachedImage();\n }\n\n async getCachedImage() {\n if (\n this.el.src?.trim() == this.url?.trim() || // Check that there's an actual change\n this.url?.trim().length == 0 // Check that there's an actual URL\n ) return;\n\n // Check if it's in the memory cache\n if (imageCache[this.url]) {\n const image = imageCache[this.url];\n\n // If the image is currently loading, show the loader\n // and add it to the reflist\n if (image['_loading'] == true) {\n image['_refs'].push(this.el);\n\n this.el.setAttribute(\"loading\", \"true\");\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n }\n else {\n // The image is fully loaded, swap out the src with a data-uri\n this.el.setAttribute(\"loading\", \"false\");\n this.el.src = image.src;\n }\n\n // If it's already in the image cache, we're going to trust that it loads properly.\n return;\n }\n\n // Check if it's in indexedDB\n if (this.configuration?.cacheInIndexedDB != false) {\n const cached = await storage.getItem<any>(this.url);\n if (cached) {\n // Attempt to load the base64 data from indexeddb.\n // If this fails, we'll fall back to attempting to download the image\n this.el.src = cached.data;\n\n const evt: Event = await new Promise(res => {\n this.el.addEventListener('load', res);\n this.el.addEventListener('error', res);\n });\n\n // If the event isn't an error\n if (evt.type == \"load\") {\n this.el.setAttribute(\"loading\", \"false\");\n\n if (this.configuration?.cacheInMemory != false) {\n // Successfully loaded into element\n // Create an entry in the memory cache\n const image = imageCache[this.url] = new Image();\n image.src = cached.data;\n image['_createdAt'] = Date.now();\n }\n return;\n }\n else {\n // Else, we try to load again.\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n }\n }\n }\n\n const image = (() => {\n if (this.configuration?.cacheInMemory != false) {\n return imageCache[this.url] = new Image();\n }\n return new Image();\n })();\n\n // const clone = image.cloneNode(true) as HTMLImageElement;\n image['_refs'] = image['_refs'] ?? [];\n image['_refs'].push(this.el);\n image['_loading'] = true;\n image['_createdAt'] = Date.now();\n\n // Show a loader while the image downloads.\n this.el.setAttribute(\"loading\", \"true\");\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n\n // Fetch the image via JS and cache it as base64\n window.fetch(this.url)\n .then(response => response.blob())\n .then(blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n image.src = reader.result as string;\n\n storage.setItem(this.url, {\n timestamp: Date.now(),\n data: reader.result\n });\n\n image['_refs'].forEach((ref: HTMLImageElement) => {\n ref.src = image.src;\n });\n\n image['_loading'] = false;\n resolve(0);\n };\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n }))\n .catch(err => {\n // If a failure occurs, purge this entry from the cache\n // TODO: Render better \"broken\" image\n delete imageCache[this.url];\n image['_refs'].forEach((ref: HTMLImageElement) => {\n ref.src = this.cacheConfig?.brokenPlaceholder || brokenSvg;\n ref.setAttribute(\"loading\", \"failed\");\n });\n });\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'htmlbypass',\n standalone: true\n})\nexport class HtmlBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustHtml(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'resourcebypass',\n standalone: true\n})\nexport class ResourceBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'scriptbypass',\n standalone: true\n})\nexport class ScriptBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustScript(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'stylebypass',\n standalone: true\n})\nexport class StyleBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustStyle(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'urlbypass',\n standalone: true\n})\nexport class UrlBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n}\n","export const sleep = ms => new Promise(r => setTimeout(r, ms));\n\n/**\n * Prompt the user to save a json file of the given object.\n */\nexport const saveObjectAsFile = (name: string, data: Object) => {\n const a = document.createElement(\"a\");\n const file = new Blob([JSON.stringify(data)], { type: \"application/json\" });\n a.href = URL.createObjectURL(file);\n a.download = name;\n a.click();\n a.remove();\n};\n\n/**\n * Construct an emoticon with any unicode icon you specify\n */\nexport class Emoticon {\n constructor (public icon: string){}\n}\n\n/**\n * authorization 🔐 \\\n * navigation 🧭 \\\n * user 🪪 \\\n * security 🛡 \\\n * system 🖥 \\\n * toolbox 🧰 \\\n * chore ⚙ \\\n * config 🛠 \\\n * renderer 📐 \\\n * package 📦 \\\n * time ⏳ \\\n * download 📥 \\\n * upload 📤 \\\n * bug 🦠 \\\n * bomb 💣 \\\n * tnt 🧨 \\\n * warning ⚠️ \\\n * chart 📊 \\\n * chart_up 📈 \\\n * chart_down 📉 \\\n * circle_red 🔴 \\\n * circle_orange 🟠 \\\n * circle_yellow 🟡 \\\n * circle_green 🟢 \\\n * circle_blue 🔵 \\\n * circle_violet 🟣 \\\n * circle_black ⚫️ \\\n * circle_white ⚪️ \\\n * circle_brown 🟤 \\\n * square_red 🟥 \\\n * square_orange 🟧 \\\n * square_yellow 🟨 \\\n * square_green 🟩 \\\n * square_blue 🟦 \\\n * square_violet 🟪 \\\n * square_black ⬛️ \\\n * square_white ⬜️ \\\n * square_brown 🟫\n */\nexport const LogIcon = {\n authorization: new Emoticon(\"🔐\"),\n navigation: new Emoticon(\"🧭\"),\n user: new Emoticon(\"🪪\"),\n security: new Emoticon(\"🛡\"),\n system: new Emoticon(\"🖥\"),\n toolbox: new Emoticon(\"🧰\"),\n chore: new Emoticon(\"⚙\"),\n config: new Emoticon(\"🛠\"),\n renderer: new Emoticon(\"📐\"),\n package: new Emoticon(\"📦\"),\n time: new Emoticon(\"⏳\"),\n download: new Emoticon(\"📥\"),\n upload: new Emoticon(\"📤\"),\n bug: new Emoticon(\"🦠\"),\n bomb: new Emoticon(\"💣\"),\n tnt: new Emoticon(\"🧨\"),\n stop: new Emoticon(\"🛑\"),\n police: new Emoticon(\"🚨\"),\n rocket: new Emoticon(\"🚀\"),\n warning: new Emoticon(\"⚠️\"),\n chart: new Emoticon(\"📊\"),\n chart_up: new Emoticon(\"📈\"),\n chart_down: new Emoticon(\"📉\"),\n\n circle_red: new Emoticon(\"🔴\"),\n circle_orange: new Emoticon(\"🟠\"),\n circle_yellow: new Emoticon(\"🟡\"),\n circle_green: new Emoticon(\"🟢\"),\n circle_blue: new Emoticon(\"🔵\"),\n circle_violet: new Emoticon(\"🟣\"),\n circle_black: new Emoticon(\"⚫️\"),\n circle_white: new Emoticon(\"⚪️\"),\n circle_brown: new Emoticon(\"🟤\"),\n square_red: new Emoticon(\"🟥\"),\n square_orange: new Emoticon(\"🟧\"),\n square_yellow: new Emoticon(\"🟨\"),\n square_green: new Emoticon(\"🟩\"),\n square_blue: new Emoticon(\"🟦\"),\n square_violet: new Emoticon(\"🟪\"),\n square_black: new Emoticon(\"⬛️\"),\n square_white: new Emoticon(\"⬜️\"),\n square_brown: new Emoticon(\"🟫\")\n}\n\nclass Log {\n constructor(\n private context: string,\n private contextColor: string,\n private textColor: string\n ) {\n // Force the bindings to stay intact with overloads.\n this.log = this.log.bind(this);\n this.warn = this.warn.bind(this);\n this.err = this.err.bind(this);\n this.error = this.error.bind(this);\n }\n\n log(icon: Emoticon, message: string, ...args)\n log(message: string, ...args)\n log(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n if (iconOrMessage instanceof Emoticon) {\n console.log(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n else {\n console.log(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n }\n\n warn(icon: Emoticon, message: string, ...args)\n warn(message: string, ...args)\n warn(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n if (iconOrMessage instanceof Emoticon) {\n console.warn(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n else {\n console.warn(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n }\n\n err(icon: Emoticon, message: string, ...args)\n err(message: string, ...args)\n err(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n if (iconOrMessage instanceof Emoticon) {\n console.error(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n else {\n console.error(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n }\n\n error(icon: Emoticon, message: string, ...args)\n error(message: string, ...args)\n error(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n // @ts-ignore\n this.err(iconOrMessage, messageText, ...args);\n }\n}\n\n/**\n * Formatted logger that will print a bit of context before the message.\n * @returns\n */\nexport const ConsoleLogger = (context: string, contextColor: string, textColor: string = \"#03a9f4\") =>\n new Log(context, contextColor, textColor);\n\n/**\n * Convert a string `fooBAR baz_160054''\"1]\"` into a slug: `foobar-baz-1600541`\n */\nexport const stringToSlug = (text: string) =>\n (text || '')\n .trim()\n .toLowerCase()\n .replace(/[\\-_+ ]/g, '-')\n .replace(/[^a-z0-9\\-]/g, '');\n\n\n/**\n* Helper to update the page URL.\n* @param page component page ID to load.\n* @param data string or JSON data for query params.\n*/\nexport const updateUrl = (page?: string, data: string | string[][] | Record<string, string | number> | URLSearchParams = {}, replaceState = false) => {\n const [oldHash, qstring] = location.hash.split('?');\n\n if (!page)\n page = oldHash.split('/')[1];\n\n const hash = `#/${page}`;\n\n // Convert the data object to JSON.\n if (data instanceof URLSearchParams) {\n data = [...(data as any).entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n }\n\n const query = new URLSearchParams(data as any) as any;\n const prevParams = new URLSearchParams(qstring) as any;\n\n // If the hash is the same, retain params.\n if (hash == oldHash) {\n replaceState = true;\n for (const [key, value] of prevParams.entries())\n if (!query.has(key))\n query.set(key, prevParams.get(key));\n }\n\n for (const [key, val] of query.entries()) {\n if (\n val == null ||\n val == undefined ||\n val == '' ||\n val == 'null' ||\n Number.isNaN(val) ||\n val == 'NaN'\n )\n query.delete(key);\n }\n\n if (!(hash.toLowerCase() == \"#/frame\") || data['id'] == -1)\n query.delete('id');\n\n\n const strQuery = query.toString();\n console.log(data, hash, strQuery);\n if (replaceState) {\n window.history.replaceState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n }\n else {\n window.history.pushState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n }\n};\n\nexport const getUrlData = (source = window.location.hash) => {\n const [hash, query] = source.split('?');\n let data = new URLSearchParams(query) as any;\n return [...data.entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, Inject } from '@angular/core';\nimport { sleep } from '../utils';\n\nconst SCRIPT_INIT_TIMEOUT = 500; // ms\n\n/**\n * Service that installs CSS/JS dynamically\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DependencyService {\n\n constructor(\n @Inject(DOCUMENT) private document: Document\n ) { }\n\n /**\n * Install a Javascript file into the webpage on-demand\n * @param id Unique identifier for the JS script\n * @param src URL of the script\n * @param globalkey A global object the script will provide.\n * Providing this will ensure a promise only resolves after the\n * specified global object is provided, with a timeout of 500ms\n */\n loadScript(id: string, src: string, globalkey: string = null): Promise<void> {\n return new Promise((res, rej) => {\n if (this.document.getElementById(id)) return res();\n\n const script = this.document.createElement('script');\n script.id = id;\n\n script.setAttribute(\"async\", '');\n script.setAttribute(\"src\", src);\n\n script.onload = async () => {\n if (typeof globalkey == \"string\") {\n let i = 0;\n\n for (; !window[globalkey] && i < SCRIPT_INIT_TIMEOUT; i += 10)\n await sleep(10);\n\n if (i >= SCRIPT_INIT_TIMEOUT) {\n return rej(new Error(\"Timed out waiting for script to self-initialize.\"));\n }\n }\n\n res();\n }\n\n this.document.body.appendChild(script);\n })\n }\n\n // loadStylesheet(id: string, href: string) {\n // let themeLink = this.document.getElementById(id) as HTMLLinkElement;\n // if (themeLink) {\n // themeLink.href = href;\n // }\n // else {\n // const style = this.document.createElement('link');\n // style.id = id;\n // style.rel = 'stylesheet';\n // style.href = href;\n\n // const head = this.document.getElementsByTagName('head')[0];\n\n // head.appendChild(style);\n // }\n // }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\n\nexport enum ComponentResolveStrategy {\n /**\n * Match the fist component we find\n * (best used for standalone components)\n * @default\n */\n PickFirst,\n /**\n * Perform an Exact ID to Classname of the Component\n * case sensitive, zero tolerance.\n */\n MatchIdToClassName,\n /**\n * Perform a fuzzy ID to classname match\n * case insensitive, mutes symbols\n * ignores \"Component\" and \"Module\" postfixes on class\n * names\n */\n FuzzyIdClassName,\n\n /**\n * Use a user-provided component match function\n */\n Custom\n}\n\nexport type NgxLazyLoaderConfig = Partial<{\n entries: ComponentRegistration[],\n\n notFoundTemplate: TemplateRef<any>,\n notFoundComponent: ComponentType<any>,\n\n errorTemplate: TemplateRef<any>,\n errorComponent: ComponentType<any>,\n\n loaderDistractorTemplate: TemplateRef<any>,\n loaderDistractorComponent: ComponentType<any>,\n\n logger: {\n log: (...args: any) => void,\n warn: (...args: any) => void,\n err: (...args: any) => void;\n },\n /**\n * What strategy should be used to resolve components\n * @default ComponentResolveStrategy.FuzzyIdClassName\n */\n componentResolveStrategy: ComponentResolveStrategy,\n customResolver: (registry: (CompiledComponent | CompiledModule)[]) => Object\n}>;\n\ntype RegistrationConfig = {\n /**\n * Specify a group to categorize components. If not specified,\n * will default to the `default` group.\n */\n group?: string,\n /**\n * load: () => import('./pages/my-page/my-page.component')\n */\n load: () => any,\n\n /**\n * Called before a component is loaded.\n * If it returns `false` the component will not be loaded.\n */\n // canActivate: () => boolean\n\n [key: string]: any\n}\n\nexport type ComponentRegistration = (\n ({ id: string } & RegistrationConfig) |\n ({ matcher: string[] | RegExp | ((value: string) => boolean); } & RegistrationConfig)\n);\n\nexport type DynamicRegistrationArgs<T = any> = {\n id: string,\n group?: string,\n matcher?: string[] | RegExp | ((val: string) => boolean),\n component?: T,\n load?: () => any;\n}\n\n/**\n * This is roughly a compiled component\n */\nexport type CompiledComponent = {\n (): CompiledComponent,\n ɵfac: Function,\n ɵcmp: {\n consts;\n contentQueries;\n data;\n declaredInputs;\n decls;\n dependencies;\n directiveDefs;\n encapsulation;\n exportAs;\n factory;\n features;\n findHostDirectiveDefs;\n getStandaloneInjector;\n hostAttrs;\n hostBindings;\n hostDirectives;\n hostVars;\n id: string;\n inputs;\n ngContentSelectors;\n onPush: boolean;\n outputs;\n pipeDefs;\n providersResolver;\n schemas;\n selectors: string[];\n setInput;\n standalone: boolean;\n styles: string[];\n tView;\n template;\n type: Function;\n vars: number;\n viewQuery;\n };\n};\n\n/**\n * This is roughly a compiled module\n */\nexport type CompiledModule = {\n (): CompiledModule,\n ɵfac: Function,\n ɵinj: {\n providers: any[],\n imports: any[];\n },\n ɵmod: {\n bootstrap: any[],\n declarations: Function[],\n exports: any[],\n id: unknown,\n imports: any[],\n schemas: unknown,\n transitiveCompileScopes: unknown,\n type: Function;\n };\n};\n\nexport type CompiledBundle = { [key: string]: CompiledComponent | CompiledModule; };\n\n\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { CompiledComponent, CompiledModule, ComponentRegistration, ComponentResolveStrategy, DynamicRegistrationArgs, NgxLazyLoaderConfig } from './types';\nimport { stringToSlug, ConsoleLogger } from '../../utils';\n\n// Monkey-patch the type of these symbols.\nconst $id = Symbol(\"id\") as any as string;\nconst $group = Symbol(\"group\") as any as string;\n\nexport const NGX_LAZY_LOADER_CONFIG = new InjectionToken<NgxLazyLoaderConfig>('lazyloader-config');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LazyLoaderService {\n private get err() { return LazyLoaderService.config.logger.err; }\n private get log() { return LazyLoaderService.config.logger.log; }\n private get warn() { return LazyLoaderService.config.logger.warn; }\n\n // A proxied registry that mutates reference keys\n private static registry: {\n [key: string]: ComponentRegistration[];\n } = {};\n\n public static config: NgxLazyLoaderConfig;\n\n constructor(@Inject(NGX_LAZY_LOADER_CONFIG) config: NgxLazyLoaderConfig = {}) {\n // Ensure this is singleton and works regardless of special instancing requirements.\n LazyLoaderService.configure(config);\n }\n\n private static configure(config: NgxLazyLoaderConfig) {\n const { log, warn, err } = ConsoleLogger(\"ngx-lazy-loader\", \"#009688\");\n\n this.config = {\n componentResolveStrategy: ComponentResolveStrategy.PickFirst,\n logger: {\n log,\n warn,\n err\n },\n ...config\n };\n\n config.entries?.forEach(e => this.addComponentToRegistry(e))\n\n // If a custom resolution strategy is provided but no resolution function is passed,\n // we throw an error\n if (\n this.config.componentResolveStrategy == ComponentResolveStrategy.Custom &&\n !this.config.customResolver\n ) {\n throw new Error(\"Cannot initialize. Configuration specifies a custom resolve matcher but none was provided\");\n }\n\n if (this.config.loaderDistractorComponent && this.config.loaderDistractorTemplate)\n throw new Error(\"Cannot have both a Component and Template for Distractor view.\")\n if (this.config.errorComponent && this.config.errorTemplate)\n throw new Error(\"Cannot have both a Component and Template for Error view.\")\n if (this.config.notFoundComponent && this.config.notFoundTemplate)\n throw new Error(\"Cannot have both a Component and Template for NotFound view.\")\n\n }\n\n private static addComponentToRegistry(registration: ComponentRegistration) {\n if (!registration)\n throw new Error(\"Cannot add <undefined> component into registry.\");\n\n // Clone the object into our repository and transfer the id into a standardized slug format\n\n const id = stringToSlug(registration.id ?? Date.now().toString()); // purge non-basic ASCII chars\n const group = registration.group || \"default\";\n\n registration[$id] = id;\n registration[$group] = id;\n\n\n if (!this.registry[group])\n this.registry[group] = [];\n\n // Check if we already have a registration for the component\n // if (this.registry[group] && typeof this.registry[group]['load'] == \"function\") {\n // // Warn the developer that the state is problematic\n // this.config.logger.warn(\n // `A previous entry already exists for ${id}! The old registration will be overridden.` +\n // `Please ensure you use groups if you intend to have duplicate component ids. ` +\n // `If this was intentional, first remove the old component from the registry before adding a new instance`\n // );\n\n // // If we're in dev mode, break the loader surface\n // if (isDevMode())\n // return;\n // }\n\n this.registry[group].push(registration);\n }\n\n /**\n * Register an Angular component\n * @param id identifier that is used to resolve the component\n * @param group\n * @param component Angular Component Class constructor\n */\n public registerComponent<T extends { new(...args: any[]): InstanceType<T>; }>(args: DynamicRegistrationArgs<T>) {\n if (this.isComponentRegistered(args.id, args.group)) {\n this.log(`Will not re-register component '${args.id}' in group '${args.group || 'default'}' `);\n return;\n }\n\n LazyLoaderService.addComponentToRegistry({\n id: stringToSlug(args.id),\n matcher: args.matcher,\n group: stringToSlug(args.group || \"default\"),\n load: args.load || (() => args.component)\n });\n }\n\n /**\n *\n * @param id\n * @param group\n */\n public unregisterComponent(id: string, group = \"default\") {\n const _id = stringToSlug(id);\n const _group = stringToSlug(group);\n\n if (!this.resolveRegistrationEntry(id, group))\n throw new Error(\"Cannot unregister component ${}! Component is not present in registry\")\n\n // TODO: handle clearing running instances\n delete LazyLoaderService.registry[_group][_id];\n }\n\n\n /**\n * Get the registration entry for a component.\n * Returns null if component is not in the registry.\n */\n public resolveRegistrationEntry(value: string, group = \"default\") {\n const _id = stringToSlug(value);\n const _group = stringToSlug(group);\n\n const targetGroup = (LazyLoaderService.registry[_group] || []);\n\n let items = targetGroup.filter(t => {\n if (!t) return false;\n\n // No matcher, check id\n if (!t.matcher)\n return t[$id] == _id;\n\n // Matcher is regex\n if (t.matcher instanceof RegExp)\n return t.matcher.test(_id) || t.matcher.test(value);\n\n // Matcher is string => regex\n if (typeof t.matcher == 'string') {\n const rx = new RegExp(t.matcher, 'ui');\n return rx.test(_id) || rx.test(value);\n }\n\n // Matcher is array\n if (Array.isArray(t.matcher)) {\n return !!t.matcher.find(e => stringToSlug(e) == _id);\n }\n\n // Custom matcher function\n if (typeof t.matcher == \"function\")\n return t.matcher(_id);\n\n return false;\n });\n\n if (items.length > 1) {\n this.warn(\"Resolved multiple components for the provided `[component]` binding. This may cause UI conflicts.\");\n }\n if (items.length == 0) {\n return null;\n }\n\n const out = items[0];\n\n if (out.matcher instanceof RegExp) {\n const result = _id.match(out.matcher) || value.match(out.matcher);\n\n return {\n entry: out,\n matchGroups: result?.groups\n };\n }\n\n return { entry: out };\n }\n\n /**\n * Check if a component is currently registered\n * Can be used to validate regex matchers and aliases.\n */\n public isComponentRegistered(value: string, group = \"default\") {\n return !!this.resolveRegistrationEntry(value, group);\n }\n\n /**\n *\n * @param bundle\n * @returns The component `Object` if a component was resolved, `null` if no component was found\n * `false` if the specified strategy was an invalid selection\n */\n public resolveComponent(id: string, group: string, modules: (CompiledComponent | CompiledModule)[]): Object | null | false {\n\n switch (LazyLoaderService.config.componentResolveStrategy) {\n case ComponentResolveStrategy.PickFirst: {\n\n return modules[0];\n }\n\n // Exact id -> classname match\n case ComponentResolveStrategy.MatchIdToClassName: {\n const matches =\n modules\n .filter(k => k.name == id);\n\n if (matches.length == 0)\n return null;\n\n return matches[0];\n }\n // Fuzzy id -> classname match\n case ComponentResolveStrategy.FuzzyIdClassName: {\n const _id = id.replace(/[^a-z0-9_\\-]/ig, '');\n\n if (_id.length == 0) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching stripped all symbols from the ID specified!\");\n return false;\n }\n\n const rx = new RegExp(`^${id}(component|module)?$`, \"i\");\n\n const matches = modules\n .filter(mod => {\n let kid = mod.name.replace(/[^a-z0-9_\\-]/ig, '');\n\n return rx.test(kid);\n });\n\n if (matches.length > 1) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved multiple targets!\");\n return false;\n }\n\n if (matches.length == 0) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved no targets!\");\n return null;\n }\n\n return matches[0];\n }\n case ComponentResolveStrategy.Custom: {\n return LazyLoaderService.config.customResolver(modules as any);\n }\n default: {\n return false;\n }\n }\n }\n}\n","import { Input, ViewContainerRef, isDevMode, ComponentRef, EventEmitter, Optional, ViewChild, Component, Inject, Output, NgModule, AfterViewInit, OnInit } from '@angular/core';\nimport { NgComponentOutlet, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { MAT_DIALOG_DATA, } from '@angular/material/dialog';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BehaviorSubject, debounceTime, Subscription } from 'rxjs';\nimport { LazyLoaderService } from './lazy-loader.service';\nimport { stringToSlug } from '../../utils';\nimport { CompiledBundle, NgxLazyLoaderConfig } from './types';\n\n\n@Component({\n selector: 'ngx-lazy-loader',\n templateUrl: './lazy-loader.component.html',\n styleUrls: [ './lazy-loader.component.scss' ],\n imports: [ NgIf, NgComponentOutlet, NgTemplateOutlet ],\n standalone: true\n})\nexport class LazyLoaderComponent implements AfterViewInit {\n @ViewChild(\"content\", { read: ViewContainerRef }) targetContainer: ViewContainerRef;\n\n /**\n * ! Here be dragons.\n * Only the bravest of Adventurers can survive the battles below,\n * and they must be trained and ready for the gruelling journey ahead.\n * Many a soul has tried to best these Dragons, yet only one has\n * succeeded since our founding.\n *\n * TL;DR -- Don't mess with this unless you know what you're doing.\n * This is central to a ton of moving parts -- breaking it will\n * cause more collateral damage than you may realize.\n */\n\n private _id: string;\n /**\n * The id of the component that will be lazy loaded\n */\n @Input(\"component\") set id(data: string) {\n const id = stringToSlug(data);\n\n // Check if there is a change to the loaded component's id\n // if it's updated, we destroy and rehydrate the entire container\n if (this.initialized && this._id != id) {\n this._id = id;\n this.ngAfterViewInit();\n }\n else {\n this._id = id;\n }\n };\n\n\n private _group = \"default\";\n @Input(\"group\") set group(data: string) {\n const group = stringToSlug(data);\n\n if (typeof group != \"string\" || !group) return;\n\n // If the group was updated, retry to bootstrap something into the container.\n if (this.initialized && this._group != group) {\n this._group = group;\n\n this.ngAfterViewInit();\n return;\n }\n\n this._group = group;\n }\n get group() { return this._group }\n\n private _matchGroups: { [key: string]: string };\n private _inputs: { [key: string]: any; };\n /**\n * A map of inputs to bind to the child.\n * Supports change detection. (May fail on deep JSON changes)\n *\n * ```html\n * <lazy-loader component=\"MyLazyComponent\"\n * [inputs]=\"{\n * prop1: true,\n * prop2: false,\n * complex: {\n * a: true,\n * b: 0\n * }\n * }\"\n * >\n * </lazy-loader>\n * ```\n */\n @Input(\"inputs\") set inputs(data: { [key: string]: any; }) {\n if (data == undefined) return;\n\n let previous = this._inputs;\n this._inputs = data;\n if (data == undefined)\n console.trace(data);\n\n if (this.targetComponentFactory) {\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n const currentKeys = Object.keys(inputs);\n\n const oldKeys = Object.keys(previous).filter(key => currentKeys.includes(key));\n const newKeys = Object.keys(data).filter(key => currentKeys.includes(key));\n\n const removed = oldKeys.filter(key => !newKeys.includes(key));\n\n // ? perhaps set to null or undefined instead\n removed.forEach(k => this.targetComponentInstance[k] = null);\n\n this.bindInputs();\n }\n }\n\n\n private outputSubscriptions: { [key: string]: Subscription; } = {};\n private _outputs: { [key: string]: Function; };\n /**\n * A map of outputs to bind from the child.\n * Should support change detection.\n * ```html\n * <lazy-loader component=\"MyLazyComponent\"\n * [outputs]=\"{\n * prop3: onOutputFire\n * }\"\n * >\n * </lazy-loader>\n * ```\n */\n @Input(\"outputs\") set outputs(data: { [key: string]: Function; }) {\n let previous = this._outputs;\n this._outputs = data;\n\n if (this.targetComponentFactory) {\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n const currentKeys = Object.keys(inputs);\n const removed = Object.keys(previous).filter(key => !currentKeys.includes(key));\n\n removed.forEach(k => {\n // Unsubscribe from observable\n this.outputSubscriptions[k]?.unsubscribe();\n delete this.targetComponentInstance[k];\n });\n\n this.bindOutputs();\n }\n }\n\n /**\n * Emits errors encountered when loading components\n */\n @Output() componentLoadError = new EventEmitter();\n\n /**\n * Emits when the component is fully constructed\n * and had it's inputs and outputs bound\n * > before `OnInit`\n *\n * Returns the active class instance of the lazy-loaded component\n */\n @Output() componentLoaded = new EventEmitter();\n\n\n /**\n * This is an instance of the component that is currently loaded.\n */\n public instance: any;\n\n\n /**\n * Container that provides the component data\n */\n private targetModule: CompiledBundle;\n\n /**\n * Component definition\n */\n private targetComponentFactory: any;\n\n /**\n * Active component container reference\n */\n private targetComponentContainerRef: ComponentRef<any>;\n private targetRef: any;\n /**\n * Reference to the component class instance\n */\n private targetComponentInstance: any;\n\n /**\n * Subscription with true/false state on whether the distractor should be\n */\n private distractorSubscription: Subscription;\n\n public config: NgxLazyLoaderConfig;\n private err;\n private warn;\n private log;\n\n // Force 500ms delay before revealing the spinner\n private clearEmitter = new EventEmitter();\n private clearLoader$ = this.clearEmitter.pipe(debounceTime(300));\n\n private showEmitter = new EventEmitter();\n private showLoader$ = this.showEmitter.pipe(debounceTime(1));\n\n private subscriptions = [\n this.clearLoader$.subscribe(() => {\n this.isClearingLoader = true;\n\n setTimeout(() => {\n this.renderSpinner = false;\n }, 300)\n }),\n this.showLoader$.subscribe(() => {\n this.isClearingLoader = false;\n this.renderSpinner = true;\n })\n ];\n\n public renderSpinner = true; // whether we render the DOM for the spinner\n public isClearingLoader = false; // should the spinner start fading out\n\n constructor(\n private service: LazyLoaderService,\n @Optional() private viewContainerRef: ViewContainerRef,\n @Optional() public dialog: DialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public dialogArguments\n ) {\n this.config = LazyLoaderService.config;\n this.err = LazyLoaderService.config.logger.err;\n this.warn = LazyLoaderService.config.logger.warn;\n this.log = LazyLoaderService.config.logger.log;\n\n // First, check for dialog arguments\n if (this.dialogArguments) {\n this.inputs = this.dialogArguments.inputs || this.dialogArguments.data;\n this.outputs = this.dialogArguments.outputs;\n this.id = this.dialogArguments.id;\n this.group = this.dialogArguments.group;\n }\n }\n\n private initialized = false;\n async ngAfterViewInit() {\n this.ngOnDestroy(false);\n this.isClearingLoader = false;\n this.renderSpinner = true;\n this.initialized = true;\n\n if (!this._id) {\n this.warn(\"No component was specified!\");\n return this.loadDefault();\n }\n\n try {\n const _entry = this.service.resolveRegistrationEntry(this._id, this._group);\n if (!_entry || !_entry.entry) {\n this.err(`Failed to find Component '${this._id}' in group '${this._group}' in registry!`);\n return this.loadDefault();\n }\n\n const { entry, matchGroups } = _entry;\n this._matchGroups = matchGroups;\n\n // Download the \"module\" (the standalone component)\n const bundle: CompiledBundle = this.targetModule = await entry.load();\n\n\n // Check if there is some corruption on the bundle.\n if (!bundle || typeof bundle != 'object') {\n this.err(`Failed to load component/module for '${this._id}'! Parsed resource is invalid.`);\n return this.loadError();\n }\n\n const modules = Object.keys(bundle)\n .map(k => {\n const entry = bundle[k];\n\n // Strictly check for exported modules or standalone components\n if (typeof entry == \"function\" && typeof entry[\"ɵfac\"] == \"function\")\n return entry;\n return null;\n })\n .filter(e => e != null)\n .filter(entry => {\n entry['_isModule'] = !!entry['ɵmod']; // module\n entry['_isComponent'] = !!entry['ɵcmp']; // component\n\n return (entry['_isModule'] || entry['_isComponent']);\n });\n\n if (modules.length == 0) {\n this.err(`Component/Module loaded for '${this._id}' has no exported components or modules!`);\n return this.loadError();\n }\n\n const component = this.targetComponentFactory = this.service.resolveComponent(this._id, \"default\", modules);\n\n if (!component) {\n this.err(`Component '${this._id}' is invalid or corrupted!`);\n return this.loadError();\n }\n\n\n // Bootstrap the component into the container\n const componentRef = this.targetComponentContainerRef = this.targetContainer.createComponent(component as any);\n this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);\n\n const instance: any = this.targetComponentInstance = componentRef['instance'];\n\n this.bindInputs();\n this.bindOutputs();\n\n this.componentLoaded.next(instance);\n this.instance = instance;\n\n // Look for an observable called isLoading$ that will make us show/hide\n // the same distractor that is used on basic loading\n const isLoading$ = instance['ngxShowDistractor$'] as BehaviorSubject<boolean>;\n\n if (isLoading$ && typeof isLoading$.subscribe == \"function\") {\n this.distractorSubscription = isLoading$.subscribe(loading => {\n loading ? this.showEmitter.emit() : this.clearEmitter.emit();\n });\n }\n else {\n this.clearEmitter.emit();\n }\n\n const name = Object.keys(bundle)[0];\n this.log(`Loaded '${name}'`);\n this.clearEmitter.emit();\n\n return componentRef;\n }\n catch (ex) {\n\n if (isDevMode()) {\n console.warn(\"Component \" + this._id + \" threw an error on mount!\");\n console.warn(\"This will cause you to see a 404 panel.\");\n console.error(ex);\n }\n\n // Network errors throw a toast and return an error component\n if (ex && !isDevMode()) {\n console.error(\"Uncaught error when loading component\");\n throw ex;\n }\n\n return this.loadDefault();\n }\n }\n\n ngOnDestroy(clearAll = true) {\n // unsubscribe from all subscriptions\n Object.entries(this.outputSubscriptions).forEach(([key, sub]) => {\n sub.unsubscribe();\n });\n this.outputSubscriptions = {};\n\n // Clear all things\n if (clearAll) {\n Object.entries(this.subscriptions).forEach(([key, sub]) => {\n sub.unsubscribe();\n });\n }\n\n this.distractorSubscription?.unsubscribe();\n\n // Clear target container\n this.targetRef?.destroy();\n this.targetComponentContainerRef?.destroy();\n this.targetContainer?.clear();\n\n // Wipe the rest of the state clean\n this.targetRef = null;\n this.targetComponentContainerRef = null;\n }\n\n /**\n * Bind the input values to the child component.\n */\n private bindInputs() {\n if (!this._inputs || !this.targetComponentInstance) return;\n\n // Merge match groups\n if (typeof this._matchGroups == \"object\") {\n Object.entries(this._matchGroups).forEach(([key, val]) => {\n if (typeof this._inputs[key] == 'undefined')\n this._inputs[key] = val;\n });\n }\n\n // forward-bind inputs\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n // Returns a list of entries that need to be set\n // This makes it so that unnecessary setters are not invoked.\n const updated = Object.entries(inputs).filter(([parentKey, childKey]: [string, string]) => {\n return this.targetComponentInstance[childKey] != this._inputs[parentKey];\n });\n\n updated.forEach(([parentKey, childKey]: [string, string]) => {\n if (this._inputs.hasOwnProperty(parentKey))\n this.targetComponentInstance[childKey] = this._inputs[parentKey];\n });\n }\n\n /**\n * Bind the output handlers to the loaded child component\n */\n private bindOutputs() {\n if (!this._outputs || !this.targetComponentInstance) return;\n\n const { outputs } = this.targetComponentFactory.ɵcmp;\n\n // Get a list of unregistered outputs\n const newOutputs = Object.entries(outputs).filter(([parentKey, childKey]: [string, string]) => {\n return !this.outputSubscriptions[parentKey];\n });\n\n // Reverse bind via subscription\n newOutputs.forEach(([parentKey, childKey]: [string, string]) => {\n if (this._outputs.hasOwnProperty(parentKey)) {\n const target: EventEmitter<unknown> = this.targetComponentInstance[childKey];\n const outputs = this._outputs;\n\n // Angular folks, stop making this so difficult.\n const ctx = this.viewContainerRef['_hostLView'][8];\n const sub = target.subscribe(outputs[parentKey].bind(ctx)); // Subscription\n\n this.outputSubscriptions[parentKey] = sub;\n }\n });\n }\n\n /**\n * Load the \"Default\" component (404) screen normally.\n * This is shown when the component id isn't in the\n * registry or otherwise doesn't match\n *\n * This\n */\n private loadDefault() {\n if (this.config.notFoundComponent)\n this.targetContainer.createComponent(this.config.notFoundComponent);\n\n this.clearEmitter.emit();\n }\n\n /**\n * Load the \"Error\" component.\n * This is shown when we are able to resolve the component\n * in the registry, but have some issue boostrapping the\n * component into the viewContainer\n */\n private loadError() {\n if (this.config.errorComponent)\n this.targetContainer.createComponent(this.config.errorComponent);\n\n this.clearEmitter.emit();\n }\n}\n","<ng-container #content></ng-container>\n\n<div\n *ngIf=\"renderSpinner\"\n class=\"ngx-lazy-loader-distractor\"\n [class.destroying]=\"isClearingLoader\"\n>\n <ng-container *ngIf=\"config.loaderDistractorComponent\" [ngComponentOutlet]=\"config.loaderDistractorComponent\"></ng-container>\n <ng-container *ngIf=\"config.loaderDistractorTemplate\" [ngTemplateOutlet]=\"config.loaderDistractorTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': inputs }\"></ng-container>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { ConsoleLogger } from '../utils';\nimport { LazyLoaderComponent } from '../components/lazy-loader/lazy-loader.component';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\n\nconst { log, warn, err } = ConsoleLogger(\"DialogService\", \"#607d8b\");\n\nexport type DialogOptions = Partial<Omit<MatDialogConfig<any>, 'data'> & {\n /**\n * List of properties to be provided to @Input() injectors\n */\n inputs: { [key: string]: any },\n /**\n * List of properties to be provided to @Input() injectors\n */\n outputs: { [key: string]: Function },\n /**\n * Context in which to execute callbacks from the `outputs` property via\n * @Output() event Emitters\n */\n parent: any\n}>;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private dialogs: MatDialogRef<unknown, any>[] = [];\n\n constructor(\n private dialog: MatDialog,\n private lazyLoader: LazyLoaderService\n ) {\n }\n\n open(name: string)\n open(name: string, opts: DialogOptions)\n open(name: string, group: string)\n open(name: string, group: string, opts: DialogOptions)\n open(name: string, groupOrOptions?: any, opts: DialogOptions = {}): Promise<any> {\n const group = typeof groupOrOptions == \"string\" ? groupOrOptions : 'default';\n if (typeof groupOrOptions == 'object')\n opts = groupOrOptions;\n\n return new Promise((resolve, reject) => {\n\n const registration = this.lazyLoader.resolveRegistrationEntry(name, group);\n if (!registration)\n return reject(new Error(\"Cannot open dialog for \" + name + \". Could not find in registry.\"));\n\n\n const args = {\n closeOnNavigation: true,\n restoreFocus: true,\n width: registration['width'],\n height: registration['height'],\n ...opts,\n data: {\n id: name,\n inputs: opts.inputs || {},\n outputs: opts.outputs || {},\n group: group\n },\n panelClass: [\n \"dialog-\" + name,\n ...(Array.isArray(opts.panelClass) ? opts.panelClass : [opts.panelClass] || [])\n ]\n };\n\n let dialog = this.dialog.open(LazyLoaderComponent, args);\n\n dialog['idx'] = name;\n this.dialogs.push(dialog);\n\n dialog.afterClosed().subscribe(result => {\n log(\"Dialog closed \" + name, result);\n resolve(result);\n });\n });\n }\n\n // Close all dialogs matching the given name\n close(name: string) {\n const dialogs = this.dialogs.filter(d => d['idx'] == name);\n dialogs.forEach(dialog => dialog.close());\n }\n\n /**\n * Method to close _all_ dialogs.\n * Should be used sparingly.\n */\n clearDialog() {\n this.dialogs.forEach(dialog => dialog.close());\n }\n\n /**\n * Open a confirmation dialog. Will reject if a cancel occurs.\n * @param title title of the dialog\n * @param message main question that a user needs to confirm/deny\n * @returns\n */\n // confirmAction(title: string, message: string): Promise<void> {\n // return new Promise((res, rej) => {\n // const dialog = this.dialog.open(ConfirmationComponent, {\n // maxHeight: \"90vh\",\n // maxWidth: \"90vw\",\n // panelClass: [\"dialog-confirmation\"],\n // closeOnNavigation: true,\n // restoreFocus: true,\n // data: {title, message}\n // });\n\n // dialog.afterClosed().subscribe(result => {\n // result == true ? res() : rej();\n // });\n // });\n // }\n}\n","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, isDevMode } from '@angular/core';\nimport { retry } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n// Total number of _retries_ if there is a 429 response code.\nconst retryCount = 2;\n\nexport type FetchOptions = {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n body?: any,\n observe?: 'body' | 'events' | 'response';\n reportProgress?: boolean;\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\n withCredentials?: boolean;\n}\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class Fetch {\n constructor(\n private http: HttpClient\n ) { }\n\n // Public interface for making AJAX transactions\n public get<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n return this.request<T>(\"get\", url, options, returnError);\n }\n public put<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"put\", url, options, returnError);\n }\n public post<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"post\", url, options, returnError);\n }\n public patch<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"patch\", url, options, returnError);\n }\n public delete<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n return this.request<T>(\"delete\", url, options, returnError);\n }\n\n // Internally, handle the observable as a promise.\n private request<T>(method: string, url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.reportProgress = true;\n\n // Allow support for different response types.\n // Generally we shouldn't need this to be anything other than JSON.\n options.responseType = options.responseType || \"json\";\n options.withCredentials = true;\n\n const p = new Promise((resolve, reject) => {\n const o = this.http.request(method, url, options)\n .pipe(retry({\n delay(error, retryCount) {\n // 429 and 502 are most common for overloaded\n // backends -- so we'll retry if we get these errors\n if (error.status == 429 || error.status == 502)\n return of({});\n\n if (error.status == 504 && isDevMode())\n alert(\"It looks like you can't reach your development backend anymore\");\n\n throw error;\n },\n count: retryCount\n }))\n .subscribe(data => {\n resolve(data as unknown as T);\n\n // provide 3ms slacktime before releasing observable.\n setTimeout(() => {\n o.unsubscribe();\n }, 3);\n });\n });\n\n return p as Promise<T>;\n }\n}\n","import { Injectable, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type KeyCommand = {\n /**\n * The non-modifier key(s) that must be pressed for the event to fire.\n */\n key: string | string[],\n label?: string,\n\n ctrl?: boolean,\n alt?: boolean,\n shift?: boolean,\n super?: boolean,\n tab?: boolean,\n\n /**\n * Should the handler interrupt default event handling\n */\n interrupt?: boolean,\n}\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class KeyboardService {\n\n private heldKeys: { [key: string]: boolean } = {};\n public keyCommands: {\n ctrl?: boolean,\n alt?: boolean,\n shift?: boolean,\n super?: boolean,\n interrupt?: boolean,\n label?: string,\n keys: string[],\n sub: Subject<KeyboardEvent>\n }[] = [];\n\n constructor() {\n window.addEventListener(\"keydown\", (evt) => this.onKeyDown(evt));\n window.addEventListener(\"keyup\", (evt) => this.onKeyUp(evt));\n }\n\n private onKeyDown(evt: KeyboardEvent) {\n // console.log(\"keydown\", evt.key)\n this.heldKeys[evt.key.toLowerCase()] = true;\n\n // Do a general filter where all of the modifiers must be matched if specified\n // Then check that the actual keys match what was specified\n let commands = this.keyCommands\n .filter(kc =>\n (kc.ctrl == undefined || kc.ctrl === evt.ctrlKey) &&\n (kc.alt == undefined || kc.alt === evt.altKey) &&\n (kc.shift == undefined || kc.shift === evt.shiftKey) &&\n (kc.super == undefined || kc.super === evt.metaKey) &&\n kc.keys.length == kc.keys.filter(k => this.heldKeys[k])?.length\n );\n\n if (evt.ctrlKey && commands.length > 0 || commands.find(c => c.interrupt)) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n\n if (evt.key == \"Pause\")\n debugger;\n\n commands.forEach(kc => kc.sub.next(evt));\n\n /**\n * Prevent CTRL+P and other standard key events from being handled by the browser.\n * Allow specific combonations:\n * CTRL+W\n * CTRL+T\n * CTRL+F5\n */\n // if (evt.ctrlKey && !['w', 't', 'F5'].includes(evt.key)) {\n // evt.preventDefault();\n // }\n }\n\n private onKeyUp(evt: KeyboardEvent) {\n this.heldKeys[evt.key.toLowerCase()] = false;\n }\n\n private onKeyPress(evt: KeyboardEvent) {\n // this.heldKeys[evt.key] = false;\n }\n\n /**\n * Use this to subscribe to keyboard events throughout\n * the application. This is a passive listener and will\n * **NOT** interrupt the event chain.\n */\n public onKeyCommand(key: KeyCommand) {\n const sub = new Subject<KeyboardEvent>();\n let item = {\n ...key,\n keys: (Array.isArray(key.key) ? key.key : [key.key]),\n sub: sub\n }\n\n this.keyCommands.push(item);\n\n return {\n ...sub,\n subscribe: ((...args) => {\n const s = sub.subscribe(...args);\n return {\n ...s,\n unsubscribe: () => {\n s.unsubscribe();\n\n // Remove the keycommand from the list of listeners.\n const i = this.keyCommands.findIndex(c => c == item);\n this.keyCommands.splice(i, 1);\n }\n };\n }) as Subject<KeyboardEvent>['subscribe']\n };\n }\n\n /**\n * Return `true` if shift is currently pressed.\n */\n get isShiftPressed() {\n return !!this.heldKeys[\"shift\"];\n }\n /**\n * Return `true` if ctrl is currently pressed.\n */\n get isCtrlPressed() {\n return !!this.heldKeys[\"control\"];\n }\n /**\n * Return `true` if alt is currently pressed.\n */\n get isAltPressed() {\n return !!this.heldKeys[\"alt\"];\n }\n /**\n * Return `true` if super (mac/linux) or the windows key is currently pressed.\n */\n get isSuperPressed() {\n return !!this.heldKeys[\"super\"];\n }\n /**\n * Return `true` if tab is currently pressed.\n */\n get isTabPressed() {\n return !!this.heldKeys[\"tab\"];\n }\n\n @HostListener(\"window:blur\")\n @HostListener(\"window:resize\")\n clearKeys() {\n Object.keys(this.heldKeys).forEach(k => {\n this.heldKeys[k] = false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Fetch } from './fetch.service';\n\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FileService {\n\n constructor(private fetch: Fetch) { }\n\n chooseFile = (accept?: string, multiple = false, formMetadata = {}, ) => {\n return new Promise(r => {\n const inEl = document.createElement('input');\n inEl.setAttribute('type', 'file');\n if (multiple)\n inEl.setAttribute('multiple', '');\n if (accept)\n inEl.setAttribute('accept', accept);\n\n inEl.click();\n\n let formData = new FormData();\n\n inEl.addEventListener('change', () => {\n Object.keys(inEl.files).forEach(k => {\n const file: {\n lastModified: number,\n lastModifiedDate: Date,\n name: string,\n size: number,\n type: string;\n } = inEl.files[k];\n\n const name = file.name;\n formData.append(name, file as any);\n });\n formData.append(\"data\", JSON.stringify(formMetadata));\n inEl.remove();\n r(formData);\n });\n });\n };\n\n // uploadFile = (config: NgxFileManagerConfiguration, currentDirectory: string, targetPath?: string) => {\n // return new Promise(r => {\n // const inEl = document.createElement('input');\n // inEl.setAttribute('type', 'file');\n // inEl.setAttribute('multiple', '');\n // inEl.click();\n\n // let formData = new FormData();\n\n // inEl.addEventListener('change', () => {\n // Object.keys(inEl.files).forEach(k => {\n // const file: {\n // lastModified: number,\n // lastModifiedDate: Date,\n // name: string,\n // size: number,\n // type: string;\n // } = inEl.files[k];\n\n // const name = file.name;\n // formData.append(name, file as any);\n // });\n // formData.append(\"data\", JSON.stringify({\n // path: currentDirectory\n // }));\n\n // const url = config.apiSettings.uploadEntryUrlTemplate\n // ? config.apiSettings.uploadEntryUrlTemplate(targetPath ?? currentDirectory)\n // : config.apiSettings.uploadEntryUrl;\n\n // r(this.fetch.post(url, formData).then(res => {\n // inEl.remove();\n // return res;\n // }));\n // });\n // });\n // };\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ntype AppTheme = \"light\" | \"dark\";\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService extends BehaviorSubject<AppTheme>{\n constructor() {\n super(document.body.classList.contains(\"light\") ? \"light\" : \"dark\");\n\n this.subscribe(t => {\n if (!t || t as any == 'undefined') return;\n\n if (document.body.classList.contains(\"dark\") && t == \"light\")\n document.body.classList.remove(\"dark\");\n if (document.body.classList.contains(\"light\") && t == \"dark\")\n document.body.classList.remove(\"light\");\n\n document.body.classList.add(t);\n });\n }\n\n public setTheme(t: AppTheme) {\n this.next(t);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { ConsoleLogger } from '../utils';\nimport { LazyLoaderService } from '../public-api';\n\nconst { log, warn, err } = ConsoleLogger(\"NavigationService\", \"#ff9800\");\n\ntype NavigationArguments = {\n root: string,\n chunks: [string, ...string[]],\n args: {\n [key: string]: any;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n public virtualPath$ = new BehaviorSubject<NavigationArguments>(null);\n\n constructor(\n private readonly lazyLoader: LazyLoaderService\n ) {\n window.onhashchange = () => this.loadRootPageFromUrl();\n this.loadRootPageFromUrl();\n }\n\n private loadRootPageFromUrl() {\n const hash = location.hash.split(\"?\")[0];\n\n // If the URL is imprecisely set, we restore it to the landing page\n if (!this.lazyLoader.isComponentRegistered(hash))\n return this.loadRootPage(\"#/Landing\");\n\n this.loadRootPage(location.hash);\n }\n\n private loadRootPage(url: string, data: Object = {}) {\n\n const [path, query] = url.split('?');\n const hash = path.replace(/^\\/?#\\/?/, '');\n const chunks = hash.split('/');\n\n // Get query params and pass them as @Input arguments.\n const params = query?.split('&')\n .reduce((pars, par) => {\n const [key, value] = par.split(\"=\");\n const decoded = decodeURIComponent(value);\n pars[key] = decoded;\n return pars;\n }, {}) || {};\n\n\n log(`Root page navigate to '${hash}'`, { params, chunks });\n\n this.virtualPath$.next({\n root: chunks[0],\n chunks: chunks as any,\n args: params\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { KeybindCode } from '../../../services/command-palette.service';\n\n@Component({\n selector: 'ngx-commandpalette-shortcut',\n templateUrl: './shortcut.component.html',\n styleUrls: ['./shortcut.component.scss'],\n standalone: true\n})\nexport class ShortcutComponent {\n\n @Input() shortcut: KeybindCode;\n\n keys: string[] = [];\n\n ngOnChanges() {\n this.keys = this.shortcut?.split(\"+\");\n }\n}\n","@for (key of keys; track key; let i = $index) {\n @if(i > 0) {\n <span class=\"plus\">+</span>\n }\n\n <span class=\"key\">{{key}}</span>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommandPaletteComponent } from '../command-palette.component';\nimport { CommandAction } from '../../../services/command-palette.service';\n\n@Component({\n selector: 'ngx-commandpalette-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n standalone: true\n})\nexport class BreadcrumbComponent {\n\n @Input() breadcrumbs: {\n action: CommandAction,\n commands: CommandAction[],\n destroying: boolean,\n selectedIndex: number\n }[] = [];\n\n constructor(\n private commandPalette: CommandPaletteComponent\n ) {\n\n }\n\n selectBreadcrumb(crumb) {\n const index = this.breadcrumbs.indexOf(crumb);\n if (index == -1)\n throw new Error(\"Something terrible happened.\");\n\n const layer = this.breadcrumbs.at(-1);\n layer.destroying = true;\n setTimeout(() => {\n this.commandPalette.setCommandList(this.breadcrumbs.at(-2).commands);\n this.commandPalette.breadcrumbs.pop();\n this.commandPalette.activeIndex = layer.selectedIndex;\n }, 190)\n }\n}\n","@for (crumb of breadcrumbs; track crumb; let i = $index) {\n <div class=\"crumb\">\n <div\n class=\"crumb_inner\"\n [class.destroy]=\"crumb.destroying\"\n [class.root]=\"i == 0\"\n (click)=\"selectBreadcrumb(crumb)\"\n >\n {{crumb.action.label}}\n </div>\n </div>\n}\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnInit, ViewChild, isDevMode } from '@angular/core';\nimport { CommandAction, CommandPaletteService } from '../../services/command-palette.service';\nimport { MatInputModule } from '@angular/material/input';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { NgScrollbar, NgScrollbarModule } from 'ngx-scrollbar';\nimport { ShortcutComponent } from './shortcut/shortcut.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@Component({\n selector: 'ngx-command-palette',\n templateUrl: './command-palette.component.html',\n styleUrls: ['./command-palette.component.scss'],\n host: {\n \"(click)\": \"textInput.nativeElement.focus()\"\n },\n imports: [\n MatIconModule,\n MatInputModule,\n ScrollingModule,\n NgScrollbarModule,\n ShortcutComponent,\n BreadcrumbComponent\n ],\n standalone: true\n})\nexport class CommandPaletteComponent implements OnInit {\n\n @ViewChild(NgScrollbar) scrollbar: NgScrollbar;\n @ViewChild('textinput') textInput: ElementRef<HTMLInputElement>;\n\n @Input() contextElement: HTMLElement;\n\n get el() { return this.elementRef.nativeElement as HTMLElement; }\n\n readonly MAT_ICON_REGEX = /[:\\/\\.]/;\n\n queryString = \"\";\n activeIndex = 0;\n readonly rowHeight = 29;\n readonly padding = 6;\n\n commands: CommandAction[] = [];\n filteredCommands: CommandAction[] = [];\n\n breadcrumbs: {\n action: CommandAction,\n commands: CommandAction[],\n destroying: boolean,\n selectedIndex: number\n }[] = [];\n\n constructor(\n private readonly commandPalette: CommandPaletteService,\n private readonly dialog: MatDialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly changeDetector: ChangeDetectorRef,\n @Inject(MAT_DIALOG_DATA) data: any\n ) {\n this.contextElement = this.contextElement ?? data.contextElement;\n }\n\n ngOnInit() {\n this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)\n this.setCommandList(this.commands);\n\n // TODO: custom name\n this.breadcrumbs.push({\n action: { label: \"/\" },\n commands: this.commands,\n destroying: false,\n selectedIndex: 0\n });\n }\n\n onKeyDown(evt: KeyboardEvent) {\n switch(evt.key) {\n case \"Enter\": {\n // Fire the first command\n if (this.filteredCommands.length > 0)\n this.executeCommand(this.filteredCommands[this.activeIndex]);\n\n evt.stopPropagation();\n return;\n }\n case \"ArrowUp\": {\n this.activeIndex = Math.max(this.activeIndex-1, 0);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"ArrowDown\": {\n this.activeIndex = Math.min(this.filteredCommands.length-1, this.activeIndex+1);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"PageUp\": {\n // Fire the first command\n this.activeIndex = Math.max(this.activeIndex-12, 0);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"PageDown\": {\n this.activeIndex = Math.min(this.filteredCommands.length-1, this.activeIndex+12);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"Escape\": {\n this.dialog.close();\n evt.stopPropagation();\n return;\n }\n case \"Backspace\": {\n // If we have no characters and we're hitting backspace, go back\n // to the previous menu in the breadcrumb\n if (this.queryString.length == 0 && this.breadcrumbs.length > 1) {\n const layer = this.breadcrumbs.at(-1);\n layer.destroying = true;\n setTimeout(() => {\n this.setCommandList(this.breadcrumbs.at(-2).commands);\n this.breadcrumbs.pop();\n this.activeIndex = layer.selectedIndex;\n }, 190)\n return;\n }\n else {\n break;\n }\n }\n case \"Delete\": {\n\n }\n }\n\n this.activeIndex = 0;\n this.commands.forEach(c => c['_renderedLabel'] = '');\n\n // Check in the next tick to get the input's\n // value so that it's updated\n setTimeout(() => {\n this.queryString = (evt.target as HTMLInputElement).value;\n this.filterResults();\n })\n }\n\n private async filterResults() {\n // Whitespace doesn't count.\n if (this.queryString.trim().length == 0) {\n this.filteredCommands = this.commands;\n return;\n }\n\n const queryChars = this.queryString\n .toLowerCase()\n .split('');\n\n const matchedCommands: CommandAction[] = [];\n\n for (const command of this.commands) {\n const { label } = command;\n\n // Check the label\n if (command.label) {\n const commandChars = label\n .toLowerCase()\n .split('');\n\n let renderedLabel = '';\n let lastIndex = 0;\n let isMatch = true;\n\n for (const char of queryChars) {\n const index = commandChars.indexOf(char, lastIndex);\n\n if (index == -1) {\n isMatch = false;\n break;\n }\n else {\n renderedLabel += label.slice(lastIndex, index) + `<b>${label.slice(index, index + 1)}</b>`;\n lastIndex = index + 1;\n }\n }\n\n renderedLabel += label.slice(lastIndex);\n\n if (isMatch) {\n command['_renderedLabel'] = renderedLabel;\n matchedCommands.push(command);\n }\n }\n\n // Check the hint\n if (command.hint) {\n const commandChars = label\n .toLowerCase()\n .split('');\n\n let renderedHint = '';\n let lastIndex = 0;\n let isMatch = true;\n\n for (const char of queryChars) {\n const index = commandChars.indexOf(char, lastIndex);\n\n if (index == -1) {\n isMatch = false;\n break;\n }\n else {\n renderedHint += label.slice(lastIndex, index) + `<b>${label.slice(index, index + 1)}</b>`;\n lastIndex = index + 1;\n }\n }\n\n renderedHint += label.slice(lastIndex);\n\n if (isMatch) {\n command['_renderedHint'] = renderedHint;\n matchedCommands.push(command);\n }\n }\n }\n\n this.filteredCommands = matchedCommands;\n }\n\n public setCommandList(commands: CommandAction[]) {\n this.commands = commands\n .filter(c => c.visibleInList != false);\n this.filteredCommands = this.commands;\n this.queryString = '';\n this.activeIndex = 0;\n\n // Reset the filter labels\n this.commands.forEach(command => command['_renderedLabel'] = '');\n }\n\n private focusRow() {\n const top = this.activeIndex * this.rowHeight;\n const height = this.rowHeight;\n\n const viewTop = this.scrollbar?.viewport?.scrollTop;\n const viewHeight = this.scrollbar?.viewport?.clientHeight;\n const viewBottom = viewTop + viewHeight;\n\n if (top < viewTop) {\n this.scrollbar.viewport.nativeElement.scrollTo({ top: top + this.padding })\n }\n else if ((top + height) > viewBottom) {\n this.scrollbar.viewport.nativeElement.scrollTo({ top: ((top + this.rowHeight) - viewHeight) + this.padding })\n }\n\n // Immediately check for changes to update template\n this.changeDetector.detectChanges();\n }\n\n executeCommand(command: CommandAction) {\n // Open a sub menu of items\n if (Array.isArray(command.subMenu)) {\n this.breadcrumbs.push({\n action: command,\n commands: command.subMenu,\n selectedIndex: this.activeIndex,\n destroying: false\n });\n\n this.setCommandList(command.subMenu);\n }\n // Directly invoke the action and kill the dialog\n else {\n this.commandPalette.invokeAction(command);\n this.dialog.close();\n }\n }\n\n @HostListener(\"window:blur\")\n @HostListener(\"window:resize\")\n onBlur() {\n if (!isDevMode()) {\n this.dialog.close();\n }\n }\n}\n","<mat-form-field style=\"width: 100%; padding: 8px 8px 0 8px\">\n <ngx-commandpalette-breadcrumb\n [breadcrumbs]=\"breadcrumbs\"\n />\n <input\n #textinput\n matInput\n type=\"text\"\n [value]=\"queryString\"\n (keydown)=\"onKeyDown($event)\"\n >\n</mat-form-field>\n\n@if (filteredCommands.length == 0) {\n <div class=\"commands\">\n <div class=\"command selected\">\n <div class=\"label\">No matching results.</div>\n </div>\n </div>\n}\n@else {\n <div\n class=\"commands\"\n [style.flex]=\"(filteredCommands.length * rowHeight) + 'px'\"\n [class.shadow]=\"scrollbar?.viewport?.scrollTop > 2\"\n >\n <ng-scrollbar #scrollbar>\n <cdk-virtual-scroll-viewport [itemSize]=\"rowHeight\" scrollViewport [minBufferPx]=\"150\">\n <div\n *cdkVirtualFor=\"let command of filteredCommands; let index = index\"\n class=\"command\"\n [style.height]=\"rowHeight + 'px'\"\n [class.selected]=\"index==activeIndex\"\n [class.has-icon]=\"command.icon\"\n [attr.index]=\"index\"\n (click)=\"executeCommand(command)\"\n >\n @if (command.icon) {\n <div class=\"icon\">\n @if (!MAT_ICON_REGEX.test(command.icon)) {\n <mat-icon [fontIcon]=\"command.icon\"></mat-icon>\n }\n @else {\n <img [src]=\"command.icon\"/>\n }\n </div>\n }\n\n <div\n class=\"label\"\n [innerHTML]=\"command['_renderedLabel'] || command.label || command.description\"\n ></div>\n\n @if (command['_renderedHint'] || command.hint) {\n <div\n class=\"hint\"\n [innerHTML]=\"command['_renderedHint'] || command.hint\"\n ></div>\n }\n <div style=\"flex: 1\"></div>\n\n <div>\n @for (shortcut of (command.shortcutKey?.find ? command.shortcutKey : [command.shortcutKey]); track shortcut) {\n @if (shortcut) {\n <ngx-commandpalette-shortcut [shortcut]=\"shortcut\"/>\n }\n }\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-scrollbar>\n </div>\n}\n\n","import { Injectable, HostListener, Type, isDevMode } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConsoleLogger, LogIcon } from '../utils';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\nimport { CommandPaletteComponent } from '../components/command-palette/command-palette.component';\n\nconst { log, warn, err } = ConsoleLogger(\"CommandPalette\", \"#2196f3\");\n\ntype KeyCode = \"Backspace\" | \"Tab\" | \"Enter\" | \"ShiftLeft\" | \"ShiftRight\"\n | \"ControlLeft\" | \"ControlRight\" | \"AltLeft\" | \"AltRight\" | \"Pause\" | \"CapsLock\"\n | \"Escape\" | \"Space\" | \"PageUp\" | \"PageDown\" | \"End\" | \"Home\" | \"ArrowLeft\"\n | \"ArrowUp\" | \"ArrowRight\" | \"ArrowDown\" | \"PrintScreen\" | \"Insert\" | \"Delete\"\n | \"MetaLeft\" | \"MetaRight\" | \"ContextMenu\" | \"Numpad0\" | \"Numpad1\" | \"Numpad2\"\n | \"Numpad3\" | \"Numpad4\" | \"Numpad5\" | \"Numpad6\" | \"Numpad7\" | \"Numpad8\"\n | \"Numpad9\" | \"NumpadMultiply\" | \"NumpadAdd\" | \"NumpadSubtract\"\n | \"NumpadDecimal\" | \"NumpadDivide\"\n | \"F1\" | \"F2\" | \"F3\" | \"F4\" | \"F5\" | \"F6\" | \"F7\" | \"F8\" | \"F9\" | \"F10\" | \"F11\" | \"F12\"\n | \"NumLock\" | \"ScrollLock\" | \"Semicolon\" | \"Equal\" | \"Comma\" | \"Minus\"\n | \"Period\" | \"Slash\" | \"Backquote\" | \"BracketLeft\" | \"Backslash\"\n | \"BracketRight\" | \"Quote\" | \"backspace\" | \"tab\" | \"enter\" | \"shiftleft\"\n | \"shiftright\" | \"controlleft\" | \"controlright\" | \"altleft\" | \"altright\"\n | \"pause\" | \"capslock\" | \"escape\" | \"space\" | \"pageup\" | \"pagedown\" | \"end\"\n | \"home\" | \"arrowleft\" | \"arrowup\" | \"arrowright\" | \"arrowdown\" | \"printscreen\"\n | \"insert\" | \"delete\" | \"metaleft\" | \"metaright\" | \"contextmenu\"\n | \"numpad0\" | \"numpad1\" | \"numpad2\" | \"numpad3\" | \"numpad4\" | \"numpad5\"\n | \"numpad6\" | \"numpad7\" | \"numpad8\" | \"numpad9\" | \"numpadmultiply\" | \"numpadadd\"\n | \"numpadsubtract\" | \"numpaddecimal\" | \"numpaddivide\"\n | \"f1\" | \"f2\" | \"f3\" | \"f4\" | \"f5\" | \"f6\" | \"f7\" | \"f8\" | \"f9\" | \"f10\" | \"f11\" | \"f12\"\n | \"numlock\" | \"scrolllock\" | \"semicolon\" | \"equal\" | \"comma\" | \"minus\" | \"period\"\n | \"slash\" | \"backquote\" | \"bracketleft\" | \"backslash\" | \"bracketright\" | \"quote\"\n | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"H\" | \"I\" | \"J\" | \"K\" | \"L\" | \"M\"\n | \"N\" | \"O\" | \"P\" | \"Q\" | \"R\" | \"S\" | \"T\" | \"U\" | \"V\" | \"W\" | \"X\" | \"Y\" | \"Z\"\n | \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\" | \"g\" | \"h\" | \"i\" | \"j\" | \"k\" | \"l\" | \"m\"\n | \"n\" | \"o\" | \"p\" | \"q\" | \"r\" | \"s\" | \"t\" | \"u\" | \"v\" | \"w\" | \"x\" | \"y\" | \"z\";\n\n// ctrl+alt+meta+shift\ntype KeyPrefix =\n `ctrl` |\n `ctrl+alt` |\n `ctrl+alt+shift` |\n `ctrl+alt+shift+meta` |\n `ctrl+alt+meta` |\n `ctrl+shift` |\n `ctrl+shift+meta` |\n `ctrl+meta` |\n `alt` |\n `alt+shift` |\n `alt+shift+meta` |\n `alt+meta` |\n `shift` |\n `shift+meta` |\n `meta`\n\nexport type KeybindEvent = (e: KeyboardEvent) => void;\nexport type KeybindCode = `${KeyPrefix}+${KeyCode}` | KeyCode;\n\n\n\nexport type CommandAction<T = any> = {\n /**\n * The non-modifier key(s) that must be pressed for the event to fire.\n */\n shortcutKey?: KeybindCode | KeybindCode[],\n\n /**\n * Action that is invoked when the keyboard shortcut is pressed or the item\n * is activated in the GUI menu\n * If the GUI menu is open, it will show a spinner if the action returns a `Promise`\n */\n action?: (evt: KeyboardEvent, data?: T) => Promise<any> | any,\n\n /**\n * Arbitrary data object to be passed into the action\n */\n data?: T,\n\n /**\n * Label in the command palette popup\n */\n label?: string,\n\n /**\n * Hint that follows the label, subtly\n */\n hint?: string,\n\n /**\n * Icon for the entry\n * Can be a mat-icon\n * Will be a mat-icon if the string is simple\n * If the string contains a slash or colon, it will be loaded as\n * an image source\n */\n icon?: string,\n\n /**\n * Keywords that can help pick this command\n */\n keywords?: string | string[],\n\n /**\n * Description for the popup\n * WIP\n */\n description?: string,\n\n /**\n * The root ancestor element of the action\n * (This allows scoping commands to specific HTML elements)\n * This requires that the event target must be a descendant\n *\n * If there are multiple matching descendants, only\n * the furthest descendant will be fired\n *\n * For command scoping, we read the data-label attribute\n * Alternatively, you can set label and element as an object here.\n */\n rootElement?: HTMLElement | string | {\n element: HTMLElement | string,\n label: string\n },\n\n /**\n * The label for the root. Used for the UI control and debugging.\n */\n rootName?: string,\n\n /**\n * Control whether this command action is visible in the popup command\n * palette GUI.\n */\n visibleInList?: boolean,\n\n /**\n * Enable selecting an item to show a list of sub-items\n */\n subMenu?: CommandAction<T>[] | (() => Promise<CommandAction<T>[]>) | (() => CommandAction<T>[])\n\n};\n\ntype CommandBlock = {\n element: HTMLElement,\n actions: CommandAction[];\n};\n\nexport type CommandPaletteOptions = {\n keybind: KeybindCode\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommandPaletteService {\n\n private commandBlocks: CommandBlock[] = [];\n private interval;\n\n constructor(\n private readonly dialog: MatDialog,\n private readonly lazyLoader: LazyLoaderService\n ) {\n window.addEventListener(\"keydown\", (evt) => this.onKeyDown(evt));\n\n this.interval = setInterval(() => {\n // Go backwards since we're splicing items out of the array.\n for (let i = this.commandBlocks.length; i >= 0; i--) {\n let commandBlock = this.commandBlocks[i];\n\n // If the current index is somehow null, rip it out of\n // the array and wait for cleanup to trigger again\n // for the rest of the array.\n // TODO: Could this lead to leaks where things at the end\n // never get cleaned?\n if (commandBlock == null) {\n this.commandBlocks.splice(i, 1);\n return;\n }\n\n // If the element has been disconnected from the DOM, we will\n // treat it as having been permanently removed.\n // TODO: Could this ever cause unintended consequences?\n if (!commandBlock?.element.isConnected)\n this.commandBlocks.splice(i, 1);\n }\n }, 5 * 60 * 1000);\n }\n\n private ngOnDestroy() {\n clearInterval(this.interval);\n }\n\n private getCommandBlocks(element: HTMLElement = document.body) {\n const elementPath: HTMLElement[] = [element];\n let currentTarget: HTMLElement = element;\n do {\n elementPath.unshift(currentTarget = currentTarget.parentElement);\n } while (currentTarget.parentElement);\n\n // Ordered matching command blocks, closest first\n const matchingCommandBlocks: CommandBlock[] = [];\n for (const element of elementPath) {\n const commandBlock = this.commandBlocks.find(cb => cb.element == element);\n if (commandBlock) {\n matchingCommandBlocks.unshift(commandBlock);\n }\n }\n\n return matchingCommandBlocks;\n }\n\n /**\n * Handle keydown events\n *\n * If an event has been removed from the DOM tree, we don't need\n * to explicitly remove the bindings, as they will never fire\n *\n * We periodically check and remove unconnected command blocks\n */\n private onKeyDown(evt: KeyboardEvent) {\n const matchingCommandBlocks = this.getCommandBlocks(evt.target as HTMLElement);\n\n // String in format `ctrl+alt+F`, `ctrl+F` etc.\n const key = [\n evt.ctrlKey ? \"ctrl\" : undefined,\n evt.altKey ? \"alt\" : undefined,\n evt.shiftKey ? \"shift\" : undefined,\n evt.metaKey ? \"meta\" : undefined,\n evt.code.startsWith(\"Key\") ? evt.key : evt.code\n ].filter(a => a).join('+').toLowerCase();\n\n for (const commandBlock of matchingCommandBlocks) {\n const action = commandBlock.actions.find(a => {\n return Array.isArray(a.shortcutKey)\n ? a.shortcutKey.includes(key as any)\n : a.shortcutKey == key as any\n });\n\n if (action) {\n evt.stopPropagation();\n evt.preventDefault();\n\n this.invokeAction(action);\n\n // Execute the action and move on.\n return;\n }\n // Keep checking for matching actions\n }\n\n // If execution reaches this point, there were no matching actions on the\n // path of elements that were registered.\n }\n\n private addCommand(element: HTMLElement, action: CommandAction) {\n const commandBlock = this.commandBlocks.find(b => b.element == element) ?? (() => {\n const cb = { element, actions: [] };\n this.commandBlocks.push(cb);\n return cb;\n })();\n\n // This is likely a duplicate entry\n if (commandBlock.actions.find(a => a.shortcutKey && a.shortcutKey == action.shortcutKey)) {\n warn(`Inserting duplicate action on element`, { element, action });\n }\n else {\n log(LogIcon.circle_blue, `Inserted action`, action)\n }\n\n // Make the shortcut keys lowercase so case sensitivity doesn't scalp someone\n if (action.shortcutKey) {\n if (Array.isArray(action.shortcutKey))\n action.shortcutKey = action.shortcutKey.map(k => k.toLowerCase()) as any;\n else\n action.shortcutKey = action.shortcutKey.toLowerCase() as any;\n }\n\n commandBlock.actions.push(action);\n }\n\n private removeCommand(element: HTMLElement, action: CommandAction | string) {\n const commandBlock = this.commandBlocks.find(b => b.element == element) ?? { element, actions: [] };\n const actionIndex = commandBlock?.actions.findIndex(a => typeof action == \"string\" ? a.shortcutKey == action : a == action);\n\n if (!commandBlock) {\n err(LogIcon.warning, `Cannot remove command: element does not have any commands registered`, { element, action })\n }\n else if (actionIndex == -1) {\n warn(LogIcon.warning, `Cannot remove command: not present in list`, { element, action })\n }\n else {\n commandBlock.actions.splice(actionIndex, 1);\n }\n }\n\n /**\n *\n */\n initialize(options: CommandPaletteOptions) {\n this.attachElementCommands([\n {\n shortcutKey: options.keybind,\n action: () => this.openPalette(),\n description: \"Open the command palette\",\n keywords: [\"command\", \"prompt\", \"console\", \"actions\"],\n label: \"Command Palette\",\n visibleInList: false\n }\n ]);\n }\n\n /**\n * Open the command palette\n */\n openPalette() {\n return this.dialog.open(CommandPaletteComponent, {\n position: {\n top: \"8px\"\n },\n data: {\n contextElement: document.activeElement\n },\n restoreFocus: true,\n // autoFocus: false,\n role: 'dialog'\n });\n }\n\n /**\n * Public helper to invoke an action.\n */\n invokeAction(action: CommandAction, args?) {\n const fn = action.action;\n if (typeof fn == 'function') {\n\n try {\n const res = fn(args);\n\n // Handle promises so that the GUI can show spinners for them\n if (res instanceof Promise) {\n // TODO\n }\n else {\n // TODO\n }\n }\n catch (ex) {\n err(LogIcon.bomb, `Executing action threw an error`, { action }, ex);\n }\n }\n else {\n warn(LogIcon.warning, `Cannot execute action, type is not \"function\"`, { action });\n }\n }\n\n /**\n * Attach commands to an Element and it's subtree\n */\n attachElementCommands(actions: CommandAction[])\n attachElementCommands(element: HTMLElement, actions: CommandAction[])\n attachElementCommands(element: CommandAction[] | HTMLElement = document.body, actions: CommandAction[] = []) {\n if (Array.isArray(element)) {\n actions = element;\n element = document.body;\n }\n\n actions.forEach(a => this.addCommand(element as any, a));\n }\n\n /**\n * Detach specified commands from an Element subtree\n */\n detachElementCommands(element: HTMLElement = document.body, actions: CommandAction[] = []) {\n actions.forEach(a => this.removeCommand(element, a));\n }\n\n /**\n * Return the list of registered commands under a given element\n */\n getRegisteredCommands(element: HTMLElement = document.body) {\n return this.getCommandBlocks(element).map(c => c.actions).flat();\n }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { NgxLazyLoaderConfig } from './types';\nimport { LazyLoaderComponent } from './lazy-loader.component';\nimport { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from './lazy-loader.service';\n\n@NgModule({\n imports: [LazyLoaderComponent],\n exports: [LazyLoaderComponent]\n})\nexport class LazyLoaderModule {\n public static forRoot(config: NgxLazyLoaderConfig): ModuleWithProviders<LazyLoaderModule> {\n return ({\n ngModule: LazyLoaderModule,\n providers: [\n {\n provide: NGX_LAZY_LOADER_CONFIG,\n useValue: config\n },\n LazyLoaderService\n ]\n });\n }\n}\n","import { InjectionToken, Type } from '@angular/core';\n\nexport abstract class OnMount {\n abstract dynamicOnMount(attrs?: Map<string, string>, content?: string, element?: Element): void;\n}\n\nexport interface ComponentWithSelector {\n selector: string;\n component: Type<any>;\n}\nexport class DynamicHTMLOptions {\n components: Array<ComponentWithSelector>;\n}\n\nexport const NGX_DYNAMIC_CONFIG = new InjectionToken<DynamicHTMLOptions>('dynamichtml-config');\n\n","import { Injectable, Injector, ElementRef, ComponentFactoryResolver, ComponentFactory, ComponentRef, Inject } from '@angular/core';\nimport { DynamicHTMLOptions, NGX_DYNAMIC_CONFIG, OnMount } from './types';\n\nexport interface DynamicHTMLRef {\n check: () => void;\n destroy: () => void;\n}\n\nfunction isBrowserPlatform() {\n return window != null && window.document != null;\n}\n\n@Injectable()\nexport class DynamicHTMLRenderer {\n\n private componentFactories = new Map<string, ComponentFactory<any>>();\n\n private componentRefs = new Map<any, Array<ComponentRef<any>>>();\n\n constructor(@Inject(NGX_DYNAMIC_CONFIG) private config: DynamicHTMLOptions, private cfr: ComponentFactoryResolver, private injector: Injector) {\n this.config.components.forEach(({ selector, component }) => {\n let cf: ComponentFactory<any>;\n cf = this.cfr.resolveComponentFactory(component);\n this.componentFactories.set(selector, cf);\n });\n }\n\n renderInnerHTML(elementRef: ElementRef, html: string): DynamicHTMLRef {\n if (!isBrowserPlatform()) {\n return {\n check: () => { },\n destroy: () => { },\n };\n }\n elementRef.nativeElement.innerHTML = html;\n\n const componentRefs: Array<ComponentRef<any>> = [];\n this.config.components.forEach(({ selector }) => {\n const elements = (elementRef.nativeElement as Element).querySelectorAll(selector);\n Array.prototype.forEach.call(elements, (el: Element) => {\n const content = el.innerHTML;\n const cmpRef = this.componentFactories.get(selector).create(this.injector, [], el);\n\n el.removeAttribute('ng-version');\n\n if (cmpRef.instance.dynamicOnMount) {\n const attrsMap = new Map<string, string>();\n if (el.hasAttributes()) {\n Array.prototype.forEach.call(el.attributes, (attr: Attr) => {\n attrsMap.set(attr.name, attr.value);\n });\n }\n (cmpRef.instance as OnMount).dynamicOnMount(attrsMap, content, el);\n }\n\n componentRefs.push(cmpRef);\n });\n });\n this.componentRefs.set(elementRef, componentRefs);\n\n return {\n check: () => componentRefs.forEach(ref => ref.changeDetectorRef.detectChanges()),\n destroy: () => {\n componentRefs.forEach(ref => ref.destroy());\n this.componentRefs.delete(elementRef);\n },\n };\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n SimpleChanges,\n OnChanges,\n OnDestroy,\n DoCheck,\n} from '@angular/core';\n\nimport { DynamicHTMLRenderer, DynamicHTMLRef } from './dynamic-html.service';\n\n@Component({\n selector: 'dynamic-html',\n template: '',\n standalone: true\n})\nexport class DynamicHTMLComponent implements DoCheck, OnChanges, OnDestroy {\n @Input() content: string;\n\n private ref: DynamicHTMLRef = null;\n\n constructor(\n private renderer: DynamicHTMLRenderer,\n private elementRef: ElementRef,\n ) { }\n\n ngOnChanges(_: SimpleChanges) {\n if (this.ref) {\n this.ref.destroy();\n this.ref = null;\n }\n if (this.content && this.elementRef) {\n this.ref = this.renderer.renderInnerHTML(this.elementRef, this.content);\n }\n }\n\n ngDoCheck() {\n if (this.ref) {\n this.ref.check();\n }\n }\n\n ngOnDestroy() {\n if (this.ref) {\n this.ref.destroy();\n this.ref = null;\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DynamicHTMLComponent } from './dynamic-html.component';\nimport { DynamicHTMLOptions, NGX_DYNAMIC_CONFIG } from './types';\nimport { DynamicHTMLRenderer } from './dynamic-html.service';\n\n@NgModule({\n imports: [DynamicHTMLComponent],\n exports: [DynamicHTMLComponent],\n})\nexport class NgxDynamicHTMLModule {\n public static forRoot(config: DynamicHTMLOptions): ModuleWithProviders<NgxDynamicHTMLModule> {\n return {\n ngModule: NgxDynamicHTMLModule,\n providers: [\n DynamicHTMLRenderer,\n { provide: NGX_DYNAMIC_CONFIG, useValue: config }\n ],\n };\n }\n}\n","/** List of text file extensions */\nexport default [\n 'Makefile',\n 'Rakefile',\n 'ada',\n 'adb',\n 'ads',\n 'applescript',\n 'as',\n 'ascx',\n 'asm',\n 'asmx',\n 'asp',\n 'aspx',\n 'atom',\n 'bas',\n 'bash',\n 'bashrc',\n 'bat',\n 'bbcolors',\n 'bdsgroup',\n 'bdsproj',\n 'bib',\n 'bowerrc',\n 'c',\n 'cbl',\n 'cc',\n 'cfc',\n 'cfg',\n 'cfm',\n 'cfml',\n 'cgi',\n 'clj',\n 'cls',\n 'cmake',\n 'cmd',\n 'cnf',\n 'cob',\n 'coffee',\n 'coffeekup',\n 'conf',\n 'cpp',\n 'cpt',\n 'cpy',\n 'crt',\n 'cs',\n 'csh',\n 'cson',\n 'csr',\n 'css',\n 'csslintrc',\n 'csv',\n 'ctl',\n 'curlrc',\n 'cxx',\n 'dart',\n 'dfm',\n 'diff',\n 'dof',\n 'dpk',\n 'dproj',\n 'dtd',\n 'eco',\n 'editorconfig',\n 'ejs',\n 'el',\n 'emacs',\n 'eml',\n 'ent',\n 'erb',\n 'erl',\n 'eslintignore',\n 'eslintrc',\n 'ex',\n 'exs',\n 'f',\n 'f03',\n 'f77',\n 'f90',\n 'f95',\n 'fish',\n 'for',\n 'fpp',\n 'frm',\n 'ftn',\n 'gemrc',\n 'gitattributes',\n 'gitconfig',\n 'gitignore',\n 'gitkeep',\n 'gitmodules',\n 'go',\n 'gpp',\n 'gradle',\n 'groovy',\n 'groupproj',\n 'grunit',\n 'gtmpl',\n 'gvimrc',\n 'h',\n 'haml',\n 'hbs',\n 'hgignore',\n 'hh',\n 'hpp',\n 'hrl',\n 'hs',\n 'hta',\n 'htaccess',\n 'htc',\n 'htm',\n 'html',\n 'htpasswd',\n 'hxx',\n 'iced',\n 'inc',\n 'ini',\n 'ino',\n 'int',\n 'irbrc',\n 'itcl',\n 'itermcolors',\n 'itk',\n 'jade',\n 'java',\n 'jhtm',\n 'jhtml',\n 'js',\n 'jscsrc',\n 'jshintignore',\n 'jshintrc',\n 'json',\n 'json5',\n 'jsonld',\n 'jsp',\n 'jspx',\n 'jsx',\n 'ksh',\n 'less',\n 'lhs',\n 'lisp',\n 'log',\n 'ls',\n 'lsp',\n 'lua',\n 'm',\n 'mak',\n 'map',\n 'markdown',\n 'master',\n 'md',\n 'mdown',\n 'mdwn',\n 'mdx',\n 'metadata',\n 'mht',\n 'mhtml',\n 'mjs',\n 'mk',\n 'mkd',\n 'mkdn',\n 'mkdown',\n 'ml',\n 'mli',\n 'mm',\n 'mxml',\n 'nfm',\n 'nfo',\n 'njk',\n 'noon',\n 'npmignore',\n 'npmrc',\n 'nvmrc',\n 'ops',\n 'pas',\n 'pasm',\n 'patch',\n 'pbxproj',\n 'pch',\n 'pem',\n 'pg',\n 'php',\n 'php3',\n 'php4',\n 'php5',\n 'phpt',\n 'phtml',\n 'pir',\n 'pl',\n 'pm',\n 'pmc',\n 'pod',\n 'pot',\n 'properties',\n 'props',\n 'pt',\n 'pug',\n 'py',\n 'r',\n 'rake',\n 'rb',\n 'rdoc',\n 'rdoc_options',\n 'resx',\n 'rhtml',\n 'rjs',\n 'rlib',\n 'rmd',\n 'ron',\n 'rs',\n 'rss',\n 'rst',\n 'rtf',\n 'rvmrc',\n 'rxml',\n 's',\n 'sass',\n 'scala',\n 'scm',\n 'scss',\n 'seestyle',\n 'sh',\n 'shtml',\n 'sls',\n 'spec',\n 'sql',\n 'sqlite',\n 'ss',\n 'sss',\n 'st',\n 'strings',\n 'sty',\n 'styl',\n 'stylus',\n 'sub',\n 'sublime-build',\n 'sublime-commands',\n 'sublime-completions',\n 'sublime-keymap',\n 'sublime-macro',\n 'sublime-menu',\n 'sublime-project',\n 'sublime-settings',\n 'sublime-workspace',\n 'sv',\n 'svc',\n 'svg',\n 't',\n 'tcl',\n 'tcsh',\n 'terminal',\n 'tex',\n 'text',\n 'textile',\n 'tg',\n 'tmLanguage',\n 'tmTheme',\n 'tmpl',\n 'tpl',\n 'ts',\n 'tsv',\n 'tsx',\n 'tt',\n 'tt2',\n 'ttml',\n 'txt',\n 'v',\n 'vb',\n 'vbs',\n 'vh',\n 'vhd',\n 'vhdl',\n 'vim',\n 'viminfo',\n 'vimrc',\n 'vue',\n 'webapp',\n 'wxml',\n 'wxss',\n 'x-php',\n 'xaml',\n 'xht',\n 'xhtml',\n 'xml',\n 'xs',\n 'xsd',\n 'xsl',\n 'xslt',\n 'yaml',\n 'yml',\n 'zsh',\n 'zshrc',\n];\n","export default {\n \"iconDefinitions\": {\n \"git\": {\n \"iconPath\": \"./../icons/git.svg\"\n },\n \"yaml\": {\n \"iconPath\": \"./../icons/yaml.svg\"\n },\n \"xml\": {\n \"iconPath\": \"./../icons/xml.svg\"\n },\n \"matlab\": {\n \"iconPath\": \"./../icons/matlab.svg\"\n },\n \"settings\": {\n \"iconPath\": \"./../icons/settings.svg\"\n },\n \"shaderlab\": {\n \"iconPath\": \"./../icons/shaderlab.svg\"\n },\n \"diff\": {\n \"iconPath\": \"./../icons/diff.svg\"\n },\n \"json\": {\n \"iconPath\": \"./../icons/json.svg\"\n },\n \"blink\": {\n \"iconPath\": \"./../icons/blink.svg\"\n },\n \"java\": {\n \"iconPath\": \"./../icons/java.svg\"\n },\n \"razor\": {\n \"iconPath\": \"./../icons/razor.svg\"\n },\n \"python\": {\n \"iconPath\": \"./../icons/python.svg\"\n },\n \"javascript\": {\n \"iconPath\": \"./../icons/javascript.svg\"\n },\n \"typescript\": {\n \"iconPath\": \"./../icons/typescript.svg\"\n },\n \"scala\": {\n \"iconPath\": \"./../icons/scala.svg\"\n },\n \"handlebars\": {\n \"iconPath\": \"./../icons/handlebars.svg\"\n },\n \"perl\": {\n \"iconPath\": \"./../icons/perl.svg\"\n },\n \"haxe\": {\n \"iconPath\": \"./../icons/haxe.svg\"\n },\n \"puppet\": {\n \"iconPath\": \"./../icons/puppet.svg\"\n },\n \"elixir\": {\n \"iconPath\": \"./../icons/elixir.svg\"\n },\n \"livescript\": {\n \"iconPath\": \"./../icons/livescript.svg\"\n },\n \"erlang\": {\n \"iconPath\": \"./../icons/erlang.svg\"\n },\n \"twig\": {\n \"iconPath\": \"./../icons/twig.svg\"\n },\n \"julia\": {\n \"iconPath\": \"./../icons/julia.svg\"\n },\n \"elm\": {\n \"iconPath\": \"./../icons/elm.svg\"\n },\n \"purescript\": {\n \"iconPath\": \"./../icons/purescript.svg\"\n },\n \"stylus\": {\n \"iconPath\": \"./../icons/stylus.svg\"\n },\n \"nunjucks\": {\n \"iconPath\": \"./../icons/nunjucks.svg\"\n },\n \"pug\": {\n \"iconPath\": \"./../icons/pug.svg\"\n },\n \"robot\": {\n \"iconPath\": \"./../icons/robot.svg\"\n },\n \"sass\": {\n \"iconPath\": \"./../icons/sass.svg\"\n },\n \"less\": {\n \"iconPath\": \"./../icons/less.svg\"\n },\n \"css\": {\n \"iconPath\": \"./../icons/css.svg\"\n },\n \"visualstudio\": {\n \"iconPath\": \"./../icons/visualstudio.svg\"\n },\n \"angular\": {\n \"iconPath\": \"./../icons/angular.svg\"\n },\n \"graphql\": {\n \"iconPath\": \"./../icons/graphql.svg\"\n },\n \"solidity\": {\n \"iconPath\": \"./../icons/solidity.svg\"\n },\n \"autoit\": {\n \"iconPath\": \"./../icons/autoit.svg\"\n },\n \"haml\": {\n \"iconPath\": \"./../icons/haml.svg\"\n },\n \"yang\": {\n \"iconPath\": \"./../icons/yang.svg\"\n },\n \"terraform\": {\n \"iconPath\": \"./../icons/terraform.svg\"\n },\n \"applescript\": {\n \"iconPath\": \"./../icons/applescript.svg\"\n },\n \"cake\": {\n \"iconPath\": \"./../icons/cake.svg\"\n },\n \"cucumber\": {\n \"iconPath\": \"./../icons/cucumber.svg\"\n },\n \"nim\": {\n \"iconPath\": \"./../icons/nim.svg\"\n },\n \"apiblueprint\": {\n \"iconPath\": \"./../icons/apiblueprint.svg\"\n },\n \"riot\": {\n \"iconPath\": \"./../icons/riot.svg\"\n },\n \"postcss\": {\n \"iconPath\": \"./../icons/postcss.svg\"\n },\n \"coldfusion\": {\n \"iconPath\": \"./../icons/coldfusion.svg\"\n },\n \"haskell\": {\n \"iconPath\": \"./../icons/haskell.svg\"\n },\n \"dhall\": {\n \"iconPath\": \"./../icons/dhall.svg\"\n },\n \"cabal\": {\n \"iconPath\": \"./../icons/cabal.svg\"\n },\n \"nix\": {\n \"iconPath\": \"./../icons/nix.svg\"\n },\n \"ruby\": {\n \"iconPath\": \"./../icons/ruby.svg\"\n },\n \"slim\": {\n \"iconPath\": \"./../icons/slim.svg\"\n },\n \"php\": {\n \"iconPath\": \"./../icons/php.svg\"\n },\n \"php_elephant\": {\n \"iconPath\": \"./../icons/php_elephant.svg\"\n },\n \"php_elephant_pink\": {\n \"iconPath\": \"./../icons/php_elephant_pink.svg\"\n },\n \"hack\": {\n \"iconPath\": \"./../icons/hack.svg\"\n },\n \"react\": {\n \"iconPath\": \"./../icons/react.svg\"\n },\n \"mjml\": {\n \"iconPath\": \"./../icons/mjml.svg\"\n },\n \"processing\": {\n \"iconPath\": \"./../icons/processing.svg\"\n },\n \"hcl\": {\n \"iconPath\": \"./../icons/hcl.svg\"\n },\n \"go\": {\n \"iconPath\": \"./../icons/go.svg\"\n },\n \"go_gopher\": {\n \"iconPath\": \"./../icons/go_gopher.svg\"\n },\n \"nodejs_alt\": {\n \"iconPath\": \"./../icons/nodejs_alt.svg\"\n },\n \"django\": {\n \"iconPath\": \"./../icons/django.svg\"\n },\n \"html\": {\n \"iconPath\": \"./../icons/html.svg\"\n },\n \"godot\": {\n \"iconPath\": \"./../icons/godot.svg\"\n },\n \"godot-assets\": {\n \"iconPath\": \"./../icons/godot-assets.svg\"\n },\n \"vim\": {\n \"iconPath\": \"./../icons/vim.svg\"\n },\n \"silverstripe\": {\n \"iconPath\": \"./../icons/silverstripe.svg\"\n },\n \"prolog\": {\n \"iconPath\": \"./../icons/prolog.svg\"\n },\n \"pawn\": {\n \"iconPath\": \"./../icons/pawn.svg\"\n },\n \"reason\": {\n \"iconPath\": \"./../icons/reason.svg\"\n },\n \"sml\": {\n \"iconPath\": \"./../icons/sml.svg\"\n },\n \"tex\": {\n \"iconPath\": \"./../icons/tex.svg\"\n },\n \"salesforce\": {\n \"iconPath\": \"./../icons/salesforce.svg\"\n },\n \"sas\": {\n \"iconPath\": \"./../icons/sas.svg\"\n },\n \"docker\": {\n \"iconPath\": \"./../icons/docker.svg\"\n },\n \"table\": {\n \"iconPath\": \"./../icons/table.svg\"\n },\n \"csharp\": {\n \"iconPath\": \"./../icons/csharp.svg\"\n },\n \"console\": {\n \"iconPath\": \"./../icons/console.svg\"\n },\n \"c\": {\n \"iconPath\": \"./../icons/c.svg\"\n },\n \"cpp\": {\n \"iconPath\": \"./../icons/cpp.svg\"\n },\n \"objective-c\": {\n \"iconPath\": \"./../icons/objective-c.svg\"\n },\n \"objective-cpp\": {\n \"iconPath\": \"./../icons/objective-cpp.svg\"\n },\n \"coffee\": {\n \"iconPath\": \"./../icons/coffee.svg\"\n },\n \"fsharp\": {\n \"iconPath\": \"./../icons/fsharp.svg\"\n },\n \"editorconfig\": {\n \"iconPath\": \"./../icons/editorconfig.svg\"\n },\n \"clojure\": {\n \"iconPath\": \"./../icons/clojure.svg\"\n },\n \"groovy\": {\n \"iconPath\": \"./../icons/groovy.svg\"\n },\n \"markdown\": {\n \"iconPath\": \"./../icons/markdown.svg\"\n },\n \"jinja\": {\n \"iconPath\": \"./../icons/jinja.svg\"\n },\n \"proto\": {\n \"iconPath\": \"./../icons/proto.svg\"\n },\n \"python-misc\": {\n \"iconPath\": \"./../icons/python-misc.svg\"\n },\n \"vue\": {\n \"iconPath\": \"./../icons/vue.svg\"\n },\n \"lua\": {\n \"iconPath\": \"./../icons/lua.svg\"\n },\n \"lib\": {\n \"iconPath\": \"./../icons/lib.svg\"\n },\n \"log\": {\n \"iconPath\": \"./../icons/log.svg\"\n },\n \"jupyter\": {\n \"iconPath\": \"./../icons/jupyter.svg\"\n },\n \"document\": {\n \"iconPath\": \"./../icons/document.svg\"\n },\n \"pdf\": {\n \"iconPath\": \"./../icons/pdf.svg\"\n },\n \"powershell\": {\n \"iconPath\": \"./../icons/powershell.svg\"\n },\n \"r\": {\n \"iconPath\": \"./../icons/r.svg\"\n },\n \"rust\": {\n \"iconPath\": \"./../icons/rust.svg\"\n },\n \"database\": {\n \"iconPath\": \"./../icons/database.svg\"\n },\n \"kusto\": {\n \"iconPath\": \"./../icons/kusto.svg\"\n },\n \"lock\": {\n \"iconPath\": \"./../icons/lock.svg\"\n },\n \"svg\": {\n \"iconPath\": \"./../icons/svg.svg\"\n },\n \"swift\": {\n \"iconPath\": \"./../icons/swift.svg\"\n },\n \"react_ts\": {\n \"iconPath\": \"./../icons/react_ts.svg\"\n },\n \"search\": {\n \"iconPath\": \"./../icons/search.svg\"\n },\n \"minecraft\": {\n \"iconPath\": \"./../icons/minecraft.svg\"\n },\n \"rescript\": {\n \"iconPath\": \"./../icons/rescript.svg\"\n },\n \"otne\": {\n \"iconPath\": \"./../icons/otne.svg\"\n },\n \"twine\": {\n \"iconPath\": \"./../icons/twine.svg\"\n },\n \"grain\": {\n \"iconPath\": \"./../icons/grain.svg\"\n },\n \"lolcode\": {\n \"iconPath\": \"./../icons/lolcode.svg\"\n },\n \"idris\": {\n \"iconPath\": \"./../icons/idris.svg\"\n },\n \"chess\": {\n \"iconPath\": \"./../icons/chess.svg\"\n },\n \"gemini\": {\n \"iconPath\": \"./../icons/gemini.svg\"\n },\n \"vlang\": {\n \"iconPath\": \"./../icons/vlang.svg\"\n },\n \"wolframlanguage\": {\n \"iconPath\": \"./../icons/wolframlanguage.svg\"\n },\n \"shader\": {\n \"iconPath\": \"./../icons/shader.svg\"\n },\n \"tree\": {\n \"iconPath\": \"./../icons/tree.svg\"\n },\n \"svelte\": {\n \"iconPath\": \"./../icons/svelte.svg\"\n },\n \"dart\": {\n \"iconPath\": \"./../icons/dart.svg\"\n },\n \"cadence\": {\n \"iconPath\": \"./../icons/cadence.svg\"\n },\n \"stylable\": {\n \"iconPath\": \"./../icons/stylable.svg\"\n },\n \"blink_light\": {\n \"iconPath\": \"./../icons/blink_light.svg\"\n },\n \"jinja_light\": {\n \"iconPath\": \"./../icons/jinja_light.svg\"\n },\n \"playwright\": {\n \"iconPath\": \"./../icons/playwright.svg\"\n },\n \"sublime\": {\n \"iconPath\": \"./../icons/sublime.svg\"\n },\n \"image\": {\n \"iconPath\": \"./../icons/image.svg\"\n },\n \"routing\": {\n \"iconPath\": \"./../icons/routing.svg\"\n },\n \"typescript-def\": {\n \"iconPath\": \"./../icons/typescript-def.svg\"\n },\n \"markojs\": {\n \"iconPath\": \"./../icons/markojs.svg\"\n },\n \"astro\": {\n \"iconPath\": \"./../icons/astro.svg\"\n },\n \"vscode\": {\n \"iconPath\": \"./../icons/vscode.svg\"\n },\n \"qsharp\": {\n \"iconPath\": \"./../icons/qsharp.svg\"\n },\n \"zip\": {\n \"iconPath\": \"./../icons/zip.svg\"\n },\n \"vala\": {\n \"iconPath\": \"./../icons/vala.svg\"\n },\n \"zig\": {\n \"iconPath\": \"./../icons/zig.svg\"\n },\n \"exe\": {\n \"iconPath\": \"./../icons/exe.svg\"\n },\n \"hex\": {\n \"iconPath\": \"./../icons/hex.svg\"\n },\n \"jar\": {\n \"iconPath\": \"./../icons/jar.svg\"\n },\n \"javaclass\": {\n \"iconPath\": \"./../icons/javaclass.svg\"\n },\n \"h\": {\n \"iconPath\": \"./../icons/h.svg\"\n },\n \"hpp\": {\n \"iconPath\": \"./../icons/hpp.svg\"\n },\n \"rc\": {\n \"iconPath\": \"./../icons/rc.svg\"\n },\n \"go-mod\": {\n \"iconPath\": \"./../icons/go-mod.svg\"\n },\n \"url\": {\n \"iconPath\": \"./../icons/url.svg\"\n },\n \"gradle\": {\n \"iconPath\": \"./../icons/gradle.svg\"\n },\n \"word\": {\n \"iconPath\": \"./../icons/word.svg\"\n },\n \"certificate\": {\n \"iconPath\": \"./../icons/certificate.svg\"\n },\n \"key\": {\n \"iconPath\": \"./../icons/key.svg\"\n },\n \"font\": {\n \"iconPath\": \"./../icons/font.svg\"\n },\n \"gemfile\": {\n \"iconPath\": \"./../icons/gemfile.svg\"\n },\n \"rubocop\": {\n \"iconPath\": \"./../icons/rubocop.svg\"\n },\n \"rubocop_light\": {\n \"iconPath\": \"./../icons/rubocop_light.svg\"\n },\n \"arduino\": {\n \"iconPath\": \"./../icons/arduino.svg\"\n },\n \"powerpoint\": {\n \"iconPath\": \"./../icons/powerpoint.svg\"\n },\n \"video\": {\n \"iconPath\": \"./../icons/video.svg\"\n },\n \"virtual\": {\n \"iconPath\": \"./../icons/virtual.svg\"\n },\n \"email\": {\n \"iconPath\": \"./../icons/email.svg\"\n },\n \"audio\": {\n \"iconPath\": \"./../icons/audio.svg\"\n },\n \"raml\": {\n \"iconPath\": \"./../icons/raml.svg\"\n },\n \"xaml\": {\n \"iconPath\": \"./../icons/xaml.svg\"\n },\n \"kotlin\": {\n \"iconPath\": \"./../icons/kotlin.svg\"\n },\n \"dart_generated\": {\n \"iconPath\": \"./../icons/dart_generated.svg\"\n },\n \"actionscript\": {\n \"iconPath\": \"./../icons/actionscript.svg\"\n },\n \"mxml\": {\n \"iconPath\": \"./../icons/mxml.svg\"\n },\n \"autohotkey\": {\n \"iconPath\": \"./../icons/autohotkey.svg\"\n },\n \"flash\": {\n \"iconPath\": \"./../icons/flash.svg\"\n },\n \"swc\": {\n \"iconPath\": \"./../icons/swc.svg\"\n },\n \"cmake\": {\n \"iconPath\": \"./../icons/cmake.svg\"\n },\n \"assembly\": {\n \"iconPath\": \"./../icons/assembly.svg\"\n },\n \"vue-config\": {\n \"iconPath\": \"./../icons/vue-config.svg\"\n },\n \"nuxt\": {\n \"iconPath\": \"./../icons/nuxt.svg\"\n },\n \"ocaml\": {\n \"iconPath\": \"./../icons/ocaml.svg\"\n },\n \"odin\": {\n \"iconPath\": \"./../icons/odin.svg\"\n },\n \"javascript-map\": {\n \"iconPath\": \"./../icons/javascript-map.svg\"\n },\n \"css-map\": {\n \"iconPath\": \"./../icons/css-map.svg\"\n },\n \"test-ts\": {\n \"iconPath\": \"./../icons/test-ts.svg\"\n },\n \"test-jsx\": {\n \"iconPath\": \"./../icons/test-jsx.svg\"\n },\n \"test-js\": {\n \"iconPath\": \"./../icons/test-js.svg\"\n },\n \"angular-component\": {\n \"iconPath\": \"./../icons/angular-component.svg\"\n },\n \"angular-guard\": {\n \"iconPath\": \"./../icons/angular-guard.svg\"\n },\n \"angular-service\": {\n \"iconPath\": \"./../icons/angular-service.svg\"\n },\n \"angular-pipe\": {\n \"iconPath\": \"./../icons/angular-pipe.svg\"\n },\n \"angular-directive\": {\n \"iconPath\": \"./../icons/angular-directive.svg\"\n },\n \"angular-resolver\": {\n \"iconPath\": \"./../icons/angular-resolver.svg\"\n },\n \"smarty\": {\n \"iconPath\": \"./../icons/smarty.svg\"\n },\n \"bucklescript\": {\n \"iconPath\": \"./../icons/bucklescript.svg\"\n },\n \"merlin\": {\n \"iconPath\": \"./../icons/merlin.svg\"\n },\n \"verilog\": {\n \"iconPath\": \"./../icons/verilog.svg\"\n },\n \"mathematica\": {\n \"iconPath\": \"./../icons/mathematica.svg\"\n },\n \"vercel\": {\n \"iconPath\": \"./../icons/vercel.svg\"\n },\n \"vercel_light\": {\n \"iconPath\": \"./../icons/vercel_light.svg\"\n },\n \"verdaccio\": {\n \"iconPath\": \"./../icons/verdaccio.svg\"\n },\n \"next\": {\n \"iconPath\": \"./../icons/next.svg\"\n },\n \"next_light\": {\n \"iconPath\": \"./../icons/next_light.svg\"\n },\n \"remix\": {\n \"iconPath\": \"./../icons/remix.svg\"\n },\n \"remix_light\": {\n \"iconPath\": \"./../icons/remix_light.svg\"\n },\n \"laravel\": {\n \"iconPath\": \"./../icons/laravel.svg\"\n },\n \"vfl\": {\n \"iconPath\": \"./../icons/vfl.svg\"\n },\n \"kl\": {\n \"iconPath\": \"./../icons/kl.svg\"\n },\n \"posthtml\": {\n \"iconPath\": \"./../icons/posthtml.svg\"\n },\n \"todo\": {\n \"iconPath\": \"./../icons/todo.svg\"\n },\n \"http\": {\n \"iconPath\": \"./../icons/http.svg\"\n },\n \"restql\": {\n \"iconPath\": \"./../icons/restql.svg\"\n },\n \"kivy\": {\n \"iconPath\": \"./../icons/kivy.svg\"\n },\n \"graphcool\": {\n \"iconPath\": \"./../icons/graphcool.svg\"\n },\n \"sbt\": {\n \"iconPath\": \"./../icons/sbt.svg\"\n },\n \"webpack\": {\n \"iconPath\": \"./../icons/webpack.svg\"\n },\n \"ionic\": {\n \"iconPath\": \"./../icons/ionic.svg\"\n },\n \"gulp\": {\n \"iconPath\": \"./../icons/gulp.svg\"\n },\n \"nodejs\": {\n \"iconPath\": \"./../icons/nodejs.svg\"\n },\n \"npm\": {\n \"iconPath\": \"./../icons/npm.svg\"\n },\n \"yarn\": {\n \"iconPath\": \"./../icons/yarn.svg\"\n },\n \"android\": {\n \"iconPath\": \"./../icons/android.svg\"\n },\n \"tune\": {\n \"iconPath\": \"./../icons/tune.svg\"\n },\n \"turborepo\": {\n \"iconPath\": \"./../icons/turborepo.svg\"\n },\n \"turborepo_light\": {\n \"iconPath\": \"./../icons/turborepo_light.svg\"\n },\n \"babel\": {\n \"iconPath\": \"./../icons/babel.svg\"\n },\n \"blitz\": {\n \"iconPath\": \"./../icons/blitz.svg\"\n },\n \"contributing\": {\n \"iconPath\": \"./../icons/contributing.svg\"\n },\n \"readme\": {\n \"iconPath\": \"./../icons/readme.svg\"\n },\n \"changelog\": {\n \"iconPath\": \"./../icons/changelog.svg\"\n },\n \"architecture\": {\n \"iconPath\": \"./../icons/architecture.svg\"\n },\n \"credits\": {\n \"iconPath\": \"./../icons/credits.svg\"\n },\n \"authors\": {\n \"iconPath\": \"./../icons/authors.svg\"\n },\n \"flow\": {\n \"iconPath\": \"./../icons/flow.svg\"\n },\n \"favicon\": {\n \"iconPath\": \"./../icons/favicon.svg\"\n },\n \"karma\": {\n \"iconPath\": \"./../icons/karma.svg\"\n },\n \"bithound\": {\n \"iconPath\": \"./../icons/bithound.svg\"\n },\n \"svgo\": {\n \"iconPath\": \"./../icons/svgo.svg\"\n },\n \"appveyor\": {\n \"iconPath\": \"./../icons/appveyor.svg\"\n },\n \"travis\": {\n \"iconPath\": \"./../icons/travis.svg\"\n },\n \"codecov\": {\n \"iconPath\": \"./../icons/codecov.svg\"\n },\n \"sonarcloud\": {\n \"iconPath\": \"./../icons/sonarcloud.svg\"\n },\n \"protractor\": {\n \"iconPath\": \"./../icons/protractor.svg\"\n },\n \"fusebox\": {\n \"iconPath\": \"./../icons/fusebox.svg\"\n },\n \"heroku\": {\n \"iconPath\": \"./../icons/heroku.svg\"\n },\n \"gitlab\": {\n \"iconPath\": \"./../icons/gitlab.svg\"\n },\n \"bower\": {\n \"iconPath\": \"./../icons/bower.svg\"\n },\n \"eslint\": {\n \"iconPath\": \"./../icons/eslint.svg\"\n },\n \"conduct\": {\n \"iconPath\": \"./../icons/conduct.svg\"\n },\n \"watchman\": {\n \"iconPath\": \"./../icons/watchman.svg\"\n },\n \"aurelia\": {\n \"iconPath\": \"./../icons/aurelia.svg\"\n },\n \"auto\": {\n \"iconPath\": \"./../icons/auto.svg\"\n },\n \"auto_light\": {\n \"iconPath\": \"./../icons/auto_light.svg\"\n },\n \"mocha\": {\n \"iconPath\": \"./../icons/mocha.svg\"\n },\n \"jenkins\": {\n \"iconPath\": \"./../icons/jenkins.svg\"\n },\n \"firebase\": {\n \"iconPath\": \"./../icons/firebase.svg\"\n },\n \"figma\": {\n \"iconPath\": \"./../icons/figma.svg\"\n },\n \"rollup\": {\n \"iconPath\": \"./../icons/rollup.svg\"\n },\n \"hardhat\": {\n \"iconPath\": \"./../icons/hardhat.svg\"\n },\n \"stylelint\": {\n \"iconPath\": \"./../icons/stylelint.svg\"\n },\n \"stylelint_light\": {\n \"iconPath\": \"./../icons/stylelint_light.svg\"\n },\n \"code-climate\": {\n \"iconPath\": \"./../icons/code-climate.svg\"\n },\n \"code-climate_light\": {\n \"iconPath\": \"./../icons/code-climate_light.svg\"\n },\n \"prettier\": {\n \"iconPath\": \"./../icons/prettier.svg\"\n },\n \"renovate\": {\n \"iconPath\": \"./../icons/renovate.svg\"\n },\n \"apollo\": {\n \"iconPath\": \"./../icons/apollo.svg\"\n },\n \"nodemon\": {\n \"iconPath\": \"./../icons/nodemon.svg\"\n },\n \"webhint\": {\n \"iconPath\": \"./../icons/webhint.svg\"\n },\n \"browserlist\": {\n \"iconPath\": \"./../icons/browserlist.svg\"\n },\n \"browserlist_light\": {\n \"iconPath\": \"./../icons/browserlist_light.svg\"\n },\n \"crystal\": {\n \"iconPath\": \"./../icons/crystal.svg\"\n },\n \"crystal_light\": {\n \"iconPath\": \"./../icons/crystal_light.svg\"\n },\n \"snyk\": {\n \"iconPath\": \"./../icons/snyk.svg\"\n },\n \"drone\": {\n \"iconPath\": \"./../icons/drone.svg\"\n },\n \"drone_light\": {\n \"iconPath\": \"./../icons/drone_light.svg\"\n },\n \"cuda\": {\n \"iconPath\": \"./../icons/cuda.svg\"\n },\n \"dotjs\": {\n \"iconPath\": \"./../icons/dotjs.svg\"\n },\n \"ejs\": {\n \"iconPath\": \"./../icons/ejs.svg\"\n },\n \"sequelize\": {\n \"iconPath\": \"./../icons/sequelize.svg\"\n },\n \"gatsby\": {\n \"iconPath\": \"./../icons/gatsby.svg\"\n },\n \"wakatime\": {\n \"iconPath\": \"./../icons/wakatime.svg\"\n },\n \"wakatime_light\": {\n \"iconPath\": \"./../icons/wakatime_light.svg\"\n },\n \"circleci\": {\n \"iconPath\": \"./../icons/circleci.svg\"\n },\n \"circleci_light\": {\n \"iconPath\": \"./../icons/circleci_light.svg\"\n },\n \"cloudfoundry\": {\n \"iconPath\": \"./../icons/cloudfoundry.svg\"\n },\n \"grunt\": {\n \"iconPath\": \"./../icons/grunt.svg\"\n },\n \"jest\": {\n \"iconPath\": \"./../icons/jest.svg\"\n },\n \"storybook\": {\n \"iconPath\": \"./../icons/storybook.svg\"\n },\n \"wepy\": {\n \"iconPath\": \"./../icons/wepy.svg\"\n },\n \"fastlane\": {\n \"iconPath\": \"./../icons/fastlane.svg\"\n },\n \"hcl_light\": {\n \"iconPath\": \"./../icons/hcl_light.svg\"\n },\n \"helm\": {\n \"iconPath\": \"./../icons/helm.svg\"\n },\n \"san\": {\n \"iconPath\": \"./../icons/san.svg\"\n },\n \"wallaby\": {\n \"iconPath\": \"./../icons/wallaby.svg\"\n },\n \"stencil\": {\n \"iconPath\": \"./../icons/stencil.svg\"\n },\n \"red\": {\n \"iconPath\": \"./../icons/red.svg\"\n },\n \"makefile\": {\n \"iconPath\": \"./../icons/makefile.svg\"\n },\n \"foxpro\": {\n \"iconPath\": \"./../icons/foxpro.svg\"\n },\n \"i18n\": {\n \"iconPath\": \"./../icons/i18n.svg\"\n },\n \"webassembly\": {\n \"iconPath\": \"./../icons/webassembly.svg\"\n },\n \"semantic-release\": {\n \"iconPath\": \"./../icons/semantic-release.svg\"\n },\n \"semantic-release_light\": {\n \"iconPath\": \"./../icons/semantic-release_light.svg\"\n },\n \"bitbucket\": {\n \"iconPath\": \"./../icons/bitbucket.svg\"\n },\n \"d\": {\n \"iconPath\": \"./../icons/d.svg\"\n },\n \"mdx\": {\n \"iconPath\": \"./../icons/mdx.svg\"\n },\n \"mdsvex\": {\n \"iconPath\": \"./../icons/mdsvex.svg\"\n },\n \"ballerina\": {\n \"iconPath\": \"./../icons/ballerina.svg\"\n },\n \"racket\": {\n \"iconPath\": \"./../icons/racket.svg\"\n },\n \"bazel\": {\n \"iconPath\": \"./../icons/bazel.svg\"\n },\n \"mint\": {\n \"iconPath\": \"./../icons/mint.svg\"\n },\n \"velocity\": {\n \"iconPath\": \"./../icons/velocity.svg\"\n },\n \"azure-pipelines\": {\n \"iconPath\": \"./../icons/azure-pipelines.svg\"\n },\n \"azure\": {\n \"iconPath\": \"./../icons/azure.svg\"\n },\n \"vagrant\": {\n \"iconPath\": \"./../icons/vagrant.svg\"\n },\n \"prisma\": {\n \"iconPath\": \"./../icons/prisma.svg\"\n },\n \"abc\": {\n \"iconPath\": \"./../icons/abc.svg\"\n },\n \"asciidoc\": {\n \"iconPath\": \"./../icons/asciidoc.svg\"\n },\n \"istanbul\": {\n \"iconPath\": \"./../icons/istanbul.svg\"\n },\n \"edge\": {\n \"iconPath\": \"./../icons/edge.svg\"\n },\n \"scheme\": {\n \"iconPath\": \"./../icons/scheme.svg\"\n },\n \"lisp\": {\n \"iconPath\": \"./../icons/lisp.svg\"\n },\n \"tailwindcss\": {\n \"iconPath\": \"./../icons/tailwindcss.svg\"\n },\n \"3d\": {\n \"iconPath\": \"./../icons/3d.svg\"\n },\n \"buildkite\": {\n \"iconPath\": \"./../icons/buildkite.svg\"\n },\n \"netlify\": {\n \"iconPath\": \"./../icons/netlify.svg\"\n },\n \"netlify_light\": {\n \"iconPath\": \"./../icons/netlify_light.svg\"\n },\n \"nest\": {\n \"iconPath\": \"./../icons/nest.svg\"\n },\n \"moonscript\": {\n \"iconPath\": \"./../icons/moonscript.svg\"\n },\n \"percy\": {\n \"iconPath\": \"./../icons/percy.svg\"\n },\n \"gitpod\": {\n \"iconPath\": \"./../icons/gitpod.svg\"\n },\n \"advpl_prw\": {\n \"iconPath\": \"./../icons/advpl_prw.svg\"\n },\n \"advpl_ptm\": {\n \"iconPath\": \"./../icons/advpl_ptm.svg\"\n },\n \"advpl_tlpp\": {\n \"iconPath\": \"./../icons/advpl_tlpp.svg\"\n },\n \"advpl_include\": {\n \"iconPath\": \"./../icons/advpl_include.svg\"\n },\n \"codeowners\": {\n \"iconPath\": \"./../icons/codeowners.svg\"\n },\n \"gcp\": {\n \"iconPath\": \"./../icons/gcp.svg\"\n },\n \"disc\": {\n \"iconPath\": \"./../icons/disc.svg\"\n },\n \"fortran\": {\n \"iconPath\": \"./../icons/fortran.svg\"\n },\n \"tcl\": {\n \"iconPath\": \"./../icons/tcl.svg\"\n },\n \"liquid\": {\n \"iconPath\": \"./../icons/liquid.svg\"\n },\n \"husky\": {\n \"iconPath\": \"./../icons/husky.svg\"\n },\n \"coconut\": {\n \"iconPath\": \"./../icons/coconut.svg\"\n },\n \"tilt\": {\n \"iconPath\": \"./../icons/tilt.svg\"\n },\n \"capacitor\": {\n \"iconPath\": \"./../icons/capacitor.svg\"\n },\n \"sketch\": {\n \"iconPath\": \"./../icons/sketch.svg\"\n },\n \"adonis\": {\n \"iconPath\": \"./../icons/adonis.svg\"\n },\n \"forth\": {\n \"iconPath\": \"./../icons/forth.svg\"\n },\n \"uml\": {\n \"iconPath\": \"./../icons/uml.svg\"\n },\n \"uml_light\": {\n \"iconPath\": \"./../icons/uml_light.svg\"\n },\n \"meson\": {\n \"iconPath\": \"./../icons/meson.svg\"\n },\n \"commitlint\": {\n \"iconPath\": \"./../icons/commitlint.svg\"\n },\n \"buck\": {\n \"iconPath\": \"./../icons/buck.svg\"\n },\n \"nrwl\": {\n \"iconPath\": \"./../icons/nrwl.svg\"\n },\n \"opam\": {\n \"iconPath\": \"./../icons/opam.svg\"\n },\n \"dune\": {\n \"iconPath\": \"./../icons/dune.svg\"\n },\n \"imba\": {\n \"iconPath\": \"./../icons/imba.svg\"\n },\n \"drawio\": {\n \"iconPath\": \"./../icons/drawio.svg\"\n },\n \"pascal\": {\n \"iconPath\": \"./../icons/pascal.svg\"\n },\n \"roadmap\": {\n \"iconPath\": \"./../icons/roadmap.svg\"\n },\n \"nuget\": {\n \"iconPath\": \"./../icons/nuget.svg\"\n },\n \"command\": {\n \"iconPath\": \"./../icons/command.svg\"\n },\n \"stryker\": {\n \"iconPath\": \"./../icons/stryker.svg\"\n },\n \"denizenscript\": {\n \"iconPath\": \"./../icons/denizenscript.svg\"\n },\n \"modernizr\": {\n \"iconPath\": \"./../icons/modernizr.svg\"\n },\n \"slug\": {\n \"iconPath\": \"./../icons/slug.svg\"\n },\n \"stitches\": {\n \"iconPath\": \"./../icons/stitches.svg\"\n },\n \"stitches_light\": {\n \"iconPath\": \"./../icons/stitches_light.svg\"\n },\n \"nginx\": {\n \"iconPath\": \"./../icons/nginx.svg\"\n },\n \"replit\": {\n \"iconPath\": \"./../icons/replit.svg\"\n },\n \"rescript-interface\": {\n \"iconPath\": \"./../icons/rescript-interface.svg\"\n },\n \"snowpack\": {\n \"iconPath\": \"./../icons/snowpack.svg\"\n },\n \"snowpack_light\": {\n \"iconPath\": \"./../icons/snowpack_light.svg\"\n },\n \"brainfuck\": {\n \"iconPath\": \"./../icons/brainfuck.svg\"\n },\n \"bicep\": {\n \"iconPath\": \"./../icons/bicep.svg\"\n },\n \"cobol\": {\n \"iconPath\": \"./../icons/cobol.svg\"\n },\n \"quasar\": {\n \"iconPath\": \"./../icons/quasar.svg\"\n },\n \"dependabot\": {\n \"iconPath\": \"./../icons/dependabot.svg\"\n },\n \"pipeline\": {\n \"iconPath\": \"./../icons/pipeline.svg\"\n },\n \"vite\": {\n \"iconPath\": \"./../icons/vite.svg\"\n },\n \"vitest\": {\n \"iconPath\": \"./../icons/vitest.svg\"\n },\n \"opa\": {\n \"iconPath\": \"./../icons/opa.svg\"\n },\n \"lerna\": {\n \"iconPath\": \"./../icons/lerna.svg\"\n },\n \"windicss\": {\n \"iconPath\": \"./../icons/windicss.svg\"\n },\n \"textlint\": {\n \"iconPath\": \"./../icons/textlint.svg\"\n },\n \"lilypond\": {\n \"iconPath\": \"./../icons/lilypond.svg\"\n },\n \"chess_light\": {\n \"iconPath\": \"./../icons/chess_light.svg\"\n },\n \"sentry\": {\n \"iconPath\": \"./../icons/sentry.svg\"\n },\n \"phpunit\": {\n \"iconPath\": \"./../icons/phpunit.svg\"\n },\n \"php-cs-fixer\": {\n \"iconPath\": \"./../icons/php-cs-fixer.svg\"\n },\n \"robots\": {\n \"iconPath\": \"./../icons/robots.svg\"\n },\n \"tsconfig\": {\n \"iconPath\": \"./../icons/tsconfig.svg\"\n },\n \"tauri\": {\n \"iconPath\": \"./../icons/tauri.svg\"\n },\n \"jsconfig\": {\n \"iconPath\": \"./../icons/jsconfig.svg\"\n },\n \"maven\": {\n \"iconPath\": \"./../icons/maven.svg\"\n },\n \"ada\": {\n \"iconPath\": \"./../icons/ada.svg\"\n },\n \"serverless\": {\n \"iconPath\": \"./../icons/serverless.svg\"\n },\n \"supabase\": {\n \"iconPath\": \"./../icons/supabase.svg\"\n },\n \"ember\": {\n \"iconPath\": \"./../icons/ember.svg\"\n },\n \"horusec\": {\n \"iconPath\": \"./../icons/horusec.svg\"\n },\n \"poetry\": {\n \"iconPath\": \"./../icons/poetry.svg\"\n },\n \"coala\": {\n \"iconPath\": \"./../icons/coala.svg\"\n },\n \"parcel\": {\n \"iconPath\": \"./../icons/parcel.svg\"\n },\n \"dinophp\": {\n \"iconPath\": \"./../icons/dinophp.svg\"\n },\n \"teal\": {\n \"iconPath\": \"./../icons/teal.svg\"\n },\n \"template\": {\n \"iconPath\": \"./../icons/template.svg\"\n },\n \"astyle\": {\n \"iconPath\": \"./../icons/astyle.svg\"\n },\n \"lighthouse\": {\n \"iconPath\": \"./../icons/lighthouse.svg\"\n },\n \"svgr\": {\n \"iconPath\": \"./../icons/svgr.svg\"\n },\n \"rome\": {\n \"iconPath\": \"./../icons/rome.svg\"\n },\n \"cypress\": {\n \"iconPath\": \"./../icons/cypress.svg\"\n },\n \"siyuan\": {\n \"iconPath\": \"./../icons/siyuan.svg\"\n },\n \"ndst\": {\n \"iconPath\": \"./../icons/ndst.svg\"\n },\n \"plop\": {\n \"iconPath\": \"./../icons/plop.svg\"\n },\n \"tobi\": {\n \"iconPath\": \"./../icons/tobi.svg\"\n },\n \"tobimake\": {\n \"iconPath\": \"./../icons/tobimake.svg\"\n },\n \"gleam\": {\n \"iconPath\": \"./../icons/gleam.svg\"\n },\n \"pnpm\": {\n \"iconPath\": \"./../icons/pnpm.svg\"\n },\n \"pnpm_light\": {\n \"iconPath\": \"./../icons/pnpm_light.svg\"\n },\n \"gridsome\": {\n \"iconPath\": \"./../icons/gridsome.svg\"\n },\n \"steadybit\": {\n \"iconPath\": \"./../icons/steadybit.svg\"\n },\n \"caddy\": {\n \"iconPath\": \"./../icons/caddy.svg\"\n },\n \"bun\": {\n \"iconPath\": \"./../icons/bun.svg\"\n },\n \"bun_light\": {\n \"iconPath\": \"./../icons/bun_light.svg\"\n },\n \"antlr\": {\n \"iconPath\": \"./../icons/antlr.svg\"\n },\n \"pinejs\": {\n \"iconPath\": \"./../icons/pinejs.svg\"\n },\n \"nano-staged\": {\n \"iconPath\": \"./../icons/nano-staged.svg\"\n },\n \"nano-staged_light\": {\n \"iconPath\": \"./../icons/nano-staged_light.svg\"\n },\n \"craco\": {\n \"iconPath\": \"./../icons/craco.svg\"\n },\n \"gamemaker\": {\n \"iconPath\": \"./../icons/gamemaker.svg\"\n },\n \"tldraw\": {\n \"iconPath\": \"./../icons/tldraw.svg\"\n },\n \"tldraw_light\": {\n \"iconPath\": \"./../icons/tldraw_light.svg\"\n },\n \"mercurial\": {\n \"iconPath\": \"./../icons/mercurial.svg\"\n },\n \"deno\": {\n \"iconPath\": \"./../icons/deno.svg\"\n },\n \"deno_light\": {\n \"iconPath\": \"./../icons/deno_light.svg\"\n },\n \"plastic\": {\n \"iconPath\": \"./../icons/plastic.svg\"\n },\n \"typst\": {\n \"iconPath\": \"./../icons/typst.svg\"\n },\n \"ifanr-cloud\": {\n \"iconPath\": \"./../icons/ifanr-cloud.svg\"\n },\n \"mermaid\": {\n \"iconPath\": \"./../icons/mermaid.svg\"\n },\n \"file\": {\n \"iconPath\": \"./../icons/file.svg\"\n },\n \"folder-src\": {\n \"iconPath\": \"./../icons/folder-src.svg\"\n },\n \"folder-src-open\": {\n \"iconPath\": \"./../icons/folder-src-open.svg\"\n },\n \"folder-dist\": {\n \"iconPath\": \"./../icons/folder-dist.svg\"\n },\n \"folder-dist-open\": {\n \"iconPath\": \"./../icons/folder-dist-open.svg\"\n },\n \"folder-css\": {\n \"iconPath\": \"./../icons/folder-css.svg\"\n },\n \"folder-css-open\": {\n \"iconPath\": \"./../icons/folder-css-open.svg\"\n },\n \"folder-sass\": {\n \"iconPath\": \"./../icons/folder-sass.svg\"\n },\n \"folder-sass-open\": {\n \"iconPath\": \"./../icons/folder-sass-open.svg\"\n },\n \"folder-images\": {\n \"iconPath\": \"./../icons/folder-images.svg\"\n },\n \"folder-images-open\": {\n \"iconPath\": \"./../icons/folder-images-open.svg\"\n },\n \"folder-scripts\": {\n \"iconPath\": \"./../icons/folder-scripts.svg\"\n },\n \"folder-scripts-open\": {\n \"iconPath\": \"./../icons/folder-scripts-open.svg\"\n },\n \"folder-node\": {\n \"iconPath\": \"./../icons/folder-node.svg\"\n },\n \"folder-node-open\": {\n \"iconPath\": \"./../icons/folder-node-open.svg\"\n },\n \"folder-javascript\": {\n \"iconPath\": \"./../icons/folder-javascript.svg\"\n },\n \"folder-javascript-open\": {\n \"iconPath\": \"./../icons/folder-javascript-open.svg\"\n },\n \"folder-json\": {\n \"iconPath\": \"./../icons/folder-json.svg\"\n },\n \"folder-json-open\": {\n \"iconPath\": \"./../icons/folder-json-open.svg\"\n },\n \"folder-font\": {\n \"iconPath\": \"./../icons/folder-font.svg\"\n },\n \"folder-font-open\": {\n \"iconPath\": \"./../icons/folder-font-open.svg\"\n },\n \"folder-bower\": {\n \"iconPath\": \"./../icons/folder-bower.svg\"\n },\n \"folder-bower-open\": {\n \"iconPath\": \"./../icons/folder-bower-open.svg\"\n },\n \"folder-test\": {\n \"iconPath\": \"./../icons/folder-test.svg\"\n },\n \"folder-test-open\": {\n \"iconPath\": \"./../icons/folder-test-open.svg\"\n },\n \"folder-jinja\": {\n \"iconPath\": \"./../icons/folder-jinja.svg\"\n },\n \"folder-jinja-open\": {\n \"iconPath\": \"./../icons/folder-jinja-open.svg\"\n },\n \"folder-jinja_light\": {\n \"iconPath\": \"./../icons/folder-jinja_light.svg\"\n },\n \"folder-jinja-open_light\": {\n \"iconPath\": \"./../icons/folder-jinja-open_light.svg\"\n },\n \"folder-markdown\": {\n \"iconPath\": \"./../icons/folder-markdown.svg\"\n },\n \"folder-markdown-open\": {\n \"iconPath\": \"./../icons/folder-markdown-open.svg\"\n },\n \"folder-php\": {\n \"iconPath\": \"./../icons/folder-php.svg\"\n },\n \"folder-php-open\": {\n \"iconPath\": \"./../icons/folder-php-open.svg\"\n },\n \"folder-phpmailer\": {\n \"iconPath\": \"./../icons/folder-phpmailer.svg\"\n },\n \"folder-phpmailer-open\": {\n \"iconPath\": \"./../icons/folder-phpmailer-open.svg\"\n },\n \"folder-sublime\": {\n \"iconPath\": \"./../icons/folder-sublime.svg\"\n },\n \"folder-sublime-open\": {\n \"iconPath\": \"./../icons/folder-sublime-open.svg\"\n },\n \"folder-docs\": {\n \"iconPath\": \"./../icons/folder-docs.svg\"\n },\n \"folder-docs-open\": {\n \"iconPath\": \"./../icons/folder-docs-open.svg\"\n },\n \"folder-git\": {\n \"iconPath\": \"./../icons/folder-git.svg\"\n },\n \"folder-git-open\": {\n \"iconPath\": \"./../icons/folder-git-open.svg\"\n },\n \"folder-github\": {\n \"iconPath\": \"./../icons/folder-github.svg\"\n },\n \"folder-github-open\": {\n \"iconPath\": \"./../icons/folder-github-open.svg\"\n },\n \"folder-gitlab\": {\n \"iconPath\": \"./../icons/folder-gitlab.svg\"\n },\n \"folder-gitlab-open\": {\n \"iconPath\": \"./../icons/folder-gitlab-open.svg\"\n },\n \"folder-vscode\": {\n \"iconPath\": \"./../icons/folder-vscode.svg\"\n },\n \"folder-vscode-open\": {\n \"iconPath\": \"./../icons/folder-vscode-open.svg\"\n },\n \"folder-views\": {\n \"iconPath\": \"./../icons/folder-views.svg\"\n },\n \"folder-views-open\": {\n \"iconPath\": \"./../icons/folder-views-open.svg\"\n },\n \"folder-vue\": {\n \"iconPath\": \"./../icons/folder-vue.svg\"\n },\n \"folder-vue-open\": {\n \"iconPath\": \"./../icons/folder-vue-open.svg\"\n },\n \"folder-vuepress\": {\n \"iconPath\": \"./../icons/folder-vuepress.svg\"\n },\n \"folder-vuepress-open\": {\n \"iconPath\": \"./../icons/folder-vuepress-open.svg\"\n },\n \"folder-expo\": {\n \"iconPath\": \"./../icons/folder-expo.svg\"\n },\n \"folder-expo-open\": {\n \"iconPath\": \"./../icons/folder-expo-open.svg\"\n },\n \"folder-config\": {\n \"iconPath\": \"./../icons/folder-config.svg\"\n },\n \"folder-config-open\": {\n \"iconPath\": \"./../icons/folder-config-open.svg\"\n },\n \"folder-i18n\": {\n \"iconPath\": \"./../icons/folder-i18n.svg\"\n },\n \"folder-i18n-open\": {\n \"iconPath\": \"./../icons/folder-i18n-open.svg\"\n },\n \"folder-components\": {\n \"iconPath\": \"./../icons/folder-components.svg\"\n },\n \"folder-components-open\": {\n \"iconPath\": \"./../icons/folder-components-open.svg\"\n },\n \"folder-verdaccio\": {\n \"iconPath\": \"./../icons/folder-verdaccio.svg\"\n },\n \"folder-verdaccio-open\": {\n \"iconPath\": \"./../icons/folder-verdaccio-open.svg\"\n },\n \"folder-aurelia\": {\n \"iconPath\": \"./../icons/folder-aurelia.svg\"\n },\n \"folder-aurelia-open\": {\n \"iconPath\": \"./../icons/folder-aurelia-open.svg\"\n },\n \"folder-resource\": {\n \"iconPath\": \"./../icons/folder-resource.svg\"\n },\n \"folder-resource-open\": {\n \"iconPath\": \"./../icons/folder-resource-open.svg\"\n },\n \"folder-lib\": {\n \"iconPath\": \"./../icons/folder-lib.svg\"\n },\n \"folder-lib-open\": {\n \"iconPath\": \"./../icons/folder-lib-open.svg\"\n },\n \"folder-theme\": {\n \"iconPath\": \"./../icons/folder-theme.svg\"\n },\n \"folder-theme-open\": {\n \"iconPath\": \"./../icons/folder-theme-open.svg\"\n },\n \"folder-webpack\": {\n \"iconPath\": \"./../icons/folder-webpack.svg\"\n },\n \"folder-webpack-open\": {\n \"iconPath\": \"./../icons/folder-webpack-open.svg\"\n },\n \"folder-global\": {\n \"iconPath\": \"./../icons/folder-global.svg\"\n },\n \"folder-global-open\": {\n \"iconPath\": \"./../icons/folder-global-open.svg\"\n },\n \"folder-public\": {\n \"iconPath\": \"./../icons/folder-public.svg\"\n },\n \"folder-public-open\": {\n \"iconPath\": \"./../icons/folder-public-open.svg\"\n },\n \"folder-include\": {\n \"iconPath\": \"./../icons/folder-include.svg\"\n },\n \"folder-include-open\": {\n \"iconPath\": \"./../icons/folder-include-open.svg\"\n },\n \"folder-docker\": {\n \"iconPath\": \"./../icons/folder-docker.svg\"\n },\n \"folder-docker-open\": {\n \"iconPath\": \"./../icons/folder-docker-open.svg\"\n },\n \"folder-database\": {\n \"iconPath\": \"./../icons/folder-database.svg\"\n },\n \"folder-database-open\": {\n \"iconPath\": \"./../icons/folder-database-open.svg\"\n },\n \"folder-log\": {\n \"iconPath\": \"./../icons/folder-log.svg\"\n },\n \"folder-log-open\": {\n \"iconPath\": \"./../icons/folder-log-open.svg\"\n },\n \"folder-target\": {\n \"iconPath\": \"./../icons/folder-target.svg\"\n },\n \"folder-target-open\": {\n \"iconPath\": \"./../icons/folder-target-open.svg\"\n },\n \"folder-temp\": {\n \"iconPath\": \"./../icons/folder-temp.svg\"\n },\n \"folder-temp-open\": {\n \"iconPath\": \"./../icons/folder-temp-open.svg\"\n },\n \"folder-aws\": {\n \"iconPath\": \"./../icons/folder-aws.svg\"\n },\n \"folder-aws-open\": {\n \"iconPath\": \"./../icons/folder-aws-open.svg\"\n },\n \"folder-audio\": {\n \"iconPath\": \"./../icons/folder-audio.svg\"\n },\n \"folder-audio-open\": {\n \"iconPath\": \"./../icons/folder-audio-open.svg\"\n },\n \"folder-video\": {\n \"iconPath\": \"./../icons/folder-video.svg\"\n },\n \"folder-video-open\": {\n \"iconPath\": \"./../icons/folder-video-open.svg\"\n },\n \"folder-kubernetes\": {\n \"iconPath\": \"./../icons/folder-kubernetes.svg\"\n },\n \"folder-kubernetes-open\": {\n \"iconPath\": \"./../icons/folder-kubernetes-open.svg\"\n },\n \"folder-import\": {\n \"iconPath\": \"./../icons/folder-import.svg\"\n },\n \"folder-import-open\": {\n \"iconPath\": \"./../icons/folder-import-open.svg\"\n },\n \"folder-export\": {\n \"iconPath\": \"./../icons/folder-export.svg\"\n },\n \"folder-export-open\": {\n \"iconPath\": \"./../icons/folder-export-open.svg\"\n },\n \"folder-wakatime\": {\n \"iconPath\": \"./../icons/folder-wakatime.svg\"\n },\n \"folder-wakatime-open\": {\n \"iconPath\": \"./../icons/folder-wakatime-open.svg\"\n },\n \"folder-circleci\": {\n \"iconPath\": \"./../icons/folder-circleci.svg\"\n },\n \"folder-circleci-open\": {\n \"iconPath\": \"./../icons/folder-circleci-open.svg\"\n },\n \"folder-wordpress\": {\n \"iconPath\": \"./../icons/folder-wordpress.svg\"\n },\n \"folder-wordpress-open\": {\n \"iconPath\": \"./../icons/folder-wordpress-open.svg\"\n },\n \"folder-gradle\": {\n \"iconPath\": \"./../icons/folder-gradle.svg\"\n },\n \"folder-gradle-open\": {\n \"iconPath\": \"./../icons/folder-gradle-open.svg\"\n },\n \"folder-coverage\": {\n \"iconPath\": \"./../icons/folder-coverage.svg\"\n },\n \"folder-coverage-open\": {\n \"iconPath\": \"./../icons/folder-coverage-open.svg\"\n },\n \"folder-class\": {\n \"iconPath\": \"./../icons/folder-class.svg\"\n },\n \"folder-class-open\": {\n \"iconPath\": \"./../icons/folder-class-open.svg\"\n },\n \"folder-other\": {\n \"iconPath\": \"./../icons/folder-other.svg\"\n },\n \"folder-other-open\": {\n \"iconPath\": \"./../icons/folder-other-open.svg\"\n },\n \"folder-lua\": {\n \"iconPath\": \"./../icons/folder-lua.svg\"\n },\n \"folder-lua-open\": {\n \"iconPath\": \"./../icons/folder-lua-open.svg\"\n },\n \"folder-typescript\": {\n \"iconPath\": \"./../icons/folder-typescript.svg\"\n },\n \"folder-typescript-open\": {\n \"iconPath\": \"./../icons/folder-typescript-open.svg\"\n },\n \"folder-graphql\": {\n \"iconPath\": \"./../icons/folder-graphql.svg\"\n },\n \"folder-graphql-open\": {\n \"iconPath\": \"./../icons/folder-graphql-open.svg\"\n },\n \"folder-routes\": {\n \"iconPath\": \"./../icons/folder-routes.svg\"\n },\n \"folder-routes-open\": {\n \"iconPath\": \"./../icons/folder-routes-open.svg\"\n },\n \"folder-ci\": {\n \"iconPath\": \"./../icons/folder-ci.svg\"\n },\n \"folder-ci-open\": {\n \"iconPath\": \"./../icons/folder-ci-open.svg\"\n },\n \"folder-benchmark\": {\n \"iconPath\": \"./../icons/folder-benchmark.svg\"\n },\n \"folder-benchmark-open\": {\n \"iconPath\": \"./../icons/folder-benchmark-open.svg\"\n },\n \"folder-messages\": {\n \"iconPath\": \"./../icons/folder-messages.svg\"\n },\n \"folder-messages-open\": {\n \"iconPath\": \"./../icons/folder-messages-open.svg\"\n },\n \"folder-less\": {\n \"iconPath\": \"./../icons/folder-less.svg\"\n },\n \"folder-less-open\": {\n \"iconPath\": \"./../icons/folder-less-open.svg\"\n },\n \"folder-gulp\": {\n \"iconPath\": \"./../icons/folder-gulp.svg\"\n },\n \"folder-gulp-open\": {\n \"iconPath\": \"./../icons/folder-gulp-open.svg\"\n },\n \"folder-python\": {\n \"iconPath\": \"./../icons/folder-python.svg\"\n },\n \"folder-python-open\": {\n \"iconPath\": \"./../icons/folder-python-open.svg\"\n },\n \"folder-debug\": {\n \"iconPath\": \"./../icons/folder-debug.svg\"\n },\n \"folder-debug-open\": {\n \"iconPath\": \"./../icons/folder-debug-open.svg\"\n },\n \"folder-fastlane\": {\n \"iconPath\": \"./../icons/folder-fastlane.svg\"\n },\n \"folder-fastlane-open\": {\n \"iconPath\": \"./../icons/folder-fastlane-open.svg\"\n },\n \"folder-plugin\": {\n \"iconPath\": \"./../icons/folder-plugin.svg\"\n },\n \"folder-plugin-open\": {\n \"iconPath\": \"./../icons/folder-plugin-open.svg\"\n },\n \"folder-middleware\": {\n \"iconPath\": \"./../icons/folder-middleware.svg\"\n },\n \"folder-middleware-open\": {\n \"iconPath\": \"./../icons/folder-middleware-open.svg\"\n },\n \"folder-controller\": {\n \"iconPath\": \"./../icons/folder-controller.svg\"\n },\n \"folder-controller-open\": {\n \"iconPath\": \"./../icons/folder-controller-open.svg\"\n },\n \"folder-ansible\": {\n \"iconPath\": \"./../icons/folder-ansible.svg\"\n },\n \"folder-ansible-open\": {\n \"iconPath\": \"./../icons/folder-ansible-open.svg\"\n },\n \"folder-server\": {\n \"iconPath\": \"./../icons/folder-server.svg\"\n },\n \"folder-server-open\": {\n \"iconPath\": \"./../icons/folder-server-open.svg\"\n },\n \"folder-client\": {\n \"iconPath\": \"./../icons/folder-client.svg\"\n },\n \"folder-client-open\": {\n \"iconPath\": \"./../icons/folder-client-open.svg\"\n },\n \"folder-tasks\": {\n \"iconPath\": \"./../icons/folder-tasks.svg\"\n },\n \"folder-tasks-open\": {\n \"iconPath\": \"./../icons/folder-tasks-open.svg\"\n },\n \"folder-android\": {\n \"iconPath\": \"./../icons/folder-android.svg\"\n },\n \"folder-android-open\": {\n \"iconPath\": \"./../icons/folder-android-open.svg\"\n },\n \"folder-ios\": {\n \"iconPath\": \"./../icons/folder-ios.svg\"\n },\n \"folder-ios-open\": {\n \"iconPath\": \"./../icons/folder-ios-open.svg\"\n },\n \"folder-upload\": {\n \"iconPath\": \"./../icons/folder-upload.svg\"\n },\n \"folder-upload-open\": {\n \"iconPath\": \"./../icons/folder-upload-open.svg\"\n },\n \"folder-download\": {\n \"iconPath\": \"./../icons/folder-download.svg\"\n },\n \"folder-download-open\": {\n \"iconPath\": \"./../icons/folder-download-open.svg\"\n },\n \"folder-tools\": {\n \"iconPath\": \"./../icons/folder-tools.svg\"\n },\n \"folder-tools-open\": {\n \"iconPath\": \"./../icons/folder-tools-open.svg\"\n },\n \"folder-helper\": {\n \"iconPath\": \"./../icons/folder-helper.svg\"\n },\n \"folder-helper-open\": {\n \"iconPath\": \"./../icons/folder-helper-open.svg\"\n },\n \"folder-serverless\": {\n \"iconPath\": \"./../icons/folder-serverless.svg\"\n },\n \"folder-serverless-open\": {\n \"iconPath\": \"./../icons/folder-serverless-open.svg\"\n },\n \"folder-api\": {\n \"iconPath\": \"./../icons/folder-api.svg\"\n },\n \"folder-api-open\": {\n \"iconPath\": \"./../icons/folder-api-open.svg\"\n },\n \"folder-app\": {\n \"iconPath\": \"./../icons/folder-app.svg\"\n },\n \"folder-app-open\": {\n \"iconPath\": \"./../icons/folder-app-open.svg\"\n },\n \"folder-apollo\": {\n \"iconPath\": \"./../icons/folder-apollo.svg\"\n },\n \"folder-apollo-open\": {\n \"iconPath\": \"./../icons/folder-apollo-open.svg\"\n },\n \"folder-archive\": {\n \"iconPath\": \"./../icons/folder-archive.svg\"\n },\n \"folder-archive-open\": {\n \"iconPath\": \"./../icons/folder-archive-open.svg\"\n },\n \"folder-batch\": {\n \"iconPath\": \"./../icons/folder-batch.svg\"\n },\n \"folder-batch-open\": {\n \"iconPath\": \"./../icons/folder-batch-open.svg\"\n },\n \"folder-buildkite\": {\n \"iconPath\": \"./../icons/folder-buildkite.svg\"\n },\n \"folder-buildkite-open\": {\n \"iconPath\": \"./../icons/folder-buildkite-open.svg\"\n },\n \"folder-cluster\": {\n \"iconPath\": \"./../icons/folder-cluster.svg\"\n },\n \"folder-cluster-open\": {\n \"iconPath\": \"./../icons/folder-cluster-open.svg\"\n },\n \"folder-command\": {\n \"iconPath\": \"./../icons/folder-command.svg\"\n },\n \"folder-command-open\": {\n \"iconPath\": \"./../icons/folder-command-open.svg\"\n },\n \"folder-constant\": {\n \"iconPath\": \"./../icons/folder-constant.svg\"\n },\n \"folder-constant-open\": {\n \"iconPath\": \"./../icons/folder-constant-open.svg\"\n },\n \"folder-container\": {\n \"iconPath\": \"./../icons/folder-container.svg\"\n },\n \"folder-container-open\": {\n \"iconPath\": \"./../icons/folder-container-open.svg\"\n },\n \"folder-content\": {\n \"iconPath\": \"./../icons/folder-content.svg\"\n },\n \"folder-content-open\": {\n \"iconPath\": \"./../icons/folder-content-open.svg\"\n },\n \"folder-context\": {\n \"iconPath\": \"./../icons/folder-context.svg\"\n },\n \"folder-context-open\": {\n \"iconPath\": \"./../icons/folder-context-open.svg\"\n },\n \"folder-core\": {\n \"iconPath\": \"./../icons/folder-core.svg\"\n },\n \"folder-core-open\": {\n \"iconPath\": \"./../icons/folder-core-open.svg\"\n },\n \"folder-delta\": {\n \"iconPath\": \"./../icons/folder-delta.svg\"\n },\n \"folder-delta-open\": {\n \"iconPath\": \"./../icons/folder-delta-open.svg\"\n },\n \"folder-dump\": {\n \"iconPath\": \"./../icons/folder-dump.svg\"\n },\n \"folder-dump-open\": {\n \"iconPath\": \"./../icons/folder-dump-open.svg\"\n },\n \"folder-examples\": {\n \"iconPath\": \"./../icons/folder-examples.svg\"\n },\n \"folder-examples-open\": {\n \"iconPath\": \"./../icons/folder-examples-open.svg\"\n },\n \"folder-environment\": {\n \"iconPath\": \"./../icons/folder-environment.svg\"\n },\n \"folder-environment-open\": {\n \"iconPath\": \"./../icons/folder-environment-open.svg\"\n },\n \"folder-functions\": {\n \"iconPath\": \"./../icons/folder-functions.svg\"\n },\n \"folder-functions-open\": {\n \"iconPath\": \"./../icons/folder-functions-open.svg\"\n },\n \"folder-generator\": {\n \"iconPath\": \"./../icons/folder-generator.svg\"\n },\n \"folder-generator-open\": {\n \"iconPath\": \"./../icons/folder-generator-open.svg\"\n },\n \"folder-hook\": {\n \"iconPath\": \"./../icons/folder-hook.svg\"\n },\n \"folder-hook-open\": {\n \"iconPath\": \"./../icons/folder-hook-open.svg\"\n },\n \"folder-job\": {\n \"iconPath\": \"./../icons/folder-job.svg\"\n },\n \"folder-job-open\": {\n \"iconPath\": \"./../icons/folder-job-open.svg\"\n },\n \"folder-keys\": {\n \"iconPath\": \"./../icons/folder-keys.svg\"\n },\n \"folder-keys-open\": {\n \"iconPath\": \"./../icons/folder-keys-open.svg\"\n },\n \"folder-layout\": {\n \"iconPath\": \"./../icons/folder-layout.svg\"\n },\n \"folder-layout-open\": {\n \"iconPath\": \"./../icons/folder-layout-open.svg\"\n },\n \"folder-mail\": {\n \"iconPath\": \"./../icons/folder-mail.svg\"\n },\n \"folder-mail-open\": {\n \"iconPath\": \"./../icons/folder-mail-open.svg\"\n },\n \"folder-mappings\": {\n \"iconPath\": \"./../icons/folder-mappings.svg\"\n },\n \"folder-mappings-open\": {\n \"iconPath\": \"./../icons/folder-mappings-open.svg\"\n },\n \"folder-meta\": {\n \"iconPath\": \"./../icons/folder-meta.svg\"\n },\n \"folder-meta-open\": {\n \"iconPath\": \"./../icons/folder-meta-open.svg\"\n },\n \"folder-changesets\": {\n \"iconPath\": \"./../icons/folder-changesets.svg\"\n },\n \"folder-changesets-open\": {\n \"iconPath\": \"./../icons/folder-changesets-open.svg\"\n },\n \"folder-packages\": {\n \"iconPath\": \"./../icons/folder-packages.svg\"\n },\n \"folder-packages-open\": {\n \"iconPath\": \"./../icons/folder-packages-open.svg\"\n },\n \"folder-shared\": {\n \"iconPath\": \"./../icons/folder-shared.svg\"\n },\n \"folder-shared-open\": {\n \"iconPath\": \"./../icons/folder-shared-open.svg\"\n },\n \"folder-shader\": {\n \"iconPath\": \"./../icons/folder-shader.svg\"\n },\n \"folder-shader-open\": {\n \"iconPath\": \"./../icons/folder-shader-open.svg\"\n },\n \"folder-stack\": {\n \"iconPath\": \"./../icons/folder-stack.svg\"\n },\n \"folder-stack-open\": {\n \"iconPath\": \"./../icons/folder-stack-open.svg\"\n },\n \"folder-template\": {\n \"iconPath\": \"./../icons/folder-template.svg\"\n },\n \"folder-template-open\": {\n \"iconPath\": \"./../icons/folder-template-open.svg\"\n },\n \"folder-utils\": {\n \"iconPath\": \"./../icons/folder-utils.svg\"\n },\n \"folder-utils-open\": {\n \"iconPath\": \"./../icons/folder-utils-open.svg\"\n },\n \"folder-supabase\": {\n \"iconPath\": \"./../icons/folder-supabase.svg\"\n },\n \"folder-supabase-open\": {\n \"iconPath\": \"./../icons/folder-supabase-open.svg\"\n },\n \"folder-private\": {\n \"iconPath\": \"./../icons/folder-private.svg\"\n },\n \"folder-private-open\": {\n \"iconPath\": \"./../icons/folder-private-open.svg\"\n },\n \"folder-error\": {\n \"iconPath\": \"./../icons/folder-error.svg\"\n },\n \"folder-error-open\": {\n \"iconPath\": \"./../icons/folder-error-open.svg\"\n },\n \"folder-event\": {\n \"iconPath\": \"./../icons/folder-event.svg\"\n },\n \"folder-event-open\": {\n \"iconPath\": \"./../icons/folder-event-open.svg\"\n },\n \"folder-secure\": {\n \"iconPath\": \"./../icons/folder-secure.svg\"\n },\n \"folder-secure-open\": {\n \"iconPath\": \"./../icons/folder-secure-open.svg\"\n },\n \"folder-custom\": {\n \"iconPath\": \"./../icons/folder-custom.svg\"\n },\n \"folder-custom-open\": {\n \"iconPath\": \"./../icons/folder-custom-open.svg\"\n },\n \"folder-mock\": {\n \"iconPath\": \"./../icons/folder-mock.svg\"\n },\n \"folder-mock-open\": {\n \"iconPath\": \"./../icons/folder-mock-open.svg\"\n },\n \"folder-syntax\": {\n \"iconPath\": \"./../icons/folder-syntax.svg\"\n },\n \"folder-syntax-open\": {\n \"iconPath\": \"./../icons/folder-syntax-open.svg\"\n },\n \"folder-vm\": {\n \"iconPath\": \"./../icons/folder-vm.svg\"\n },\n \"folder-vm-open\": {\n \"iconPath\": \"./../icons/folder-vm-open.svg\"\n },\n \"folder-stylus\": {\n \"iconPath\": \"./../icons/folder-stylus.svg\"\n },\n \"folder-stylus-open\": {\n \"iconPath\": \"./../icons/folder-stylus-open.svg\"\n },\n \"folder-flow\": {\n \"iconPath\": \"./../icons/folder-flow.svg\"\n },\n \"folder-flow-open\": {\n \"iconPath\": \"./../icons/folder-flow-open.svg\"\n },\n \"folder-rules\": {\n \"iconPath\": \"./../icons/folder-rules.svg\"\n },\n \"folder-rules-open\": {\n \"iconPath\": \"./../icons/folder-rules-open.svg\"\n },\n \"folder-review\": {\n \"iconPath\": \"./../icons/folder-review.svg\"\n },\n \"folder-review-open\": {\n \"iconPath\": \"./../icons/folder-review-open.svg\"\n },\n \"folder-animation\": {\n \"iconPath\": \"./../icons/folder-animation.svg\"\n },\n \"folder-animation-open\": {\n \"iconPath\": \"./../icons/folder-animation-open.svg\"\n },\n \"folder-guard\": {\n \"iconPath\": \"./../icons/folder-guard.svg\"\n },\n \"folder-guard-open\": {\n \"iconPath\": \"./../icons/folder-guard-open.svg\"\n },\n \"folder-prisma\": {\n \"iconPath\": \"./../icons/folder-prisma.svg\"\n },\n \"folder-prisma-open\": {\n \"iconPath\": \"./../icons/folder-prisma-open.svg\"\n },\n \"folder-pipe\": {\n \"iconPath\": \"./../icons/folder-pipe.svg\"\n },\n \"folder-pipe-open\": {\n \"iconPath\": \"./../icons/folder-pipe-open.svg\"\n },\n \"folder-svg\": {\n \"iconPath\": \"./../icons/folder-svg.svg\"\n },\n \"folder-svg-open\": {\n \"iconPath\": \"./../icons/folder-svg-open.svg\"\n },\n \"folder-terraform\": {\n \"iconPath\": \"./../icons/folder-terraform.svg\"\n },\n \"folder-terraform-open\": {\n \"iconPath\": \"./../icons/folder-terraform-open.svg\"\n },\n \"folder-mobile\": {\n \"iconPath\": \"./../icons/folder-mobile.svg\"\n },\n \"folder-mobile-open\": {\n \"iconPath\": \"./../icons/folder-mobile-open.svg\"\n },\n \"folder-stencil\": {\n \"iconPath\": \"./../icons/folder-stencil.svg\"\n },\n \"folder-stencil-open\": {\n \"iconPath\": \"./../icons/folder-stencil-open.svg\"\n },\n \"folder-firebase\": {\n \"iconPath\": \"./../icons/folder-firebase.svg\"\n },\n \"folder-firebase-open\": {\n \"iconPath\": \"./../icons/folder-firebase-open.svg\"\n },\n \"folder-svelte\": {\n \"iconPath\": \"./../icons/folder-svelte.svg\"\n },\n \"folder-svelte-open\": {\n \"iconPath\": \"./../icons/folder-svelte-open.svg\"\n },\n \"folder-update\": {\n \"iconPath\": \"./../icons/folder-update.svg\"\n },\n \"folder-update-open\": {\n \"iconPath\": \"./../icons/folder-update-open.svg\"\n },\n \"folder-intellij\": {\n \"iconPath\": \"./../icons/folder-intellij.svg\"\n },\n \"folder-intellij-open\": {\n \"iconPath\": \"./../icons/folder-intellij-open.svg\"\n },\n \"folder-intellij_light\": {\n \"iconPath\": \"./../icons/folder-intellij_light.svg\"\n },\n \"folder-intellij-open_light\": {\n \"iconPath\": \"./../icons/folder-intellij-open_light.svg\"\n },\n \"folder-azure-pipelines\": {\n \"iconPath\": \"./../icons/folder-azure-pipelines.svg\"\n },\n \"folder-azure-pipelines-open\": {\n \"iconPath\": \"./../icons/folder-azure-pipelines-open.svg\"\n },\n \"folder-mjml\": {\n \"iconPath\": \"./../icons/folder-mjml.svg\"\n },\n \"folder-mjml-open\": {\n \"iconPath\": \"./../icons/folder-mjml-open.svg\"\n },\n \"folder-admin\": {\n \"iconPath\": \"./../icons/folder-admin.svg\"\n },\n \"folder-admin-open\": {\n \"iconPath\": \"./../icons/folder-admin-open.svg\"\n },\n \"folder-scala\": {\n \"iconPath\": \"./../icons/folder-scala.svg\"\n },\n \"folder-scala-open\": {\n \"iconPath\": \"./../icons/folder-scala-open.svg\"\n },\n \"folder-connection\": {\n \"iconPath\": \"./../icons/folder-connection.svg\"\n },\n \"folder-connection-open\": {\n \"iconPath\": \"./../icons/folder-connection-open.svg\"\n },\n \"folder-quasar\": {\n \"iconPath\": \"./../icons/folder-quasar.svg\"\n },\n \"folder-quasar-open\": {\n \"iconPath\": \"./../icons/folder-quasar-open.svg\"\n },\n \"folder-next\": {\n \"iconPath\": \"./../icons/folder-next.svg\"\n },\n \"folder-next-open\": {\n \"iconPath\": \"./../icons/folder-next-open.svg\"\n },\n \"folder-cobol\": {\n \"iconPath\": \"./../icons/folder-cobol.svg\"\n },\n \"folder-cobol-open\": {\n \"iconPath\": \"./../icons/folder-cobol-open.svg\"\n },\n \"folder-yarn\": {\n \"iconPath\": \"./../icons/folder-yarn.svg\"\n },\n \"folder-yarn-open\": {\n \"iconPath\": \"./../icons/folder-yarn-open.svg\"\n },\n \"folder-husky\": {\n \"iconPath\": \"./../icons/folder-husky.svg\"\n },\n \"folder-husky-open\": {\n \"iconPath\": \"./../icons/folder-husky-open.svg\"\n },\n \"folder-storybook\": {\n \"iconPath\": \"./../icons/folder-storybook.svg\"\n },\n \"folder-storybook-open\": {\n \"iconPath\": \"./../icons/folder-storybook-open.svg\"\n },\n \"folder-base\": {\n \"iconPath\": \"./../icons/folder-base.svg\"\n },\n \"folder-base-open\": {\n \"iconPath\": \"./../icons/folder-base-open.svg\"\n },\n \"folder-cart\": {\n \"iconPath\": \"./../icons/folder-cart.svg\"\n },\n \"folder-cart-open\": {\n \"iconPath\": \"./../icons/folder-cart-open.svg\"\n },\n \"folder-home\": {\n \"iconPath\": \"./../icons/folder-home.svg\"\n },\n \"folder-home-open\": {\n \"iconPath\": \"./../icons/folder-home-open.svg\"\n },\n \"folder-project\": {\n \"iconPath\": \"./../icons/folder-project.svg\"\n },\n \"folder-project-open\": {\n \"iconPath\": \"./../icons/folder-project-open.svg\"\n },\n \"folder-interface\": {\n \"iconPath\": \"./../icons/folder-interface.svg\"\n },\n \"folder-interface-open\": {\n \"iconPath\": \"./../icons/folder-interface-open.svg\"\n },\n \"folder-netlify\": {\n \"iconPath\": \"./../icons/folder-netlify.svg\"\n },\n \"folder-netlify-open\": {\n \"iconPath\": \"./../icons/folder-netlify-open.svg\"\n },\n \"folder-contract\": {\n \"iconPath\": \"./../icons/folder-contract.svg\"\n },\n \"folder-contract-open\": {\n \"iconPath\": \"./../icons/folder-contract-open.svg\"\n },\n \"folder-queue\": {\n \"iconPath\": \"./../icons/folder-queue.svg\"\n },\n \"folder-queue-open\": {\n \"iconPath\": \"./../icons/folder-queue-open.svg\"\n },\n \"folder-vercel\": {\n \"iconPath\": \"./../icons/folder-vercel.svg\"\n },\n \"folder-vercel-open\": {\n \"iconPath\": \"./../icons/folder-vercel-open.svg\"\n },\n \"folder-cypress\": {\n \"iconPath\": \"./../icons/folder-cypress.svg\"\n },\n \"folder-cypress-open\": {\n \"iconPath\": \"./../icons/folder-cypress-open.svg\"\n },\n \"folder-decorators\": {\n \"iconPath\": \"./../icons/folder-decorators.svg\"\n },\n \"folder-decorators-open\": {\n \"iconPath\": \"./../icons/folder-decorators-open.svg\"\n },\n \"folder-java\": {\n \"iconPath\": \"./../icons/folder-java.svg\"\n },\n \"folder-java-open\": {\n \"iconPath\": \"./../icons/folder-java-open.svg\"\n },\n \"folder-resolver\": {\n \"iconPath\": \"./../icons/folder-resolver.svg\"\n },\n \"folder-resolver-open\": {\n \"iconPath\": \"./../icons/folder-resolver-open.svg\"\n },\n \"folder-angular\": {\n \"iconPath\": \"./../icons/folder-angular.svg\"\n },\n \"folder-angular-open\": {\n \"iconPath\": \"./../icons/folder-angular-open.svg\"\n },\n \"folder-unity\": {\n \"iconPath\": \"./../icons/folder-unity.svg\"\n },\n \"folder-unity-open\": {\n \"iconPath\": \"./../icons/folder-unity-open.svg\"\n },\n \"folder-pdf\": {\n \"iconPath\": \"./../icons/folder-pdf.svg\"\n },\n \"folder-pdf-open\": {\n \"iconPath\": \"./../icons/folder-pdf-open.svg\"\n },\n \"folder-proto\": {\n \"iconPath\": \"./../icons/folder-proto.svg\"\n },\n \"folder-proto-open\": {\n \"iconPath\": \"./../icons/folder-proto-open.svg\"\n },\n \"folder-plastic\": {\n \"iconPath\": \"./../icons/folder-plastic.svg\"\n },\n \"folder-plastic-open\": {\n \"iconPath\": \"./../icons/folder-plastic-open.svg\"\n },\n \"folder-gamemaker\": {\n \"iconPath\": \"./../icons/folder-gamemaker.svg\"\n },\n \"folder-gamemaker-open\": {\n \"iconPath\": \"./../icons/folder-gamemaker-open.svg\"\n },\n \"folder-mercurial\": {\n \"iconPath\": \"./../icons/folder-mercurial.svg\"\n },\n \"folder-mercurial-open\": {\n \"iconPath\": \"./../icons/folder-mercurial-open.svg\"\n },\n \"folder-godot\": {\n \"iconPath\": \"./../icons/folder-godot.svg\"\n },\n \"folder-godot-open\": {\n \"iconPath\": \"./../icons/folder-godot-open.svg\"\n },\n \"folder\": {\n \"iconPath\": \"./../icons/folder.svg\"\n },\n \"folder-open\": {\n \"iconPath\": \"./../icons/folder-open.svg\"\n },\n \"folder-root\": {\n \"iconPath\": \"./../icons/folder-root.svg\"\n },\n \"folder-root-open\": {\n \"iconPath\": \"./../icons/folder-root-open.svg\"\n }\n },\n \"folderNames\": {\n \"src\": \"folder-src\",\n \"srcs\": \"folder-src\",\n \"source\": \"folder-src\",\n \"sources\": \"folder-src\",\n \"code\": \"folder-src\",\n \"dist\": \"folder-dist\",\n \"out\": \"folder-dist\",\n \"build\": \"folder-dist\",\n \"release\": \"folder-dist\",\n \"bin\": \"folder-dist\",\n \"css\": \"folder-css\",\n \"stylesheet\": \"folder-css\",\n \"stylesheets\": \"folder-css\",\n \"style\": \"folder-css\",\n \"styles\": \"folder-css\",\n \"sass\": \"folder-sass\",\n \"_sass\": \"folder-sass\",\n \"scss\": \"folder-sass\",\n \"_scss\": \"folder-sass\",\n \"_images\": \"folder-images\",\n \"_image\": \"folder-images\",\n \"_imgs\": \"folder-images\",\n \"_img\": \"folder-images\",\n \"images\": \"folder-images\",\n \"image\": \"folder-images\",\n \"imgs\": \"folder-images\",\n \"img\": \"folder-images\",\n \"icons\": \"folder-images\",\n \"icon\": \"folder-images\",\n \"icos\": \"folder-images\",\n \"ico\": \"folder-images\",\n \"figures\": \"folder-images\",\n \"figure\": \"folder-images\",\n \"figs\": \"folder-images\",\n \"fig\": \"folder-images\",\n \"screenshot\": \"folder-images\",\n \"screenshots\": \"folder-images\",\n \"screengrab\": \"folder-images\",\n \"screengrabs\": \"folder-images\",\n \"pic\": \"folder-images\",\n \"pics\": \"folder-images\",\n \"picture\": \"folder-images\",\n \"pictures\": \"folder-images\",\n \"script\": \"folder-scripts\",\n \"scripts\": \"folder-scripts\",\n \"node_modules\": \"folder-node\",\n \"js\": \"folder-javascript\",\n \"javascript\": \"folder-javascript\",\n \"javascripts\": \"folder-javascript\",\n \"json\": \"folder-json\",\n \"jsons\": \"folder-json\",\n \"font\": \"folder-font\",\n \"fonts\": \"folder-font\",\n \"bower_components\": \"folder-bower\",\n \"test\": \"folder-test\",\n \"tests\": \"folder-test\",\n \"testing\": \"folder-test\",\n \"__tests__\": \"folder-test\",\n \"__snapshots__\": \"folder-test\",\n \"__mocks__\": \"folder-test\",\n \"__fixtures__\": \"folder-test\",\n \"__test__\": \"folder-test\",\n \"spec\": \"folder-test\",\n \"specs\": \"folder-test\",\n \"jinja\": \"folder-jinja\",\n \"jinja2\": \"folder-jinja\",\n \"j2\": \"folder-jinja\",\n \"markdown\": \"folder-markdown\",\n \"md\": \"folder-markdown\",\n \"php\": \"folder-php\",\n \"phpmailer\": \"folder-phpmailer\",\n \"sublime\": \"folder-sublime\",\n \"_post\": \"folder-docs\",\n \"_posts\": \"folder-docs\",\n \"doc\": \"folder-docs\",\n \"docs\": \"folder-docs\",\n \"document\": \"folder-docs\",\n \"documents\": \"folder-docs\",\n \"documentation\": \"folder-docs\",\n \"post\": \"folder-docs\",\n \"posts\": \"folder-docs\",\n \"article\": \"folder-docs\",\n \"articles\": \"folder-docs\",\n \".git\": \"folder-git\",\n \"patches\": \"folder-git\",\n \"githooks\": \"folder-git\",\n \".githooks\": \"folder-git\",\n \"submodules\": \"folder-git\",\n \".submodules\": \"folder-git\",\n \".github\": \"folder-github\",\n \"github\": \"folder-github\",\n \".gitlab\": \"folder-gitlab\",\n \".vscode\": \"folder-vscode\",\n \".vscode-test\": \"folder-vscode\",\n \"view\": \"folder-views\",\n \"views\": \"folder-views\",\n \"screen\": \"folder-views\",\n \"screens\": \"folder-views\",\n \"page\": \"folder-views\",\n \"pages\": \"folder-views\",\n \"html\": \"folder-views\",\n \"vue\": \"folder-vue\",\n \".vuepress\": \"folder-vuepress\",\n \".expo\": \"folder-expo\",\n \".expo-shared\": \"folder-expo\",\n \"cfg\": \"folder-config\",\n \"cfgs\": \"folder-config\",\n \"conf\": \"folder-config\",\n \"confs\": \"folder-config\",\n \"config\": \"folder-config\",\n \"configs\": \"folder-config\",\n \"configuration\": \"folder-config\",\n \"configurations\": \"folder-config\",\n \"setting\": \"folder-config\",\n \".setting\": \"folder-config\",\n \"settings\": \"folder-config\",\n \".settings\": \"folder-config\",\n \"META-INF\": \"folder-config\",\n \"i18n\": \"folder-i18n\",\n \"internationalization\": \"folder-i18n\",\n \"lang\": \"folder-i18n\",\n \"langs\": \"folder-i18n\",\n \"language\": \"folder-i18n\",\n \"languages\": \"folder-i18n\",\n \"locale\": \"folder-i18n\",\n \"locales\": \"folder-i18n\",\n \"l10n\": \"folder-i18n\",\n \"localization\": \"folder-i18n\",\n \"translation\": \"folder-i18n\",\n \"translate\": \"folder-i18n\",\n \"translations\": \"folder-i18n\",\n \".tx\": \"folder-i18n\",\n \"components\": \"folder-components\",\n \"widget\": \"folder-components\",\n \"widgets\": \"folder-components\",\n \"fragments\": \"folder-components\",\n \".verdaccio\": \"folder-verdaccio\",\n \"verdaccio\": \"folder-verdaccio\",\n \"aurelia_project\": \"folder-aurelia\",\n \"resource\": \"folder-resource\",\n \"resources\": \"folder-resource\",\n \"res\": \"folder-resource\",\n \"asset\": \"folder-resource\",\n \"assets\": \"folder-resource\",\n \"static\": \"folder-resource\",\n \"report\": \"folder-resource\",\n \"reports\": \"folder-resource\",\n \"lib\": \"folder-lib\",\n \"libs\": \"folder-lib\",\n \"library\": \"folder-lib\",\n \"libraries\": \"folder-lib\",\n \"vendor\": \"folder-lib\",\n \"vendors\": \"folder-lib\",\n \"third-party\": \"folder-lib\",\n \"themes\": \"folder-theme\",\n \"theme\": \"folder-theme\",\n \"color\": \"folder-theme\",\n \"colors\": \"folder-theme\",\n \"design\": \"folder-theme\",\n \"designs\": \"folder-theme\",\n \"webpack\": \"folder-webpack\",\n \".webpack\": \"folder-webpack\",\n \"global\": \"folder-global\",\n \"_site\": \"folder-public\",\n \"public\": \"folder-public\",\n \"www\": \"folder-public\",\n \"wwwroot\": \"folder-public\",\n \"web\": \"folder-public\",\n \"website\": \"folder-public\",\n \"site\": \"folder-public\",\n \"browser\": \"folder-public\",\n \"browsers\": \"folder-public\",\n \"include\": \"folder-include\",\n \"includes\": \"folder-include\",\n \"_includes\": \"folder-include\",\n \"inc\": \"folder-include\",\n \"partials\": \"folder-include\",\n \"_partials\": \"folder-include\",\n \"docker\": \"folder-docker\",\n \"dockerfiles\": \"folder-docker\",\n \".docker\": \"folder-docker\",\n \"db\": \"folder-database\",\n \"database\": \"folder-database\",\n \"databases\": \"folder-database\",\n \"sql\": \"folder-database\",\n \"data\": \"folder-database\",\n \"_data\": \"folder-database\",\n \"log\": \"folder-log\",\n \"logs\": \"folder-log\",\n \"target\": \"folder-target\",\n \"temp\": \"folder-temp\",\n \".temp\": \"folder-temp\",\n \"tmp\": \"folder-temp\",\n \".tmp\": \"folder-temp\",\n \"cached\": \"folder-temp\",\n \"cache\": \"folder-temp\",\n \".cache\": \"folder-temp\",\n \"aws\": \"folder-aws\",\n \".aws\": \"folder-aws\",\n \"aud\": \"folder-audio\",\n \"auds\": \"folder-audio\",\n \"audio\": \"folder-audio\",\n \"audios\": \"folder-audio\",\n \"music\": \"folder-audio\",\n \"sound\": \"folder-audio\",\n \"sounds\": \"folder-audio\",\n \"vid\": \"folder-video\",\n \"vids\": \"folder-video\",\n \"video\": \"folder-video\",\n \"videos\": \"folder-video\",\n \"movie\": \"folder-video\",\n \"movies\": \"folder-video\",\n \"kubernetes\": \"folder-kubernetes\",\n \".kubernetes\": \"folder-kubernetes\",\n \"k8s\": \"folder-kubernetes\",\n \".k8s\": \"folder-kubernetes\",\n \"import\": \"folder-import\",\n \"imports\": \"folder-import\",\n \"imported\": \"folder-import\",\n \"export\": \"folder-export\",\n \"exports\": \"folder-export\",\n \"exported\": \"folder-export\",\n \"wakatime\": \"folder-wakatime\",\n \".circleci\": \"folder-circleci\",\n \".wordpress-org\": \"folder-wordpress\",\n \"wp-content\": \"folder-wordpress\",\n \"gradle\": \"folder-gradle\",\n \".gradle\": \"folder-gradle\",\n \"coverage\": \"folder-coverage\",\n \".nyc-output\": \"folder-coverage\",\n \".nyc_output\": \"folder-coverage\",\n \"e2e\": \"folder-coverage\",\n \"it\": \"folder-coverage\",\n \"integration-test\": \"folder-coverage\",\n \"integration-tests\": \"folder-coverage\",\n \"__integration-test__\": \"folder-coverage\",\n \"__integration-tests__\": \"folder-coverage\",\n \"class\": \"folder-class\",\n \"classes\": \"folder-class\",\n \"model\": \"folder-class\",\n \"models\": \"folder-class\",\n \"schemas\": \"folder-class\",\n \"schema\": \"folder-class\",\n \"other\": \"folder-other\",\n \"others\": \"folder-other\",\n \"misc\": \"folder-other\",\n \"miscellaneous\": \"folder-other\",\n \"extra\": \"folder-other\",\n \"extras\": \"folder-other\",\n \"etc\": \"folder-other\",\n \"lua\": \"folder-lua\",\n \"typescript\": \"folder-typescript\",\n \"ts\": \"folder-typescript\",\n \"typings\": \"folder-typescript\",\n \"@types\": \"folder-typescript\",\n \"types\": \"folder-typescript\",\n \"graphql\": \"folder-graphql\",\n \"gql\": \"folder-graphql\",\n \"routes\": \"folder-routes\",\n \"router\": \"folder-routes\",\n \"routers\": \"folder-routes\",\n \".ci\": \"folder-ci\",\n \"ci\": \"folder-ci\",\n \"benchmark\": \"folder-benchmark\",\n \"benchmarks\": \"folder-benchmark\",\n \"performance\": \"folder-benchmark\",\n \"measure\": \"folder-benchmark\",\n \"measures\": \"folder-benchmark\",\n \"measurement\": \"folder-benchmark\",\n \"messages\": \"folder-messages\",\n \"messaging\": \"folder-messages\",\n \"forum\": \"folder-messages\",\n \"chat\": \"folder-messages\",\n \"chats\": \"folder-messages\",\n \"conversation\": \"folder-messages\",\n \"conversations\": \"folder-messages\",\n \"less\": \"folder-less\",\n \"gulp\": \"folder-gulp\",\n \"gulp-tasks\": \"folder-gulp\",\n \"gulpfile.js\": \"folder-gulp\",\n \"gulpfile.mjs\": \"folder-gulp\",\n \"gulpfile.ts\": \"folder-gulp\",\n \"gulpfile.babel.js\": \"folder-gulp\",\n \"python\": \"folder-python\",\n \"__pycache__\": \"folder-python\",\n \".pytest_cache\": \"folder-python\",\n \"debug\": \"folder-debug\",\n \"debugging\": \"folder-debug\",\n \"fastlane\": \"folder-fastlane\",\n \"plugin\": \"folder-plugin\",\n \"plugins\": \"folder-plugin\",\n \"_plugins\": \"folder-plugin\",\n \"extension\": \"folder-plugin\",\n \"extensions\": \"folder-plugin\",\n \"addon\": \"folder-plugin\",\n \"addons\": \"folder-plugin\",\n \"module\": \"folder-plugin\",\n \"modules\": \"folder-plugin\",\n \"middleware\": \"folder-middleware\",\n \"middlewares\": \"folder-middleware\",\n \"controller\": \"folder-controller\",\n \"controllers\": \"folder-controller\",\n \"service\": \"folder-controller\",\n \"services\": \"folder-controller\",\n \"provider\": \"folder-controller\",\n \"providers\": \"folder-controller\",\n \"handler\": \"folder-controller\",\n \"handlers\": \"folder-controller\",\n \"ansible\": \"folder-ansible\",\n \"server\": \"folder-server\",\n \"servers\": \"folder-server\",\n \"backend\": \"folder-server\",\n \"client\": \"folder-client\",\n \"clients\": \"folder-client\",\n \"frontend\": \"folder-client\",\n \"pwa\": \"folder-client\",\n \"tasks\": \"folder-tasks\",\n \"tickets\": \"folder-tasks\",\n \"android\": \"folder-android\",\n \"ios\": \"folder-ios\",\n \"uploads\": \"folder-upload\",\n \"upload\": \"folder-upload\",\n \"downloads\": \"folder-download\",\n \"download\": \"folder-download\",\n \"tools\": \"folder-tools\",\n \"toolkit\": \"folder-tools\",\n \"toolkits\": \"folder-tools\",\n \"toolbox\": \"folder-tools\",\n \"toolboxes\": \"folder-tools\",\n \"helpers\": \"folder-helper\",\n \"helper\": \"folder-helper\",\n \".serverless\": \"folder-serverless\",\n \"serverless\": \"folder-serverless\",\n \"api\": \"folder-api\",\n \"apis\": \"folder-api\",\n \"restapi\": \"folder-api\",\n \"app\": \"folder-app\",\n \"apps\": \"folder-app\",\n \"apollo\": \"folder-apollo\",\n \"apollo-client\": \"folder-apollo\",\n \"apollo-cache\": \"folder-apollo\",\n \"apollo-config\": \"folder-apollo\",\n \"arc\": \"folder-archive\",\n \"arcs\": \"folder-archive\",\n \"archive\": \"folder-archive\",\n \"archives\": \"folder-archive\",\n \"archival\": \"folder-archive\",\n \"bkp\": \"folder-archive\",\n \"bkps\": \"folder-archive\",\n \"bak\": \"folder-archive\",\n \"baks\": \"folder-archive\",\n \"backup\": \"folder-archive\",\n \"backups\": \"folder-archive\",\n \"back-up\": \"folder-archive\",\n \"back-ups\": \"folder-archive\",\n \"batch\": \"folder-batch\",\n \"batchs\": \"folder-batch\",\n \"batches\": \"folder-batch\",\n \"buildkite\": \"folder-buildkite\",\n \".buildkite\": \"folder-buildkite\",\n \"cluster\": \"folder-cluster\",\n \"clusters\": \"folder-cluster\",\n \"command\": \"folder-command\",\n \"commands\": \"folder-command\",\n \"cmd\": \"folder-command\",\n \"cli\": \"folder-command\",\n \"clis\": \"folder-command\",\n \"constant\": \"folder-constant\",\n \"constants\": \"folder-constant\",\n \"container\": \"folder-container\",\n \"containers\": \"folder-container\",\n \".devcontainer\": \"folder-container\",\n \"content\": \"folder-content\",\n \"contents\": \"folder-content\",\n \"context\": \"folder-context\",\n \"contexts\": \"folder-context\",\n \"core\": \"folder-core\",\n \"delta\": \"folder-delta\",\n \"deltas\": \"folder-delta\",\n \"changes\": \"folder-delta\",\n \"dump\": \"folder-dump\",\n \"dumps\": \"folder-dump\",\n \"demo\": \"folder-examples\",\n \"demos\": \"folder-examples\",\n \"example\": \"folder-examples\",\n \"examples\": \"folder-examples\",\n \"sample\": \"folder-examples\",\n \"samples\": \"folder-examples\",\n \"sample-data\": \"folder-examples\",\n \".env\": \"folder-environment\",\n \".environment\": \"folder-environment\",\n \"env\": \"folder-environment\",\n \"envs\": \"folder-environment\",\n \"environment\": \"folder-environment\",\n \"environments\": \"folder-environment\",\n \".venv\": \"folder-environment\",\n \"func\": \"folder-functions\",\n \"funcs\": \"folder-functions\",\n \"function\": \"folder-functions\",\n \"functions\": \"folder-functions\",\n \"lambda\": \"folder-functions\",\n \"lambdas\": \"folder-functions\",\n \"logic\": \"folder-functions\",\n \"math\": \"folder-functions\",\n \"maths\": \"folder-functions\",\n \"calc\": \"folder-functions\",\n \"calcs\": \"folder-functions\",\n \"calculation\": \"folder-functions\",\n \"calculations\": \"folder-functions\",\n \"generator\": \"folder-generator\",\n \"generators\": \"folder-generator\",\n \"generated\": \"folder-generator\",\n \"cfn-gen\": \"folder-generator\",\n \"gen\": \"folder-generator\",\n \"gens\": \"folder-generator\",\n \"auto\": \"folder-generator\",\n \"hook\": \"folder-hook\",\n \"hooks\": \"folder-hook\",\n \"trigger\": \"folder-hook\",\n \"triggers\": \"folder-hook\",\n \"job\": \"folder-job\",\n \"jobs\": \"folder-job\",\n \"keys\": \"folder-keys\",\n \"key\": \"folder-keys\",\n \"token\": \"folder-keys\",\n \"tokens\": \"folder-keys\",\n \"jwt\": \"folder-keys\",\n \"layout\": \"folder-layout\",\n \"layouts\": \"folder-layout\",\n \"_layouts\": \"folder-layout\",\n \"mail\": \"folder-mail\",\n \"mails\": \"folder-mail\",\n \"email\": \"folder-mail\",\n \"emails\": \"folder-mail\",\n \"smtp\": \"folder-mail\",\n \"mailers\": \"folder-mail\",\n \"mappings\": \"folder-mappings\",\n \"mapping\": \"folder-mappings\",\n \"meta\": \"folder-meta\",\n \".changesets\": \"folder-changesets\",\n \".changeset\": \"folder-changesets\",\n \"package\": \"folder-packages\",\n \"packages\": \"folder-packages\",\n \"pkg\": \"folder-packages\",\n \"pkgs\": \"folder-packages\",\n \"shared\": \"folder-shared\",\n \"common\": \"folder-shared\",\n \"glsl\": \"folder-shader\",\n \"hlsl\": \"folder-shader\",\n \"shader\": \"folder-shader\",\n \"shaders\": \"folder-shader\",\n \"stack\": \"folder-stack\",\n \"stacks\": \"folder-stack\",\n \"template\": \"folder-template\",\n \"templates\": \"folder-template\",\n \"util\": \"folder-utils\",\n \"utils\": \"folder-utils\",\n \"utility\": \"folder-utils\",\n \"utilities\": \"folder-utils\",\n \"supabase\": \"folder-supabase\",\n \".supabase\": \"folder-supabase\",\n \"private\": \"folder-private\",\n \".private\": \"folder-private\",\n \"error\": \"folder-error\",\n \"errors\": \"folder-error\",\n \"err\": \"folder-error\",\n \"event\": \"folder-event\",\n \"events\": \"folder-event\",\n \"auth\": \"folder-secure\",\n \"authentication\": \"folder-secure\",\n \"secure\": \"folder-secure\",\n \"security\": \"folder-secure\",\n \"cert\": \"folder-secure\",\n \"certs\": \"folder-secure\",\n \"certificate\": \"folder-secure\",\n \"certificates\": \"folder-secure\",\n \"ssl\": \"folder-secure\",\n \"custom\": \"folder-custom\",\n \"customs\": \"folder-custom\",\n \"_draft\": \"folder-mock\",\n \"_drafts\": \"folder-mock\",\n \"mock\": \"folder-mock\",\n \"mocks\": \"folder-mock\",\n \"fixture\": \"folder-mock\",\n \"fixtures\": \"folder-mock\",\n \"draft\": \"folder-mock\",\n \"drafts\": \"folder-mock\",\n \"concept\": \"folder-mock\",\n \"concepts\": \"folder-mock\",\n \"sketch\": \"folder-mock\",\n \"sketches\": \"folder-mock\",\n \"syntax\": \"folder-syntax\",\n \"syntaxes\": \"folder-syntax\",\n \"spellcheck\": \"folder-syntax\",\n \"vm\": \"folder-vm\",\n \"vms\": \"folder-vm\",\n \"stylus\": \"folder-stylus\",\n \"flow-typed\": \"folder-flow\",\n \"rule\": \"folder-rules\",\n \"rules\": \"folder-rules\",\n \"validation\": \"folder-rules\",\n \"validations\": \"folder-rules\",\n \"validator\": \"folder-rules\",\n \"validators\": \"folder-rules\",\n \"review\": \"folder-review\",\n \"reviews\": \"folder-review\",\n \"revisal\": \"folder-review\",\n \"revisals\": \"folder-review\",\n \"reviewed\": \"folder-review\",\n \"anim\": \"folder-animation\",\n \"anims\": \"folder-animation\",\n \"animation\": \"folder-animation\",\n \"animations\": \"folder-animation\",\n \"animated\": \"folder-animation\",\n \"guard\": \"folder-guard\",\n \"guards\": \"folder-guard\",\n \"prisma\": \"folder-prisma\",\n \"pipe\": \"folder-pipe\",\n \"pipes\": \"folder-pipe\",\n \"svg\": \"folder-svg\",\n \"svgs\": \"folder-svg\",\n \"terraform\": \"folder-terraform\",\n \".terraform\": \"folder-terraform\",\n \"mobile\": \"folder-mobile\",\n \"mobiles\": \"folder-mobile\",\n \"portable\": \"folder-mobile\",\n \"portability\": \"folder-mobile\",\n \".stencil\": \"folder-stencil\",\n \"firebase\": \"folder-firebase\",\n \".firebase\": \"folder-firebase\",\n \"svelte\": \"folder-svelte\",\n \".svelte-kit\": \"folder-svelte\",\n \"update\": \"folder-update\",\n \"updates\": \"folder-update\",\n \"upgrade\": \"folder-update\",\n \"upgrades\": \"folder-update\",\n \".idea\": \"folder-intellij\",\n \".azure-pipelines\": \"folder-azure-pipelines\",\n \".azure-pipelines-ci\": \"folder-azure-pipelines\",\n \"mjml\": \"folder-mjml\",\n \"admin\": \"folder-admin\",\n \"manager\": \"folder-admin\",\n \"moderator\": \"folder-admin\",\n \"scala\": \"folder-scala\",\n \"connection\": \"folder-connection\",\n \"connections\": \"folder-connection\",\n \"integration\": \"folder-connection\",\n \"integrations\": \"folder-connection\",\n \".quasar\": \"folder-quasar\",\n \".next\": \"folder-next\",\n \"cobol\": \"folder-cobol\",\n \"yarn\": \"folder-yarn\",\n \".yarn\": \"folder-yarn\",\n \"husky\": \"folder-husky\",\n \".husky\": \"folder-husky\",\n \".storybook\": \"folder-storybook\",\n \"storybook\": \"folder-storybook\",\n \"stories\": \"folder-storybook\",\n \"__stories__\": \"folder-storybook\",\n \"base\": \"folder-base\",\n \".base\": \"folder-base\",\n \"bases\": \"folder-base\",\n \"cart\": \"folder-cart\",\n \"shopping-cart\": \"folder-cart\",\n \"shopping\": \"folder-cart\",\n \"shop\": \"folder-cart\",\n \"home\": \"folder-home\",\n \".home\": \"folder-home\",\n \"start\": \"folder-home\",\n \".start\": \"folder-home\",\n \"project\": \"folder-project\",\n \"projects\": \"folder-project\",\n \".project\": \"folder-project\",\n \".projects\": \"folder-project\",\n \"interface\": \"folder-interface\",\n \"interfaces\": \"folder-interface\",\n \".netlify\": \"folder-netlify\",\n \"pact\": \"folder-contract\",\n \"pacts\": \"folder-contract\",\n \"contract\": \"folder-contract\",\n \".contract\": \"folder-contract\",\n \"contracts\": \"folder-contract\",\n \"contract-testing\": \"folder-contract\",\n \"contract-test\": \"folder-contract\",\n \"contract-tests\": \"folder-contract\",\n \"queue\": \"folder-queue\",\n \"queues\": \"folder-queue\",\n \"bull\": \"folder-queue\",\n \"mq\": \"folder-queue\",\n \"vercel\": \"folder-vercel\",\n \".vercel\": \"folder-vercel\",\n \"now\": \"folder-vercel\",\n \".now\": \"folder-vercel\",\n \"cypress\": \"folder-cypress\",\n \".cypress\": \"folder-cypress\",\n \"decorator\": \"folder-decorators\",\n \"decorators\": \"folder-decorators\",\n \"java\": \"folder-java\",\n \"resolver\": \"folder-resolver\",\n \"resolvers\": \"folder-resolver\",\n \"angular\": \"folder-angular\",\n \".angular\": \"folder-angular\",\n \"unity\": \"folder-unity\",\n \"pdf\": \"folder-pdf\",\n \"pdfs\": \"folder-pdf\",\n \"protobufs\": \"folder-proto\",\n \"proto\": \"folder-proto\",\n \"plastic\": \"folder-plastic\",\n \".plastic\": \"folder-plastic\",\n \"gamemaker\": \"folder-gamemaker\",\n \"gamemaker2\": \"folder-gamemaker\",\n \".hg\": \"folder-mercurial\",\n \"hghooks\": \"folder-mercurial\",\n \".hghooks\": \"folder-mercurial\",\n \".hgext\": \"folder-mercurial\",\n \"godot\": \"folder-godot\",\n \".godot\": \"folder-godot\",\n \"godot-cpp\": \"folder-godot\",\n \".godot-cpp\": \"folder-godot\"\n },\n \"folderNamesExpanded\": {\n \"src\": \"folder-src-open\",\n \"srcs\": \"folder-src-open\",\n \"source\": \"folder-src-open\",\n \"sources\": \"folder-src-open\",\n \"code\": \"folder-src-open\",\n \"dist\": \"folder-dist-open\",\n \"out\": \"folder-dist-open\",\n \"build\": \"folder-dist-open\",\n \"release\": \"folder-dist-open\",\n \"bin\": \"folder-dist-open\",\n \"css\": \"folder-css-open\",\n \"stylesheet\": \"folder-css-open\",\n \"stylesheets\": \"folder-css-open\",\n \"style\": \"folder-css-open\",\n \"styles\": \"folder-css-open\",\n \"sass\": \"folder-sass-open\",\n \"_sass\": \"folder-sass-open\",\n \"scss\": \"folder-sass-open\",\n \"_scss\": \"folder-sass-open\",\n \"_images\": \"folder-images-open\",\n \"_image\": \"folder-images-open\",\n \"_imgs\": \"folder-images-open\",\n \"_img\": \"folder-images-open\",\n \"images\": \"folder-images-open\",\n \"image\": \"folder-images-open\",\n \"imgs\": \"folder-images-open\",\n \"img\": \"folder-images-open\",\n \"icons\": \"folder-images-open\",\n \"icon\": \"folder-images-open\",\n \"icos\": \"folder-images-open\",\n \"ico\": \"folder-images-open\",\n \"figures\": \"folder-images-open\",\n \"figure\": \"folder-images-open\",\n \"figs\": \"folder-images-open\",\n \"fig\": \"folder-images-open\",\n \"screenshot\": \"folder-images-open\",\n \"screenshots\": \"folder-images-open\",\n \"screengrab\": \"folder-images-open\",\n \"screengrabs\": \"folder-images-open\",\n \"pic\": \"folder-images-open\",\n \"pics\": \"folder-images-open\",\n \"picture\": \"folder-images-open\",\n \"pictures\": \"folder-images-open\",\n \"script\": \"folder-scripts-open\",\n \"scripts\": \"folder-scripts-open\",\n \"node_modules\": \"folder-node-open\",\n \"js\": \"folder-javascript-open\",\n \"javascript\": \"folder-javascript-open\",\n \"javascripts\": \"folder-javascript-open\",\n \"json\": \"folder-json-open\",\n \"jsons\": \"folder-json-open\",\n \"font\": \"folder-font-open\",\n \"fonts\": \"folder-font-open\",\n \"bower_components\": \"folder-bower-open\",\n \"test\": \"folder-test-open\",\n \"tests\": \"folder-test-open\",\n \"testing\": \"folder-test-open\",\n \"__tests__\": \"folder-test-open\",\n \"__snapshots__\": \"folder-test-open\",\n \"__mocks__\": \"folder-test-open\",\n \"__fixtures__\": \"folder-test-open\",\n \"__test__\": \"folder-test-open\",\n \"spec\": \"folder-test-open\",\n \"specs\": \"folder-test-open\",\n \"jinja\": \"folder-jinja-open\",\n \"jinja2\": \"folder-jinja-open\",\n \"j2\": \"folder-jinja-open\",\n \"markdown\": \"folder-markdown-open\",\n \"md\": \"folder-markdown-open\",\n \"php\": \"folder-php-open\",\n \"phpmailer\": \"folder-phpmailer-open\",\n \"sublime\": \"folder-sublime-open\",\n \"_post\": \"folder-docs-open\",\n \"_posts\": \"folder-docs-open\",\n \"doc\": \"folder-docs-open\",\n \"docs\": \"folder-docs-open\",\n \"document\": \"folder-docs-open\",\n \"documents\": \"folder-docs-open\",\n \"documentation\": \"folder-docs-open\",\n \"post\": \"folder-docs-open\",\n \"posts\": \"folder-docs-open\",\n \"article\": \"folder-docs-open\",\n \"articles\": \"folder-docs-open\",\n \".git\": \"folder-git-open\",\n \"patches\": \"folder-git-open\",\n \"githooks\": \"folder-git-open\",\n \".githooks\": \"folder-git-open\",\n \"submodules\": \"folder-git-open\",\n \".submodules\": \"folder-git-open\",\n \".github\": \"folder-github-open\",\n \"github\": \"folder-github-open\",\n \".gitlab\": \"folder-gitlab-open\",\n \".vscode\": \"folder-vscode-open\",\n \".vscode-test\": \"folder-vscode-open\",\n \"view\": \"folder-views-open\",\n \"views\": \"folder-views-open\",\n \"screen\": \"folder-views-open\",\n \"screens\": \"folder-views-open\",\n \"page\": \"folder-views-open\",\n \"pages\": \"folder-views-open\",\n \"html\": \"folder-views-open\",\n \"vue\": \"folder-vue-open\",\n \".vuepress\": \"folder-vuepress-open\",\n \".expo\": \"folder-expo-open\",\n \".expo-shared\": \"folder-expo-open\",\n \"cfg\": \"folder-config-open\",\n \"cfgs\": \"folder-config-open\",\n \"conf\": \"folder-config-open\",\n \"confs\": \"folder-config-open\",\n \"config\": \"folder-config-open\",\n \"configs\": \"folder-config-open\",\n \"configuration\": \"folder-config-open\",\n \"configurations\": \"folder-config-open\",\n \"setting\": \"folder-config-open\",\n \".setting\": \"folder-config-open\",\n \"settings\": \"folder-config-open\",\n \".settings\": \"folder-config-open\",\n \"META-INF\": \"folder-config-open\",\n \"i18n\": \"folder-i18n-open\",\n \"internationalization\": \"folder-i18n-open\",\n \"lang\": \"folder-i18n-open\",\n \"langs\": \"folder-i18n-open\",\n \"language\": \"folder-i18n-open\",\n \"languages\": \"folder-i18n-open\",\n \"locale\": \"folder-i18n-open\",\n \"locales\": \"folder-i18n-open\",\n \"l10n\": \"folder-i18n-open\",\n \"localization\": \"folder-i18n-open\",\n \"translation\": \"folder-i18n-open\",\n \"translate\": \"folder-i18n-open\",\n \"translations\": \"folder-i18n-open\",\n \".tx\": \"folder-i18n-open\",\n \"components\": \"folder-components-open\",\n \"widget\": \"folder-components-open\",\n \"widgets\": \"folder-components-open\",\n \"fragments\": \"folder-components-open\",\n \".verdaccio\": \"folder-verdaccio-open\",\n \"verdaccio\": \"folder-verdaccio-open\",\n \"aurelia_project\": \"folder-aurelia-open\",\n \"resource\": \"folder-resource-open\",\n \"resources\": \"folder-resource-open\",\n \"res\": \"folder-resource-open\",\n \"asset\": \"folder-resource-open\",\n \"assets\": \"folder-resource-open\",\n \"static\": \"folder-resource-open\",\n \"report\": \"folder-resource-open\",\n \"reports\": \"folder-resource-open\",\n \"lib\": \"folder-lib-open\",\n \"libs\": \"folder-lib-open\",\n \"library\": \"folder-lib-open\",\n \"libraries\": \"folder-lib-open\",\n \"vendor\": \"folder-lib-open\",\n \"vendors\": \"folder-lib-open\",\n \"third-party\": \"folder-lib-open\",\n \"themes\": \"folder-theme-open\",\n \"theme\": \"folder-theme-open\",\n \"color\": \"folder-theme-open\",\n \"colors\": \"folder-theme-open\",\n \"design\": \"folder-theme-open\",\n \"designs\": \"folder-theme-open\",\n \"webpack\": \"folder-webpack-open\",\n \".webpack\": \"folder-webpack-open\",\n \"global\": \"folder-global-open\",\n \"_site\": \"folder-public-open\",\n \"public\": \"folder-public-open\",\n \"www\": \"folder-public-open\",\n \"wwwroot\": \"folder-public-open\",\n \"web\": \"folder-public-open\",\n \"website\": \"folder-public-open\",\n \"site\": \"folder-public-open\",\n \"browser\": \"folder-public-open\",\n \"browsers\": \"folder-public-open\",\n \"include\": \"folder-include-open\",\n \"includes\": \"folder-include-open\",\n \"_includes\": \"folder-include-open\",\n \"inc\": \"folder-include-open\",\n \"partials\": \"folder-include-open\",\n \"_partials\": \"folder-include-open\",\n \"docker\": \"folder-docker-open\",\n \"dockerfiles\": \"folder-docker-open\",\n \".docker\": \"folder-docker-open\",\n \"db\": \"folder-database-open\",\n \"database\": \"folder-database-open\",\n \"databases\": \"folder-database-open\",\n \"sql\": \"folder-database-open\",\n \"data\": \"folder-database-open\",\n \"_data\": \"folder-database-open\",\n \"log\": \"folder-log-open\",\n \"logs\": \"folder-log-open\",\n \"target\": \"folder-target-open\",\n \"temp\": \"folder-temp-open\",\n \".temp\": \"folder-temp-open\",\n \"tmp\": \"folder-temp-open\",\n \".tmp\": \"folder-temp-open\",\n \"cached\": \"folder-temp-open\",\n \"cache\": \"folder-temp-open\",\n \".cache\": \"folder-temp-open\",\n \"aws\": \"folder-aws-open\",\n \".aws\": \"folder-aws-open\",\n \"aud\": \"folder-audio-open\",\n \"auds\": \"folder-audio-open\",\n \"audio\": \"folder-audio-open\",\n \"audios\": \"folder-audio-open\",\n \"music\": \"folder-audio-open\",\n \"sound\": \"folder-audio-open\",\n \"sounds\": \"folder-audio-open\",\n \"vid\": \"folder-video-open\",\n \"vids\": \"folder-video-open\",\n \"video\": \"folder-video-open\",\n \"videos\": \"folder-video-open\",\n \"movie\": \"folder-video-open\",\n \"movies\": \"folder-video-open\",\n \"kubernetes\": \"folder-kubernetes-open\",\n \".kubernetes\": \"folder-kubernetes-open\",\n \"k8s\": \"folder-kubernetes-open\",\n \".k8s\": \"folder-kubernetes-open\",\n \"import\": \"folder-import-open\",\n \"imports\": \"folder-import-open\",\n \"imported\": \"folder-import-open\",\n \"export\": \"folder-export-open\",\n \"exports\": \"folder-export-open\",\n \"exported\": \"folder-export-open\",\n \"wakatime\": \"folder-wakatime-open\",\n \".circleci\": \"folder-circleci-open\",\n \".wordpress-org\": \"folder-wordpress-open\",\n \"wp-content\": \"folder-wordpress-open\",\n \"gradle\": \"folder-gradle-open\",\n \".gradle\": \"folder-gradle-open\",\n \"coverage\": \"folder-coverage-open\",\n \".nyc-output\": \"folder-coverage-open\",\n \".nyc_output\": \"folder-coverage-open\",\n \"e2e\": \"folder-coverage-open\",\n \"it\": \"folder-coverage-open\",\n \"integration-test\": \"folder-coverage-open\",\n \"integration-tests\": \"folder-coverage-open\",\n \"__integration-test__\": \"folder-coverage-open\",\n \"__integration-tests__\": \"folder-coverage-open\",\n \"class\": \"folder-class-open\",\n \"classes\": \"folder-class-open\",\n \"model\": \"folder-class-open\",\n \"models\": \"folder-class-open\",\n \"schemas\": \"folder-class-open\",\n \"schema\": \"folder-class-open\",\n \"other\": \"folder-other-open\",\n \"others\": \"folder-other-open\",\n \"misc\": \"folder-other-open\",\n \"miscellaneous\": \"folder-other-open\",\n \"extra\": \"folder-other-open\",\n \"extras\": \"folder-other-open\",\n \"etc\": \"folder-other-open\",\n \"lua\": \"folder-lua-open\",\n \"typescript\": \"folder-typescript-open\",\n \"ts\": \"folder-typescript-open\",\n \"typings\": \"folder-typescript-open\",\n \"@types\": \"folder-typescript-open\",\n \"types\": \"folder-typescript-open\",\n \"graphql\": \"folder-graphql-open\",\n \"gql\": \"folder-graphql-open\",\n \"routes\": \"folder-routes-open\",\n \"router\": \"folder-routes-open\",\n \"routers\": \"folder-routes-open\",\n \".ci\": \"folder-ci-open\",\n \"ci\": \"folder-ci-open\",\n \"benchmark\": \"folder-benchmark-open\",\n \"benchmarks\": \"folder-benchmark-open\",\n \"performance\": \"folder-benchmark-open\",\n \"measure\": \"folder-benchmark-open\",\n \"measures\": \"folder-benchmark-open\",\n \"measurement\": \"folder-benchmark-open\",\n \"messages\": \"folder-messages-open\",\n \"messaging\": \"folder-messages-open\",\n \"forum\": \"folder-messages-open\",\n \"chat\": \"folder-messages-open\",\n \"chats\": \"folder-messages-open\",\n \"conversation\": \"folder-messages-open\",\n \"conversations\": \"folder-messages-open\",\n \"less\": \"folder-less-open\",\n \"gulp\": \"folder-gulp-open\",\n \"gulp-tasks\": \"folder-gulp-open\",\n \"gulpfile.js\": \"folder-gulp-open\",\n \"gulpfile.mjs\": \"folder-gulp-open\",\n \"gulpfile.ts\": \"folder-gulp-open\",\n \"gulpfile.babel.js\": \"folder-gulp-open\",\n \"python\": \"folder-python-open\",\n \"__pycache__\": \"folder-python-open\",\n \".pytest_cache\": \"folder-python-open\",\n \"debug\": \"folder-debug-open\",\n \"debugging\": \"folder-debug-open\",\n \"fastlane\": \"folder-fastlane-open\",\n \"plugin\": \"folder-plugin-open\",\n \"plugins\": \"folder-plugin-open\",\n \"_plugins\": \"folder-plugin-open\",\n \"extension\": \"folder-plugin-open\",\n \"extensions\": \"folder-plugin-open\",\n \"addon\": \"folder-plugin-open\",\n \"addons\": \"folder-plugin-open\",\n \"module\": \"folder-plugin-open\",\n \"modules\": \"folder-plugin-open\",\n \"middleware\": \"folder-middleware-open\",\n \"middlewares\": \"folder-middleware-open\",\n \"controller\": \"folder-controller-open\",\n \"controllers\": \"folder-controller-open\",\n \"service\": \"folder-controller-open\",\n \"services\": \"folder-controller-open\",\n \"provider\": \"folder-controller-open\",\n \"providers\": \"folder-controller-open\",\n \"handler\": \"folder-controller-open\",\n \"handlers\": \"folder-controller-open\",\n \"ansible\": \"folder-ansible-open\",\n \"server\": \"folder-server-open\",\n \"servers\": \"folder-server-open\",\n \"backend\": \"folder-server-open\",\n \"client\": \"folder-client-open\",\n \"clients\": \"folder-client-open\",\n \"frontend\": \"folder-client-open\",\n \"pwa\": \"folder-client-open\",\n \"tasks\": \"folder-tasks-open\",\n \"tickets\": \"folder-tasks-open\",\n \"android\": \"folder-android-open\",\n \"ios\": \"folder-ios-open\",\n \"uploads\": \"folder-upload-open\",\n \"upload\": \"folder-upload-open\",\n \"downloads\": \"folder-download-open\",\n \"download\": \"folder-download-open\",\n \"tools\": \"folder-tools-open\",\n \"toolkit\": \"folder-tools-open\",\n \"toolkits\": \"folder-tools-open\",\n \"toolbox\": \"folder-tools-open\",\n \"toolboxes\": \"folder-tools-open\",\n \"helpers\": \"folder-helper-open\",\n \"helper\": \"folder-helper-open\",\n \".serverless\": \"folder-serverless-open\",\n \"serverless\": \"folder-serverless-open\",\n \"api\": \"folder-api-open\",\n \"apis\": \"folder-api-open\",\n \"restapi\": \"folder-api-open\",\n \"app\": \"folder-app-open\",\n \"apps\": \"folder-app-open\",\n \"apollo\": \"folder-apollo-open\",\n \"apollo-client\": \"folder-apollo-open\",\n \"apollo-cache\": \"folder-apollo-open\",\n \"apollo-config\": \"folder-apollo-open\",\n \"arc\": \"folder-archive-open\",\n \"arcs\": \"folder-archive-open\",\n \"archive\": \"folder-archive-open\",\n \"archives\": \"folder-archive-open\",\n \"archival\": \"folder-archive-open\",\n \"bkp\": \"folder-archive-open\",\n \"bkps\": \"folder-archive-open\",\n \"bak\": \"folder-archive-open\",\n \"baks\": \"folder-archive-open\",\n \"backup\": \"folder-archive-open\",\n \"backups\": \"folder-archive-open\",\n \"back-up\": \"folder-archive-open\",\n \"back-ups\": \"folder-archive-open\",\n \"batch\": \"folder-batch-open\",\n \"batchs\": \"folder-batch-open\",\n \"batches\": \"folder-batch-open\",\n \"buildkite\": \"folder-buildkite-open\",\n \".buildkite\": \"folder-buildkite-open\",\n \"cluster\": \"folder-cluster-open\",\n \"clusters\": \"folder-cluster-open\",\n \"command\": \"folder-command-open\",\n \"commands\": \"folder-command-open\",\n \"cmd\": \"folder-command-open\",\n \"cli\": \"folder-command-open\",\n \"clis\": \"folder-command-open\",\n \"constant\": \"folder-constant-open\",\n \"constants\": \"folder-constant-open\",\n \"container\": \"folder-container-open\",\n \"containers\": \"folder-container-open\",\n \".devcontainer\": \"folder-container-open\",\n \"content\": \"folder-content-open\",\n \"contents\": \"folder-content-open\",\n \"context\": \"folder-context-open\",\n \"contexts\": \"folder-context-open\",\n \"core\": \"folder-core-open\",\n \"delta\": \"folder-delta-open\",\n \"deltas\": \"folder-delta-open\",\n \"changes\": \"folder-delta-open\",\n \"dump\": \"folder-dump-open\",\n \"dumps\": \"folder-dump-open\",\n \"demo\": \"folder-examples-open\",\n \"demos\": \"folder-examples-open\",\n \"example\": \"folder-examples-open\",\n \"examples\": \"folder-examples-open\",\n \"sample\": \"folder-examples-open\",\n \"samples\": \"folder-examples-open\",\n \"sample-data\": \"folder-examples-open\",\n \".env\": \"folder-environment-open\",\n \".environment\": \"folder-environment-open\",\n \"env\": \"folder-environment-open\",\n \"envs\": \"folder-environment-open\",\n \"environment\": \"folder-environment-open\",\n \"environments\": \"folder-environment-open\",\n \".venv\": \"folder-environment-open\",\n \"func\": \"folder-functions-open\",\n \"funcs\": \"folder-functions-open\",\n \"function\": \"folder-functions-open\",\n \"functions\": \"folder-functions-open\",\n \"lambda\": \"folder-functions-open\",\n \"lambdas\": \"folder-functions-open\",\n \"logic\": \"folder-functions-open\",\n \"math\": \"folder-functions-open\",\n \"maths\": \"folder-functions-open\",\n \"calc\": \"folder-functions-open\",\n \"calcs\": \"folder-functions-open\",\n \"calculation\": \"folder-functions-open\",\n \"calculations\": \"folder-functions-open\",\n \"generator\": \"folder-generator-open\",\n \"generators\": \"folder-generator-open\",\n \"generated\": \"folder-generator-open\",\n \"cfn-gen\": \"folder-generator-open\",\n \"gen\": \"folder-generator-open\",\n \"gens\": \"folder-generator-open\",\n \"auto\": \"folder-generator-open\",\n \"hook\": \"folder-hook-open\",\n \"hooks\": \"folder-hook-open\",\n \"trigger\": \"folder-hook-open\",\n \"triggers\": \"folder-hook-open\",\n \"job\": \"folder-job-open\",\n \"jobs\": \"folder-job-open\",\n \"keys\": \"folder-keys-open\",\n \"key\": \"folder-keys-open\",\n \"token\": \"folder-keys-open\",\n \"tokens\": \"folder-keys-open\",\n \"jwt\": \"folder-keys-open\",\n \"layout\": \"folder-layout-open\",\n \"layouts\": \"folder-layout-open\",\n \"_layouts\": \"folder-layout-open\",\n \"mail\": \"folder-mail-open\",\n \"mails\": \"folder-mail-open\",\n \"email\": \"folder-mail-open\",\n \"emails\": \"folder-mail-open\",\n \"smtp\": \"folder-mail-open\",\n \"mailers\": \"folder-mail-open\",\n \"mappings\": \"folder-mappings-open\",\n \"mapping\": \"folder-mappings-open\",\n \"meta\": \"folder-meta-open\",\n \".changesets\": \"folder-changesets-open\",\n \".changeset\": \"folder-changesets-open\",\n \"package\": \"folder-packages-open\",\n \"packages\": \"folder-packages-open\",\n \"pkg\": \"folder-packages-open\",\n \"pkgs\": \"folder-packages-open\",\n \"shared\": \"folder-shared-open\",\n \"common\": \"folder-shared-open\",\n \"glsl\": \"folder-shader-open\",\n \"hlsl\": \"folder-shader-open\",\n \"shader\": \"folder-shader-open\",\n \"shaders\": \"folder-shader-open\",\n \"stack\": \"folder-stack-open\",\n \"stacks\": \"folder-stack-open\",\n \"template\": \"folder-template-open\",\n \"templates\": \"folder-template-open\",\n \"util\": \"folder-utils-open\",\n \"utils\": \"folder-utils-open\",\n \"utility\": \"folder-utils-open\",\n \"utilities\": \"folder-utils-open\",\n \"supabase\": \"folder-supabase-open\",\n \".supabase\": \"folder-supabase-open\",\n \"private\": \"folder-private-open\",\n \".private\": \"folder-private-open\",\n \"error\": \"folder-error-open\",\n \"errors\": \"folder-error-open\",\n \"err\": \"folder-error-open\",\n \"event\": \"folder-event-open\",\n \"events\": \"folder-event-open\",\n \"auth\": \"folder-secure-open\",\n \"authentication\": \"folder-secure-open\",\n \"secure\": \"folder-secure-open\",\n \"security\": \"folder-secure-open\",\n \"cert\": \"folder-secure-open\",\n \"certs\": \"folder-secure-open\",\n \"certificate\": \"folder-secure-open\",\n \"certificates\": \"folder-secure-open\",\n \"ssl\": \"folder-secure-open\",\n \"custom\": \"folder-custom-open\",\n \"customs\": \"folder-custom-open\",\n \"_draft\": \"folder-mock-open\",\n \"_drafts\": \"folder-mock-open\",\n \"mock\": \"folder-mock-open\",\n \"mocks\": \"folder-mock-open\",\n \"fixture\": \"folder-mock-open\",\n \"fixtures\": \"folder-mock-open\",\n \"draft\": \"folder-mock-open\",\n \"drafts\": \"folder-mock-open\",\n \"concept\": \"folder-mock-open\",\n \"concepts\": \"folder-mock-open\",\n \"sketch\": \"folder-mock-open\",\n \"sketches\": \"folder-mock-open\",\n \"syntax\": \"folder-syntax-open\",\n \"syntaxes\": \"folder-syntax-open\",\n \"spellcheck\": \"folder-syntax-open\",\n \"vm\": \"folder-vm-open\",\n \"vms\": \"folder-vm-open\",\n \"stylus\": \"folder-stylus-open\",\n \"flow-typed\": \"folder-flow-open\",\n \"rule\": \"folder-rules-open\",\n \"rules\": \"folder-rules-open\",\n \"validation\": \"folder-rules-open\",\n \"validations\": \"folder-rules-open\",\n \"validator\": \"folder-rules-open\",\n \"validators\": \"folder-rules-open\",\n \"review\": \"folder-review-open\",\n \"reviews\": \"folder-review-open\",\n \"revisal\": \"folder-review-open\",\n \"revisals\": \"folder-review-open\",\n \"reviewed\": \"folder-review-open\",\n \"anim\": \"folder-animation-open\",\n \"anims\": \"folder-animation-open\",\n \"animation\": \"folder-animation-open\",\n \"animations\": \"folder-animation-open\",\n \"animated\": \"folder-animation-open\",\n \"guard\": \"folder-guard-open\",\n \"guards\": \"folder-guard-open\",\n \"prisma\": \"folder-prisma-open\",\n \"pipe\": \"folder-pipe-open\",\n \"pipes\": \"folder-pipe-open\",\n \"svg\": \"folder-svg-open\",\n \"svgs\": \"folder-svg-open\",\n \"terraform\": \"folder-terraform-open\",\n \".terraform\": \"folder-terraform-open\",\n \"mobile\": \"folder-mobile-open\",\n \"mobiles\": \"folder-mobile-open\",\n \"portable\": \"folder-mobile-open\",\n \"portability\": \"folder-mobile-open\",\n \".stencil\": \"folder-stencil-open\",\n \"firebase\": \"folder-firebase-open\",\n \".firebase\": \"folder-firebase-open\",\n \"svelte\": \"folder-svelte-open\",\n \".svelte-kit\": \"folder-svelte-open\",\n \"update\": \"folder-update-open\",\n \"updates\": \"folder-update-open\",\n \"upgrade\": \"folder-update-open\",\n \"upgrades\": \"folder-update-open\",\n \".idea\": \"folder-intellij-open\",\n \".azure-pipelines\": \"folder-azure-pipelines-open\",\n \".azure-pipelines-ci\": \"folder-azure-pipelines-open\",\n \"mjml\": \"folder-mjml-open\",\n \"admin\": \"folder-admin-open\",\n \"manager\": \"folder-admin-open\",\n \"moderator\": \"folder-admin-open\",\n \"scala\": \"folder-scala-open\",\n \"connection\": \"folder-connection-open\",\n \"connections\": \"folder-connection-open\",\n \"integration\": \"folder-connection-open\",\n \"integrations\": \"folder-connection-open\",\n \".quasar\": \"folder-quasar-open\",\n \".next\": \"folder-next-open\",\n \"cobol\": \"folder-cobol-open\",\n \"yarn\": \"folder-yarn-open\",\n \".yarn\": \"folder-yarn-open\",\n \"husky\": \"folder-husky-open\",\n \".husky\": \"folder-husky-open\",\n \".storybook\": \"folder-storybook-open\",\n \"storybook\": \"folder-storybook-open\",\n \"stories\": \"folder-storybook-open\",\n \"__stories__\": \"folder-storybook-open\",\n \"base\": \"folder-base-open\",\n \".base\": \"folder-base-open\",\n \"bases\": \"folder-base-open\",\n \"cart\": \"folder-cart-open\",\n \"shopping-cart\": \"folder-cart-open\",\n \"shopping\": \"folder-cart-open\",\n \"shop\": \"folder-cart-open\",\n \"home\": \"folder-home-open\",\n \".home\": \"folder-home-open\",\n \"start\": \"folder-home-open\",\n \".start\": \"folder-home-open\",\n \"project\": \"folder-project-open\",\n \"projects\": \"folder-project-open\",\n \".project\": \"folder-project-open\",\n \".projects\": \"folder-project-open\",\n \"interface\": \"folder-interface-open\",\n \"interfaces\": \"folder-interface-open\",\n \".netlify\": \"folder-netlify-open\",\n \"pact\": \"folder-contract-open\",\n \"pacts\": \"folder-contract-open\",\n \"contract\": \"folder-contract-open\",\n \".contract\": \"folder-contract-open\",\n \"contracts\": \"folder-contract-open\",\n \"contract-testing\": \"folder-contract-open\",\n \"contract-test\": \"folder-contract-open\",\n \"contract-tests\": \"folder-contract-open\",\n \"queue\": \"folder-queue-open\",\n \"queues\": \"folder-queue-open\",\n \"bull\": \"folder-queue-open\",\n \"mq\": \"folder-queue-open\",\n \"vercel\": \"folder-vercel-open\",\n \".vercel\": \"folder-vercel-open\",\n \"now\": \"folder-vercel-open\",\n \".now\": \"folder-vercel-open\",\n \"cypress\": \"folder-cypress-open\",\n \".cypress\": \"folder-cypress-open\",\n \"decorator\": \"folder-decorators-open\",\n \"decorators\": \"folder-decorators-open\",\n \"java\": \"folder-java-open\",\n \"resolver\": \"folder-resolver-open\",\n \"resolvers\": \"folder-resolver-open\",\n \"angular\": \"folder-angular-open\",\n \".angular\": \"folder-angular-open\",\n \"unity\": \"folder-unity-open\",\n \"pdf\": \"folder-pdf-open\",\n \"pdfs\": \"folder-pdf-open\",\n \"protobufs\": \"folder-proto-open\",\n \"proto\": \"folder-proto-open\",\n \"plastic\": \"folder-plastic-open\",\n \".plastic\": \"folder-plastic-open\",\n \"gamemaker\": \"folder-gamemaker-open\",\n \"gamemaker2\": \"folder-gamemaker-open\",\n \".hg\": \"folder-mercurial-open\",\n \"hghooks\": \"folder-mercurial-open\",\n \".hghooks\": \"folder-mercurial-open\",\n \".hgext\": \"folder-mercurial-open\",\n \"godot\": \"folder-godot-open\",\n \".godot\": \"folder-godot-open\",\n \"godot-cpp\": \"folder-godot-open\",\n \".godot-cpp\": \"folder-godot-open\"\n },\n \"fileExtensions\": {\n \"htm\": \"html\",\n \"xhtml\": \"html\",\n \"html_vm\": \"html\",\n \"asp\": \"html\",\n \"jade\": \"pug\",\n \"pug\": \"pug\",\n \"md\": \"markdown\",\n \"markdown\": \"markdown\",\n \"rst\": \"markdown\",\n \"blink\": \"blink\",\n \"css\": \"css\",\n \"scss\": \"sass\",\n \"sass\": \"sass\",\n \"less\": \"less\",\n \"json\": \"json\",\n \"jsonc\": \"json\",\n \"tsbuildinfo\": \"json\",\n \"json5\": \"json\",\n \"jsonl\": \"json\",\n \"ndjson\": \"json\",\n \"jinja\": \"jinja\",\n \"jinja2\": \"jinja\",\n \"j2\": \"jinja\",\n \"jinja-html\": \"jinja\",\n \"proto\": \"proto\",\n \"sublime-project\": \"sublime\",\n \"sublime-workspace\": \"sublime\",\n \"tw\": \"twine\",\n \"twee\": \"twine\",\n \"yml\": \"yaml\",\n \"yaml\": \"yaml\",\n \"yml.dist\": \"yaml\",\n \"yaml.dist\": \"yaml\",\n \"YAML-tmLanguage\": \"yaml\",\n \"xml\": \"xml\",\n \"plist\": \"xml\",\n \"xsd\": \"xml\",\n \"dtd\": \"xml\",\n \"xsl\": \"xml\",\n \"xslt\": \"xml\",\n \"resx\": \"xml\",\n \"iml\": \"xml\",\n \"xquery\": \"xml\",\n \"tmLanguage\": \"xml\",\n \"manifest\": \"xml\",\n \"project\": \"xml\",\n \"xml.dist\": \"xml\",\n \"xml.dist.sample\": \"xml\",\n \"dmn\": \"xml\",\n \"jrxml\": \"xml\",\n \"png\": \"image\",\n \"jpeg\": \"image\",\n \"jpg\": \"image\",\n \"gif\": \"image\",\n \"ico\": \"image\",\n \"tif\": \"image\",\n \"tiff\": \"image\",\n \"psd\": \"image\",\n \"psb\": \"image\",\n \"ami\": \"image\",\n \"apx\": \"image\",\n \"avif\": \"image\",\n \"bmp\": \"image\",\n \"bpg\": \"image\",\n \"brk\": \"image\",\n \"cur\": \"image\",\n \"dds\": \"image\",\n \"dng\": \"image\",\n \"exr\": \"image\",\n \"fpx\": \"image\",\n \"gbr\": \"image\",\n \"img\": \"image\",\n \"jbig2\": \"image\",\n \"jb2\": \"image\",\n \"jng\": \"image\",\n \"jxr\": \"image\",\n \"pgf\": \"image\",\n \"pic\": \"image\",\n \"raw\": \"image\",\n \"webp\": \"image\",\n \"eps\": \"image\",\n \"afphoto\": \"image\",\n \"ase\": \"image\",\n \"aseprite\": \"image\",\n \"clip\": \"image\",\n \"cpt\": \"image\",\n \"heif\": \"image\",\n \"heic\": \"image\",\n \"kra\": \"image\",\n \"mdp\": \"image\",\n \"ora\": \"image\",\n \"pdn\": \"image\",\n \"reb\": \"image\",\n \"sai\": \"image\",\n \"tga\": \"image\",\n \"xcf\": \"image\",\n \"jfif\": \"image\",\n \"ppm\": \"image\",\n \"pbm\": \"image\",\n \"pgm\": \"image\",\n \"pnm\": \"image\",\n \"icns\": \"image\",\n \"esx\": \"javascript\",\n \"mjs\": \"javascript\",\n \"jsx\": \"react\",\n \"tsx\": \"react_ts\",\n \"routing.ts\": \"routing\",\n \"routing.tsx\": \"routing\",\n \"routing.js\": \"routing\",\n \"routing.jsx\": \"routing\",\n \"routes.ts\": \"routing\",\n \"routes.tsx\": \"routing\",\n \"routes.js\": \"routing\",\n \"routes.jsx\": \"routing\",\n \"ini\": \"settings\",\n \"dlc\": \"settings\",\n \"dll\": \"settings\",\n \"config\": \"settings\",\n \"conf\": \"settings\",\n \"properties\": \"settings\",\n \"prop\": \"settings\",\n \"settings\": \"settings\",\n \"option\": \"settings\",\n \"props\": \"settings\",\n \"toml\": \"settings\",\n \"prefs\": \"settings\",\n \"sln.dotsettings\": \"settings\",\n \"sln.dotsettings.user\": \"settings\",\n \"cfg\": \"settings\",\n \"d.ts\": \"typescript-def\",\n \"d.cts\": \"typescript-def\",\n \"d.mts\": \"typescript-def\",\n \"marko\": \"markojs\",\n \"astro\": \"astro\",\n \"pdf\": \"pdf\",\n \"xlsx\": \"table\",\n \"xlsm\": \"table\",\n \"xls\": \"table\",\n \"csv\": \"table\",\n \"tsv\": \"table\",\n \"psv\": \"table\",\n \"ods\": \"table\",\n \"vscodeignore\": \"vscode\",\n \"vsixmanifest\": \"vscode\",\n \"vsix\": \"vscode\",\n \"code-workplace\": \"vscode\",\n \"code-workspace\": \"vscode\",\n \"code-profile\": \"vscode\",\n \"code-snippets\": \"vscode\",\n \"csproj\": \"visualstudio\",\n \"ruleset\": \"visualstudio\",\n \"sln\": \"visualstudio\",\n \"suo\": \"visualstudio\",\n \"vb\": \"visualstudio\",\n \"vbs\": \"visualstudio\",\n \"vcxitems\": \"visualstudio\",\n \"vcxitems.filters\": \"visualstudio\",\n \"vcxproj\": \"visualstudio\",\n \"vcxproj.filters\": \"visualstudio\",\n \"pdb\": \"database\",\n \"sql\": \"database\",\n \"pks\": \"database\",\n \"pkb\": \"database\",\n \"accdb\": \"database\",\n \"mdb\": \"database\",\n \"sqlite\": \"database\",\n \"sqlite3\": \"database\",\n \"pgsql\": \"database\",\n \"postgres\": \"database\",\n \"psql\": \"database\",\n \"db\": \"database\",\n \"db3\": \"database\",\n \"kql\": \"kusto\",\n \"cs\": \"csharp\",\n \"csx\": \"csharp\",\n \"qs\": \"qsharp\",\n \"zip\": \"zip\",\n \"tar\": \"zip\",\n \"gz\": \"zip\",\n \"xz\": \"zip\",\n \"lzma\": \"zip\",\n \"lz4\": \"zip\",\n \"br\": \"zip\",\n \"bz2\": \"zip\",\n \"bzip2\": \"zip\",\n \"gzip\": \"zip\",\n \"brotli\": \"zip\",\n \"7z\": \"zip\",\n \"rar\": \"zip\",\n \"tz\": \"zip\",\n \"txz\": \"zip\",\n \"tgz\": \"zip\",\n \"vala\": \"vala\",\n \"zig\": \"zig\",\n \"exe\": \"exe\",\n \"msi\": \"exe\",\n \"dat\": \"hex\",\n \"bin\": \"hex\",\n \"hex\": \"hex\",\n \"java\": \"java\",\n \"jsp\": \"java\",\n \"jar\": \"jar\",\n \"class\": \"javaclass\",\n \"c\": \"c\",\n \"i\": \"c\",\n \"mi\": \"c\",\n \"h\": \"h\",\n \"cc\": \"cpp\",\n \"cpp\": \"cpp\",\n \"cxx\": \"cpp\",\n \"c++\": \"cpp\",\n \"cp\": \"cpp\",\n \"mii\": \"cpp\",\n \"ii\": \"cpp\",\n \"hh\": \"hpp\",\n \"hpp\": \"hpp\",\n \"hxx\": \"hpp\",\n \"h++\": \"hpp\",\n \"hp\": \"hpp\",\n \"tcc\": \"hpp\",\n \"inl\": \"hpp\",\n \"m\": \"objective-c\",\n \"mm\": \"objective-cpp\",\n \"rc\": \"rc\",\n \"go\": \"go\",\n \"py\": \"python\",\n \"pyc\": \"python-misc\",\n \"whl\": \"python-misc\",\n \"url\": \"url\",\n \"sh\": \"console\",\n \"ksh\": \"console\",\n \"csh\": \"console\",\n \"tcsh\": \"console\",\n \"zsh\": \"console\",\n \"bash\": \"console\",\n \"bat\": \"console\",\n \"cmd\": \"console\",\n \"awk\": \"console\",\n \"fish\": \"console\",\n \"exp\": \"console\",\n \"nu\": \"console\",\n \"ps1\": \"powershell\",\n \"psm1\": \"powershell\",\n \"psd1\": \"powershell\",\n \"ps1xml\": \"powershell\",\n \"psc1\": \"powershell\",\n \"pssc\": \"powershell\",\n \"gradle\": \"gradle\",\n \"doc\": \"word\",\n \"docx\": \"word\",\n \"rtf\": \"word\",\n \"odt\": \"word\",\n \"cer\": \"certificate\",\n \"cert\": \"certificate\",\n \"crt\": \"certificate\",\n \"pub\": \"key\",\n \"key\": \"key\",\n \"pem\": \"key\",\n \"asc\": \"key\",\n \"gpg\": \"key\",\n \"passwd\": \"key\",\n \"woff\": \"font\",\n \"woff2\": \"font\",\n \"ttf\": \"font\",\n \"eot\": \"font\",\n \"suit\": \"font\",\n \"otf\": \"font\",\n \"bmap\": \"font\",\n \"fnt\": \"font\",\n \"odttf\": \"font\",\n \"ttc\": \"font\",\n \"font\": \"font\",\n \"fonts\": \"font\",\n \"sui\": \"font\",\n \"ntf\": \"font\",\n \"mrf\": \"font\",\n \"lib\": \"lib\",\n \"bib\": \"lib\",\n \"rb\": \"ruby\",\n \"erb\": \"ruby\",\n \"fs\": \"fsharp\",\n \"fsx\": \"fsharp\",\n \"fsi\": \"fsharp\",\n \"fsproj\": \"fsharp\",\n \"swift\": \"swift\",\n \"ino\": \"arduino\",\n \"dockerignore\": \"docker\",\n \"dockerfile\": \"docker\",\n \"docker-compose.yml\": \"docker\",\n \"docker-compose.yaml\": \"docker\",\n \"compose.yaml\": \"docker\",\n \"compose.yml\": \"docker\",\n \"tex\": \"tex\",\n \"sty\": \"tex\",\n \"dtx\": \"tex\",\n \"ltx\": \"tex\",\n \"pptx\": \"powerpoint\",\n \"ppt\": \"powerpoint\",\n \"pptm\": \"powerpoint\",\n \"potx\": \"powerpoint\",\n \"potm\": \"powerpoint\",\n \"ppsx\": \"powerpoint\",\n \"ppsm\": \"powerpoint\",\n \"pps\": \"powerpoint\",\n \"ppam\": \"powerpoint\",\n \"ppa\": \"powerpoint\",\n \"odp\": \"powerpoint\",\n \"webm\": \"video\",\n \"mkv\": \"video\",\n \"flv\": \"video\",\n \"vob\": \"video\",\n \"ogv\": \"video\",\n \"ogg\": \"video\",\n \"gifv\": \"video\",\n \"avi\": \"video\",\n \"mov\": \"video\",\n \"qt\": \"video\",\n \"wmv\": \"video\",\n \"yuv\": \"video\",\n \"rm\": \"video\",\n \"rmvb\": \"video\",\n \"mp4\": \"video\",\n \"m4v\": \"video\",\n \"mpg\": \"video\",\n \"mp2\": \"video\",\n \"mpeg\": \"video\",\n \"mpe\": \"video\",\n \"mpv\": \"video\",\n \"m2v\": \"video\",\n \"vdi\": \"virtual\",\n \"vbox\": \"virtual\",\n \"vbox-prev\": \"virtual\",\n \"ics\": \"email\",\n \"mp3\": \"audio\",\n \"flac\": \"audio\",\n \"m4a\": \"audio\",\n \"wma\": \"audio\",\n \"aiff\": \"audio\",\n \"wav\": \"audio\",\n \"coffee\": \"coffee\",\n \"cson\": \"coffee\",\n \"iced\": \"coffee\",\n \"txt\": \"document\",\n \"graphql\": \"graphql\",\n \"gql\": \"graphql\",\n \"rs\": \"rust\",\n \"ron\": \"rust\",\n \"raml\": \"raml\",\n \"xaml\": \"xaml\",\n \"hs\": \"haskell\",\n \"kt\": \"kotlin\",\n \"kts\": \"kotlin\",\n \"otne\": \"otne\",\n \"patch\": \"git\",\n \"lua\": \"lua\",\n \"clj\": \"clojure\",\n \"cljs\": \"clojure\",\n \"cljc\": \"clojure\",\n \"groovy\": \"groovy\",\n \"r\": \"r\",\n \"rmd\": \"r\",\n \"dart\": \"dart\",\n \"freezed.dart\": \"dart_generated\",\n \"g.dart\": \"dart_generated\",\n \"as\": \"actionscript\",\n \"mxml\": \"mxml\",\n \"ahk\": \"autohotkey\",\n \"swf\": \"flash\",\n \"swc\": \"swc\",\n \"cmake\": \"cmake\",\n \"asm\": \"assembly\",\n \"a51\": \"assembly\",\n \"inc\": \"assembly\",\n \"nasm\": \"assembly\",\n \"s\": \"assembly\",\n \"ms\": \"assembly\",\n \"agc\": \"assembly\",\n \"ags\": \"assembly\",\n \"aea\": \"assembly\",\n \"argus\": \"assembly\",\n \"mitigus\": \"assembly\",\n \"binsource\": \"assembly\",\n \"vue\": \"vue\",\n \"ml\": \"ocaml\",\n \"mli\": \"ocaml\",\n \"cmx\": \"ocaml\",\n \"odin\": \"odin\",\n \"js.map\": \"javascript-map\",\n \"mjs.map\": \"javascript-map\",\n \"cjs.map\": \"javascript-map\",\n \"css.map\": \"css-map\",\n \"lock\": \"lock\",\n \"hbs\": \"handlebars\",\n \"mustache\": \"handlebars\",\n \"pm\": \"perl\",\n \"raku\": \"perl\",\n \"hx\": \"haxe\",\n \"spec.ts\": \"test-ts\",\n \"spec.cts\": \"test-ts\",\n \"spec.mts\": \"test-ts\",\n \"cy.ts\": \"test-ts\",\n \"e2e-spec.ts\": \"test-ts\",\n \"e2e-spec.cts\": \"test-ts\",\n \"e2e-spec.mts\": \"test-ts\",\n \"test.ts\": \"test-ts\",\n \"test.cts\": \"test-ts\",\n \"test.mts\": \"test-ts\",\n \"ts.snap\": \"test-ts\",\n \"spec-d.ts\": \"test-ts\",\n \"test-d.ts\": \"test-ts\",\n \"spec.tsx\": \"test-jsx\",\n \"test.tsx\": \"test-jsx\",\n \"tsx.snap\": \"test-jsx\",\n \"spec.jsx\": \"test-jsx\",\n \"test.jsx\": \"test-jsx\",\n \"jsx.snap\": \"test-jsx\",\n \"cy.jsx\": \"test-jsx\",\n \"cy.tsx\": \"test-jsx\",\n \"spec-d.tsx\": \"test-jsx\",\n \"test-d.tsx\": \"test-jsx\",\n \"spec.js\": \"test-js\",\n \"spec.cjs\": \"test-js\",\n \"spec.mjs\": \"test-js\",\n \"e2e-spec.js\": \"test-js\",\n \"e2e-spec.cjs\": \"test-js\",\n \"e2e-spec.mjs\": \"test-js\",\n \"test.js\": \"test-js\",\n \"test.cjs\": \"test-js\",\n \"test.mjs\": \"test-js\",\n \"js.snap\": \"test-js\",\n \"cy.js\": \"test-js\",\n \"module.ts\": \"angular\",\n \"module.js\": \"angular\",\n \"ng-template\": \"angular\",\n \"component.ts\": \"angular-component\",\n \"component.js\": \"angular-component\",\n \"guard.ts\": \"angular-guard\",\n \"guard.js\": \"angular-guard\",\n \"service.ts\": \"angular-service\",\n \"service.js\": \"angular-service\",\n \"pipe.ts\": \"angular-pipe\",\n \"pipe.js\": \"angular-pipe\",\n \"filter.js\": \"angular-pipe\",\n \"directive.ts\": \"angular-directive\",\n \"directive.js\": \"angular-directive\",\n \"resolver.ts\": \"angular-resolver\",\n \"resolver.js\": \"angular-resolver\",\n \"pp\": \"puppet\",\n \"ex\": \"elixir\",\n \"exs\": \"elixir\",\n \"eex\": \"elixir\",\n \"leex\": \"elixir\",\n \"heex\": \"elixir\",\n \"ls\": \"livescript\",\n \"erl\": \"erlang\",\n \"twig\": \"twig\",\n \"jl\": \"julia\",\n \"elm\": \"elm\",\n \"pure\": \"purescript\",\n \"purs\": \"purescript\",\n \"tpl\": \"smarty\",\n \"styl\": \"stylus\",\n \"re\": \"reason\",\n \"rei\": \"reason\",\n \"cmj\": \"bucklescript\",\n \"merlin\": \"merlin\",\n \"vhd\": \"verilog\",\n \"sv\": \"verilog\",\n \"svh\": \"verilog\",\n \"nb\": \"mathematica\",\n \"wl\": \"wolframlanguage\",\n \"wls\": \"wolframlanguage\",\n \"njk\": \"nunjucks\",\n \"nunjucks\": \"nunjucks\",\n \"robot\": \"robot\",\n \"sol\": \"solidity\",\n \"au3\": \"autoit\",\n \"haml\": \"haml\",\n \"yang\": \"yang\",\n \"mjml\": \"mjml\",\n \"tf\": \"terraform\",\n \"tf.json\": \"terraform\",\n \"tfvars\": \"terraform\",\n \"tfstate\": \"terraform\",\n \"blade.php\": \"laravel\",\n \"inky.php\": \"laravel\",\n \"applescript\": \"applescript\",\n \"ipa\": \"applescript\",\n \"cake\": \"cake\",\n \"feature\": \"cucumber\",\n \"features\": \"cucumber\",\n \"nim\": \"nim\",\n \"nimble\": \"nim\",\n \"apib\": \"apiblueprint\",\n \"apiblueprint\": \"apiblueprint\",\n \"riot\": \"riot\",\n \"tag\": \"riot\",\n \"vfl\": \"vfl\",\n \"kl\": \"kl\",\n \"pcss\": \"postcss\",\n \"sss\": \"postcss\",\n \"todo\": \"todo\",\n \"cfml\": \"coldfusion\",\n \"cfc\": \"coldfusion\",\n \"lucee\": \"coldfusion\",\n \"cfm\": \"coldfusion\",\n \"cabal\": \"cabal\",\n \"nix\": \"nix\",\n \"slim\": \"slim\",\n \"http\": \"http\",\n \"rest\": \"http\",\n \"rql\": \"restql\",\n \"restql\": \"restql\",\n \"kv\": \"kivy\",\n \"graphcool\": \"graphcool\",\n \"sbt\": \"sbt\",\n \"apk\": \"android\",\n \"smali\": \"android\",\n \"dex\": \"android\",\n \"env\": \"tune\",\n \"gitlab-ci.yml\": \"gitlab\",\n \"jenkinsfile\": \"jenkins\",\n \"jenkins\": \"jenkins\",\n \"fig\": \"figma\",\n \"cr\": \"crystal\",\n \"ecr\": \"crystal\",\n \"drone.yml\": \"drone\",\n \"cu\": \"cuda\",\n \"cuh\": \"cuda\",\n \"log\": \"log\",\n \"def\": \"dotjs\",\n \"dot\": \"dotjs\",\n \"jst\": \"dotjs\",\n \"ejs\": \"ejs\",\n \".wakatime-project\": \"wakatime\",\n \"pde\": \"processing\",\n \"stories.js\": \"storybook\",\n \"stories.jsx\": \"storybook\",\n \"stories.mdx\": \"storybook\",\n \"story.js\": \"storybook\",\n \"story.jsx\": \"storybook\",\n \"stories.ts\": \"storybook\",\n \"stories.tsx\": \"storybook\",\n \"story.ts\": \"storybook\",\n \"story.tsx\": \"storybook\",\n \"stories.svelte\": \"storybook\",\n \"story.mdx\": \"storybook\",\n \"wpy\": \"wepy\",\n \"hcl\": \"hcl\",\n \"san\": \"san\",\n \"djt\": \"django\",\n \"red\": \"red\",\n \"mk\": \"makefile\",\n \"fxp\": \"foxpro\",\n \"prg\": \"foxpro\",\n \"pot\": \"i18n\",\n \"po\": \"i18n\",\n \"mo\": \"i18n\",\n \"lang\": \"i18n\",\n \"wat\": \"webassembly\",\n \"wasm\": \"webassembly\",\n \"ipynb\": \"jupyter\",\n \"d\": \"d\",\n \"mdx\": \"mdx\",\n \"svx\": \"mdsvex\",\n \"bal\": \"ballerina\",\n \"balx\": \"ballerina\",\n \"rkt\": \"racket\",\n \"bzl\": \"bazel\",\n \"bazel\": \"bazel\",\n \"mint\": \"mint\",\n \"vm\": \"velocity\",\n \"fhtml\": \"velocity\",\n \"vtl\": \"velocity\",\n \"gd\": \"godot\",\n \"godot\": \"godot-assets\",\n \"tres\": \"godot-assets\",\n \"tscn\": \"godot-assets\",\n \"gdns\": \"godot-assets\",\n \"gdnlib\": \"godot-assets\",\n \"gdshader\": \"godot-assets\",\n \"gdshaderinc\": \"godot-assets\",\n \"gdextension\": \"godot-assets\",\n \"azure-pipelines.yml\": \"azure-pipelines\",\n \"azure-pipelines.yaml\": \"azure-pipelines\",\n \"azcli\": \"azure\",\n \"vagrantfile\": \"vagrant\",\n \"prisma\": \"prisma\",\n \"cshtml\": \"razor\",\n \"vbhtml\": \"razor\",\n \"abc\": \"abc\",\n \"ad\": \"asciidoc\",\n \"adoc\": \"asciidoc\",\n \"asciidoc\": \"asciidoc\",\n \"edge\": \"edge\",\n \"ss\": \"scheme\",\n \"scm\": \"scheme\",\n \"lisp\": \"lisp\",\n \"lsp\": \"lisp\",\n \"cl\": \"lisp\",\n \"fast\": \"lisp\",\n \"stl\": \"3d\",\n \"stp\": \"3d\",\n \"obj\": \"3d\",\n \"ac\": \"3d\",\n \"blend\": \"3d\",\n \"fbx\": \"3d\",\n \"mesh\": \"3d\",\n \"mqo\": \"3d\",\n \"pmd\": \"3d\",\n \"pmx\": \"3d\",\n \"skp\": \"3d\",\n \"vac\": \"3d\",\n \"vdp\": \"3d\",\n \"vox\": \"3d\",\n \"svg\": \"svg\",\n \"svelte\": \"svelte\",\n \"vimrc\": \"vim\",\n \"gvimrc\": \"vim\",\n \"exrc\": \"vim\",\n \"vim\": \"vim\",\n \"viminfo\": \"vim\",\n \"moon\": \"moonscript\",\n \"prw\": \"advpl_prw\",\n \"prx\": \"advpl_prw\",\n \"ptm\": \"advpl_ptm\",\n \"tlpp\": \"advpl_tlpp\",\n \"ch\": \"advpl_include\",\n \"iso\": \"disc\",\n \"f\": \"fortran\",\n \"f77\": \"fortran\",\n \"f90\": \"fortran\",\n \"f95\": \"fortran\",\n \"f03\": \"fortran\",\n \"f08\": \"fortran\",\n \"tcl\": \"tcl\",\n \"liquid\": \"liquid\",\n \"p\": \"prolog\",\n \"pro\": \"prolog\",\n \"pl\": \"prolog\",\n \"coco\": \"coconut\",\n \"sketch\": \"sketch\",\n \"pwn\": \"pawn\",\n \"amx\": \"pawn\",\n \"4th\": \"forth\",\n \"fth\": \"forth\",\n \"frt\": \"forth\",\n \"iuml\": \"uml\",\n \"pu\": \"uml\",\n \"puml\": \"uml\",\n \"plantuml\": \"uml\",\n \"wsd\": \"uml\",\n \"wrap\": \"meson\",\n \"dhall\": \"dhall\",\n \"dhallb\": \"dhall\",\n \"sml\": \"sml\",\n \"mlton\": \"sml\",\n \"mlb\": \"sml\",\n \"sig\": \"sml\",\n \"fun\": \"sml\",\n \"cm\": \"sml\",\n \"lex\": \"sml\",\n \"use\": \"sml\",\n \"grm\": \"sml\",\n \"opam\": \"opam\",\n \"imba\": \"imba\",\n \"drawio\": \"drawio\",\n \"dio\": \"drawio\",\n \"pas\": \"pascal\",\n \"unity\": \"shaderlab\",\n \"sas\": \"sas\",\n \"sas7bdat\": \"sas\",\n \"sashdat\": \"sas\",\n \"astore\": \"sas\",\n \"ast\": \"sas\",\n \"sast\": \"sas\",\n \"nupkg\": \"nuget\",\n \"command\": \"command\",\n \"dsc\": \"denizenscript\",\n \"code-search\": \"search\",\n \"nginx\": \"nginx\",\n \"nginxconfig\": \"nginx\",\n \"mcfunction\": \"minecraft\",\n \"mcmeta\": \"minecraft\",\n \"mcr\": \"minecraft\",\n \"mca\": \"minecraft\",\n \"mcgame\": \"minecraft\",\n \"mclevel\": \"minecraft\",\n \"mcworld\": \"minecraft\",\n \"mine\": \"minecraft\",\n \"mus\": \"minecraft\",\n \"mcstructure\": \"minecraft\",\n \"mcpack\": \"minecraft\",\n \"mcaddon\": \"minecraft\",\n \"mctemplate\": \"minecraft\",\n \"mcproject\": \"minecraft\",\n \"res\": \"rescript\",\n \"resi\": \"rescript-interface\",\n \"b\": \"brainfuck\",\n \"bf\": \"brainfuck\",\n \"bicep\": \"bicep\",\n \"cob\": \"cobol\",\n \"cbl\": \"cobol\",\n \"gr\": \"grain\",\n \"lol\": \"lolcode\",\n \"idr\": \"idris\",\n \"ibc\": \"idris\",\n \"pipeline\": \"pipeline\",\n \"rego\": \"opa\",\n \"windi\": \"windicss\",\n \"scala\": \"scala\",\n \"sc\": \"scala\",\n \"ly\": \"lilypond\",\n \"v\": \"vlang\",\n \"pgn\": \"chess\",\n \"fen\": \"chess\",\n \"gmi\": \"gemini\",\n \"gemini\": \"gemini\",\n \"tsconfig.json\": \"tsconfig\",\n \"tauri\": \"tauri\",\n \"jsconfig.json\": \"jsconfig\",\n \"ada\": \"ada\",\n \"adb\": \"ada\",\n \"ads\": \"ada\",\n \"ali\": \"ada\",\n \"horusec-config.json\": \"horusec\",\n \"coarc\": \"coala\",\n \"coafile\": \"coala\",\n \"bubble\": \"dinophp\",\n \"html.bubble\": \"dinophp\",\n \"php.bubble\": \"dinophp\",\n \"tl\": \"teal\",\n \"template\": \"template\",\n \"glsl\": \"shader\",\n \"vert\": \"shader\",\n \"tesc\": \"shader\",\n \"tese\": \"shader\",\n \"geom\": \"shader\",\n \"frag\": \"shader\",\n \"comp\": \"shader\",\n \"vert.glsl\": \"shader\",\n \"tesc.glsl\": \"shader\",\n \"tese.glsl\": \"shader\",\n \"geom.glsl\": \"shader\",\n \"frag.glsl\": \"shader\",\n \"comp.glsl\": \"shader\",\n \"vertex.glsl\": \"shader\",\n \"geometry.glsl\": \"shader\",\n \"fragment.glsl\": \"shader\",\n \"compute.glsl\": \"shader\",\n \"ts.glsl\": \"shader\",\n \"gs.glsl\": \"shader\",\n \"vs.glsl\": \"shader\",\n \"fs.glsl\": \"shader\",\n \"shader\": \"shader\",\n \"vertexshader\": \"shader\",\n \"fragmentshader\": \"shader\",\n \"geometryshader\": \"shader\",\n \"computeshader\": \"shader\",\n \"hlsl\": \"shader\",\n \"pixel.hlsl\": \"shader\",\n \"geometry.hlsl\": \"shader\",\n \"compute.hlsl\": \"shader\",\n \"tessellation.hlsl\": \"shader\",\n \"px.hlsl\": \"shader\",\n \"geom.hlsl\": \"shader\",\n \"comp.hlsl\": \"shader\",\n \"tess.hlsl\": \"shader\",\n \"wgsl\": \"shader\",\n \"sy\": \"siyuan\",\n \"ndst.yml\": \"ndst\",\n \"ndst.yaml\": \"ndst\",\n \"ndst.json\": \"ndst\",\n \"tobi\": \"tobi\",\n \"gleam\": \"gleam\",\n \"steadybit.yml\": \"steadybit\",\n \"steadybit.yaml\": \"steadybit\",\n \"tree\": \"tree\",\n \"cdc\": \"cadence\",\n \"g4\": \"antlr\",\n \"st.css\": \"stylable\",\n \"pine\": \"pinejs\",\n \"gml\": \"gamemaker\",\n \"yy\": \"gamemaker\",\n \"yyp\": \"gamemaker\",\n \"yyz\": \"gamemaker\",\n \"tldr\": \"tldraw\",\n \"typ\": \"typst\",\n \"mmd\": \"mermaid\",\n \"mermaid\": \"mermaid\"\n },\n \"fileNames\": {\n \".pug-lintrc\": \"pug\",\n \".pug-lintrc.js\": \"pug\",\n \".pug-lintrc.json\": \"pug\",\n \".jscsrc\": \"json\",\n \".jshintrc\": \"json\",\n \"composer.lock\": \"json\",\n \".jsbeautifyrc\": \"json\",\n \".esformatter\": \"json\",\n \"cdp.pid\": \"json\",\n \".lintstagedrc\": \"json\",\n \"playwright.config.js\": \"playwright\",\n \"playwright.config.mjs\": \"playwright\",\n \"playwright.config.ts\": \"playwright\",\n \"playwright-ct.config.js\": \"playwright\",\n \"playwright-ct.config.mjs\": \"playwright\",\n \"playwright-ct.config.ts\": \"playwright\",\n \".htaccess\": \"xml\",\n \"router.js\": \"routing\",\n \"router.jsx\": \"routing\",\n \"router.ts\": \"routing\",\n \"router.tsx\": \"routing\",\n \"routes.js\": \"routing\",\n \"routes.jsx\": \"routing\",\n \"routes.ts\": \"routing\",\n \"routes.tsx\": \"routing\",\n \".jshintignore\": \"settings\",\n \".buildignore\": \"settings\",\n \".mrconfig\": \"settings\",\n \".yardopts\": \"settings\",\n \"manifest.mf\": \"settings\",\n \".clang-format\": \"settings\",\n \".clang-tidy\": \"settings\",\n \"astro.config.js\": \"astro\",\n \"astro.config.mjs\": \"astro\",\n \"astro.config.cjs\": \"astro\",\n \"astro.config.ts\": \"astro\",\n \"astro.config.cts\": \"astro\",\n \"astro.config.mts\": \"astro\",\n \"go.mod\": \"go-mod\",\n \"go.sum\": \"go-mod\",\n \"go.work\": \"go-mod\",\n \"go.work.sum\": \"go-mod\",\n \"requirements.txt\": \"python-misc\",\n \"pipfile\": \"python-misc\",\n \".python-version\": \"python-misc\",\n \"manifest.in\": \"python-misc\",\n \"pylintrc\": \"python-misc\",\n \".pylintrc\": \"python-misc\",\n \"pyproject.toml\": \"python-misc\",\n \"commit-msg\": \"console\",\n \"pre-commit\": \"console\",\n \"pre-push\": \"console\",\n \"post-merge\": \"console\",\n \"gradle.properties\": \"gradle\",\n \"gradlew\": \"gradle\",\n \"gradle-wrapper.properties\": \"gradle\",\n \"copying\": \"certificate\",\n \"copying.md\": \"certificate\",\n \"copying.rst\": \"certificate\",\n \"copying.txt\": \"certificate\",\n \"copyright\": \"certificate\",\n \"copyright.md\": \"certificate\",\n \"copyright.rst\": \"certificate\",\n \"copyright.txt\": \"certificate\",\n \"license\": \"certificate\",\n \"license-agpl\": \"certificate\",\n \"license-apache\": \"certificate\",\n \"license-bsd\": \"certificate\",\n \"license-mit\": \"certificate\",\n \"license-gpl\": \"certificate\",\n \"license-lgpl\": \"certificate\",\n \"license.md\": \"certificate\",\n \"license.rst\": \"certificate\",\n \"license.txt\": \"certificate\",\n \"licence\": \"certificate\",\n \"licence-agpl\": \"certificate\",\n \"licence-apache\": \"certificate\",\n \"licence-bsd\": \"certificate\",\n \"licence-mit\": \"certificate\",\n \"licence-gpl\": \"certificate\",\n \"licence-lgpl\": \"certificate\",\n \"licence.md\": \"certificate\",\n \"licence.rst\": \"certificate\",\n \"licence.txt\": \"certificate\",\n \".htpasswd\": \"key\",\n \"gemfile\": \"gemfile\",\n \".rubocop.yml\": \"rubocop\",\n \".rubocop-todo.yml\": \"rubocop\",\n \".rubocop_todo.yml\": \"rubocop\",\n \"dockerfile\": \"docker\",\n \"dockerfile.prod\": \"docker\",\n \"dockerfile.production\": \"docker\",\n \"dockerfile.alpha\": \"docker\",\n \"dockerfile.beta\": \"docker\",\n \"dockerfile.stage\": \"docker\",\n \"dockerfile.staging\": \"docker\",\n \"dockerfile.dev\": \"docker\",\n \"dockerfile.development\": \"docker\",\n \"dockerfile.local\": \"docker\",\n \"dockerfile.test\": \"docker\",\n \"dockerfile.testing\": \"docker\",\n \"dockerfile.ci\": \"docker\",\n \"dockerfile.web\": \"docker\",\n \"dockerfile.worker\": \"docker\",\n \"docker-compose.yml\": \"docker\",\n \"docker-compose.override.yml\": \"docker\",\n \"docker-compose.prod.yml\": \"docker\",\n \"docker-compose.production.yml\": \"docker\",\n \"docker-compose.alpha.yml\": \"docker\",\n \"docker-compose.beta.yml\": \"docker\",\n \"docker-compose.stage.yml\": \"docker\",\n \"docker-compose.staging.yml\": \"docker\",\n \"docker-compose.dev.yml\": \"docker\",\n \"docker-compose.development.yml\": \"docker\",\n \"docker-compose.local.yml\": \"docker\",\n \"docker-compose.test.yml\": \"docker\",\n \"docker-compose.testing.yml\": \"docker\",\n \"docker-compose.ci.yml\": \"docker\",\n \"docker-compose.web.yml\": \"docker\",\n \"docker-compose.worker.yml\": \"docker\",\n \"docker-compose.yaml\": \"docker\",\n \"docker-compose.override.yaml\": \"docker\",\n \"docker-compose.prod.yaml\": \"docker\",\n \"docker-compose.production.yaml\": \"docker\",\n \"docker-compose.alpha.yaml\": \"docker\",\n \"docker-compose.beta.yaml\": \"docker\",\n \"docker-compose.stage.yaml\": \"docker\",\n \"docker-compose.staging.yaml\": \"docker\",\n \"docker-compose.dev.yaml\": \"docker\",\n \"docker-compose.development.yaml\": \"docker\",\n \"docker-compose.local.yaml\": \"docker\",\n \"docker-compose.test.yaml\": \"docker\",\n \"docker-compose.testing.yaml\": \"docker\",\n \"docker-compose.ci.yaml\": \"docker\",\n \"docker-compose.web.yaml\": \"docker\",\n \"docker-compose.worker.yaml\": \"docker\",\n \"compose.yaml\": \"docker\",\n \"compose.override.yaml\": \"docker\",\n \"compose.prod.yaml\": \"docker\",\n \"compose.production.yaml\": \"docker\",\n \"compose.alpha.yaml\": \"docker\",\n \"compose.beta.yaml\": \"docker\",\n \"compose.stage.yaml\": \"docker\",\n \"compose.staging.yaml\": \"docker\",\n \"compose.dev.yaml\": \"docker\",\n \"compose.development.yaml\": \"docker\",\n \"compose.local.yaml\": \"docker\",\n \"compose.test.yaml\": \"docker\",\n \"compose.testing.yaml\": \"docker\",\n \"compose.ci.yaml\": \"docker\",\n \"compose.web.yaml\": \"docker\",\n \"compose.worker.yaml\": \"docker\",\n \"compose.yml\": \"docker\",\n \"compose.override.yml\": \"docker\",\n \"compose.prod.yml\": \"docker\",\n \"compose.production.yml\": \"docker\",\n \"compose.alpha.yml\": \"docker\",\n \"compose.beta.yml\": \"docker\",\n \"compose.stage.yml\": \"docker\",\n \"compose.staging.yml\": \"docker\",\n \"compose.dev.yml\": \"docker\",\n \"compose.development.yml\": \"docker\",\n \"compose.local.yml\": \"docker\",\n \"compose.test.yml\": \"docker\",\n \"compose.testing.yml\": \"docker\",\n \"compose.ci.yml\": \"docker\",\n \"compose.web.yml\": \"docker\",\n \"compose.worker.yml\": \"docker\",\n \".mailmap\": \"email\",\n \".graphqlconfig\": \"graphql\",\n \".graphqlrc\": \"graphql\",\n \".graphqlrc.json\": \"graphql\",\n \".graphqlrc.js\": \"graphql\",\n \".graphqlrc.cjs\": \"graphql\",\n \".graphqlrc.ts\": \"graphql\",\n \".graphqlrc.toml\": \"graphql\",\n \".graphqlrc.yaml\": \"graphql\",\n \".graphqlrc.yml\": \"graphql\",\n \"graphql.config.json\": \"graphql\",\n \"graphql.config.js\": \"graphql\",\n \"graphql.config.cjs\": \"graphql\",\n \"graphql.config.ts\": \"graphql\",\n \"graphql.config.toml\": \"graphql\",\n \"graphql.config.yaml\": \"graphql\",\n \"graphql.config.yml\": \"graphql\",\n \".git\": \"git\",\n \".gitignore\": \"git\",\n \".gitignore-global\": \"git\",\n \".gitignore_global\": \"git\",\n \".gitattributes\": \"git\",\n \".gitattributes-global\": \"git\",\n \".gitattributes_global\": \"git\",\n \".gitconfig\": \"git\",\n \".gitmodules\": \"git\",\n \".gitkeep\": \"git\",\n \".gitinclude\": \"git\",\n \".git-blame-ignore\": \"git\",\n \".git-blame-ignore-revs\": \"git\",\n \".git-for-windows-updater\": \"git\",\n \"git-history\": \"git\",\n \".luacheckrc\": \"lua\",\n \".Rhistory\": \"r\",\n \".pubignore\": \"dart\",\n \"cmakelists.txt\": \"cmake\",\n \"cmakecache.txt\": \"cmake\",\n \"vue.config.js\": \"vue-config\",\n \"vue.config.ts\": \"vue-config\",\n \"vetur.config.js\": \"vue-config\",\n \"vetur.config.ts\": \"vue-config\",\n \"volar.config.js\": \"vue-config\",\n \"nuxt.config.js\": \"nuxt\",\n \"nuxt.config.ts\": \"nuxt\",\n \".nuxtignore\": \"nuxt\",\n \"security.md\": \"lock\",\n \"security.txt\": \"lock\",\n \"security\": \"lock\",\n \"angular-cli.json\": \"angular\",\n \".angular-cli.json\": \"angular\",\n \"angular.json\": \"angular\",\n \"ng-package.json\": \"angular\",\n \".mjmlconfig\": \"mjml\",\n \"vercel.json\": \"vercel\",\n \".vercelignore\": \"vercel\",\n \"now.json\": \"vercel\",\n \".nowignore\": \"vercel\",\n \"verdaccio.yml\": \"verdaccio\",\n \"next.config.js\": \"next\",\n \"next.config.mjs\": \"next\",\n \"next.config.ts\": \"next\",\n \"next.config.mts\": \"next\",\n \"remix.config.js\": \"remix\",\n \"remix.config.ts\": \"remix\",\n \"artisan\": \"laravel\",\n \".vfl\": \"vfl\",\n \".kl\": \"kl\",\n \"postcss.config.js\": \"postcss\",\n \"postcss.config.cjs\": \"postcss\",\n \"postcss.config.ts\": \"postcss\",\n \"postcss.config.cts\": \"postcss\",\n \".postcssrc.js\": \"postcss\",\n \".postcssrc.cjs\": \"postcss\",\n \".postcssrc.ts\": \"postcss\",\n \".postcssrc.cts\": \"postcss\",\n \".postcssrc\": \"postcss\",\n \".postcssrc.json\": \"postcss\",\n \".postcssrc.yaml\": \"postcss\",\n \".postcssrc.yml\": \"postcss\",\n \"posthtml.config.js\": \"posthtml\",\n \".posthtmlrc.js\": \"posthtml\",\n \".posthtmlrc\": \"posthtml\",\n \".posthtmlrc.json\": \"posthtml\",\n \".posthtmlrc.yml\": \"posthtml\",\n \"todo.md\": \"todo\",\n \"todos.md\": \"todo\",\n \"cabal.project\": \"cabal\",\n \"cabal.project.freeze\": \"cabal\",\n \"cabal.project.local\": \"cabal\",\n \"CNAME\": \"http\",\n \"project.graphcool\": \"graphcool\",\n \"webpack.js\": \"webpack\",\n \"webpack.cjs\": \"webpack\",\n \"webpack.mjs\": \"webpack\",\n \"webpack.ts\": \"webpack\",\n \"webpack.cts\": \"webpack\",\n \"webpack.mts\": \"webpack\",\n \"webpack.base.js\": \"webpack\",\n \"webpack.base.cjs\": \"webpack\",\n \"webpack.base.mjs\": \"webpack\",\n \"webpack.base.ts\": \"webpack\",\n \"webpack.base.cts\": \"webpack\",\n \"webpack.base.mts\": \"webpack\",\n \"webpack.config.js\": \"webpack\",\n \"webpack.config.cjs\": \"webpack\",\n \"webpack.config.mjs\": \"webpack\",\n \"webpack.config.ts\": \"webpack\",\n \"webpack.config.cts\": \"webpack\",\n \"webpack.config.mts\": \"webpack\",\n \"webpack.common.js\": \"webpack\",\n \"webpack.common.cjs\": \"webpack\",\n \"webpack.common.mjs\": \"webpack\",\n \"webpack.common.ts\": \"webpack\",\n \"webpack.common.cts\": \"webpack\",\n \"webpack.common.mts\": \"webpack\",\n \"webpack.config.common.js\": \"webpack\",\n \"webpack.config.common.cjs\": \"webpack\",\n \"webpack.config.common.mjs\": \"webpack\",\n \"webpack.config.common.ts\": \"webpack\",\n \"webpack.config.common.cts\": \"webpack\",\n \"webpack.config.common.mts\": \"webpack\",\n \"webpack.config.common.babel.js\": \"webpack\",\n \"webpack.config.common.babel.ts\": \"webpack\",\n \"webpack.dev.js\": \"webpack\",\n \"webpack.dev.cjs\": \"webpack\",\n \"webpack.dev.mjs\": \"webpack\",\n \"webpack.dev.ts\": \"webpack\",\n \"webpack.dev.cts\": \"webpack\",\n \"webpack.dev.mts\": \"webpack\",\n \"webpack.development.js\": \"webpack\",\n \"webpack.development.cjs\": \"webpack\",\n \"webpack.development.mjs\": \"webpack\",\n \"webpack.development.ts\": \"webpack\",\n \"webpack.development.cts\": \"webpack\",\n \"webpack.development.mts\": \"webpack\",\n \"webpack.config.dev.js\": \"webpack\",\n \"webpack.config.dev.cjs\": \"webpack\",\n \"webpack.config.dev.mjs\": \"webpack\",\n \"webpack.config.dev.ts\": \"webpack\",\n \"webpack.config.dev.cts\": \"webpack\",\n \"webpack.config.dev.mts\": \"webpack\",\n \"webpack.config.dev.babel.js\": \"webpack\",\n \"webpack.config.dev.babel.ts\": \"webpack\",\n \"webpack.mix.js\": \"webpack\",\n \"webpack.mix.cjs\": \"webpack\",\n \"webpack.mix.mjs\": \"webpack\",\n \"webpack.mix.ts\": \"webpack\",\n \"webpack.mix.cts\": \"webpack\",\n \"webpack.mix.mts\": \"webpack\",\n \"webpack.prod.js\": \"webpack\",\n \"webpack.prod.cjs\": \"webpack\",\n \"webpack.prod.mjs\": \"webpack\",\n \"webpack.prod.ts\": \"webpack\",\n \"webpack.prod.cts\": \"webpack\",\n \"webpack.prod.mts\": \"webpack\",\n \"webpack.prod.config.js\": \"webpack\",\n \"webpack.prod.config.cjs\": \"webpack\",\n \"webpack.prod.config.mjs\": \"webpack\",\n \"webpack.prod.config.ts\": \"webpack\",\n \"webpack.prod.config.cts\": \"webpack\",\n \"webpack.prod.config.mts\": \"webpack\",\n \"webpack.production.js\": \"webpack\",\n \"webpack.production.cjs\": \"webpack\",\n \"webpack.production.mjs\": \"webpack\",\n \"webpack.production.ts\": \"webpack\",\n \"webpack.production.cts\": \"webpack\",\n \"webpack.production.mts\": \"webpack\",\n \"webpack.server.js\": \"webpack\",\n \"webpack.server.cjs\": \"webpack\",\n \"webpack.server.mjs\": \"webpack\",\n \"webpack.server.ts\": \"webpack\",\n \"webpack.server.cts\": \"webpack\",\n \"webpack.server.mts\": \"webpack\",\n \"webpack.client.js\": \"webpack\",\n \"webpack.client.cjs\": \"webpack\",\n \"webpack.client.mjs\": \"webpack\",\n \"webpack.client.ts\": \"webpack\",\n \"webpack.client.cts\": \"webpack\",\n \"webpack.client.mts\": \"webpack\",\n \"webpack.config.server.js\": \"webpack\",\n \"webpack.config.server.cjs\": \"webpack\",\n \"webpack.config.server.mjs\": \"webpack\",\n \"webpack.config.server.ts\": \"webpack\",\n \"webpack.config.server.cts\": \"webpack\",\n \"webpack.config.server.mts\": \"webpack\",\n \"webpack.config.client.js\": \"webpack\",\n \"webpack.config.client.cjs\": \"webpack\",\n \"webpack.config.client.mjs\": \"webpack\",\n \"webpack.config.client.ts\": \"webpack\",\n \"webpack.config.client.cts\": \"webpack\",\n \"webpack.config.client.mts\": \"webpack\",\n \"webpack.config.production.babel.js\": \"webpack\",\n \"webpack.config.production.babel.ts\": \"webpack\",\n \"webpack.config.prod.babel.js\": \"webpack\",\n \"webpack.config.prod.babel.cjs\": \"webpack\",\n \"webpack.config.prod.babel.mjs\": \"webpack\",\n \"webpack.config.prod.babel.ts\": \"webpack\",\n \"webpack.config.prod.babel.cts\": \"webpack\",\n \"webpack.config.prod.babel.mts\": \"webpack\",\n \"webpack.config.prod.js\": \"webpack\",\n \"webpack.config.prod.cjs\": \"webpack\",\n \"webpack.config.prod.mjs\": \"webpack\",\n \"webpack.config.prod.ts\": \"webpack\",\n \"webpack.config.prod.cts\": \"webpack\",\n \"webpack.config.prod.mts\": \"webpack\",\n \"webpack.config.production.js\": \"webpack\",\n \"webpack.config.production.cjs\": \"webpack\",\n \"webpack.config.production.mjs\": \"webpack\",\n \"webpack.config.production.ts\": \"webpack\",\n \"webpack.config.production.cts\": \"webpack\",\n \"webpack.config.production.mts\": \"webpack\",\n \"webpack.config.staging.js\": \"webpack\",\n \"webpack.config.staging.cjs\": \"webpack\",\n \"webpack.config.staging.mjs\": \"webpack\",\n \"webpack.config.staging.ts\": \"webpack\",\n \"webpack.config.staging.cts\": \"webpack\",\n \"webpack.config.staging.mts\": \"webpack\",\n \"webpack.config.babel.js\": \"webpack\",\n \"webpack.config.babel.ts\": \"webpack\",\n \"webpack.config.base.babel.js\": \"webpack\",\n \"webpack.config.base.babel.ts\": \"webpack\",\n \"webpack.config.base.js\": \"webpack\",\n \"webpack.config.base.cjs\": \"webpack\",\n \"webpack.config.base.mjs\": \"webpack\",\n \"webpack.config.base.ts\": \"webpack\",\n \"webpack.config.base.cts\": \"webpack\",\n \"webpack.config.base.mts\": \"webpack\",\n \"webpack.config.staging.babel.js\": \"webpack\",\n \"webpack.config.staging.babel.ts\": \"webpack\",\n \"webpack.config.coffee\": \"webpack\",\n \"webpack.config.test.js\": \"webpack\",\n \"webpack.config.test.cjs\": \"webpack\",\n \"webpack.config.test.mjs\": \"webpack\",\n \"webpack.config.test.ts\": \"webpack\",\n \"webpack.config.test.cts\": \"webpack\",\n \"webpack.config.test.mts\": \"webpack\",\n \"webpack.config.vendor.js\": \"webpack\",\n \"webpack.config.vendor.cjs\": \"webpack\",\n \"webpack.config.vendor.mjs\": \"webpack\",\n \"webpack.config.vendor.ts\": \"webpack\",\n \"webpack.config.vendor.cts\": \"webpack\",\n \"webpack.config.vendor.mts\": \"webpack\",\n \"webpack.config.vendor.production.js\": \"webpack\",\n \"webpack.config.vendor.production.cjs\": \"webpack\",\n \"webpack.config.vendor.production.mjs\": \"webpack\",\n \"webpack.config.vendor.production.ts\": \"webpack\",\n \"webpack.config.vendor.production.cts\": \"webpack\",\n \"webpack.config.vendor.production.mts\": \"webpack\",\n \"webpack.test.js\": \"webpack\",\n \"webpack.test.cjs\": \"webpack\",\n \"webpack.test.mjs\": \"webpack\",\n \"webpack.test.ts\": \"webpack\",\n \"webpack.test.cts\": \"webpack\",\n \"webpack.test.mts\": \"webpack\",\n \"webpack.dist.js\": \"webpack\",\n \"webpack.dist.cjs\": \"webpack\",\n \"webpack.dist.mjs\": \"webpack\",\n \"webpack.dist.ts\": \"webpack\",\n \"webpack.dist.cts\": \"webpack\",\n \"webpack.dist.mts\": \"webpack\",\n \"webpackfile.js\": \"webpack\",\n \"webpackfile.cjs\": \"webpack\",\n \"webpackfile.mjs\": \"webpack\",\n \"webpackfile.ts\": \"webpack\",\n \"webpackfile.cts\": \"webpack\",\n \"webpackfile.mts\": \"webpack\",\n \"ionic.config.json\": \"ionic\",\n \".io-config.json\": \"ionic\",\n \"gulpfile.js\": \"gulp\",\n \"gulpfile.mjs\": \"gulp\",\n \"gulpfile.ts\": \"gulp\",\n \"gulpfile.cts\": \"gulp\",\n \"gulpfile.mts\": \"gulp\",\n \"gulpfile.babel.js\": \"gulp\",\n \"package.json\": \"nodejs\",\n \"package-lock.json\": \"nodejs\",\n \".nvmrc\": \"nodejs\",\n \".esmrc\": \"nodejs\",\n \".node-version\": \"nodejs\",\n \".npmignore\": \"npm\",\n \".npmrc\": \"npm\",\n \".yarnrc\": \"yarn\",\n \"yarn.lock\": \"yarn\",\n \".yarnclean\": \"yarn\",\n \".yarn-integrity\": \"yarn\",\n \"yarn-error.log\": \"yarn\",\n \".yarnrc.yml\": \"yarn\",\n \".yarnrc.yaml\": \"yarn\",\n \"androidmanifest.xml\": \"android\",\n \".env.defaults\": \"tune\",\n \".env.example\": \"tune\",\n \".env.sample\": \"tune\",\n \".env.template\": \"tune\",\n \".env.schema\": \"tune\",\n \".env.local\": \"tune\",\n \".env.dev\": \"tune\",\n \".env.development\": \"tune\",\n \".env.alpha\": \"tune\",\n \".env.e2e\": \"tune\",\n \".env.qa\": \"tune\",\n \".env.dist\": \"tune\",\n \".env.prod\": \"tune\",\n \".env.production\": \"tune\",\n \".env.stage\": \"tune\",\n \".env.staging\": \"tune\",\n \".env.preview\": \"tune\",\n \".env.test\": \"tune\",\n \".env.testing\": \"tune\",\n \".env.development.local\": \"tune\",\n \".env.qa.local\": \"tune\",\n \".env.production.local\": \"tune\",\n \".env.staging.local\": \"tune\",\n \".env.test.local\": \"tune\",\n \".env.uat\": \"tune\",\n \"turbo.json\": \"turborepo\",\n \".babelrc\": \"babel\",\n \".babelrc.cjs\": \"babel\",\n \".babelrc.js\": \"babel\",\n \".babelrc.mjs\": \"babel\",\n \".babelrc.json\": \"babel\",\n \"babel.config.cjs\": \"babel\",\n \"babel.config.js\": \"babel\",\n \"babel.config.mjs\": \"babel\",\n \"babel.config.json\": \"babel\",\n \"babel-transform.js\": \"babel\",\n \".babel-plugin-macrosrc\": \"babel\",\n \".babel-plugin-macrosrc.json\": \"babel\",\n \".babel-plugin-macrosrc.yaml\": \"babel\",\n \".babel-plugin-macrosrc.yml\": \"babel\",\n \".babel-plugin-macrosrc.js\": \"babel\",\n \"babel-plugin-macros.config.js\": \"babel\",\n \"blitz.config.js\": \"blitz\",\n \"blitz.config.ts\": \"blitz\",\n \".blitz.config.compiled.js\": \"blitz\",\n \"contributing.md\": \"contributing\",\n \"contributing.rst\": \"contributing\",\n \"contributing.txt\": \"contributing\",\n \"contributing\": \"contributing\",\n \"readme.md\": \"readme\",\n \"readme.rst\": \"readme\",\n \"readme.txt\": \"readme\",\n \"readme\": \"readme\",\n \"changelog\": \"changelog\",\n \"changelog.md\": \"changelog\",\n \"changelog.rst\": \"changelog\",\n \"changelog.txt\": \"changelog\",\n \"changes\": \"changelog\",\n \"changes.md\": \"changelog\",\n \"changes.rst\": \"changelog\",\n \"changes.txt\": \"changelog\",\n \"architecture.md\": \"architecture\",\n \"architecture.rst\": \"architecture\",\n \"architecture.txt\": \"architecture\",\n \"architecture\": \"architecture\",\n \"credits.md\": \"credits\",\n \"credits.rst\": \"credits\",\n \"credits.txt\": \"credits\",\n \"credits\": \"credits\",\n \"authors.md\": \"authors\",\n \"authors.rst\": \"authors\",\n \"authors.txt\": \"authors\",\n \"authors\": \"authors\",\n \"contributors.md\": \"authors\",\n \"contributors.rst\": \"authors\",\n \"contributors.txt\": \"authors\",\n \"contributors\": \"authors\",\n \".flowconfig\": \"flow\",\n \"favicon.ico\": \"favicon\",\n \"karma.conf.js\": \"karma\",\n \"karma.conf.ts\": \"karma\",\n \"karma.conf.coffee\": \"karma\",\n \"karma.config.js\": \"karma\",\n \"karma.config.ts\": \"karma\",\n \"karma-main.js\": \"karma\",\n \"karma-main.ts\": \"karma\",\n \".bithoundrc\": \"bithound\",\n \"svgo.config.js\": \"svgo\",\n \"svgo.config.cjs\": \"svgo\",\n \"svgo.config.mjs\": \"svgo\",\n \".appveyor.yml\": \"appveyor\",\n \"appveyor.yml\": \"appveyor\",\n \".travis.yml\": \"travis\",\n \".codecov.yml\": \"codecov\",\n \"codecov.yml\": \"codecov\",\n \"sonar-project.properties\": \"sonarcloud\",\n \".sonarcloud.properties\": \"sonarcloud\",\n \"sonarcloud.yaml\": \"sonarcloud\",\n \"protractor.conf.js\": \"protractor\",\n \"protractor.conf.ts\": \"protractor\",\n \"protractor.conf.coffee\": \"protractor\",\n \"protractor.config.js\": \"protractor\",\n \"protractor.config.ts\": \"protractor\",\n \"fuse.js\": \"fusebox\",\n \"procfile\": \"heroku\",\n \"procfile.windows\": \"heroku\",\n \".editorconfig\": \"editorconfig\",\n \".bowerrc\": \"bower\",\n \"bower.json\": \"bower\",\n \".eslintrc.js\": \"eslint\",\n \".eslintrc.cjs\": \"eslint\",\n \".eslintrc.yaml\": \"eslint\",\n \".eslintrc.yml\": \"eslint\",\n \".eslintrc.json\": \"eslint\",\n \".eslintrc-md.js\": \"eslint\",\n \".eslintrc-jsdoc.js\": \"eslint\",\n \".eslintrc\": \"eslint\",\n \".eslintignore\": \"eslint\",\n \".eslintcache\": \"eslint\",\n \"eslint.config.js\": \"eslint\",\n \"eslint.config.mjs\": \"eslint\",\n \"code_of_conduct.md\": \"conduct\",\n \"code_of_conduct.txt\": \"conduct\",\n \"code_of_conduct\": \"conduct\",\n \".watchmanconfig\": \"watchman\",\n \"aurelia.json\": \"aurelia\",\n \".autorc\": \"auto\",\n \"auto.config.js\": \"auto\",\n \"auto.config.ts\": \"auto\",\n \"auto-config.json\": \"auto\",\n \"auto-config.yaml\": \"auto\",\n \"auto-config.yml\": \"auto\",\n \"auto-config.ts\": \"auto\",\n \"auto-config.js\": \"auto\",\n \"mocha.opts\": \"mocha\",\n \".mocharc.yml\": \"mocha\",\n \".mocharc.yaml\": \"mocha\",\n \".mocharc.js\": \"mocha\",\n \".mocharc.json\": \"mocha\",\n \".mocharc.jsonc\": \"mocha\",\n \"jenkinsfile\": \"jenkins\",\n \"firebase.json\": \"firebase\",\n \".firebaserc\": \"firebase\",\n \"firestore.rules\": \"firebase\",\n \"firestore.indexes.json\": \"firebase\",\n \"rollup.config.js\": \"rollup\",\n \"rollup.config.mjs\": \"rollup\",\n \"rollup.config.ts\": \"rollup\",\n \"rollup-config.js\": \"rollup\",\n \"rollup-config.mjs\": \"rollup\",\n \"rollup-config.ts\": \"rollup\",\n \"rollup.config.common.js\": \"rollup\",\n \"rollup.config.common.mjs\": \"rollup\",\n \"rollup.config.common.ts\": \"rollup\",\n \"rollup.config.base.js\": \"rollup\",\n \"rollup.config.base.mjs\": \"rollup\",\n \"rollup.config.base.ts\": \"rollup\",\n \"rollup.config.prod.js\": \"rollup\",\n \"rollup.config.prod.mjs\": \"rollup\",\n \"rollup.config.prod.ts\": \"rollup\",\n \"rollup.config.dev.js\": \"rollup\",\n \"rollup.config.dev.mjs\": \"rollup\",\n \"rollup.config.dev.ts\": \"rollup\",\n \"rollup.config.prod.vendor.js\": \"rollup\",\n \"rollup.config.prod.vendor.mjs\": \"rollup\",\n \"rollup.config.prod.vendor.ts\": \"rollup\",\n \".hhconfig\": \"hack\",\n \"hardhat.config.js\": \"hardhat\",\n \"hardhat.config.ts\": \"hardhat\",\n \".stylelintrc\": \"stylelint\",\n \"stylelint.config.js\": \"stylelint\",\n \"stylelint.config.cjs\": \"stylelint\",\n \".stylelintrc.json\": \"stylelint\",\n \".stylelintrc.yaml\": \"stylelint\",\n \".stylelintrc.yml\": \"stylelint\",\n \".stylelintrc.js\": \"stylelint\",\n \".stylelintrc.cjs\": \"stylelint\",\n \".stylelintignore\": \"stylelint\",\n \".stylelintcache\": \"stylelint\",\n \".codeclimate.yml\": \"code-climate\",\n \".prettierrc\": \"prettier\",\n \"prettier.config.js\": \"prettier\",\n \"prettier.config.cjs\": \"prettier\",\n \".prettierrc.js\": \"prettier\",\n \".prettierrc.cjs\": \"prettier\",\n \".prettierrc.json\": \"prettier\",\n \".prettierrc.json5\": \"prettier\",\n \".prettierrc.yaml\": \"prettier\",\n \".prettierrc.yml\": \"prettier\",\n \".prettierignore\": \"prettier\",\n \".prettierrc.toml\": \"prettier\",\n \".renovaterc\": \"renovate\",\n \".renovaterc.json\": \"renovate\",\n \"renovate-config.json\": \"renovate\",\n \"renovate.json\": \"renovate\",\n \"renovate.json5\": \"renovate\",\n \"apollo.config.js\": \"apollo\",\n \"nodemon.json\": \"nodemon\",\n \"nodemon-debug.json\": \"nodemon\",\n \".hintrc\": \"webhint\",\n \"browserslist\": \"browserlist\",\n \".browserslistrc\": \"browserlist\",\n \".snyk\": \"snyk\",\n \".drone.yml\": \"drone\",\n \".sequelizerc\": \"sequelize\",\n \"gatsby-config.js\": \"gatsby\",\n \"gatsby-config.mjs\": \"gatsby\",\n \"gatsby-config.ts\": \"gatsby\",\n \"gatsby-node.js\": \"gatsby\",\n \"gatsby-node.mjs\": \"gatsby\",\n \"gatsby-node.ts\": \"gatsby\",\n \"gatsby-browser.js\": \"gatsby\",\n \"gatsby-browser.tsx\": \"gatsby\",\n \"gatsby-ssr.js\": \"gatsby\",\n \"gatsby-ssr.tsx\": \"gatsby\",\n \".wakatime-project\": \"wakatime\",\n \"circle.yml\": \"circleci\",\n \".cfignore\": \"cloudfoundry\",\n \"gruntfile.js\": \"grunt\",\n \"gruntfile.ts\": \"grunt\",\n \"gruntfile.coffee\": \"grunt\",\n \"gruntfile.babel.js\": \"grunt\",\n \"gruntfile.babel.ts\": \"grunt\",\n \"gruntfile.babel.coffee\": \"grunt\",\n \"jest.config.js\": \"jest\",\n \"jest.config.cjs\": \"jest\",\n \"jest.config.mjs\": \"jest\",\n \"jest.config.ts\": \"jest\",\n \"jest.config.cts\": \"jest\",\n \"jest.config.mts\": \"jest\",\n \"jest.config.json\": \"jest\",\n \"jest.e2e.config.js\": \"jest\",\n \"jest.e2e.config.cjs\": \"jest\",\n \"jest.e2e.config.mjs\": \"jest\",\n \"jest.e2e.config.ts\": \"jest\",\n \"jest.e2e.config.cts\": \"jest\",\n \"jest.e2e.config.mts\": \"jest\",\n \"jest.e2e.config.json\": \"jest\",\n \"jest.e2e.json\": \"jest\",\n \"jest-unit.config.js\": \"jest\",\n \"jest-e2e.config.js\": \"jest\",\n \"jest-e2e.config.cjs\": \"jest\",\n \"jest-e2e.config.mjs\": \"jest\",\n \"jest-e2e.config.ts\": \"jest\",\n \"jest-e2e.config.cts\": \"jest\",\n \"jest-e2e.config.mts\": \"jest\",\n \"jest-e2e.config.json\": \"jest\",\n \"jest-e2e.json\": \"jest\",\n \"jest-github-actions-reporter.js\": \"jest\",\n \"jest.setup.js\": \"jest\",\n \"jest.setup.ts\": \"jest\",\n \"jest.json\": \"jest\",\n \".jestrc\": \"jest\",\n \".jestrc.js\": \"jest\",\n \".jestrc.json\": \"jest\",\n \"jest.teardown.js\": \"jest\",\n \"fastfile\": \"fastlane\",\n \"appfile\": \"fastlane\",\n \".helmignore\": \"helm\",\n \"wallaby.js\": \"wallaby\",\n \"wallaby.conf.js\": \"wallaby\",\n \"stencil.config.js\": \"stencil\",\n \"stencil.config.ts\": \"stencil\",\n \"makefile\": \"makefile\",\n \"gnumakefile\": \"makefile\",\n \"kbuild\": \"makefile\",\n \".releaserc\": \"semantic-release\",\n \".releaserc.yaml\": \"semantic-release\",\n \".releaserc.yml\": \"semantic-release\",\n \".releaserc.json\": \"semantic-release\",\n \".releaserc.js\": \"semantic-release\",\n \"release.config.js\": \"semantic-release\",\n \"release.config.cjs\": \"semantic-release\",\n \"bitbucket-pipelines.yaml\": \"bitbucket\",\n \"bitbucket-pipelines.yml\": \"bitbucket\",\n \".bazelignore\": \"bazel\",\n \".bazelrc\": \"bazel\",\n \".bazelversion\": \"bazel\",\n \".gdignore\": \"godot-assets\",\n \"._sc_\": \"godot-assets\",\n \"_sc_\": \"godot-assets\",\n \"azure-pipelines.yml\": \"azure-pipelines\",\n \"azure-pipelines.yaml\": \"azure-pipelines\",\n \"vagrantfile\": \"vagrant\",\n \"prisma.yml\": \"prisma\",\n \".nycrc\": \"istanbul\",\n \".nycrc.json\": \"istanbul\",\n \"tailwind.js\": \"tailwindcss\",\n \"tailwind.ts\": \"tailwindcss\",\n \"tailwind.config.js\": \"tailwindcss\",\n \"tailwind.config.cjs\": \"tailwindcss\",\n \"tailwind.config.ts\": \"tailwindcss\",\n \"tailwind.config.cts\": \"tailwindcss\",\n \"buildkite.yml\": \"buildkite\",\n \"buildkite.yaml\": \"buildkite\",\n \"netlify.json\": \"netlify\",\n \"netlify.yml\": \"netlify\",\n \"netlify.yaml\": \"netlify\",\n \"netlify.toml\": \"netlify\",\n \"svelte.config.js\": \"svelte\",\n \"svelte.config.cjs\": \"svelte\",\n \"nest-cli.json\": \"nest\",\n \".nest-cli.json\": \"nest\",\n \"nestconfig.json\": \"nest\",\n \".nestconfig.json\": \"nest\",\n \".percy.yml\": \"percy\",\n \".gitpod.yml\": \"gitpod\",\n \"codeowners\": \"codeowners\",\n \".gcloudignore\": \"gcp\",\n \".huskyrc\": \"husky\",\n \"husky.config.js\": \"husky\",\n \".huskyrc.json\": \"husky\",\n \".huskyrc.js\": \"husky\",\n \".huskyrc.yaml\": \"husky\",\n \".huskyrc.yml\": \"husky\",\n \"tiltfile\": \"tilt\",\n \"capacitor.config.json\": \"capacitor\",\n \"capacitor.config.ts\": \"capacitor\",\n \".adonisrc.json\": \"adonis\",\n \"ace\": \"adonis\",\n \"meson.build\": \"meson\",\n \"meson_options.txt\": \"meson\",\n \".commitlintrc\": \"commitlint\",\n \".commitlintrc.js\": \"commitlint\",\n \".commitlintrc.cjs\": \"commitlint\",\n \".commitlintrc.ts\": \"commitlint\",\n \".commitlintrc.cts\": \"commitlint\",\n \".commitlintrc.json\": \"commitlint\",\n \".commitlintrc.yaml\": \"commitlint\",\n \".commitlintrc.yml\": \"commitlint\",\n \".commitlint.yaml\": \"commitlint\",\n \".commitlint.yml\": \"commitlint\",\n \"commitlint.config.js\": \"commitlint\",\n \"commitlint.config.cjs\": \"commitlint\",\n \"commitlint.config.ts\": \"commitlint\",\n \"commitlint.config.cts\": \"commitlint\",\n \".buckconfig\": \"buck\",\n \"nx.json\": \"nrwl\",\n \".nxignore\": \"nrwl\",\n \"dune\": \"dune\",\n \"dune-project\": \"dune\",\n \"dune-workspace\": \"dune\",\n \"dune-workspace.dev\": \"dune\",\n \"roadmap.md\": \"roadmap\",\n \"roadmap.txt\": \"roadmap\",\n \"timeline.md\": \"roadmap\",\n \"timeline.txt\": \"roadmap\",\n \"milestones.md\": \"roadmap\",\n \"milestones.txt\": \"roadmap\",\n \"nuget.config\": \"nuget\",\n \".nuspec\": \"nuget\",\n \"nuget.exe\": \"nuget\",\n \"stryker.conf.json\": \"stryker\",\n \"stryker.conf.js\": \"stryker\",\n \"stryker.conf.cjs\": \"stryker\",\n \"stryker.conf.mjs\": \"stryker\",\n \".stryker.conf.json\": \"stryker\",\n \".stryker.conf.js\": \"stryker\",\n \".stryker.conf.cjs\": \"stryker\",\n \".stryker.conf.mjs\": \"stryker\",\n \".modernizrrc\": \"modernizr\",\n \".modernizrrc.js\": \"modernizr\",\n \".modernizrrc.json\": \"modernizr\",\n \".slugignore\": \"slug\",\n \"stitches.config.js\": \"stitches\",\n \"stitches.config.ts\": \"stitches\",\n \"nginx.conf\": \"nginx\",\n \".mcattributes\": \"minecraft\",\n \".mcdefinitions\": \"minecraft\",\n \".mcignore\": \"minecraft\",\n \".replit\": \"replit\",\n \"snowpack.config.js\": \"snowpack\",\n \"snowpack.config.cjs\": \"snowpack\",\n \"snowpack.config.mjs\": \"snowpack\",\n \"snowpack.config.ts\": \"snowpack\",\n \"snowpack.config.cts\": \"snowpack\",\n \"snowpack.config.mts\": \"snowpack\",\n \"snowpack.deps.json\": \"snowpack\",\n \"snowpack.config.json\": \"snowpack\",\n \"quasar.conf.js\": \"quasar\",\n \"quasar.config.js\": \"quasar\",\n \"dependabot.yml\": \"dependabot\",\n \"dependabot.yaml\": \"dependabot\",\n \"vite.config.js\": \"vite\",\n \"vite.config.mjs\": \"vite\",\n \"vite.config.cjs\": \"vite\",\n \"vite.config.ts\": \"vite\",\n \"vite.config.cts\": \"vite\",\n \"vite.config.mts\": \"vite\",\n \"vitest.config.ts\": \"vitest\",\n \"vitest.config.mts\": \"vitest\",\n \"vitest.config.cts\": \"vitest\",\n \"vitest.config.js\": \"vitest\",\n \"vitest.config.mjs\": \"vitest\",\n \"vitest.config.cjs\": \"vitest\",\n \"lerna.json\": \"lerna\",\n \"windi.config.js\": \"windicss\",\n \"windi.config.cjs\": \"windicss\",\n \"windi.config.ts\": \"windicss\",\n \"windi.config.cts\": \"windicss\",\n \"windi.config.json\": \"windicss\",\n \".textlintrc\": \"textlint\",\n \"vpkg.json\": \"vlang\",\n \"v.mod\": \"vlang\",\n \".sentryclirc\": \"sentry\",\n \".phpunit.result.cache\": \"phpunit\",\n \".phpunit-watcher.yml\": \"phpunit\",\n \"phpunit.xml\": \"phpunit\",\n \"phpunit.xml.dist\": \"phpunit\",\n \"phpunit-watcher.yml\": \"phpunit\",\n \"phpunit-watcher.yml.dist\": \"phpunit\",\n \".php_cs\": \"php-cs-fixer\",\n \".php_cs.dist\": \"php-cs-fixer\",\n \".php_cs.php\": \"php-cs-fixer\",\n \".php_cs.dist.php\": \"php-cs-fixer\",\n \".php-cs-fixer.php\": \"php-cs-fixer\",\n \".php-cs-fixer.dist.php\": \"php-cs-fixer\",\n \"robots.txt\": \"robots\",\n \"tsconfig.json\": \"tsconfig\",\n \"tsconfig.app.json\": \"tsconfig\",\n \"tsconfig.editor.json\": \"tsconfig\",\n \"tsconfig.spec.json\": \"tsconfig\",\n \"tsconfig.base.json\": \"tsconfig\",\n \"tsconfig.build.json\": \"tsconfig\",\n \"tsconfig.eslint.json\": \"tsconfig\",\n \"tsconfig.lib.json\": \"tsconfig\",\n \"tsconfig.lib.prod.json\": \"tsconfig\",\n \"tsconfig.node.json\": \"tsconfig\",\n \"tsconfig.test.json\": \"tsconfig\",\n \"tsconfig.e2e.json\": \"tsconfig\",\n \"tsconfig.web.json\": \"tsconfig\",\n \"tsconfig.webworker.json\": \"tsconfig\",\n \"tsconfig.worker.json\": \"tsconfig\",\n \"tsconfig.config.json\": \"tsconfig\",\n \"tsconfig.vitest.json\": \"tsconfig\",\n \"tsconfig.cjs.json\": \"tsconfig\",\n \"tsconfig.esm.json\": \"tsconfig\",\n \"tsconfig.mjs.json\": \"tsconfig\",\n \"tsconfig.doc.json\": \"tsconfig\",\n \"tsconfig.paths.json\": \"tsconfig\",\n \"tauri.conf.json\": \"tauri\",\n \"tauri.config.json\": \"tauri\",\n \"tauri.linux.conf.json\": \"tauri\",\n \"tauri.windows.conf.json\": \"tauri\",\n \"tauri.macos.conf.json\": \"tauri\",\n \"jsconfig.json\": \"jsconfig\",\n \"maven.config\": \"maven\",\n \"jvm.config\": \"maven\",\n \"pom.xml\": \"maven\",\n \"serverless.yml\": \"serverless\",\n \"serverless.yaml\": \"serverless\",\n \"serverless.json\": \"serverless\",\n \"serverless.js\": \"serverless\",\n \"serverless.ts\": \"serverless\",\n \"supabase.js\": \"supabase\",\n \"supabase.py\": \"supabase\",\n \".ember-cli\": \"ember\",\n \".ember-cli.js\": \"ember\",\n \"ember-cli-builds.js\": \"ember\",\n \"horusec-config.json\": \"horusec\",\n \"poetry.lock\": \"poetry\",\n \".parcelrc\": \"parcel\",\n \".astylerc\": \"astyle\",\n \".lighthouserc.js\": \"lighthouse\",\n \"lighthouserc.js\": \"lighthouse\",\n \".lighthouserc.json\": \"lighthouse\",\n \"lighthouserc.json\": \"lighthouse\",\n \".lighthouserc.yml\": \"lighthouse\",\n \"lighthouserc.yml\": \"lighthouse\",\n \".lighthouserc.yaml\": \"lighthouse\",\n \"lighthouserc.yaml\": \"lighthouse\",\n \".svgrrc\": \"svgr\",\n \"svgr.config.js\": \"svgr\",\n \".svgrrc.js\": \"svgr\",\n \".svgrrc.yaml\": \"svgr\",\n \".svgrrc.yml\": \"svgr\",\n \".svgrrc.json\": \"svgr\",\n \"rome.json\": \"rome\",\n \"cypress.json\": \"cypress\",\n \"cypress.env.json\": \"cypress\",\n \"cypress.config.ts\": \"cypress\",\n \"cypress.config.js\": \"cypress\",\n \"cypress.config.cjs\": \"cypress\",\n \"cypress.config.mjs\": \"cypress\",\n \"plopfile.js\": \"plop\",\n \"plopfile.cjs\": \"plop\",\n \"plopfile.mjs\": \"plop\",\n \"plopfile.ts\": \"plop\",\n \".tobimake\": \"tobimake\",\n \"gleam.toml\": \"gleam\",\n \"pnpm-lock.yaml\": \"pnpm\",\n \"pnpm-workspace.yaml\": \"pnpm\",\n \".pnpmfile.cjs\": \"pnpm\",\n \"gridsome.config.js\": \"gridsome\",\n \"gridsome.server.js\": \"gridsome\",\n \".steadybit.yml\": \"steadybit\",\n \"steadybit.yml\": \"steadybit\",\n \".steadybit.yaml\": \"steadybit\",\n \"steadybit.yaml\": \"steadybit\",\n \"Caddyfile\": \"caddy\",\n \"bun.lockb\": \"bun\",\n \".nano-staged.js\": \"nano-staged\",\n \"nano-staged.js\": \"nano-staged\",\n \".nano-staged.cjs\": \"nano-staged\",\n \"nano-staged.cjs\": \"nano-staged\",\n \".nano-staged.mjs\": \"nano-staged\",\n \"nano-staged.mjs\": \"nano-staged\",\n \".nano-staged.json\": \"nano-staged\",\n \"nano-staged.json\": \"nano-staged\",\n \".nanostagedrc\": \"nano-staged\",\n \"craco.config.ts\": \"craco\",\n \"craco.config.js\": \"craco\",\n \"craco.config.cjs\": \"craco\",\n \".cracorc.ts\": \"craco\",\n \".cracorc.js\": \"craco\",\n \".cracorc\": \"craco\",\n \".hg\": \"mercurial\",\n \".hgignore\": \"mercurial\",\n \".hgflow\": \"mercurial\",\n \".hgrc\": \"mercurial\",\n \"hgrc\": \"mercurial\",\n \"mercurial.ini\": \"mercurial\",\n \"deno.json\": \"deno\",\n \"deno.jsonc\": \"deno\",\n \"deno.lock\": \"deno\",\n \"plastic.branchexplorer\": \"plastic\",\n \"plastic.selector\": \"plastic\",\n \"plastic.wktree\": \"plastic\",\n \"plastic.workspace\": \"plastic\",\n \"plastic.workspaces\": \"plastic\",\n \".mincloudrc\": \"ifanr-cloud\"\n },\n \"languageIds\": {\n \"git\": \"git\",\n \"git-commit\": \"git\",\n \"git-rebase\": \"git\",\n \"ignore\": \"git\",\n \"yaml\": \"yaml\",\n \"xml\": \"xml\",\n \"xquery\": \"xml\",\n \"xsl\": \"xml\",\n \"matlab\": \"matlab\",\n \"makefile\": \"settings\",\n \"toml\": \"settings\",\n \"ini\": \"settings\",\n \"properties\": \"settings\",\n \"shaderlab\": \"shaderlab\",\n \"diff\": \"diff\",\n \"json\": \"json\",\n \"jsonc\": \"json\",\n \"json5\": \"json\",\n \"blink\": \"blink\",\n \"java\": \"java\",\n \"razor\": \"razor\",\n \"aspnetcorerazor\": \"razor\",\n \"python\": \"python\",\n \"javascript\": \"javascript\",\n \"typescript\": \"typescript\",\n \"scala\": \"scala\",\n \"handlebars\": \"handlebars\",\n \"perl\": \"perl\",\n \"perl6\": \"perl\",\n \"haxe\": \"haxe\",\n \"hxml\": \"haxe\",\n \"puppet\": \"puppet\",\n \"elixir\": \"elixir\",\n \"livescript\": \"livescript\",\n \"erlang\": \"erlang\",\n \"twig\": \"twig\",\n \"julia\": \"julia\",\n \"elm\": \"elm\",\n \"purescript\": \"purescript\",\n \"stylus\": \"stylus\",\n \"nunjucks\": \"nunjucks\",\n \"pug\": \"pug\",\n \"robotframework\": \"robot\",\n \"sass\": \"sass\",\n \"scss\": \"sass\",\n \"less\": \"less\",\n \"css\": \"css\",\n \"testOutput\": \"visualstudio\",\n \"vb\": \"visualstudio\",\n \"ng-template\": \"angular\",\n \"graphql\": \"graphql\",\n \"solidity\": \"solidity\",\n \"autoit\": \"autoit\",\n \"haml\": \"haml\",\n \"yang\": \"yang\",\n \"terraform\": \"terraform\",\n \"applescript\": \"applescript\",\n \"cake\": \"cake\",\n \"cucumber\": \"cucumber\",\n \"nim\": \"nim\",\n \"nimble\": \"nim\",\n \"apiblueprint\": \"apiblueprint\",\n \"riot\": \"riot\",\n \"postcss\": \"postcss\",\n \"lang-cfml\": \"coldfusion\",\n \"haskell\": \"haskell\",\n \"dhall\": \"dhall\",\n \"cabal\": \"cabal\",\n \"nix\": \"nix\",\n \"ruby\": \"ruby\",\n \"slim\": \"slim\",\n \"php\": \"php\",\n \"hack\": \"hack\",\n \"javascriptreact\": \"react\",\n \"mjml\": \"mjml\",\n \"processing\": \"processing\",\n \"hcl\": \"hcl\",\n \"go\": \"go\",\n \"django-html\": \"django\",\n \"django-txt\": \"django\",\n \"html\": \"html\",\n \"gdscript\": \"godot\",\n \"gdresource\": \"godot-assets\",\n \"gdshader\": \"godot-assets\",\n \"viml\": \"vim\",\n \"prolog\": \"prolog\",\n \"pawn\": \"pawn\",\n \"reason\": \"reason\",\n \"reason_lisp\": \"reason\",\n \"sml\": \"sml\",\n \"tex\": \"tex\",\n \"doctex\": \"tex\",\n \"latex\": \"tex\",\n \"latex-expl3\": \"tex\",\n \"apex\": \"salesforce\",\n \"sas\": \"sas\",\n \"dockerfile\": \"docker\",\n \"csv\": \"table\",\n \"tsv\": \"table\",\n \"psv\": \"table\",\n \"csharp\": \"csharp\",\n \"bat\": \"console\",\n \"awk\": \"console\",\n \"shellscript\": \"console\",\n \"c\": \"c\",\n \"cpp\": \"cpp\",\n \"objective-c\": \"objective-c\",\n \"objective-cpp\": \"objective-cpp\",\n \"coffeescript\": \"coffee\",\n \"fsharp\": \"fsharp\",\n \"editorconfig\": \"editorconfig\",\n \"clojure\": \"clojure\",\n \"groovy\": \"groovy\",\n \"markdown\": \"markdown\",\n \"jinja\": \"jinja\",\n \"proto\": \"proto\",\n \"pip-requirements\": \"python-misc\",\n \"vue\": \"vue\",\n \"vue-postcss\": \"vue\",\n \"vue-html\": \"vue\",\n \"lua\": \"lua\",\n \"bibtex\": \"lib\",\n \"bibtex-style\": \"lib\",\n \"log\": \"log\",\n \"jupyter\": \"jupyter\",\n \"plaintext\": \"document\",\n \"pdf\": \"pdf\",\n \"powershell\": \"powershell\",\n \"jade\": \"pug\",\n \"r\": \"r\",\n \"rsweave\": \"r\",\n \"rust\": \"rust\",\n \"sql\": \"database\",\n \"kql\": \"kusto\",\n \"ssh_config\": \"lock\",\n \"svg\": \"svg\",\n \"swift\": \"swift\",\n \"typescriptreact\": \"react_ts\",\n \"search-result\": \"search\",\n \"mcfunction\": \"minecraft\",\n \"rescript\": \"rescript\",\n \"otne\": \"otne\",\n \"twee3\": \"twine\",\n \"twee3-harlowe-3\": \"twine\",\n \"twee3-chapbook-1\": \"twine\",\n \"twee3-sugarcube-2\": \"twine\",\n \"grain\": \"grain\",\n \"lolcode\": \"lolcode\",\n \"idris\": \"idris\",\n \"pgn\": \"chess\",\n \"gemini\": \"gemini\",\n \"text-gemini\": \"gemini\",\n \"v\": \"vlang\",\n \"wolfram\": \"wolframlanguage\",\n \"hlsl\": \"shader\",\n \"glsl\": \"shader\",\n \"wgsl\": \"shader\",\n \"tree\": \"tree\",\n \"svelte\": \"svelte\",\n \"dart\": \"dart\",\n \"cadence\": \"cadence\",\n \"stylable\": \"stylable\"\n },\n \"light\": {\n \"fileExtensions\": {\n \"blink\": \"blink_light\",\n \"jinja\": \"jinja_light\",\n \"jinja2\": \"jinja_light\",\n \"j2\": \"jinja_light\",\n \"jinja-html\": \"jinja_light\",\n \"cr\": \"crystal_light\",\n \"ecr\": \"crystal_light\",\n \"drone.yml\": \"drone_light\",\n \".wakatime-project\": \"wakatime_light\",\n \"hcl\": \"hcl_light\",\n \"iuml\": \"uml_light\",\n \"pu\": \"uml_light\",\n \"puml\": \"uml_light\",\n \"plantuml\": \"uml_light\",\n \"wsd\": \"uml_light\",\n \"pgn\": \"chess_light\",\n \"fen\": \"chess_light\",\n \"tldr\": \"tldraw_light\"\n },\n \"fileNames\": {\n \".rubocop.yml\": \"rubocop_light\",\n \".rubocop-todo.yml\": \"rubocop_light\",\n \".rubocop_todo.yml\": \"rubocop_light\",\n \"vercel.json\": \"vercel_light\",\n \".vercelignore\": \"vercel_light\",\n \"now.json\": \"vercel_light\",\n \".nowignore\": \"vercel_light\",\n \"next.config.js\": \"next_light\",\n \"next.config.mjs\": \"next_light\",\n \"next.config.ts\": \"next_light\",\n \"next.config.mts\": \"next_light\",\n \"remix.config.js\": \"remix_light\",\n \"remix.config.ts\": \"remix_light\",\n \"turbo.json\": \"turborepo_light\",\n \".autorc\": \"auto_light\",\n \"auto.config.js\": \"auto_light\",\n \"auto.config.ts\": \"auto_light\",\n \"auto-config.json\": \"auto_light\",\n \"auto-config.yaml\": \"auto_light\",\n \"auto-config.yml\": \"auto_light\",\n \"auto-config.ts\": \"auto_light\",\n \"auto-config.js\": \"auto_light\",\n \".stylelintrc\": \"stylelint_light\",\n \"stylelint.config.js\": \"stylelint_light\",\n \"stylelint.config.cjs\": \"stylelint_light\",\n \".stylelintrc.json\": \"stylelint_light\",\n \".stylelintrc.yaml\": \"stylelint_light\",\n \".stylelintrc.yml\": \"stylelint_light\",\n \".stylelintrc.js\": \"stylelint_light\",\n \".stylelintrc.cjs\": \"stylelint_light\",\n \".stylelintignore\": \"stylelint_light\",\n \".stylelintcache\": \"stylelint_light\",\n \".codeclimate.yml\": \"code-climate_light\",\n \"browserslist\": \"browserlist_light\",\n \".browserslistrc\": \"browserlist_light\",\n \".drone.yml\": \"drone_light\",\n \".wakatime-project\": \"wakatime_light\",\n \"circle.yml\": \"circleci_light\",\n \".releaserc\": \"semantic-release_light\",\n \".releaserc.yaml\": \"semantic-release_light\",\n \".releaserc.yml\": \"semantic-release_light\",\n \".releaserc.json\": \"semantic-release_light\",\n \".releaserc.js\": \"semantic-release_light\",\n \"release.config.js\": \"semantic-release_light\",\n \"release.config.cjs\": \"semantic-release_light\",\n \"netlify.json\": \"netlify_light\",\n \"netlify.yml\": \"netlify_light\",\n \"netlify.yaml\": \"netlify_light\",\n \"netlify.toml\": \"netlify_light\",\n \"stitches.config.js\": \"stitches_light\",\n \"stitches.config.ts\": \"stitches_light\",\n \"snowpack.config.js\": \"snowpack_light\",\n \"snowpack.config.cjs\": \"snowpack_light\",\n \"snowpack.config.mjs\": \"snowpack_light\",\n \"snowpack.config.ts\": \"snowpack_light\",\n \"snowpack.config.cts\": \"snowpack_light\",\n \"snowpack.config.mts\": \"snowpack_light\",\n \"snowpack.deps.json\": \"snowpack_light\",\n \"snowpack.config.json\": \"snowpack_light\",\n \"pnpm-lock.yaml\": \"pnpm_light\",\n \"pnpm-workspace.yaml\": \"pnpm_light\",\n \".pnpmfile.cjs\": \"pnpm_light\",\n \"bun.lockb\": \"bun_light\",\n \".nano-staged.js\": \"nano-staged_light\",\n \"nano-staged.js\": \"nano-staged_light\",\n \".nano-staged.cjs\": \"nano-staged_light\",\n \"nano-staged.cjs\": \"nano-staged_light\",\n \".nano-staged.mjs\": \"nano-staged_light\",\n \"nano-staged.mjs\": \"nano-staged_light\",\n \".nano-staged.json\": \"nano-staged_light\",\n \"nano-staged.json\": \"nano-staged_light\",\n \".nanostagedrc\": \"nano-staged_light\",\n \"deno.json\": \"deno_light\",\n \"deno.jsonc\": \"deno_light\",\n \"deno.lock\": \"deno_light\"\n },\n \"folderNames\": {\n \"jinja\": \"folder-jinja_light\",\n \"jinja2\": \"folder-jinja_light\",\n \"j2\": \"folder-jinja_light\",\n \".idea\": \"folder-intellij_light\"\n },\n \"folderNamesExpanded\": {\n \"jinja\": \"folder-jinja-open_light\",\n \"jinja2\": \"folder-jinja-open_light\",\n \"j2\": \"folder-jinja-open_light\",\n \".idea\": \"folder-intellij-open_light\"\n }\n },\n \"highContrast\": {\n \"fileExtensions\": {},\n \"fileNames\": {}\n },\n \"options\": {\n \"folders\": {\n \"theme\": \"specific\",\n \"color\": \"#90a4ae\",\n \"associations\": {}\n },\n \"activeIconPack\": \"angular\",\n \"hidesExplorerArrows\": false,\n \"opacity\": 1,\n \"saturation\": 1,\n \"files\": {\n \"color\": \"#90a4ae\",\n \"associations\": {}\n },\n \"languages\": {\n \"associations\": {}\n }\n },\n \"file\": \"file\",\n \"hidesExplorerArrows\": false,\n \"folder\": \"folder\",\n \"folderExpanded\": \"folder-open\",\n \"rootFolder\": \"folder-root\",\n \"rootFolderExpanded\": \"folder-root-open\"\n}\n","import { FSDescriptor } from './filemanager.component';\nimport textExtensions from './textextensions';\nimport * as MIT from '../../assets/mat-icons';\n\n// Object.keys(MIT).forEach(k => {\n// console.log(k, MIT[k])\n// })\n\nconst symIcon = Symbol('icon');\n\nconst folderNames = MIT['default'].folderNames;\nconst fileNames = MIT['default'].fileNames;\nconst fileExtensions = MIT['default'].fileExtensions;\n\nlet folderIconNameList = [];\nlet fileIconNameList = [];\nlet fileIconExtensionList = [];\n\nObject.entries(fileNames).forEach(([name, icon]) => {\n fileIconNameList.push({\n val: name,\n iconName: icon\n });\n})\nObject.entries(fileExtensions).forEach(([name, icon]) => {\n fileIconExtensionList.push({\n val: name,\n iconName: icon\n });\n})\n\nObject.entries(folderNames).forEach(([name, icon]) => {\n folderIconNameList.push({\n val: name,\n iconName: icon,\n });\n})\n\n// const getMimeType = (name: string) =>\n// (/\\.(appimage)$/.test(name) && \"compressed\") ||\n// (/\\.(pot|potx|pps|ppsx|ppt|pptm|pptx)$/.test(name) && \"presentation\") ||\n// (/\\.(odt|rtf|doc|docm|docx|dot|dotm|dotx)$/.test(name) && \"richtext\") ||\n// (/\\.(ods|xls|xlsm|xlsx|xps|xlsx|csv)$/.test(name) && \"spreadsheet\");\n\n\n// Limited list of pop-icons that match before mat-icons\n// const builtinIcons = [\n// \"7z\",\n// \"apk\",\n// \"arc\",\n// \"bz\",\n// \"deb\",\n// \"gz\",\n// \"pdf\",\n// \"rar\",\n// \"rpm\",\n// \"tar\",\n// \"xar\",\n// \"xz\",\n// \"zip\"\n// ];\n\nexport class IconResolver {\n public path: string;\n\n constructor(assetPath = \"/assets/\") {\n let path = assetPath.trim();\n\n // Replace any duplicate slash occurences\n path = path.replace(/\\/{2,99}/g, '\\/');\n\n // Trim off trailing slashes\n if (path.endsWith('/'))\n path = path.replace(/\\/+$/, '');\n\n // Ensure it starts with a slash.\n if (!path.startsWith('/'))\n path = '/' + path;\n\n this.path = path;\n }\n\n private isText(path: string) {\n const ext = path.split('.').pop();\n return textExtensions.includes(ext);\n }\n\n private getBestMatch(data: { val: string, iconName: string; }[], filename) {\n return data\n .filter(d => filename.endsWith(d.val)) // filter to all match results\n .sort((a, b) => b.val.length - a.val.length) // sort longest string first\n [0]?.iconName; // Return the first result.\n }\n\n private resolveDirIcon (file: FSDescriptor) {\n if (!file.name && !file.path) {\n return {\n path: `${this.path}/material/folder.svg`,\n needsBackdrop: false\n }\n }\n\n const dirnameMatch = this.getBestMatch(folderIconNameList, file['vanityName'] || file.name || file.path);\n // VS Code Material Icon Theme pack\n\n // TODO: default to a clear icon that doesn't have decoration\n return {\n path: dirnameMatch ? `${this.path}/material/${dirnameMatch}.svg` : `${this.path}/material/folder.svg`,\n needsBackdrop: false\n };\n }\n\n private resolveFileIcon (file: FSDescriptor) {\n // Folders always use the material-icon-theme\n\n // const baseExt = builtinIcons.find(ext => (file['vanityName'] || file.name).endsWith('.' + ext));\n // if (baseExt) {\n // return {\n // path: `${this.path}/pop/exts/${baseExt}.svg`,\n // needsBackdrop: false\n // };\n // }\n\n // // Resolve a base MIME type via path extension\n // const base2Ext = getMimeType((file['vanityName'] || file.name));\n\n // // If we get a path extension, we can easily map the icon\n // if (base2Ext) {\n // return {\n // path: `${this.path}/pop/${base2Ext}.svg`,\n // needsBackdrop: false\n // };\n // }\n\n // Lookup a filename from material-icon-theme\n const filename = fileIconNameList\n .filter(d => (file['vanityName'] || file.name).toLowerCase() == d.val.toLowerCase())\n .sort((a, b) => b.val.length - a.val.length)\n [0]?.iconName;\n\n if (filename) {\n return {\n path: `${this.path}/material/${filename}.svg`,\n needsBackdrop: true\n };\n }\n\n // foo.log.1 foo.log.123 should be treated clearly as log files.\n if (/\\.log\\.\\d+$/.test(filename)) {\n return {\n path: `${this.path}/material/log.svg`,\n needsBackdrop: true\n };\n }\n\n // Check the file's extension -- we may\n const fileext = fileIconExtensionList\n .filter(d => (file['vanityName'] || file.name).toLowerCase().endsWith('.' + d.val.toLowerCase()))\n .sort((a, b) => b.val.length - a.val.length)\n [0]?.iconName;\n\n if (fileext) return {\n path: `${this.path}/material/${fileext}.svg`,\n needsBackdrop: true\n };\n\n // If the file doesn't have a text extension, we're going to assume it's binary data.\n const isFileBinary = !this.isText(file.path);\n\n\n return {\n path: isFileBinary ? `${this.path}/material/document.svg` : `${this.path}/material/assembly.svg`,\n // path: isFileBinary ? `${this.path}/pop/text.svg` : `${this.path}/pop/binary.svg`,\n needsBackdrop: false\n };\n }\n\n // TODO: resolve dynamic thumbnails for media documents\n resolveIcon(file: FSDescriptor): { path: string, needsBackdrop: boolean; } {\n if (!file) return null;\n if (file[symIcon]) return file[symIcon];\n\n if (file.kind == \"directory\") {\n return file[symIcon] = this.resolveDirIcon(file);\n }\n\n return file[symIcon] = this.resolveFileIcon(file);\n };\n}\n","import { Component, ElementRef, Input, SimpleChanges, ViewChild, ViewEncapsulation, EventEmitter, Output } from '@angular/core';\nimport { ColumnDefinition, Options, RowComponent, TabulatorFull as Tabulator } from 'tabulator-tables';\n\nexport type TabulatorEvent<T = any> = {\n event: any,\n row: RowComponent,\n data: T\n}\n\n@Component({\n selector: 'app-tabulator',\n templateUrl: './tabulator.component.html',\n styleUrls: [\n '../../../../../node_modules/tabulator-tables/dist/css/tabulator_simple.css',\n './tabulator.component.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n imports: [],\n standalone: true\n})\nexport class TabulatorComponent<T = any> {\n @ViewChild(\"table\") tableRef: ElementRef<any>;\n\n private _dataSource = [];\n @Input() set dataSource(data: Object[]) {\n this._dataSource = data;\n\n // TODO: this is performance hell for reasons I do not understand.\n if (this.table?.getDataCount() > 0) {\n (async () => {\n const container = this.table.element.querySelector(\".tabulator-tableholder\");\n const initialTop = container.scrollTop;\n const initialLeft = container.scrollLeft;\n\n await this.table.setData(data);\n // @ts-ignore\n container.scrollTo({ left: initialLeft, top: initialTop+1, behavior: \"instant\" });\n setTimeout(() => {\n // @ts-ignore\n container.scrollTo({ left: initialLeft, top: initialTop, behavior: \"instant\" });\n })\n })()\n }\n else\n this.table?.setData(this.dataSource);\n };\n get dataSource() { return this._dataSource };\n\n private _columns = [];\n @Input() set columns(data: ColumnDefinition[]) {\n this._columns = data;\n this.table?.setColumns(this.columns);\n };\n get columns() { return this._columns }\n\n @Input() key: string;\n\n @Input() options: Options = {};\n\n table: Tabulator;\n\n @Output() cellClick = new EventEmitter();\n @Output() cellDblClick = new EventEmitter();\n\n @Output() rowClick = new EventEmitter<TabulatorEvent<T>>();\n @Output() rowContext = new EventEmitter<TabulatorEvent<T>>();\n @Output() rowDblClick = new EventEmitter<TabulatorEvent<T>>();\n\n constructor() { }\n\n ngAfterViewInit() {\n\n const table = this.table = new Tabulator(this.tableRef.nativeElement, {\n index: this.key,\n data: this._dataSource,\n // reactiveData: true,\n columns: this._columns,\n layout: 'fitDataFill',\n height: \"100%\",\n maxHeight: window.innerHeight,\n ...this.options\n });\n\n table.on(\"rowClick\", (e, row) => this.rowClick.next({ event: e, row, data: row.getData() }));\n table.on(\"rowContext\", (e, row) => this.rowContext.next({ event: e, row, data: row.getData() }));\n table.on(\"rowDblClick\", (e, row) => this.rowDblClick.next({ event: e, row, data: row.getData() }));\n\n table.on(\"renderComplete\", () => {\n table.redraw()\n })\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n }\n\n}\n","<div #table></div>\n","import { Fetch } from '../../public-api';\nimport { NgxFileManagerConfiguration } from './filemanager.component';\n\nexport const uploadFile = (\n fetch: Fetch,\n config: NgxFileManagerConfiguration,\n currentDirectory: string,\n targetPath?: string,\n contextTags: {[key: string]: string} = {}\n ) => new Promise(r => {\n\n const inEl = document.createElement('input');\n inEl.setAttribute('type', 'file');\n inEl.setAttribute('multiple', '');\n inEl.click();\n\n let formData = new FormData();\n\n inEl.addEventListener('change', () => {\n Object.keys(inEl.files).forEach(k => {\n const file: {\n lastModified: number,\n lastModifiedDate: Date,\n name: string,\n size: number,\n type: string;\n } = inEl.files[k];\n\n const name = file.name;\n formData.append(name, file as any);\n });\n formData.append(\"data\", JSON.stringify({\n path: currentDirectory,\n ...contextTags\n }));\n\n const url = config.apiSettings.uploadEntryUrlTemplate\n ? config.apiSettings.uploadEntryUrlTemplate(targetPath ?? currentDirectory)\n : config.apiSettings.uploadEntryUrl;\n\n r(fetch.post(url, formData).then(res => {\n inEl.remove();\n return res;\n }));\n });\n});\n\n","import { Component, OnInit, EventEmitter, Output, Input, ViewChild, ElementRef, TemplateRef, ChangeDetectorRef, SecurityContext } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { DatePipe, NgForOf, NgIf } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CellComponent, EmptyCallback } from 'tabulator-tables';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { DirectoryDescriptor, FileDescriptor, FilemanagerComponent, FileViewTab, FSDescriptor, NgxFileManagerConfiguration } from '../filemanager.component';\nimport { FileSorting } from '../../types';\nimport { IconResolver } from '../icon-resolver';\nimport { TabulatorComponent } from '../../tabulator/tabulator.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { uploadFile } from '../helpers';\nimport { DialogService, Fetch, KeyboardService, MenuDirective, MenuItem, openMenu } from '../../../public-api';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nconst itemWidth = (80 + 20);\n\n@Component({\n selector: 'app-file-grid',\n templateUrl: './file-grid.component.html',\n styleUrls: ['./file-grid.component.scss'],\n imports: [\n NgIf,\n NgForOf,\n DatePipe,\n MatTabsModule,\n NgScrollbarModule,\n MatInputModule,\n MatCheckboxModule,\n MatProgressBarModule,\n MatIconModule,\n MatButtonModule,\n TabulatorComponent,\n MenuDirective,\n ScrollingModule\n ],\n standalone: true\n})\nexport class FileGridComponent implements OnInit {\n @ViewChild(\"fileViewport\") filesRef: ElementRef;\n @ViewChild(TabulatorComponent) tabulator: TabulatorComponent;\n\n @ViewChild('renameTemplate', { read: TemplateRef }) renameTemplate: TemplateRef<any>;\n\n\n private _path: string;\n @Input() set path(value: string) {\n if (!value) return;\n\n if (this._path && this.config.navigateOnlyToDescendants) {\n if (!value.startsWith('/'))\n value = '/' + value;\n if (!value.startsWith(this.config.path))\n return;\n }\n\n let prev = this._path;\n\n this._path = value;\n\n if (prev != value) {\n this.pathChange.next(this.path);\n if (this.config.apiSettings)\n this.loadFolder()\n }\n }\n get path() {return this._path}\n @Output() pathChange = new EventEmitter<string>();\n\n @Input() config: NgxFileManagerConfiguration = {};\n @Input() showHiddenFiles = false;\n @Input() viewMode: \"list\" | \"grid\" = \"grid\";\n @Input() gridSize: \"small\" | \"normal\" | \"large\" = \"normal\";\n @Input() tab: FileViewTab;\n\n @Output() fileSelect = new EventEmitter<FileDescriptor>();\n @Output() fileDblClick = new EventEmitter<FileDescriptor>();\n @Output() folderSelect = new EventEmitter<DirectoryDescriptor>();\n @Output() folderDblClick = new EventEmitter<DirectoryDescriptor>();\n @Output() newTab = new EventEmitter<{ path: string; }>();\n @Output() loadFiles = new EventEmitter<FSDescriptor[]>();\n\n directoryContents: FSDescriptor[] = [];\n @Input() selection: FSDescriptor[] = [];\n @Output() selectionChange = new EventEmitter<FSDescriptor[]>();\n\n @Input() value: FSDescriptor[] = [];\n @Output() valueChange = new EventEmitter<FSDescriptor[]>();\n\n selectionText: string;\n\n sortedFolders: any[][] = [];\n\n private readonly sorters = {\n \"a-z\": (a: FileDescriptor, b: FileDescriptor) => a.name > b.name ? 1 : -1,\n \"z-a\": (a: FileDescriptor, b: FileDescriptor) => b.name > a.name ? 1 : -1,\n \"lastmod\": (a: FileDescriptor, b: FileDescriptor) => b.stats.mtimeMs - a.stats.mtimeMs,\n \"firstmod\": (a: FileDescriptor, b: FileDescriptor) => a.stats.mtimeMs - b.stats.mtimeMs,\n \"size\": (a: FileDescriptor, b: FileDescriptor) => b.stats.size - a.stats.size,\n \"type\": (a: FileDescriptor, b: FileDescriptor) => a.path.split('.').splice(-1, 1)[0] > b.path.split('.').splice(-1, 1)[0] ? 1 : -1\n };\n @Input() sortOrder: FileSorting = \"a-z\";\n\n itemsPerRow = 6;\n\n // If the current directory is inside of an archive\n isArchive = true;\n\n userIsDraggingFile = false;\n draggingOver = false;\n\n showLoader = false;\n hideLoader = false;\n\n readonly columns = [\n { id: \"name\", label: \"Name\" },\n { id: \"size\", label: \"Size\"},\n { id: \"type\", label: \"Type\"},\n { id: \"owner\", label: \"Owner\"},\n { id: \"group\", label: \"Group\"},\n { id: \"permissions\", label: \"Permissions\"},\n { id: \"location\", label: \"Location\"},\n { id: \"modified\", label: \"Modified\"},\n { id: \"modified--time\", label: \"Modified - Time\"},\n { id: \"accessed\", label: \"Accessed\"},\n { id: \"created\", label: \"Created\"},\n { id: \"recency\", label: \"Recency\"},\n { id: \"star\", label: \"Star\"},\n { id: \"detailed-type\", label: \"Detailed Type\"},\n ];\n\n cols = [\n { id: \"name\", label: \"Name\" },\n { id: \"size\", label: \"Size\" },\n { id: \"modified\", label: \"Modified\" },\n { id: \"star\", label: \"Star\" }\n ];\n\n folderContextMenu: MenuItem<FSDescriptor>[] = [\n {\n label: \"New Folder\",\n // shortcutLabel: \"Shift+Ctrl+N\",\n icon: \"create_new_folder\",\n action: (data) => this.onCreateFolder(data)\n },\n {\n label: \"Upload file\",\n // shortcutLabel: \"Ctrl+D\",\n icon: \"file_upload\",\n action: (evt) => this.onUploadFile(evt)\n },\n \"separator\",\n // {\n // isDisabled: (data) => true,\n // label: \"_P_aste\",\n // icon: \"content_paste\",\n // action: (evt) => {\n // }\n // },\n {\n label: \"Select _A_ll\",\n shortcutLabel: \"Ctrl+A\",\n icon: \"select_all\",\n action: (evt) => {\n this.selection = this._sortFilter();\n this.selectionText = this.getSelectionText();\n this.selectionChange.next(this.selection);\n }\n },\n // \"separator\",\n // {\n // label: \"P_r_operties\",\n // icon: \"find_in_page\",\n // action: (evt) => {\n\n // }\n // }\n ];\n\n fileContextMenu: MenuItem<FSDescriptor>[] = [];\n\n performChecksum(path, digest) {\n // this.windowManager.openWindow({\n // appId: \"checksum\",\n // data: { digest, path },\n // workspace: this.windowRef.workspace,\n // width: 600,\n // height: 250\n // });\n }\n\n iconResolver: IconResolver;\n\n get libConfig() { return this.fileManager.libConfig }\n constructor(\n private readonly fetch: Fetch,\n private readonly keyboard: KeyboardService,\n private readonly dialog: DialogService,\n private readonly matDialog: MatDialog,\n private readonly fileManager: FilemanagerComponent,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly sanitizer: DomSanitizer\n ) {\n\n\n this.iconResolver = new IconResolver(this.libConfig.assetPath);\n\n // ctrl + a => select all\n keyboard.onKeyCommand({\n key: \"a\",\n ctrl: true,\n }).subscribe(evt => {\n this.selection = this._sortFilter();\n this.selectionText = this.getSelectionText();\n this.selectionChange.next(this.selection);\n });\n\n // ctrl + c => copy file names to clipboard\n keyboard.onKeyCommand({\n key: \"c\",\n ctrl: true,\n }).subscribe(evt => {\n\n });\n\n // ctrl + h => toggle hidden files\n keyboard.onKeyCommand({\n key: \"h\",\n ctrl: true,\n interrupt: true\n }).subscribe(evt => {\n this.showHiddenFiles = !this.showHiddenFiles;\n });\n\n // F2 => Rename selected files\n keyboard.onKeyCommand({\n key: \"f2\",\n }).subscribe(evt => {\n // Rename selected file(s)\n });\n\n // Enter => Open selected files\n keyboard.onKeyCommand({\n key: \"Enter\",\n }).subscribe(evt => {\n const files = this.directoryContents.filter(dc => this.selection.find(i => i.name == dc.name));\n // this.windowManager.openFiles(files as any);\n });\n\n // Delete => delete selected files\n keyboard.onKeyCommand({\n key: \"delete\",\n }).subscribe(evt => {\n const files = this.directoryContents.filter(dc => this.selection.find(i => i.name == dc.name));\n });\n }\n\n async ngOnInit() {\n // this.loadFolder();\n }\n\n ngAfterViewInit() {\n this.fileContextMenu = [\n {\n label: \"Download\",\n icon: \"download\",\n action: (file) => {\n let target = `${window.origin}${this.config.apiSettings.downloadEntryUrl}`;\n let path = file.path + file.name;\n\n if (file.kind == \"directory\" && !path.endsWith('/'))\n path += \"/\";\n\n target += `${target.includes('?') ? '&' : '?'}path=${path}&ngsw-bypass=true`;\n console.log(target);\n // window.open(target);\n var link = document.createElement(\"a\");\n link.download = file.name;\n link.href = target;\n link.click();\n link.remove();\n this.fileManager.fileDownload.next(file);\n }\n },\n {\n label: \"Open in new Tab\",\n icon: \"open_in_new\",\n isVisible: (data) => data.kind == \"directory\",\n action: (data) => {\n this.fileManager.initTab(data.path + data.name);\n }\n },\n // {\n // label: \"Open with Application...\",\n // isVisible: (data) => data.kind == \"file\",\n // shortcutLabel: \"Ctrl+D\",\n // action: (evt) => {\n\n // },\n // },\n \"separator\",\n // {\n // label: \"Cut\",\n // icon: \"content_cut\",\n // isDisabled: data => true,\n // action: (evt) => {\n // },\n // },\n // {\n // label: \"Copy\",\n // icon: \"file_copy\",\n // isDisabled: data => true,\n // childrenResolver: () => new Promise(r => setTimeout(r, 500000))\n // },\n // {\n // label: \"Move To...\",\n // icon: \"drive_file_move\",\n // shortcutLabel: \"Ctrl+A\",\n // action: (evt) => {\n\n // },\n // },\n // {\n // label: \"Copy To...\",\n // icon: \"folder_copy\",\n // shortcutLabel: \"Ctrl+A\",\n // action: (evt) => {\n\n // },\n // },\n {\n label: \"Delete\",\n icon: \"delete\",\n // shortcutLabel: \"Del\",\n isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n action: (evt) => {\n const path = evt.path + evt.name;\n\n const url = this.config.apiSettings.deleteEntryUrlTemplate\n ? this.config.apiSettings.deleteEntryUrlTemplate(path)\n : this.config.apiSettings.deleteEntryUrl;\n\n this.fetch.post(url, { path: evt.path + evt.name })\n .then(() => this.loadFolder())\n },\n },\n // {\n // label: \"Shred file\",\n // icon: \"delete_forever\",\n // isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n // action: (evt) => {\n // this.fetch.post(`/api/filesystem/delete?wipe=true`, { files: [evt.path + evt.name]})\n // .then(() => this.loadFolder())\n // },\n // },\n {\n label: \"Rename\",\n icon: \"drive_file_rename_outline\",\n isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n // shortcutLabel: \"F2\",\n action: (data) => {\n this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", {\n inputs: { path: data?.path || this.path, name: data?.name || '', config: this.config }\n }).then(r => this.loadFolder())\n }\n },\n\n // Extract Here\n // Extract To...\n // {\n // label: \"Extract Here\",\n // icon: \"folder_zip\",\n // shortcutLabel: \"Ctrl+A\",\n // isDisabled: (data) => !(data.kind == \"file\" && data.ext != \".zip\" && isArchive(data)),\n // action: (evt) => {\n // // TODO\n // },\n // },\n // {\n // label: \"Extract to...\",\n // icon: \"folder_zip\",\n // shortcutLabel: \"Ctrl+A\",\n // isDisabled: (data) => !(data.kind == \"file\" && data.ext != \".zip\" && isArchive(data)),\n // action: (evt) => {\n // // TODO\n // },\n // },\n // {\n // label: \"Compress...\",\n // icon: \"folder_zip\",\n // shortcutLabel: \"Ctrl+A\",\n // isDisabled: (data) => data.kind == \"file\",\n // action: (evt) => {\n // // TODO\n // },\n // },\n {\n label: \"Checksum\",\n icon: \"manage_search\",\n isDisabled: (data) => data.kind != \"file\",\n children: [\n {\n label: \"MD5\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"md5\"),\n },\n {\n label: \"SHA1\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"sha1\"),\n },\n {\n label: \"SHA256\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"sha256\"),\n },\n {\n label: \"SHA512\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"sha512\"),\n },\n ],\n isVisible: (data) => {\n return false;\n return !this.isArchive || data.kind == \"file\";\n },\n },\n // {\n // label: \"Star\",\n // icon: \"star\",\n // shortcutLabel: \"Ctrl+A\",\n // action: (evt) => {\n\n // },\n // },\n // \"separator\",\n // {\n // label: \"P_r_operties\",\n // icon: \"find_in_page\",\n // action: (evt) => {\n\n // },\n // }\n ];\n }\n\n async loadFolder() {\n this.showLoader = true;\n this.hideLoader = false;\n\n const url = this.config.apiSettings.listEntriesUrlTemplate\n ? this.config.apiSettings.listEntriesUrlTemplate(this.path)\n : this.config.apiSettings.listEntriesUrl\n\n this.fetch.post(url, { path: this.path, showHidden: this.showHiddenFiles })\n .then((data: any) => {\n const files: FileDescriptor[] = data?.files || [];\n const dirs: DirectoryDescriptor[] = data?.dirs || [];\n const descriptors = files.concat(dirs as any) as FSDescriptor[];\n\n descriptors.forEach(f => {\n f['_icon'] = this.iconResolver.resolveIcon(f);\n if (f.kind == \"file\") {\n f['_ctime'] = new Date(f.stats?.ctimeMs)?.toLocaleString();\n f['_mtime'] = new Date(f.stats?.mtimeMs)?.toLocaleString();\n f['_size'] = this.bytesToString(f.stats?.size);\n }\n });\n\n this.directoryContents = descriptors;\n\n this._sortFilter();\n this.resize();\n this.loadFiles.next(descriptors);\n\n if (this.sortedFolders.length > 0)\n this.flowRows();\n\n setTimeout(() => this.resize(), 250);\n setTimeout(() => this.resize(), 500);\n setTimeout(() => this.resize(), 1000);\n setTimeout(() => this.resize(), 2500);\n setTimeout(() => this.resize(), 5000);\n })\n .catch(e => console.error(e))\n .finally(() => {\n this.hideLoader = true;\n setTimeout(() => {\n this.showLoader = false;\n }, 200);\n })\n }\n\n flowRows() {\n let filtered = this._sortFilter();\n\n this.sortedFolders = [];\n const num = Math.ceil(filtered.length / this.itemsPerRow);\n const iterations = Math.min(num, 100);\n\n for (let row = 0; row < iterations; row++) {\n if (!this.sortedFolders[row])\n this.sortedFolders[row] = [];\n\n for (let i = row * this.itemsPerRow; i < (row + 1) * this.itemsPerRow && i < filtered.length; i++) {\n this.sortedFolders[row].push(filtered[i]);\n }\n }\n }\n\n onSelect(item: FSDescriptor, evt) {\n evt.stopPropagation();\n\n if (this.keyboard.isShiftPressed) {\n let start = this.directoryContents.findIndex(i => i.name == this.selection.slice(-1, 1)[0].name);\n let end = this.directoryContents.indexOf(item);\n\n if (start == -1)\n start = end;\n\n let items = start > end\n ? this.directoryContents.slice(end, start + 1)\n : this.directoryContents.slice(start, end + 1);\n\n this.selection = items;\n }\n else if (this.keyboard.isCtrlPressed) {\n if (!this.selection.includes(item))\n this.selection.push(item);\n else // Case that we selected the same item twice\n this.selection.splice(this.selection.indexOf(item), 1);\n }\n else\n this.selection = [item];\n\n if (this.selection.length == 1) {\n if (this.selection[0].kind == \"directory\")\n this.folderSelect.next(this.selection[0]);\n else\n this.fileSelect.next(this.selection[0]);\n }\n\n this.selectionChange.next(this.selection);\n this.selectionText = this.getSelectionText();\n }\n\n onItemClick(file: FSDescriptor) {\n console.log(file, this);\n if (file.kind == \"directory\") {\n this.folderDblClick.next(file);\n this.path = file.path + file.name;\n }\n // else if (file.ext == \"zip\") {\n // this.fileDblClick.next(file);\n // this.path = file.path + file.name;\n // }\n else {\n this.fileDblClick.next(file);\n this.fileSelect.next(file);\n }\n }\n\n onToggle(item, state: MatCheckboxChange) {\n item['_value'] = state.checked;\n\n // TODO: What causes this to be null when initialized with an array?\n if (!this.value) {\n this.value = [];\n }\n\n if (state.checked) {\n this.value.push(item);\n }\n else {\n const i = this.value.findIndex(v => v == item);\n if (i >= 0)\n this.value.splice(i, 1);\n }\n this.valueChange.next(this.value);\n }\n\n async clearSelection() {\n this.value = [];\n this.valueChange.next(this.value);\n\n this.tabulator?.table?.getRows().forEach(r => r.getElement().classList.remove('selected'));\n }\n\n private _sortFilter(): FileDescriptor[] {\n return this.directoryContents = this.directoryContents?.filter(d => d.kind == 'directory')\n .concat(this.directoryContents?.filter(d => d.kind == 'file')\n .sort(this.sorters[this.sortOrder])\n ) as FileDescriptor[];\n }\n\n private getSelectionText() {\n const dirCount = this.selection.filter(s => s.kind == \"directory\").length;\n const fileCount = this.selection.filter(s => s.kind == \"file\").length;\n\n if (dirCount + fileCount == 0) return \"\";\n\n const totalSize =\n this.directoryContents\n .filter(d => d.kind == \"file\")\n .filter(d => this.selection?.find(i => i.name == d.name))\n .map(d => d['stats'].size).reduce((a, b) => a + b, 0);\n\n if (dirCount + fileCount == 1)\n return `\"${this.selection[0].name}\" selected (${this.bytesToString(totalSize)})`;\n\n if (dirCount > 0 && fileCount == 0)\n return `\"${dirCount}\" folders selected`;\n if (fileCount > 0 && dirCount == 0)\n return `${fileCount} items selected (${this.bytesToString(totalSize)})`;\n\n return `${dirCount} folder${dirCount == 1 ? \"\" : \"s\"} selected, ${fileCount} other item${fileCount == 1 ? \"\" : \"s\"} selected (${this.bytesToString(totalSize)})`;\n }\n\n bytesToString(bytes: number, decimals = 2) {\n if (!+bytes) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n resize() {\n if (!this.filesRef) {\n setTimeout(() => this.resize(), 25);\n return;\n };\n\n const bounds = (this.filesRef.nativeElement as HTMLElement).getBoundingClientRect();\n\n const newColCount = Math.floor(bounds.width / itemWidth);\n if (newColCount != this.itemsPerRow) {\n this.itemsPerRow = Math.floor(bounds.width / itemWidth);\n if (this.itemsPerRow > 100)\n this.itemsPerRow = 1;\n\n this.flowRows();\n }\n\n if (this.sortedFolders?.length == 0)\n this.flowRows();\n }\n\n onDragStart(evt: DragEvent, item: FSDescriptor) {\n const target = `${window.origin}/api/filesystem/download?dir=${item.path}&file=${item.name}`;\n\n evt.dataTransfer.clearData();\n // evt.dataTransfer.setData('text/uri-list', target);\n // evt.dataTransfer.setData('DownloadURL', `text/uri-list:${target}`);\n evt.dataTransfer.setData('text/plain', item.name);\n }\n\n onDrop(ev) {\n ev.preventDefault();\n\n if (ev.dataTransfer.items) {\n // Use DataTransferItemList interface to access the file(s)\n [...ev.dataTransfer.items].forEach((item, i) => {\n // If dropped items aren't files, reject them\n if (item.kind === \"file\") {\n const file = item.getAsFile();\n console.log(`… file[${i}].name = ${file.name}`);\n }\n });\n } else {\n // Use DataTransfer interface to access the file(s)\n [...ev.dataTransfer.files].forEach((file, i) => {\n console.log(`… file[${i}].name = ${file.name}`);\n });\n }\n }\n\n nameCellFormatter = ((cell: CellComponent, formatterParams: {}, onRendered: EmptyCallback) => {\n // TODO: Sanitize?\n const item = cell.getData() as FSDescriptor;\n return `\n <span style=\"display: flex; align-items: center\">\n <img style=\"height: 24px; margin-right: 6px\" src=\"${item['_icon'].path}\"/>\n <p style=\"margin: 0\">${this.sanitizer.sanitize(SecurityContext.HTML, item['vanityName'] || item.name)}</p>\n </span>\n `;\n }).bind(this)\n\n onRowCtx({event, row}) {\n openMenu(this.matDialog, this.fileContextMenu, row.getData(), event);\n }\n\n onRowClick({event, row, data}) {\n // $event.data['_value'] = $event.data['_value'] == true ? false : true\n // console.log(event, row, data, this.value);\n\n const rowEl = row.getElement();\n let state = rowEl.classList.contains('selected');\n data['_value'] = !state;\n\n if (!this.value) {\n this.value = [];\n }\n\n if (!state) {\n rowEl.classList.add('selected');\n this.value.push(data);\n }\n else {\n rowEl.classList.remove('selected');\n const i = this.value.findIndex(v => v == data);\n if (i >= 0)\n this.value.splice(i, 1);\n }\n\n this.valueChange.next(this.value);\n }\n\n sort() {\n this._sortFilter();\n }\n\n onUploadFile(evt?: FSDescriptor) {\n uploadFile(\n this.fetch,\n this.config,\n this._path,\n evt ? (evt.path + evt.name) : null,\n this.fileManager.contextTags\n )\n .then(res => {\n // Refresh folder contents\n this.loadFolder();\n })\n }\n\n onCreateFolder(data?: FSDescriptor) {\n this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", {\n inputs: { path: data?.path || this.path, name: data?.name || '', config: this.config }\n }).then(r => this.loadFolder())\n }\n}\n\n","@if (showLoader) {\n <mat-progress-bar [class.hide]=\"hideLoader\" mode=\"query\"/>\n}\n\n<div\n style=\"display: contents\"\n [style.--filemanager-fileicon-backdrop]=\"'url(' + iconResolver.path + '/pop/generic.svg)'\"\n (dragstart)=\"userIsDraggingFile = true\"\n (dragend)=\"userIsDraggingFile = false\"\n (dragover)=\"draggingOver = true\"\n (dragleave)=\"draggingOver = false\"\n (ondrop)=\"onDrop($event)\"\n>\n <!-- <ng-container *ngIf=\"draggingOver\"></ng-container> -->\n <!-- Grid mode -->\n <ng-scrollbar\n *ngIf=\"viewMode == 'grid'\"\n class=\"grid {{gridSize}} {{config.imageSize || 'normal'}}\"\n [class.selectionMode]=\"config.mode == 'focusFiles'\"\n [class.showDropArea]=\"draggingOver\"\n style=\"height: 100%; width: 100%\"\n track=\"vertical\"\n pointerEventsMethod=\"scrollbar\"\n [ngx-contextmenu]=\"folderContextMenu\"\n >\n <div class=\"resize-observer\" #fileViewport></div>\n <cdk-virtual-scroll-viewport\n itemSize=\"134\"\n scrollViewport\n (click)=\"selection = []; selectionText = ''\"\n >\n <div class=\"row\" *cdkVirtualFor=\"let row of sortedFolders\">\n <div class=\"file\"\n *ngFor=\"let item of row\"\n [class.selected]=\"selection.includes(item)\"\n [class.generic]=\"item['_icon'].needsBackdrop\"\n [ngx-contextmenu]=\"fileContextMenu\"\n [ngx-menu-context]=\"item\"\n >\n <mat-checkbox\n #checkbox\n *ngIf=\"config.mode == 'focusFiles' && item.kind == 'file'\"\n [checked]=\"item['_value']\"\n (change)=\"onToggle(item, $event)\"\n />\n <div\n style=\"display: contents\"\n (click)=\"onSelect(item, $event)\"\n (dblclick)=\"onItemClick(item)\"\n (dragstart)=\"onDragStart($event, item)\"\n >\n <img [src]=\"item['_icon'].path\"/>\n <p>{{item['vanityName'] || item.name}}</p>\n </div>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-scrollbar>\n\n <!-- List mode -->\n <div\n *ngIf=\"viewMode == 'list'\"\n style=\"width: 100%; height: 100%\"\n [class.showDropArea]=\"draggingOver\"\n [ngx-contextmenu]=\"folderContextMenu\"\n >\n <app-tabulator\n [dataSource]=\"directoryContents\"\n [columns]=\"[\n { field: 'name', title: 'Name', formatter: nameCellFormatter },\n { field: '_size', title: 'Size' },\n { field: '_ctime', title: 'Created' },\n { field: '_mtime', title: 'Modified' },\n ]\"\n [options]=\"{\n rowHeight: 32\n }\"\n (rowClick)=\"onRowClick($event)\"\n (rowDblClick)=\"onItemClick($event.data)\"\n (rowContext)=\"onRowCtx($event)\"\n />\n </div>\n</div>\n\n<div class=\"select-hint\" *ngIf=\"selectionText\">\n {{selectionText}}\n</div>\n\n<div class=\"controls\">\n <button\n mat-flat-button\n class=\"upload-button\"\n (click)=\"onCreateFolder()\"\n >\n <mat-icon>create_new_folder</mat-icon>\n New Folder\n </button>\n <button\n mat-flat-button\n class=\"upload-button\"\n (click)=\"onUploadFile()\"\n >\n <mat-icon>upload_file</mat-icon>\n Upload\n </button>\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'gtk-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.scss'],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule\n ],\n standalone: true\n})\nexport class GtkIconButtonComponent {\n\n @Input() fontIcon: string;\n\n @Output() click = new EventEmitter();\n\n @Input() disabled = false;\n\n showDialog = false;\n\n onClick() {\n\n this.click.emit();\n }\n}\n","<button mat-flat-button [disabled]=\"disabled\">\n <mat-icon [fontIcon]=\"fontIcon\"></mat-icon>\n</button>\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { CommonModule, NgForOf, NgIf } from '@angular/common';\nimport { NgxFileManagerConfiguration } from '../../filemanager.component';\n\nexport type Breadcrumb = {\n label: string,\n id: string | number\n}\n\n@Component({\n selector: 'app-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n imports: [\n NgForOf,\n NgIf\n ],\n standalone: true\n})\nexport class GtkBreadcrumbComponent implements OnInit {\n\n // Could also do object array?\n @Input() crumbs: Breadcrumb[];\n @Output() crumbClick = new EventEmitter<Breadcrumb>();\n\n @Input() config: NgxFileManagerConfiguration;\n\n constructor() { }\n\n ngOnInit() {\n }\n}\n","<button (click)=\"crumbClick.next({ id: config.chrootPath || '/', label: ''})\">{{config.rootName || 'Storage'}}</button>\n<ng-container *ngFor=\"let crumb of crumbs\">\n <button *ngIf=\"crumb.label.trim()\" (click)=\"crumbClick.next(crumb)\">{{crumb.label}}</button>\n</ng-container>\n","import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GtkIconButtonComponent } from './icon-button/icon-button.component';\nimport { GtkBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { FilemanagerComponent, FileViewTab, FSDescriptor, NgxFileManagerConfiguration } from '../filemanager.component';\nimport { FileSorting } from '../../types';\nimport { uploadFile } from '../helpers';\nimport { DialogService, Fetch, MenuDirective, MenuItem } from '../../../public-api';\n\n@Component({\n selector: 'app-toolbar',\n templateUrl: './toolbar.component.html',\n styleUrls: ['./toolbar.component.scss'],\n imports: [\n NgIf,\n MatIconModule,\n MatButtonModule,\n GtkIconButtonComponent,\n GtkBreadcrumbComponent,\n MenuDirective\n ],\n standalone: true\n})\nexport class ToolbarComponent {\n @ViewChild('zoomTemplate') zoomTemplate: TemplateRef<any>;\n @ViewChild('actionTemplate') actionTemplate: TemplateRef<any>;\n\n @Input() config: NgxFileManagerConfiguration;\n\n\n @Output() onBreadcrumbClick = new EventEmitter();\n\n @Input() currentTab: FileViewTab = {} as any;\n\n @Input() showHiddenFiles: boolean;\n @Output() showHiddenFilesChange = new EventEmitter<boolean>();\n @Input() showSidebar: boolean;\n @Output() showSidebarChange = new EventEmitter<boolean>();\n\n @Input() drawerMode = false;\n @Input() showBareMinimum = false;\n\n constructor(\n public fileManager: FilemanagerComponent,\n private dialog: DialogService,\n private fetch: Fetch\n ) {\n\n }\n\n fileOptions: MenuItem<FSDescriptor>[] = [\n {\n label: \"New Folder\",\n action: (folder) => {\n this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", { inputs: { path: this.currentTab.path, name: '', config: this.config } })\n }\n },\n {\n label: \"Upload file\",\n icon: \"file_upload\",\n action: (evt) => uploadFile(this.fetch, this.config, this.fileManager.currentTab.path, null, this.fileManager.contextTags).then(res => {\n // Tell the current tab to reload it's data.\n const tab = this.fileManager.currentTab;\n const grid = this.fileManager.fileGrids.find(t => t.tab.id == tab.id);\n grid.loadFolder();\n })\n },\n // {\n // label: \"Add to Bookmarks (WIP)\",\n // action: (folder) => {\n // //\n // }\n // },\n // \"separator\",\n // {\n // label: \"Paste\",\n // action: (folder) => {\n // //\n // }\n // },\n // {\n // label: \"Select All\",\n // action: (folder) => {\n // //\n // }\n // },\n // \"separator\",\n // {\n // label: \"Properties\",\n // action: (folder) => {\n // //\n // }\n // },\n ]\n\n sortOptions: MenuItem<FSDescriptor>[] = [\n {\n label: \"Sort\",\n separator: true\n },\n {\n label: \"A-Z\",\n action: () => this.setSorter('a-z')\n },\n {\n label: \"Z-A\",\n action: () => this.setSorter('z-a')\n },\n {\n label: \"Last Modified\",\n action: () => this.setSorter('lastmod')\n },\n {\n label: \"First Modified\",\n action: () => this.setSorter('firstmod')\n },\n {\n label: \"Size\",\n action: () => this.setSorter('size')\n },\n {\n label: \"Type\",\n action: () => this.setSorter('type')\n },\n \"separator\",\n {\n label: \"Refresh\",\n action: () => this.fileManager.currentFileGrid.loadFolder()\n }\n ];\n\n historyBack(tab: FileViewTab) {\n console.log(\"history ->\", tab)\n tab.historyIndex--;\n tab.path = tab.history[tab.historyIndex - 1];\n }\n\n historyForward(tab: FileViewTab) {\n console.log(\"history <-\", tab)\n tab.historyIndex++;\n tab.path = tab.history[tab.historyIndex - 1];\n }\n\n toggleDrawer() {\n if ([...this.fileManager.drawer._drawers][0].opened)\n this.fileManager.drawer.close();\n else\n this.fileManager.drawer.open();\n }\n\n setSorter(mode: FileSorting) {\n this.fileManager.currentTab.sortOrder = mode;\n this.fileManager.refreshSorting();\n }\n\n onRefresh() {\n // console.log(this.fileManager);\n this.fileManager.fileGrids.forEach(g => g.loadFolder());\n }\n}\n","<button\n *ngIf=\"fileManager.sidebarOverlay && !drawerMode\"\n mat-icon-button\n (click)=\"toggleDrawer()\"\n>\n <mat-icon>list</mat-icon>\n</button>\n\n<ng-container *ngIf=\"!showBareMinimum\">\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n <div style=\"width: 40px\" *ngIf=\"!drawerMode\"></div>\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n</ng-container>\n\n\n<app-breadcrumb\n *ngIf=\"currentTab\"\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n/>\n\n<ng-container *ngIf=\"!drawerMode\">\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n <div style=\"width: 100px\" *ngIf=\"fileManager.width > 800\"></div>\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n</ng-container>\n\n","import { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, HostListener, Inject, Input, Optional, Output, TemplateRef, ElementRef, ViewContainerRef } from '@angular/core';\nimport { MatExpansionModule, MatExpansionPanel } from '@angular/material/expansion';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { IconResolver } from '../icon-resolver';\nimport { FilemanagerComponent } from '../filemanager.component';\n\n@Component({\n selector: 'app-tree-view',\n templateUrl: './tree-view.component.html',\n styleUrls: ['./tree-view.component.scss'],\n imports: [\n NgIf,\n NgForOf,\n NgTemplateOutlet,\n MatExpansionModule,\n MatProgressBarModule\n ],\n standalone: true\n})\nexport class TreeViewComponent {\n @ContentChild(\"rowTemplate\", { read: TemplateRef }) rowTemplate: TemplateRef<any>;\n @Input(\"rowTemplate\") rowTemplateIn: TemplateRef<any>;\n\n @Input() data: any[];\n\n @Output() click = new EventEmitter();\n @Output() loadChildren = new EventEmitter();\n\n iconResolver: IconResolver;\n get libConfig() { return this.fileManager.libConfig; }\n\n constructor(\n private readonly fileManager: FilemanagerComponent,\n ) {\n this.iconResolver = new IconResolver(this.libConfig.assetPath);\n }\n\n tryLoadChildren(item, panel: MatExpansionPanel) {\n this.loadChildren.next({\n item,\n cb: (children) => {\n item['_children'] = children;\n if (children.length == 0)\n panel.close();\n }\n })\n }\n}\n","<mat-accordion displayMode=\"flat\" [multi]=\"true\">\n <mat-expansion-panel\n #panel\n *ngFor=\"let item of data\"\n expanded=\"false\"\n togglePosition=\"before\"\n [class.isleaf]=\"item['_children']?.length == 0\"\n (afterExpand)=\"tryLoadChildren(item, panel)\"\n >\n <mat-expansion-panel-header>\n <div (click)=\"$event.stopPropagation(); click.next(item);\" style=\"display: flex; align-items: center;\">\n <ng-container *ngIf=\"!panel.expanded\">\n <img style=\"height: 20px; margin-right: 8px\" [src]=\"iconResolver.resolveIcon(item)?.path\"/>\n </ng-container>\n <ng-container *ngIf=\"panel.expanded\">\n <img style=\"height: 20px; margin-right: 8px\" [src]=\"iconResolver.resolveIcon(item)?.path.replace('.svg', '-open.svg')\"/>\n </ng-container>\n {{item.name}}\n </div>\n </mat-expansion-panel-header>\n\n <app-tree-view\n *ngIf=\"item['_children']; else loadingTemplate\"\n [data]=\"item['_children']\"\n (click)=\"click.next(item)\"\n (loadChildren)=\"loadChildren.next($event)\"\n />\n <ng-template #loadingTemplate>\n <mat-progress-bar color=\"primary\" mode=\"query\"/>\n </ng-template>\n </mat-expansion-panel>\n</mat-accordion>\n","import { InjectionToken } from '@angular/core';\n\nexport const NGX_WEB_COMPONENTS_CONFIG = new InjectionToken<NgxWebComponentsConfig>('webcomponents-config');\n\nexport type NgxWebComponentsConfig = Partial<{\n /**\n * The path that assets will ultimately be served from.\n * Default `/assets/`\n */\n assetPath: string\n}>;\n\n\nexport type FileSorting = \"a-z\" | \"z-a\" | \"lastmod\" | \"firstmod\" | \"size\" | \"type\";\n","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { MatTabGroup, MatTabsModule } from '@angular/material/tabs';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDrawerContainer, MatSidenavModule } from '@angular/material/sidenav';\nimport { AngularSplitModule } from 'angular-split';\n\nimport { FileGridComponent } from './file-grid/file-grid.component';\nimport { ToolbarComponent } from './toolbar/toolbar.component';\nimport { TreeViewComponent } from './tree-view/tree-view.component';\nimport { FileSorting, NGX_WEB_COMPONENTS_CONFIG, NgxWebComponentsConfig } from '../types';\nimport { IconResolver } from './icon-resolver';\nimport { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from '../lazy-loader/lazy-loader.service';\nimport { Fetch } from '../../public-api';\nimport { ulid } from 'ulidx';\n\n// TODO:\n/**\n * Multiple music / video / image files selected turns into a playlist\n * Dragging music / video / image queues the file(s)\n * Can save and edit a list of files as playlist\n * Can \"loop\" \"randomize\"\n */\n\nexport type DirectoryDescriptor = {\n kind: \"directory\",\n path: string,\n name: string\n contents: {\n dirs: DirectoryDescriptor[],\n files: FileDescriptor[]\n }\n}\n\nexport type FileDescriptor = {\n kind: \"file\",\n stats: {\n size: number;\n // Size for zipped file\n compressedSize?: number,\n atimeMs: number;\n mtimeMs: number;\n ctimeMs: number;\n birthtimeMs: number;\n },\n path: string\n name: string,\n ext: string,\n // Comment for entries in a zip file.\n comment?: string\n};\n\nexport type FSDescriptor = DirectoryDescriptor | FileDescriptor;\n\nexport type FileViewTab = {\n id: string,\n label: string,\n breadcrumb: {\n id: string,\n label: string\n }[],\n path: string,\n selection: FSDescriptor[],\n viewMode: \"grid\" | \"list\",\n historyIndex: number,\n history: string[],\n sidebarItems: FSDescriptor[],\n sortOrder: FileSorting\n}\n\n// TODO: replace http configs\ntype HttpConfiguration = (\n { url: string } |\n { urlTemplate: (path: string) => string }\n) & {\n method?: \"get\" | \"put\" | \"post\" | \"patch\" | \"delete\",\n headers?: { [key: string]: string }\n}\n\nexport type NgxFileManagerConfiguration = Partial<{\n /**\n * Initial path\n */\n path: string,\n\n /**\n * Custom root path (will appear as '/').\n * Defaults to '/'.\n *\n * User cannot view outside of this path.\n * (Not to be used as a security measure!)\n */\n chrootPath: string,\n\n /**\n * Restrict users to only navigate around to subpaths of the specified `path`\n */\n navigateOnlyToDescendants: boolean,\n showBreadcrumb: boolean,\n showTreeview: boolean,\n\n /**\n * Name of the \"root\" path `/`\n * Defaults to \"Storage\"\n */\n rootName: string,\n\n /**\n * Maximum number of items to be stored in history.\n */\n maxHistoryLength: number,\n\n apiSettings: {\n listEntriesUrl?: string,\n listEntriesUrlTemplate?: (path: string) => string,\n downloadEntryUrl?: string,\n downloadEntryUrlTemplate?: (path: string) => string,\n uploadEntryUrl?: string,\n uploadEntryUrlTemplate?: (path: string) => string,\n deleteEntryUrl?: string,\n deleteEntryUrlTemplate?: (path: string) => string,\n renameEntryUrl?: string,\n renameEntryUrlTemplate?: (path: string) => string,\n createDirectoryUrl?: string,\n createDirectoryUrlTemplate?: (path: string) => string\n },\n\n /**\n * The path that images are loaded from.\n * Default value `/assets/dotglitch/webcomponents/`\n */\n assetPath: string,\n sidebarLocationStrategy: \"known\" | \"currentDirectory\",\n\n iconResolver: (file: FSDescriptor) => string,\n\n imageSize: \"normal\" | \"small\" | \"huge\",\n\n /**\n *\n */\n selectionMode: \"single\" | \"multiple\",\n\n /**\n * This determines if the filemanager shows selected entries\n *\n * If set to `focusFiles`, file paths that match from the provided `focusedFiles`\n * will be highlighted, and can be selected / deselected.\n */\n mode: \"focusFiles\" | \"normal\",\n focusedFiles: string[]\n}>\n\n@Component({\n selector: 'app-filemanager',\n templateUrl: './filemanager.component.html',\n styleUrls: ['./filemanager.component.scss'],\n imports: [\n NgIf,\n NgForOf,\n AngularSplitModule,\n FileGridComponent,\n MatTabsModule,\n MatIconModule,\n MatSidenavModule,\n ToolbarComponent,\n TreeViewComponent\n ],\n standalone: true\n})\nexport class FilemanagerComponent implements OnInit {\n @ViewChild('tabGroup') tabGroup: MatTabGroup;\n @ViewChildren(FileGridComponent) fileGrids: QueryList<FileGridComponent>;\n @ViewChild(TreeViewComponent) treeView: TreeViewComponent;\n @ViewChild(ToolbarComponent) toolbar: ToolbarComponent;\n @ViewChild(MatDrawerContainer) drawer: MatDrawerContainer;\n\n @Input() config: NgxFileManagerConfiguration = {\n apiSettings: {\n listEntriesUrl: `/api/filesystem/`,\n uploadEntryUrl: `/api/filesystem/`,\n downloadEntryUrl: `/api/filesystem/`,\n deleteEntryUrl: `/api/filesystem/`,\n createDirectoryUrl: `/api/filesystem/folder`,\n renameEntryUrl: `/api/filesystem/rename`\n }\n };\n\n @Input() gridSize: \"small\" | \"normal\" | \"large\" = \"normal\";\n @Input() mode: \"grid\" | \"list\";\n @Input() contextTags: {[key: string]: string};\n\n\n @Input() value: FSDescriptor[] = [];\n @Output() valueChange = new EventEmitter<FSDescriptor[]>();\n\n gridValues: FSDescriptor[][] = [];\n\n /**\n * Emits when focused files change.\n * Only available in `focusFiles` mode.\n */\n @Output() focusedFilesChange = new EventEmitter();\n /**\n * Emits when a file is uploaded.\n */\n @Output() fileUpload = new EventEmitter();\n /**\n * Emits when a file is downloaded.\n */\n @Output() fileDownload = new EventEmitter();\n @Output() fileRename = new EventEmitter();\n @Output() fileDelete = new EventEmitter();\n @Output() fileCopy = new EventEmitter();\n @Output() filePaste = new EventEmitter();\n\n @Output() fileSelect = new EventEmitter<FileDescriptor>();\n @Output() fileDblClick = new EventEmitter<FileDescriptor>();\n @Output() folderSelect = new EventEmitter<DirectoryDescriptor>();\n @Output() folderDblClick = new EventEmitter<DirectoryDescriptor>();\n\n /**\n * Emits when multiple file selections change.\n */\n @Output() filesSelect = new EventEmitter<FSDescriptor[]>();\n /**\n * Emits when any selection changes, single or multiple files.\n */\n // @Output() selectionChange = new EventEmitter<FSDescriptor[]>();\n\n showHiddenFiles = false;\n showSidebar = true;\n sidebarOverlay = false;\n width = 0;\n\n isHomeAncestor = false;\n\n currentTab: FileViewTab = {} as any;\n get currentFileGrid() { return this.fileGrids.get(this.tabIndex) }\n tabIndex = 0;\n tabs: FileViewTab[] = [];\n\n iconResolver: IconResolver;\n\n constructor (\n @Optional() @Inject(NGX_WEB_COMPONENTS_CONFIG) readonly libConfig: NgxWebComponentsConfig = {},\n private readonly lazyLoader: LazyLoaderService,\n private viewContainer: ViewContainerRef,\n private fetch: Fetch\n ) {\n lazyLoader.registerComponent({\n id: \"folder-rename\",\n group: \"@dotglitch/ngx-web-components\",\n load: () => import('./folder-rename/folder-rename.component')\n })\n\n this.iconResolver = new IconResolver(libConfig.assetPath);\n }\n\n ngOnInit(): void {\n this.initTab(this.config.path);\n this.currentTab = this.tabs[0];\n }\n\n ngAfterViewInit() {\n this.onResize();\n\n setTimeout(() => this.onResize(), 250);\n }\n\n onTreeViewLoadChildren({item, cb}) {\n const url = this.config.apiSettings.listEntriesUrlTemplate\n ? this.config.apiSettings.listEntriesUrlTemplate(item.path + item.name)\n : this.config.apiSettings.listEntriesUrl\n\n this.fetch.post(url, { path: item.path + item.name, showHidden: this.showHiddenFiles })\n .then((data: any) => {\n const dirs: DirectoryDescriptor[] = data.dirs;\n cb(dirs);\n })\n }\n\n initTab(path: string) {\n this.tabs.push(this.currentTab = {\n id: ulid(),\n label: this.getTabLabel(path),\n breadcrumb: this.calcBreadcrumb(path),\n path,\n selection: [],\n viewMode: this.mode || 'grid',\n historyIndex: 0,\n history: [],\n sidebarItems: [],\n sortOrder: 'a-z'\n });\n this.tabIndex = this.tabs.length;\n }\n\n closeTab(tab: FileViewTab) {\n this.tabs.splice(this.tabs.findIndex(t => t.id == tab.id), 1);\n }\n\n calcBreadcrumb(path: string) {\n if (!path) return null;\n\n path = path.replace(\"#/\", '/');\n\n // If we're acting like we're in a changed root, we wipe out\n // breadcrumbs below the root\n if (this.config.chrootPath) {\n path = path.replace(this.config.chrootPath, '');\n const parts = path.split('/');\n\n path = path.replace(/^\\//, this.config.chrootPath);\n return parts.map((p, i) => {\n const path = parts.slice(0, i + 1).join('/');\n\n return {\n id: (this.config.chrootPath + (path || '/')).replace(/\\/+/g, '/'),\n label: p || \"\"\n };\n });\n }\n else {\n const parts = path.split('/');\n\n return parts.map((p, i) => {\n const path = parts.slice(0, i + 1).join('/');\n\n return {\n id: path || '/',\n label: p || \"\"\n };\n });\n }\n }\n\n onBreadcrumbClick(crumb) {\n if (crumb.id) {\n this.currentTab.path = crumb.id;\n this.currentTab.breadcrumb = this.calcBreadcrumb(crumb.id);\n }\n }\n\n onTabPathChange(tab: FileViewTab) {\n tab.label = this.getTabLabel(tab.path);\n tab.breadcrumb = this.calcBreadcrumb(tab.path);\n\n tab.historyIndex++;\n tab.history.push(tab.path);\n tab.history.splice(typeof this.config.maxHistoryLength == 'number' ? this.config.maxHistoryLength : 50);\n }\n\n onTreeViewSelect(item: FSDescriptor) {\n this.currentTab.path = item.path + item.name;\n }\n\n onTabLoadFiles(tab: FileViewTab, files: FSDescriptor[]) {\n if (tab.sidebarItems.length == 0) {\n tab.sidebarItems = files.filter(f => f.kind == \"directory\");\n return;\n }\n\n const currentItems = tab.sidebarItems;\n const dirItems = files.filter(f => f.kind == \"directory\");\n\n function recurse(items) {\n return items.find(i => tab.path?.startsWith(i.path));\n }\n const target = recurse(currentItems);\n\n if (target)\n target['_children'] = dirItems;\n\n tab.sidebarItems = currentItems;\n }\n\n onGridValueChange() {\n this.value = this.gridValues.flat(1);\n this.valueChange.emit(this.value)\n }\n\n getTabLabel(path: string) {\n return path?.split('/').filter(p => p).pop();\n }\n\n async onResize() {\n // Trigger re-calculation of the view\n this.fileGrids.forEach(g => g.resize());\n\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n const bounds = el.getBoundingClientRect();\n this.width = bounds.width;\n\n // If the view area is less than 650px wide, use overlay the sidebar panel\n this.sidebarOverlay = bounds.width < 650;\n if (this.sidebarOverlay == false && [...this.drawer._drawers][0].opened) {\n this.drawer.close();\n }\n }\n\n async onResizeEnd() {\n this.onResize();\n\n setTimeout(() => this.onResize(), 250);\n }\n\n getSelection() {\n if (this.currentTab.viewMode == \"grid\") {\n return this.currentTab.selection\n }\n else {\n return this.value;\n }\n }\n\n clearSelection() {\n this.fileGrids.forEach(g => g.clearSelection());\n }\n\n // Tell the child grid to refresh it's sorting\n refreshSorting() {\n this.fileGrids.forEach(g => g.sort());\n }\n\n refreshData() {\n this.fileGrids.forEach(g => g.loadFolder());\n }\n\n getFileData(file: FileDescriptor) {\n let url = this.config.apiSettings.renameEntryUrlTemplate\n ? this.config.apiSettings.renameEntryUrlTemplate(file.path + file.name)\n : this.config.apiSettings.renameEntryUrl;\n\n url = (url.includes('?') ? '&' : '?') + `dir=${file.path}&file=${file.name}`;\n\n return url;\n }\n}\n","<app-toolbar\n [currentTab]=\"currentTab\"\n [(showHiddenFiles)]=\"showHiddenFiles\"\n [(showSidebar)]=\"showSidebar\"\n [config]=\"config\"\n [showBareMinimum]=\"width < 500 && config.showBreadcrumb != false\"\n (onBreadcrumbClick)=\"onBreadcrumbClick($event)\"\n/>\n\n<mat-drawer-container>\n <mat-drawer #drawer mode=\"over\">\n <app-toolbar\n *ngIf=\"width < 500 && config.showBreadcrumb != false\"\n [currentTab]=\"currentTab\"\n [(showHiddenFiles)]=\"showHiddenFiles\"\n [(showSidebar)]=\"showSidebar\"\n [config]=\"config\"\n [drawerMode]=\"true\"\n (onBreadcrumbClick)=\"onBreadcrumbClick($event)\"\n />\n <app-tree-view\n [data]=\"currentTab.sidebarItems\"\n (loadChildren)=\"onTreeViewLoadChildren($event)\"\n (click)=\"onTreeViewSelect($event)\"\n />\n </mat-drawer>\n <mat-drawer-content>\n <as-split direction=\"horizontal\" [gutterSize]=\"sidebarOverlay ? 0 : 2\" [unit]=\"'pixel'\" (dragEnd)=\"onResizeEnd()\">\n <as-split-area\n style=\"background-color: var(--filemanager-sidebar-background-color, #2c2c2c)\"\n [size]=\"215\"\n [minSize]=\"215\"\n [maxSize]=\"width/4\"\n [visible]=\"!sidebarOverlay && config.showTreeview != false\"\n >\n <div class=\"sidebar\"\n *ngIf=\"!sidebarOverlay && config.showTreeview != false\"\n (click)=\"currentTab.selection = []\"\n >\n <app-tree-view\n [data]=\"currentTab.sidebarItems\"\n (loadChildren)=\"onTreeViewLoadChildren($event)\"\n (click)=\"onTreeViewSelect($event)\"\n />\n </div>\n </as-split-area>\n <as-split-area style=\"background-color: var(--filemanager-background-color, #272727);\">\n <div class=\"content\"\n [style.--tab-height]=\"tabs.length > 1 ? '36px' : '0'\"\n >\n <mat-tab-group #tabGroup (selectedTabChange)=\"currentTab = tabs[$event.index]\" [(selectedIndex)]=\"tabIndex\">\n <mat-tab *ngFor=\"let tab of tabs; let i = index\">\n <ng-template mat-tab-label>\n {{tab.label}}\n <mat-icon\n class=\"close\"\n (click)=\"closeTab(tab)\">\n close\n </mat-icon>\n </ng-template>\n\n <ng-template matTabContent>\n <app-file-grid\n [viewMode]=\"tab.viewMode\"\n [tab]=\"tab\"\n [config]=\"config\"\n [gridSize]=\"gridSize\"\n [sortOrder]=\"tab.sortOrder\"\n [(selection)]=\"tab.selection\"\n [(path)]=\"tab.path\"\n (pathChange)=\"onTabPathChange(tab)\"\n [(value)]=\"gridValues[i]\"\n (valueChange)=\"onGridValueChange()\"\n (loadFiles)=\"onTabLoadFiles(tab, $event)\"\n\n (fileSelect)=\"fileSelect.next($event)\"\n (fileDblClick)=\"fileDblClick.next($event)\"\n (folderSelect)=\"folderSelect.next($event)\"\n (folderDblClick)=\"folderDblClick.next($event)\"\n />\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </as-split-area>\n </as-split>\n </mat-drawer-content>\n</mat-drawer-container>\n\n","import * as path from 'path-browserify';\nimport { ImportResourcePath } from './types';\n\nexport class DependencyParser {\n private REGEX_NODE_MODULE = /^node:([\\w\\W\\/]+)$/;\n\n // https://github.com/lukasbach/monaco-editor-auto-typings/commit/fc046e7d9a2abbb5121ad8ab25195d8c1c277416\n public parseDependencies(source: string, parent: ImportResourcePath | string): ImportResourcePath[] {\n const importRegex = /import *.+ *from *['\"](?<importPath>.+?)['\"]/g;\n const dynamicImportRegex = /await import ?\\(['\"](?<importPath>.+?)['\"]\\)/g;\n const cjsRequireRegex = /require *\\(['\"](?<importPath>.+?)['\"]\\)/g;\n\n const matches = [\n ...source.matchAll(importRegex),\n ...source.matchAll(dynamicImportRegex),\n ...source.matchAll(cjsRequireRegex)\n ];\n const importPaths = matches.map(match => match.groups?.['importPath']);\n const result = importPaths.map(imp => this.resolvePath(imp, parent));\n\n return result\n }\n\n private resolvePath(importPath: string, parent: ImportResourcePath | string): ImportResourcePath {\n const nodeImport = importPath.match(this.REGEX_NODE_MODULE);\n if (nodeImport) {\n return {\n kind: 'relative-in-package',\n packageName: '@types/node',\n importPath: `${nodeImport[1]}.d.ts`,\n sourcePath: '',\n };\n }\n\n if (typeof parent === 'string') {\n if (importPath.startsWith('.')) {\n return {\n kind: 'relative',\n importPath,\n sourcePath: parent,\n };\n }\n else if (importPath.startsWith('@')) {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: `${segments[0]}/${segments[1]}`,\n importPath: segments.slice(2).join('/'),\n };\n }\n else {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: segments[0],\n importPath: segments.slice(1).join('/'),\n };\n }\n }\n else {\n switch (parent.kind) {\n case 'package':\n throw Error('TODO?');\n case 'relative':\n throw Error('TODO2?');\n case 'relative-in-package':\n if (importPath.startsWith('.')) {\n return {\n kind: 'relative-in-package',\n packageName: parent.packageName,\n sourcePath: path.join(parent.sourcePath, parent.importPath),\n importPath: importPath,\n };\n }\n else if (importPath.startsWith('@')) {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: `${segments[0]}/${segments[1]}`,\n importPath: segments.slice(2).join('/'),\n };\n }\n else {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: segments[0],\n importPath: segments.slice(1).join('/'),\n };\n }\n }\n }\n return null;\n }\n}\n","import { ProgressUpdate, Options } from './types';\n\nexport const invokeUpdate = (progress: ProgressUpdate, options: Options) => {\n let textual = `${progress.type}: `;\n\n switch (progress.type) {\n case 'CodeChanged':\n textual += ``;\n break;\n case 'ResolveNewImports':\n textual += ``;\n break;\n // case 'DetectedImport':\n // textual += `at \"${progress.source}\" the import \"${progress.importPath}\" was detected`;\n // break;\n // case 'CompletedImport':\n // textual += `at \"${progress.source}\" the import \"${progress.importPath}\" was completed`;\n // break;\n case 'LookedUpTypeFile':\n textual += `\"${progress.path}\" was ${progress.success ? 'sucessfully' : 'not sucessfully'} looked up`;\n break;\n case 'AttemptedLookUpFile':\n textual += `\"${progress.path}\" was ${\n progress.success ? 'sucessfully' : 'not sucessfully'\n } attempted to looked up`; // What in the hell is this grammar?\n break;\n case 'LookedUpPackage':\n textual += `package.json for package \"${progress.package}\" was ${\n progress.success ? 'sucessfully' : 'not sucessfully'\n } looked up${progress.definitelyTyped ? ' (found in definitely typed repo)' : ''}`;\n break;\n case 'LoadedFromCache':\n textual += `\"${progress.importPath}\" was loaded from cache`;\n break;\n case 'StoredToCache':\n textual += `\"${progress.importPath}\" was stored to cache`;\n break;\n }\n\n if (textual.endsWith(': ')) {\n textual = textual.slice(undefined, -2);\n }\n\n options.onUpdate?.(progress, textual);\n};\n","import { Options } from './types';\n\nexport class RecursionDepth {\n constructor(private options: Options, private fileRecursionDepth = 0, private packageRecursionDepth = 0) {}\n\n public nextPackage() {\n return new RecursionDepth(this.options, this.fileRecursionDepth, this.packageRecursionDepth + 1);\n }\n\n public nextFile() {\n return new RecursionDepth(this.options, this.fileRecursionDepth + 1, this.packageRecursionDepth);\n }\n\n public same() {\n return new RecursionDepth(this.options, this.fileRecursionDepth, this.packageRecursionDepth);\n }\n\n public shouldStop() {\n return (\n (this.options.fileRecursionDepth > 0 && this.fileRecursionDepth >= this.options.fileRecursionDepth) ||\n (this.options.packageRecursionDepth > 0 && this.packageRecursionDepth >= this.options.packageRecursionDepth)\n );\n }\n}\n","import type * as monaco from 'monaco-editor';\nimport * as path from 'path-browserify';\n\nexport interface SourceCache {\n isFileAvailable?: (uri: string) => Promise<boolean>;\n storeFile: (uri: string, content: string) => Promise<void>;\n getFile: (uri: string) => Promise<string | undefined>;\n clear: () => Promise<void>;\n}\n\nexport type ProgressUpdate =\n | {\n type: 'CodeChanged';\n }\n | {\n type: 'ResolveNewImports';\n }\n | {\n type: 'LookedUpTypeFile';\n path: string;\n success: boolean;\n }\n | {\n type: 'AttemptedLookUpFile';\n path: string;\n success: boolean;\n }\n | {\n type: 'LookedUpPackage';\n package: string;\n definitelyTyped: boolean;\n success: boolean;\n }\n | {\n type: 'LoadedFromCache';\n importPath: string;\n }\n | {\n type: 'StoredToCache';\n importPath: string;\n };\n\n\n\nexport interface Options {\n /**\n * Share source cache between multiple editor instances by storing\n * the cache in a static property.\n *\n * Defaults to false.\n */\n shareCache: boolean;\n\n /**\n * Only use packages specified in the `versions` property.\n *\n * Defaults to false.\n */\n onlySpecifiedPackages: boolean;\n\n /**\n * Load typings from prespecified versions when initializing. Versions\n * need to be specified in the ``versions`` option.\n *\n * Defaults to false.\n */\n preloadPackages: boolean;\n\n /**\n * Updates compiler options to defaults suitable for auto-loaded\n * declarations, specifically by setting ``moduleResolution`` to\n * ``NodeJs`` and ``allowSyntheticDefaultImports`` to true.\n * Other options are not changed. Set this property to true to\n * disable this behaviour.\n *\n * Defaults to false.\n */\n dontAdaptEditorOptions: boolean;\n\n /**\n * After typings were resolved and injected into monaco, auto-typings\n * updates the value of the current model to trigger a refresh in\n * monaco's typing logic, so that it uses the injected typings.\n */\n dontRefreshModelValueAfterResolvement: boolean;\n\n /**\n * Prespecified package versions. If a package is loaded whose\n * name is specified in this object, it will load with the exact\n * version specified in the object.\n *\n * Example:\n *\n * ```json\n * {\n * \"@types/react\": \"17.0.0\",\n * \"csstype\": \"3.0.5\"\n * }\n * ```\n *\n * Setting the option ``onlySpecifiedPackages`` to true makes this\n * property act as a whitelist for packages.\n *\n * Setting the option ``preloadPackages`` makes the packages specified\n * in this property load directly after initializing the auto-loader.\n */\n versions?: { [packageName: string]: string; };\n\n /**\n * If a new package was loaded, its name and version is added to the\n * version object, and this method is called with the updated object.\n * @param versions updated versions object.\n */\n onUpdateVersions?: (versions: { [packageName: string]: string; }) => void;\n\n /**\n * Supply a cache where declaration files and package.json files are\n * cached to. Supply an instance of {@link LocalStorageCache} to cache\n * files to localStorage.\n */\n sourceCache: SourceCache;\n\n /**\n * The root directory where your edited files are. Must end with\n * a slash. The default is suitable unless you change the default\n * URI of files loaded in the editor.\n *\n * Defaults to \"inmemory://model/\"\n */\n fileRootPath: string;\n\n /**\n * Debounces code reanalyzing after user has changed the editor contents\n * by the specified amount. Set to zero to disable. Value provided in\n * milliseconds.\n *\n * Defaults to 4000, i.e. 4 seconds.\n */\n debounceDuration: number;\n\n /**\n * Maximum recursion depth for recursing packages. Determines how many\n * nested package declarations are loaded. For example, if ``packageRecursionDepth``\n * has the value 2, the code in the monaco editor references packages ``A1``, ``A2``\n * and ``A3``, package ``A1`` references package ``B1`` and ``B1`` references ``C1``,\n * then packages ``A1``, ``A2``, ``A3`` and ``B1`` are loaded. Set to zero to\n * disable.\n *\n * Defaults to 3.\n */\n packageRecursionDepth: number;\n\n /**\n * Maximum recursion depth for recursing files. Determines how many\n * nested file declarations are loaded. The same as ``packageRecursionDepth``,\n * but for individual files. Set to zero to disable.\n *\n * Defaults to 10.\n */\n fileRecursionDepth: number;\n\n /**\n * Called after progress updates like loaded declarations or events.\n * @param update detailed event object containing update infos.\n * @param textual a textual representation of the update for debugging.\n */\n onUpdate?: (update: ProgressUpdate, textual: string) => void;\n\n /**\n * Called if errors occur.\n * @param error a textual representation of the error.\n */\n onError?: (error: string) => void;\n /**\n * instance of monaco editor\n */\n monaco: typeof monaco;\n}\n\n\nexport interface ImportResourcePathPackage {\n kind: 'package';\n packageName: string;\n importPath?: string;\n}\n\nexport interface ImportResourcePathRelative {\n kind: 'relative';\n importPath: string;\n sourcePath: string;\n}\n\nexport interface ImportResourcePathRelativeInPackage {\n kind: 'relative-in-package';\n packageName: string;\n importPath: string;\n sourcePath: string;\n}\n\nexport interface ImportResourceBruteForce {\n kind: 'bruteforce';\n packageName: string;\n typingFiles: any[];\n}\n\nexport type ImportResourcePath =\n | ImportResourcePathPackage\n | ImportResourcePathRelative\n | ImportResourcePathRelativeInPackage\n | ImportResourceBruteForce;\n\nexport const importResourcePathToString = (p: ImportResourcePath) => {\n switch (p.kind) {\n case 'package':\n return path.join(p.packageName, p.importPath ?? '', 'package.json');\n case 'relative':\n return path.join(p.sourcePath, p.importPath);\n case 'relative-in-package':\n return path.join(p.packageName, p.sourcePath, p.importPath);\n case 'bruteforce':\n throw new Error(\"Not Implemented\");\n }\n};\n","\nexport class UnpkgSourceResolver {\n public static async resolvePackageJson(\n packageName: string,\n version: string | undefined,\n subPath: string | undefined\n ): Promise<string | undefined> {\n return await this.resolveFile(\n `https://unpkg.com/${packageName}${version ? `@${version}` : ''}${subPath ? `/${subPath}` : ''}/package.json`\n );\n }\n\n public static async resolveSourceFile(\n packageName: string,\n version: string | undefined,\n path: string\n ): Promise<string | undefined> {\n return await this.resolveFile(`https://unpkg.com/${packageName}${version ? `@${version}` : ''}/${path}`);\n }\n\n private static async resolveFile(url: string) {\n const res = await fetch(url, { method: 'GET' });\n\n if (res.ok) {\n return await res.text();\n }\n else if (res.status === 404) {\n return '';\n }\n else {\n throw Error(`Error other than 404 while fetching from Unpkg at ${url}`);\n }\n }\n}\n","import type * as monaco from 'monaco-editor';\nimport { DependencyParser } from './dependency-parser';\nimport * as path from 'path-browserify';\nimport { invokeUpdate } from './update-emitter';\nimport { RecursionDepth } from './recursion-depth';\nimport { ImportResourcePath, ImportResourcePathPackage, ImportResourcePathRelativeInPackage, Options, SourceCache, importResourcePathToString } from './types';\nimport { UnpkgSourceResolver } from './unpkg-source-resolver';\n\nexport class ImportResolver {\n private loadedFiles: string[];\n private dependencyParser: DependencyParser;\n private cache: SourceCache;\n private versions?: { [packageName: string]: string };\n private newImportsResolved: boolean;\n private monaco: typeof monaco;\n\n constructor(private options: Options) {\n this.loadedFiles = [];\n this.dependencyParser = new DependencyParser();\n this.cache = options.sourceCache;\n this.newImportsResolved = false;\n this.monaco = options.monaco!;\n\n if (options.preloadPackages && options.versions) {\n this.versions = options.versions;\n for (const [packageName, version] of Object.entries(options.versions)) {\n this.resolveImport(\n {\n kind: 'package',\n packageName: packageName,\n importPath: '',\n },\n new RecursionDepth(this.options)\n ).catch(e => {\n console.error(e);\n });\n }\n }\n }\n\n public wereNewImportsResolved() {\n return this.newImportsResolved;\n }\n\n public resetNewImportsResolved() {\n this.newImportsResolved = false;\n }\n\n public async resolveImportsInFile(source: string, parent: string | ImportResourcePath, depth: RecursionDepth) {\n if (depth.shouldStop()) {\n return;\n }\n\n const imports = this.dependencyParser.parseDependencies(source, parent);\n for (const importCall of imports) {\n try {\n await this.resolveImport(importCall, depth);\n }\n catch (e) {\n if (this.options.onError) {\n this.options.onError?.((e as Error).message ?? e);\n }\n else {\n console.error(e);\n }\n }\n }\n }\n\n private async resolveImport(importResource: ImportResourcePath, depth: RecursionDepth) {\n const hash = this.hashImportResourcePath(importResource);\n if (this.loadedFiles.includes(hash)) {\n return;\n }\n\n this.loadedFiles.push(hash);\n console.log(\"resolveImport\", importResource, depth);\n\n // Ignore these package imports as they are well-known to be pointless.\n if (importResource.kind == \"package\" && importResource.packageName == \"require\")\n return null;\n\n switch (importResource.kind) {\n case 'package':\n const packageRelativeImport = await this.resolveImportFromPackageRoot(importResource);\n if (packageRelativeImport) {\n return await this.resolveImportInPackage(packageRelativeImport, depth.nextPackage().nextFile());\n }\n break;\n case 'relative':\n throw Error('Not implemented yet');\n case 'relative-in-package':\n return await this.resolveImportInPackage(importResource, depth.nextFile());\n case 'bruteforce': {\n\n }\n }\n }\n\n private async resolveImportInPackage(importResource: ImportResourcePathRelativeInPackage, depth: RecursionDepth) {\n console.log(\"resolveImportInPackage\", importResource, depth);\n\n const contents = await this.loadSourceFileContents(importResource);\n\n if (contents) {\n const { source, at } = contents;\n this.createModel(\n source,\n this.monaco.Uri.parse(this.options.fileRootPath + path.join(`node_modules/${importResource.packageName}`, at))\n );\n\n await this.resolveImportsInFile(\n source,\n {\n kind: 'relative-in-package',\n packageName: importResource.packageName,\n sourcePath: path.dirname(at),\n importPath: '',\n },\n depth\n );\n }\n }\n\n private async resolveImportFromPackageRoot(\n importResource: ImportResourcePathPackage\n ): Promise<ImportResourcePathRelativeInPackage | void> {\n console.log(\"resolveImportFromPackageRoot\", importResource);\n\n const failedProgressUpdate = {\n type: 'LookedUpPackage',\n package: importResource.packageName,\n definitelyTyped: false,\n success: false,\n } as const;\n\n if (this.options.onlySpecifiedPackages) {\n if (!this.versions?.[importResource.packageName] && !this.versions?.['@types/' + importResource.packageName]) {\n invokeUpdate(failedProgressUpdate, this.options);\n return null;\n }\n }\n\n const doesPkgJsonHasSubpath = importResource.importPath?.length ?? 0 > 0;\n let pkgJsonSubpath = doesPkgJsonHasSubpath ? `/${importResource.importPath}` : '';\n let pkgJson = await this.resolvePackageJson(\n importResource.packageName,\n this.versions?.[importResource.packageName],\n doesPkgJsonHasSubpath ? importResource.importPath : undefined\n );\n\n if (!pkgJson && doesPkgJsonHasSubpath) {\n pkgJson = await this.resolvePackageJson(importResource.packageName, this.versions?.[importResource.packageName]);\n pkgJsonSubpath = '';\n }\n\n if (!pkgJson) return invokeUpdate(failedProgressUpdate, this.options);\n\n const pkg = JSON.parse(pkgJson);\n\n console.log(\"package meta\", pkg);\n\n if (pkg.typings || pkg.types) {\n const typings = pkg.typings || pkg.types;\n this.createModel(\n pkgJson,\n this.monaco.Uri.parse(\n `${this.options.fileRootPath}node_modules/${importResource.packageName}${pkgJsonSubpath}/package.json`\n )\n );\n\n invokeUpdate(\n {\n type: 'LookedUpPackage',\n package: importResource.packageName,\n definitelyTyped: false,\n success: true,\n },\n this.options\n );\n this.setVersion(importResource.packageName, pkg.version);\n\n return {\n kind: 'relative-in-package',\n packageName: importResource.packageName,\n sourcePath: '',\n importPath: path.join(importResource.importPath ?? '', typings.startsWith('./') ? typings.slice(2) : typings),\n };\n }\n else {\n\n const typingPackageName = `@types/${\n importResource.packageName.startsWith('@')\n ? importResource.packageName.slice(1).replace(/\\//, '__')\n : importResource.packageName\n }`;\n\n const pkgJsonTypings = await this.resolvePackageJson(typingPackageName, this.versions?.[typingPackageName]);\n\n if (!pkgJsonTypings)\n return invokeUpdate(failedProgressUpdate, this.options);\n\n const pkg = JSON.parse(pkgJsonTypings);\n\n if (!pkg.typings && !pkg.types) {\n const files: {\n fileCount: number,\n files: {\n [key: string]: {\n size: number,\n hex: string,\n type: \"File\",\n isBinary: \"true\" | \"false\",\n path: string,\n contentType: string\n }\n },\n integrity: string,\n shasum: string,\n totalSize: number\n } = await fetch(\"https://www.npmjs.com/package/@dt-esa/dynatrace-api-client/v/2.2.6/index\", {\n method: \"get\"\n }).then(e => e.json());\n\n const typingFiles = Object.entries(files.files).map(([key, val]) => val);\n\n invokeUpdate(\n {\n type: 'LookedUpPackage',\n package: typingPackageName,\n definitelyTyped: true,\n success: true,\n },\n this.options\n );\n\n return {\n kind: 'bruteforce',\n packageName: typingPackageName,\n typingFiles,\n } as any;\n\n return;\n // return invokeUpdate(failedProgressUpdate, this.options);\n }\n\n const typings = pkg.typings || pkg.types;\n this.createModel(\n pkgJsonTypings,\n this.monaco.Uri.parse(`${this.options.fileRootPath}node_modules/${typingPackageName}/package.json`)\n );\n\n invokeUpdate(\n {\n type: 'LookedUpPackage',\n package: typingPackageName,\n definitelyTyped: true,\n success: true,\n },\n this.options\n );\n this.setVersion(typingPackageName, pkg.version);\n\n return {\n kind: 'relative-in-package',\n packageName: typingPackageName,\n sourcePath: '',\n importPath: path.join(\n importResource.importPath ?? '',\n typings.startsWith('./') ? typings.slice(2) : typings\n ),\n };\n }\n }\n\n private async loadSourceFileContents(\n importResource: ImportResourcePathRelativeInPackage\n ): Promise<{ source: string; at: string } | null> {\n const progressUpdatePath = path.join(\n importResource.packageName,\n importResource.sourcePath,\n importResource.importPath\n );\n\n const failedProgressUpdate = {\n type: 'LookedUpTypeFile',\n path: progressUpdatePath,\n definitelyTyped: false,\n success: false,\n } as const;\n\n const pkgName = importResource.packageName;\n const version = this.getVersion(importResource.packageName);\n\n let appends = ['.d.ts', '/index.d.ts', '.ts', '.tsx', '/index.ts', '/index.tsx'];\n\n if (appends.map(append => importResource.importPath.endsWith(append)).reduce((a, b) => a || b, false)) {\n const source = await this.resolveSourceFile(\n pkgName,\n version,\n path.join(importResource.sourcePath, importResource.importPath)\n );\n if (source) {\n return { source, at: path.join(importResource.sourcePath, importResource.importPath) };\n }\n }\n else {\n for (const append of appends) {\n const fullPath = path.join(importResource.sourcePath, importResource.importPath) + append;\n const source = await this.resolveSourceFile(pkgName, version, fullPath);\n invokeUpdate(\n {\n type: 'AttemptedLookUpFile',\n path: path.join(pkgName, fullPath),\n success: !!source,\n },\n this.options\n );\n if (source) {\n invokeUpdate(\n {\n type: 'LookedUpTypeFile',\n path: path.join(pkgName, fullPath),\n success: true,\n },\n this.options\n );\n return { source, at: fullPath };\n }\n }\n }\n\n const pkgJson = await this.resolvePackageJson(\n pkgName,\n version,\n path.join(importResource.sourcePath, importResource.importPath)\n );\n\n if (pkgJson) {\n const { types } = JSON.parse(pkgJson);\n if (types) {\n const fullPath = path.join(importResource.sourcePath, importResource.importPath, types);\n const source = await this.resolveSourceFile(pkgName, version, fullPath);\n if (source) {\n invokeUpdate(\n {\n type: 'LookedUpTypeFile',\n path: path.join(pkgName, fullPath),\n success: true,\n },\n this.options\n );\n return { source, at: fullPath };\n }\n }\n }\n\n invokeUpdate(failedProgressUpdate, this.options);\n return null;\n }\n\n private getVersion(packageName: string) {\n return this.versions?.[packageName];\n }\n\n public setVersions(versions: { [packageName: string]: string }) {\n this.versions = versions;\n this.options.onUpdateVersions?.(versions);\n // TODO reload packages whose version has changed\n }\n\n private setVersion(packageName: string, version: string) {\n this.setVersions({\n ...this.versions,\n [packageName]: version,\n });\n }\n\n private createModel(source: string, uri: monaco.Uri) {\n uri = uri.with({ path: uri.path.replace('@types/', '') });\n if (!this.monaco.editor.getModel(uri)) {\n this.monaco.editor.createModel(source, 'typescript', uri);\n this.newImportsResolved = true;\n }\n }\n\n private hashImportResourcePath(p: ImportResourcePath) {\n return importResourcePathToString(p);\n }\n\n private async resolvePackageJson(\n packageName: string,\n version?: string,\n subPath?: string\n ): Promise<string | undefined> {\n\n const uri = path.join(packageName + (version ? `@${version}` : ''), subPath ?? '', 'package.json');\n let isAvailable = false;\n let content: string | undefined = undefined;\n\n if (this.cache.isFileAvailable) {\n isAvailable = await this.cache.isFileAvailable(uri);\n }\n else {\n content = await this.cache.getFile(uri);\n isAvailable = content !== undefined;\n }\n\n if (isAvailable) {\n return content ?? (await this.cache.getFile(uri));\n }\n else {\n console.log(\"recursing resolvePackageJson\", packageName, version, subPath)\n content = await UnpkgSourceResolver.resolvePackageJson(packageName, version, subPath);\n if (content) {\n this.cache.storeFile(uri, content);\n }\n return content;\n }\n }\n\n private async resolveSourceFile(\n packageName: string,\n version: string | undefined,\n filePath: string\n ): Promise<string | undefined> {\n\n const uri = path.join(packageName + (version ? `@${version}` : ''), filePath);\n let isAvailable = false;\n let content: string | undefined = undefined;\n\n if (this.cache.isFileAvailable) {\n isAvailable = await this.cache.isFileAvailable(uri);\n }\n else {\n content = await this.cache.getFile(uri);\n isAvailable = content !== undefined;\n }\n\n if (isAvailable) {\n invokeUpdate(\n {\n type: 'LoadedFromCache',\n importPath: uri,\n },\n this.options\n );\n return content ?? (await this.cache.getFile(uri));\n }\n else {\n content = await UnpkgSourceResolver.resolveSourceFile(packageName, version, filePath);\n if (content) {\n invokeUpdate(\n {\n type: 'StoredToCache',\n importPath: uri,\n },\n this.options\n );\n this.cache.storeFile(uri, content);\n }\n return content;\n }\n }\n}\n","import { SourceCache } from './types';\n\nexport class DummySourceCache implements SourceCache {\n public getFile(uri: string): Promise<string | undefined> {\n return undefined;\n }\n\n public async isFileAvailable(uri: string): Promise<boolean> {\n return false;\n }\n\n public storeFile(uri: string, content: string): Promise<void> {\n return undefined;\n }\n\n public clear(): Promise<void> {\n return undefined;\n }\n}\n","import { ImportResolver } from './import-resolver';\nimport * as path from 'path-browserify';\nimport type * as monaco from 'monaco-editor';\nimport { invokeUpdate } from './update-emitter';\nimport { RecursionDepth } from './recursion-depth';\nimport { Options, SourceCache } from './types';\nimport { DummySourceCache } from './dummy-source-cache';\n\ntype Editor = monaco.editor.ICodeEditor | monaco.editor.IStandaloneCodeEditor;\n\n// https://github.com/lukasbach/monaco-editor-auto-typings\nexport class MonacoAutoTypeImporter implements monaco.IDisposable {\n private static sharedCache?: SourceCache;\n private importResolver: ImportResolver;\n private debounceTimer?: number;\n private isResolving?: boolean;\n private disposables: monaco.IDisposable[] = [];\n\n public constructor(private editor: Editor, private options: Options) {\n this.importResolver = new ImportResolver(options);\n\n const changeModelDisposable = editor.onDidChangeModelContent(e => {\n this.debouncedResolveContents();\n });\n this.disposables.push(changeModelDisposable);\n this.resolveContents();\n\n if (!options.dontAdaptEditorOptions) {\n options.monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n ...options.monaco.languages.typescript.typescriptDefaults.getCompilerOptions(),\n moduleResolution: options.monaco.languages.typescript.ModuleResolutionKind.NodeJs,\n allowSyntheticDefaultImports: true,\n rootDir: options.fileRootPath,\n });\n }\n }\n\n public static async create(editor: Editor, options?: Partial<Options>): Promise<MonacoAutoTypeImporter> {\n if (options?.shareCache && options.sourceCache && !MonacoAutoTypeImporter.sharedCache) {\n MonacoAutoTypeImporter.sharedCache = options.sourceCache;\n }\n\n const monacoInstance = options?.monaco ?? window['monaco'];\n\n if (!monacoInstance) {\n throw new Error('monacoInstance not found, you can specify the monaco instance via options.monaco');\n }\n\n return new MonacoAutoTypeImporter(editor, {\n fileRootPath: 'inmemory://model/',\n onlySpecifiedPackages: false,\n preloadPackages: false,\n shareCache: false,\n dontAdaptEditorOptions: false,\n dontRefreshModelValueAfterResolvement: false,\n sourceCache: MonacoAutoTypeImporter.sharedCache ?? new DummySourceCache(),\n debounceDuration: 4000,\n fileRecursionDepth: 10,\n packageRecursionDepth: 3,\n ...options,\n monaco: monacoInstance,\n });\n }\n\n public dispose() {\n this.disposables.forEach(d => d.dispose())\n }\n\n public setVersions(versions: { [packageName: string]: string }) {\n this.importResolver.setVersions(versions);\n this.options.versions = versions;\n }\n\n public async clearCache() {\n await this.options.sourceCache.clear();\n }\n\n private debouncedResolveContents() {\n if (this.isResolving) {\n return;\n }\n\n invokeUpdate({ type: 'CodeChanged' }, this.options);\n\n if (this.options.debounceDuration <= 0) {\n this.resolveContents();\n }\n else {\n if (this.debounceTimer !== undefined) {\n clearTimeout(this.debounceTimer);\n }\n this.debounceTimer = setTimeout(async () => {\n await this.resolveContents();\n this.debounceTimer = undefined;\n }, this.options.debounceDuration) as any;\n }\n }\n\n private async resolveContents() {\n this.isResolving = true;\n invokeUpdate({ type: 'ResolveNewImports' }, this.options);\n\n const model = this.editor.getModel();\n // This can happen when the editor is disposed before all typings\n // are installed.\n if (!model) {\n throw Error('No model');\n }\n\n const content = model.getLinesContent();\n\n try {\n await this.importResolver.resolveImportsInFile(\n content.join('\\n'),\n path.dirname(model.uri.toString()),\n new RecursionDepth(this.options)\n );\n }\n catch (e) {\n if (this.options.onError) {\n this.options.onError((e as Error).message ?? e);\n }\n else {\n throw e;\n }\n }\n\n if (this.importResolver.wereNewImportsResolved()) {\n if (!this.options.dontRefreshModelValueAfterResolvement) {\n const currentPosition = this.editor.getPosition();\n model.setValue(model.getValue());\n if (currentPosition) {\n this.editor.setPosition(currentPosition);\n }\n }\n this.importResolver.resetNewImportsResolved();\n }\n\n this.isResolving = false;\n }\n}\n","import { AfterViewInit, Component, EventEmitter, HostListener, Input, OnDestroy, Output, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\nimport * as MonacoEditor from 'monaco-editor';\r\nimport { MonacoAutoTypeImporter } from './ts-type-resolver/main';\r\nimport { debounceTime } from 'rxjs';\r\n\r\nlet Monaco: typeof MonacoEditor;\r\n\r\n@Component({\r\n selector: 'app-vscode',\r\n template: '',\r\n styles: [`\r\n:host {\r\n display: block;\r\n height: 100%;\r\n max-height: 100vh;\r\n max-width: 100vw;\r\n}\r\n `],\r\n standalone: true\r\n})\r\nexport class VscodeComponent implements AfterViewInit, OnDestroy {\r\n isDirty = false;\r\n editor: MonacoEditor.editor.IStandaloneCodeEditor;\r\n filename: string;\r\n\r\n private _code: string;\r\n @Input() set code(value: string) {\r\n if (value == this._code)\r\n return;\r\n if (typeof value != \"string\")\r\n throw new TypeError(\"Value must be of type string\");\r\n\r\n this._code = value;\r\n this.editor?.setValue(this.code);\r\n };\r\n get code() { return this._code?.trim() }\r\n @Output() codeChange = new EventEmitter<string>();\r\n private onCodeType = new EventEmitter<string>();\r\n private typeDebounce = this.onCodeType.pipe(debounceTime(100));\r\n\r\n @Input() customLanguage: { init: Function; };\r\n\r\n\r\n private _language: string;\r\n @Input() set language(value: string) {\r\n this._language = {\r\n 'ts': \"typescript\",\r\n 'html': 'xml',\r\n 'scss': 'css'\r\n }[value] || value || \"auto\"\r\n }\r\n get language() { return this._language }\r\n\r\n @Input() installationLocation = \"/lib/monaco/vs\";\r\n\r\n\r\n @Input() tabSize = 2;\r\n @Input() readOnly = false;\r\n @Input() theme = \"vs-dark\";\r\n @Input() fontFamily = \"Droid Sans Mono\";\r\n @Input() fontSize = 14;\r\n\r\n @Input() automaticLayout = true;\r\n @Input() colorDecorators = true;\r\n @Input() folding = true;\r\n\r\n @Input() minimapEnabled = true;\r\n @Input() minimap: MonacoEditor.editor.IEditorMinimapOptions = {\r\n enabled: true\r\n };\r\n @Input() scrollbar: MonacoEditor.editor.IEditorScrollbarOptions = {\r\n alwaysConsumeMouseWheel: false,\r\n // scrollByPage: true\r\n };\r\n @Input() smoothScrolling = true;\r\n @Input() mouseWheelScrollSensitivity = 2;\r\n @Input() scrollBeyondLastLine = false;\r\n @Input() scrollBeyondLastColumn = 0;\r\n\r\n @Input() lineNumbers: MonacoEditor.editor.LineNumbersType = \"on\";\r\n\r\n @Input() restSettings: MonacoEditor.editor.IStandaloneEditorConstructionOptions = {};\r\n\r\n get settings() {\r\n return {\r\n ...this.restSettings,\r\n theme: this.theme,\r\n language: this.language,\r\n tabSize: this.tabSize,\r\n readOnly: this.readOnly,\r\n fontFamily: this.fontFamily,\r\n fontSize: this.fontSize,\r\n automaticLayout: this.automaticLayout,\r\n scrollBeyondLastLine: this.scrollBeyondLastLine,\r\n colorDecorators: this.colorDecorators,\r\n folding: this.folding,\r\n scrollBeyondLastColumn: this.scrollBeyondLastColumn,\r\n minimap: this.minimap,\r\n scrollbar: this.scrollbar,\r\n smoothScrolling: this.smoothScrolling,\r\n mouseWheelScrollSensitivity: this.mouseWheelScrollSensitivity,\r\n lineNumbers: this.lineNumbers\r\n } as MonacoEditor.editor.IStandaloneEditorConstructionOptions;\r\n }\r\n\r\n private _sub;\r\n constructor(private viewContainer: ViewContainerRef) {\r\n InstallMonacoUMD(this.installationLocation);\r\n\r\n this._sub = this.typeDebounce.subscribe(t => {\r\n this.codeChange.next(this._code = this.editor.getValue());\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // If we changed anything OTHER than code, reload the editor\r\n if (Object.keys(changes).length > 1 || !changes['code']) {\r\n if (this.editor) {\r\n this.editor?.dispose();\r\n this.createEditor();\r\n }\r\n }\r\n if (changes['theme'])\r\n window['monaco']?.editor.setTheme(this.theme);\r\n }\r\n\r\n async ngAfterViewInit() {\r\n await InstallMonacoUMD();\r\n\r\n this.createEditor();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.editor?.dispose();\r\n this._sub?.unsubscribe();\r\n }\r\n\r\n private createEditor() {\r\n if (this.customLanguage) {\r\n this.customLanguage.init(window['monaco']);\r\n }\r\n\r\n let editor = this.editor = window['monaco'].editor.create(\r\n this.viewContainer?.element?.nativeElement,\r\n this.settings as any\r\n );\r\n\r\n // const autoTypings = await\r\n MonacoAutoTypeImporter.create(editor, {\r\n monaco: Monaco,\r\n });\r\n\r\n this.configureLanguageSupport();\r\n\r\n if (this.code) {\r\n editor.setValue(this.code);\r\n }\r\n\r\n editor.getModel().onDidChangeContent(() => this.onCodeType.emit());\r\n }\r\n\r\n private configureLanguageSupport() {\r\n\r\n }\r\n\r\n download() {\r\n const code = this.editor.getValue();\r\n\r\n let blob = new Blob([code], { type: 'text/log' });\r\n let elm = document.createElement('a');\r\n let blobURL = URL.createObjectURL(blob);\r\n\r\n // Set the data values.\r\n elm.href = blobURL;\r\n elm.download = this.filename;\r\n\r\n document.body.appendChild(elm);\r\n elm.click();\r\n\r\n document.body.removeChild(elm);\r\n elm.remove();\r\n\r\n URL.revokeObjectURL(blobURL);\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n resize = (): void => {\r\n this.editor?.layout();\r\n };\r\n}\r\n\r\nexport const InstallMonacoUMD = async (path?: string) => {\r\n if (window['monaco']) return window['monaco'];\r\n\r\n // Prevent duplicate injection\r\n const scriptEls = document.querySelectorAll('body>script[monaco][defer][src]');\r\n\r\n // Only perform installation if a path is specified.\r\n if (path && scriptEls.length == 0) {\r\n // Monaco has a UMD loader that requires this\r\n // Merge with any pre-existing global require objects.\r\n if (!window['require']) window['require'] = {} as any;\r\n if (!window['require']['paths']) window['require']['paths'] = {};\r\n\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n\r\n window['require']['paths'].vs = path;\r\n\r\n const monacoFiles = [\r\n 'loader.js',\r\n 'editor/editor.main.nls.js',\r\n 'editor/editor.main.js',\r\n ];\r\n\r\n for (let i = 0; i < monacoFiles.length; i++) {\r\n const script = document.createElement(\"script\");\r\n script.setAttribute(\"monaco\", \"\");\r\n script.setAttribute(\"defer\", \"\");\r\n script.setAttribute(\"src\", path + '/' + monacoFiles[i]);\r\n document.body.append(script);\r\n }\r\n }\r\n\r\n // Return a promise that will resolve when monaco finishes loading\r\n return await new Promise((res, rej) => {\r\n let count = 0;\r\n let i = window.setInterval(() => {\r\n count++;\r\n\r\n if (window['monaco'] != undefined) {\r\n window.clearInterval(i);\r\n res(true);\r\n }\r\n else if (count >= 100) {\r\n window.clearInterval(i);\r\n res(false);\r\n }\r\n }, 100);\r\n });\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\n\ntype CSSUnitString = 'px' | '%' | 'em' | 'in' | '';\ntype CSSUnit = `${number}${CSSUnitString}` | `var(--${string})`;\ntype CSSString = CSSUnit |\n `calc(${CSSUnit|''}${''|' '}${'+'|'-'|'/'|'*'}${''|' '}${CSSUnit|''})`\n\n@Component({\n selector: 'ngx-parallax-card',\n templateUrl: './parallax-card.component.html',\n styleUrls: ['./parallax-card.component.scss'],\n imports: [\n NgTemplateOutlet\n ],\n host: {\n '[style.width]': 'width',\n '[style.height]': 'height',\n '[style.--card-bg-inset]': '-bgInset+\"px\"',\n '[style.--flip-animation-duration]': 'flipAnimationDuration+\"ms\"',\n '[class.flip]': 'showBackOfCard'\n },\n standalone: true\n})\nexport class ParallaxCardComponent {\n\n // Front of card\n @ContentChild('content', { read: TemplateRef }) content: TemplateRef<ElementRef>;\n @ContentChild('background', { read: TemplateRef }) background: TemplateRef<ElementRef>;\n\n // Back of card\n @ContentChild('backContent', { read: TemplateRef }) backContent: TemplateRef<ElementRef>;\n @ContentChild('backBackground', { read: TemplateRef }) backBackground: TemplateRef<ElementRef>;\n\n /**\n *\n */\n @Output() loaded = new EventEmitter();\n\n /**\n * Width of the card\n * @default `240px`\n */\n @Input() width: CSSString = '240px';\n /**\n * Height of the card\n * @default `320px`\n */\n @Input() height: CSSString = '320px';\n /**\n * Inset padding of the parallax\n * @default 80\n */\n @Input() bgInset: number = 80;\n /**\n * Duration for the flip animation in ms\n * @default 80\n */\n @Input() flipAnimationDuration: number = 1600;\n\n renderCardFront = true;\n renderCardBack = true;\n showBackOfCard = false;\n\n private get wrapper() { return this.element.nativeElement as HTMLElement; }\n private get cardFront() { return this.wrapper.querySelector('.card.front') as HTMLElement; }\n private get cardBack() { return this.wrapper.querySelector('.card.backface') as HTMLElement; }\n private get backgroundElement() { return this.cardFront.querySelector('.card-bg') as HTMLDivElement; }\n private get backfaceBackgroundElement() { return this.cardBack.querySelector('.card-bg') as HTMLDivElement; }\n\n private pointerX = 0;\n private pointerY = 0;\n private pointerLeave = 0;\n\n constructor(\n private readonly element: ElementRef\n ) { }\n\n ngAfterViewInit() {\n const el = this.wrapper;\n\n // Directly attach events to the wrapper\n el.onpointermove = (e) => this.onPointerMove(e);\n el.onpointerenter = () => this.onPointerEnter();\n el.onpointerleave = () => this.onPointerLeave();\n el.onclick = () => this.onClick();\n\n this.loaded.emit();\n }\n\n onPointerMove(e: PointerEvent) {\n const { width, height, left, top } = this.wrapper.getBoundingClientRect();\n this.pointerX = e.pageX - left - (width / 2);\n this.pointerY = e.pageY - top - (height / 2);\n\n this.render();\n }\n\n onPointerEnter() {\n clearTimeout(this.pointerLeave);\n }\n\n onPointerLeave() {\n this.pointerLeave = setTimeout(() => {\n this.pointerX = 0;\n this.pointerY = 0;\n this.render();\n }, 600) as any;\n }\n\n // TODO: This can get intercepted in some states\n onClick() {\n this.showBackOfCard = !this.showBackOfCard;\n this.render()\n }\n\n render = () => {\n const { width, height } = this.wrapper.getBoundingClientRect();\n const mousePX = this.pointerX / width;\n const mousePY = this.pointerY / height;\n\n // Rotation factors\n const rX = mousePX * this.bgInset / 1.75;\n const rY = mousePY * -this.bgInset / 1.75;\n\n // Translation factors\n const tX = mousePX * -this.bgInset * 2;\n const tY = mousePY * -this.bgInset * 2;\n\n if (this.renderCardFront) {\n this.backgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n }\n if (this.renderCardBack) {\n this.backfaceBackgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n }\n\n if (this.showBackOfCard) {\n this.cardFront.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n this.cardBack.style.transform = `rotateY(${-rX}deg) rotateX(${-rY}deg)`;\n }\n else {\n this.cardFront.style.transform = `rotateY(${rX}deg) rotateX(${rY}deg)`;\n this.cardBack.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n }\n }\n}\n","@if (renderCardBack) {\n <div class=\"card backface\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"backBackground\" />\n </div>\n <div class=\"card-content\">\n <ng-template [ngTemplateOutlet]=\"backContent\" />\n </div>\n </div>\n}\n\n@if (renderCardFront) {\n <div class=\"card front\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"background\" />\n </div>\n <div class=\"card-content\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"/>\n }\n @else {\n <ng-content/>\n }\n </div>\n </div>\n}\n\n\n","import { AfterViewInit, Component, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport * as React from 'react';\nimport { createRoot, Root } from 'react-dom/client';\n\nimport { ThemeService } from '../../services/theme.service';\n\n/**\n * Extend this component to automatically generate\n * bindings to a React component.\n *\n * ! You _must_ override the property `ngReactComponent`\n * Failure to do so will result in errors\n * `override readonly ngReactComponent = ReactFlowWrappableComponent;`\n */\n@Component({\n selector: 'app-react-magic-wrapper',\n template: ``,\n standalone: true\n})\nexport class ReactMagicWrapperComponent implements OnChanges, OnDestroy, AfterViewInit {\n\n /**\n * The react component to be wrapped.\n * ! Must be overridden for this wrapper to work\n */\n ngReactComponent: React.FunctionComponent<any> | React.ComponentClass<any> | string;\n\n private _root: Root;\n public theme: string;\n private ngSubscriptions = [\n this.ngTheme.subscribe(t => {\n this.theme = t;\n this.ngOnChanges();\n })\n ];\n\n constructor(\n private ngContainer: ViewContainerRef,\n private ngTheme: ThemeService\n ) {\n }\n\n ngOnInit() {\n if (!this.ngReactComponent)\n throw new Error(\"ReactMagicWrapperComponent cannot start without a provided ngReactComponent!\");\n }\n\n ngOnChanges(changes?: SimpleChanges): void {\n this._render();\n }\n\n ngAfterViewInit() {\n this._render();\n }\n\n ngOnDestroy() {\n this._root.unmount();\n this.ngSubscriptions.forEach(s => s.unsubscribe());\n }\n\n private _render() {\n if (!this.ngReactComponent) return;\n if (!this._root) {\n this._root = createRoot(this.ngContainer.element.nativeElement);\n }\n\n // List all keys that do not start with `_` nor `ng`\n const keys = Object.keys(this).filter(k => !/^(?:_|ng)/.test(k));\n\n // Get all property keys from the class\n const propKeys = keys.filter(k => !k.startsWith(\"on\"));\n // Get all event handler keys from the class\n const evtKeys = keys.filter(k => k.startsWith(\"on\"));\n\n const props = {};\n // Project all key properties onto `props`\n propKeys.forEach(k => props[k] = this[k]);\n\n // Bind all event handlers.\n // ! important Angular uses EventEmitter, React uses\n // a different method of event binding\n evtKeys.forEach(k => props[k] = (...args) => this[k].next(args));\n\n this._root.render(React.createElement(this.ngReactComponent, { props: props as any }));\n }\n}\n","/*\n * Public API Surface of package\n */\n\n/**\n ** Types\n */\nexport * from './types/menu';\nexport * from './types/popup';\n\n/**\n ** Directives\n */\nexport * from './directives/tooltip.directive';\nexport * from './directives/menu.directive';\nexport * from './directives/image-cache.directive';\n\n/**\n ** Pipes\n */\nexport * from './pipes/html-bypass.pipe';\nexport * from './pipes/resource-bypass.pipe';\nexport * from './pipes/script-bypass.pipe';\nexport * from './pipes/style-bypass.pipe';\nexport * from './pipes/url-bypass.pipe';\n\n/**\n** Services\n*/\nexport * from './services/dependency.service';\nexport * from './services/dialog.service';\nexport * from './services/fetch.service';\nexport * from './services/keyboard.service';\nexport * from './services/file.service';\nexport * from './services/theme.service';\nexport * from './services/navigation.service';\nexport * from './services/command-palette.service';\n// export * from './services/serviceworker.service';\n\n/**\n** Lazy loader component & service\n*/\nexport * from './components/lazy-loader/lazy-loader.service';\nexport * from './components/lazy-loader/lazy-loader.module';\nexport * from './components/lazy-loader/lazy-loader.component';\nexport * from './components/lazy-loader/types';\n\n/**\n** Dynamic HTML (WIP)\n*/\nexport * from './components/dynamic-html/dynamic-html.service';\nexport * from './components/dynamic-html/dynamic-html.module';\nexport * from './components/dynamic-html/dynamic-html.component';\nexport * from './components/dynamic-html/types';\n\n/**\n ** Components\n */\nexport * from './components/filemanager/filemanager.component';\n// export * from './components/music-library/music-library.component';\nexport * from './components/tabulator/tabulator.component';\nexport * from './components/vscode/vscode.component';\nexport * from './components/parallax-card/parallax-card.component';\nexport * from './components/react-magic-wrapper/react-magic-wrapper.component';\nexport * from './components/types';\n\n\nexport { ConsoleLogger, LogIcon } from './utils/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["zone","i2","i4","i1","log","warn","err","i2.LazyLoaderService","i1.Fetch","i1.LazyLoaderService","i1.CommandPaletteComponent","i3","i5","i1.DynamicHTMLRenderer","MIT['default']","Tabulator","i1.KeyboardService","i1.DialogService","i3.FilemanagerComponent","i6","i7","i8","i10","i1.FilemanagerComponent","i2.DialogService","i2.Fetch","i1.ThemeService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dotglitch-ngx-common.mjs","sources":["../../../packages/common/src/directives/utils.ts","../../../packages/common/src/components/tooltip/tooltip.component.ts","../../../packages/common/src/components/tooltip/tooltip.component.html","../../../packages/common/src/directives/tooltip.directive.ts","../../../packages/common/src/components/menu/menu.component.ts","../../../packages/common/src/components/menu/menu.component.html","../../../packages/common/src/directives/menu.directive.ts","../../../packages/common/src/directives/image-cache.directive.ts","../../../packages/common/src/pipes/html-bypass.pipe.ts","../../../packages/common/src/pipes/resource-bypass.pipe.ts","../../../packages/common/src/pipes/script-bypass.pipe.ts","../../../packages/common/src/pipes/style-bypass.pipe.ts","../../../packages/common/src/pipes/url-bypass.pipe.ts","../../../packages/common/src/utils/index.ts","../../../packages/common/src/services/dependency.service.ts","../../../packages/common/src/components/lazy-loader/types.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.service.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.component.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.component.html","../../../packages/common/src/services/dialog.service.ts","../../../packages/common/src/services/fetch.service.ts","../../../packages/common/src/services/keyboard.service.ts","../../../packages/common/src/services/file.service.ts","../../../packages/common/src/services/theme.service.ts","../../../packages/common/src/services/navigation.service.ts","../../../packages/common/src/components/command-palette/shortcut/shortcut.component.ts","../../../packages/common/src/components/command-palette/shortcut/shortcut.component.html","../../../packages/common/src/components/command-palette/breadcrumb/breadcrumb.component.ts","../../../packages/common/src/components/command-palette/breadcrumb/breadcrumb.component.html","../../../packages/common/src/components/command-palette/command-palette.component.ts","../../../packages/common/src/components/command-palette/command-palette.component.html","../../../packages/common/src/services/command-palette.service.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.module.ts","../../../packages/common/src/components/dynamic-html/types.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.service.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.component.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.module.ts","../../../packages/common/src/components/filemanager/textextensions.ts","../../../packages/common/src/assets/mat-icons.ts","../../../packages/common/src/components/filemanager/icon-resolver.ts","../../../packages/common/src/components/tabulator/tabulator.component.ts","../../../packages/common/src/components/tabulator/tabulator.component.html","../../../packages/common/src/components/filemanager/helpers.ts","../../../packages/common/src/components/filemanager/file-grid/file-grid.component.ts","../../../packages/common/src/components/filemanager/file-grid/file-grid.component.html","../../../packages/common/src/components/filemanager/toolbar/icon-button/icon-button.component.ts","../../../packages/common/src/components/filemanager/toolbar/icon-button/icon-button.component.html","../../../packages/common/src/components/filemanager/toolbar/breadcrumb/breadcrumb.component.ts","../../../packages/common/src/components/filemanager/toolbar/breadcrumb/breadcrumb.component.html","../../../packages/common/src/components/filemanager/toolbar/toolbar.component.ts","../../../packages/common/src/components/filemanager/toolbar/toolbar.component.html","../../../packages/common/src/components/filemanager/tree-view/tree-view.component.ts","../../../packages/common/src/components/filemanager/tree-view/tree-view.component.html","../../../packages/common/src/components/types.ts","../../../packages/common/src/components/filemanager/filemanager.component.ts","../../../packages/common/src/components/filemanager/filemanager.component.html","../../../packages/common/src/components/vscode/ts-type-resolver/dependency-parser.ts","../../../packages/common/src/components/vscode/ts-type-resolver/update-emitter.ts","../../../packages/common/src/components/vscode/ts-type-resolver/recursion-depth.ts","../../../packages/common/src/components/vscode/ts-type-resolver/types.ts","../../../packages/common/src/components/vscode/ts-type-resolver/unpkg-source-resolver.ts","../../../packages/common/src/components/vscode/ts-type-resolver/import-resolver.ts","../../../packages/common/src/components/vscode/ts-type-resolver/dummy-source-cache.ts","../../../packages/common/src/components/vscode/ts-type-resolver/main.ts","../../../packages/common/src/components/vscode/vscode.component.ts","../../../packages/common/src/components/parallax-card/parallax-card.component.ts","../../../packages/common/src/components/parallax-card/parallax-card.component.html","../../../packages/common/src/components/react-magic-wrapper/react-magic-wrapper.component.ts","../../../packages/common/src/public-api.ts","../../../packages/common/src/dotglitch-ngx-common.ts"],"sourcesContent":["/**\n * This utils file exists outside of the strict angular DI zone\n * This enables opening popups without requiring absolute DI bindings.\n */\n\nexport const getPosition = (el: HTMLElement | PointerEvent, config: any = {}, bounds: DOMRect) => {\n // Bounds of the popup owner\n const src: DOMRect = !!el['nodeName']\n ? (el as HTMLElement).getBoundingClientRect()\n : {\n // It's a pointer event, so we'll take the X and Y from the pointer.\n x: el['clientX'],\n y: el['clientY'],\n // Set a default tiny size, so we don't divide by zero.\n width: 0.0001,\n height: 0.0001\n } as DOMRect;\n\n // Popup bounds\n const { width, height } = bounds;\n\n const winh = window.innerHeight;\n const winw = window.innerWidth;\n\n const cords = {\n top: null,\n left: null\n };\n\n if (config?.position == \"left\" || config?.position == \"right\" || !config?.position) {\n switch (config?.alignment) {\n\n case \"end\": {\n // vertically bind to bottom\n cords.top = src.y + src.height - height;\n break;\n }\n case \"afterend\": {\n // vertically bind below bottom\n cords.top = src.y + src.height;\n break;\n }\n case \"beforestart\": {\n // vertically bind above top\n cords.top = src.y - height;\n break;\n }\n case \"start\": {\n // vertically bind to top\n cords.top = src.y;\n break;\n }\n case \"center\":\n default: {\n // vertically center\n cords.top = (src.y + (src.height / 2)) - (height / 2);\n break;\n }\n }\n\n // Apply bounds to prevent the dialog from being cut-off screen\n // Lower bound\n cords.top = Math.max(config?.edgePadding || 0, cords.top);\n // Upper bound\n cords.top = Math.min(winh - height, cords.top);\n\n if (config?.position == \"left\") {\n cords.left = src.x - (width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n if (config?.position == \"right\" || !config?.position) {\n cords.left = src.x + (src.width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n\n // Lower bound\n cords.left = Math.max(config?.edgePadding || 0, cords.left);\n // Upper bound\n cords.left = Math.min(winw - width, cords.left);\n }\n else if (config?.position == \"top\" || config?.position == \"bottom\") {\n switch (config?.alignment) {\n case \"end\": {\n // vertically bind to right\n cords.left = src.x + src.width - width;\n break;\n }\n case \"afterend\": {\n // vertically bind past right\n cords.left = src.x + src.width;\n break;\n }\n case \"beforestart\": {\n // vertically bind before left\n cords.left = src.x - width;\n break;\n }\n case \"start\": {\n // vertically bind to left\n cords.left = src.x;\n break;\n }\n case \"center\":\n default: {\n // vertically center\n cords.left = (src.x + (src.width / 2)) - (width / 2);\n break;\n }\n }\n\n // Apply bounds to prevent the dialog from being cut-off screen\n // Lower bound\n cords.left = Math.max(config?.edgePadding || 0, cords.left);\n // Upper bound\n cords.left = Math.min(winw - width, cords.left);\n\n\n if (config?.position == \"top\") {\n cords.top = src.y - (height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n if (config?.position == \"bottom\") {\n cords.top = src.y + (src.height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n\n // Lower bound\n cords.top = Math.max(config?.edgePadding || 0, cords.top);\n // Upper bound\n cords.top = Math.min(winh - height, cords.top);\n }\n\n // Assign unit\n cords.top = cords.top + 'px';\n cords.left = cords.left + 'px';\n\n return cords;\n}\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, HostListener, Inject, Input, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\nimport { Optional } from '@angular/core';\nimport { createApplication } from '@angular/platform-browser';\nimport { firstValueFrom } from 'rxjs';\nimport { TooltipOptions } from '../../types/tooltip';\n\ndeclare const Zone;\nconst zone = new Zone(Zone.current, { name: \"@dotglitch_menu\", properties: {} });\n\nexport const calcTooltipBounds = async (template: TemplateRef<any> | Type<any>, data: any, matDialogConfig: MatDialogConfig) => {\n\n const args = {\n data: data || {},\n template,\n config: {},\n selfCords: { left: \"0px\", top: \"0px\" },\n ownerCords: { x: 0, y: 0, width: 0, height: 0 },\n id: null\n }\n\n // dimensions should be in px... Might need to handle vw/v\n if (matDialogConfig?.width && matDialogConfig?.height) {\n return {\n width: parseInt(matDialogConfig.width),\n height: parseInt(matDialogConfig.height),\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n } as DOMRect;\n }\n\n return new Promise<DOMRect>((res, rej) => {\n zone.run(async () => {\n // Forcibly bootstrap the ctx menu outside of the client application's zone.\n const app = await createApplication({\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: args }\n ]\n });\n\n const del = document.createElement(\"div\");\n del.style.position = \"absolute\";\n del.style.left = '-1000vw';\n document.body.append(del);\n\n const base = app.bootstrap(TooltipComponent, del);\n const { instance } = base;\n\n await firstValueFrom(app.isStable);\n\n const el: HTMLElement = instance.viewContainer?.element?.nativeElement;\n\n const rect = el.getBoundingClientRect();\n app.destroy();\n del.remove();\n\n res(rect)\n });\n })\n}\n\n@Component({\n selector: 'ngx-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n imports: [\n NgTemplateOutlet,\n NgComponentOutlet\n ],\n standalone: true\n})\nexport class TooltipComponent {\n @Input() data: any;\n @Input() config: TooltipOptions;\n @Input() ownerCords: DOMRect;\n @Input() selfCords;\n @Input() template: TemplateRef<any> | Type<any>;\n\n public isTemplate: boolean;\n public hasBootstrapped = false;\n public pointerIsOnVoid = false;\n public isLockedOpen = false;\n\n clientWidth = window.innerWidth;\n clientHeight = window.innerHeight;\n\n coverRectCords = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n }\n\n constructor(\n public viewContainer: ViewContainerRef,\n @Optional() @Inject(MAT_DIALOG_DATA) private _data: any,\n @Optional() public dialog: MatDialog, // optional only for the purpose of estimating dimensions\n @Optional() public dialogRef: MatDialogRef<any>,\n ) {\n // Defaults are set before @Input() hooks evaluate\n this.data = this.data || this._data?.data || {};\n this.config = this.config || this._data?.config;\n this.dialog = this.dialog || this._data?.dialog;\n this.template = this.template || this._data?.template;\n this.ownerCords = this.ownerCords || this._data?.ownerCords;\n this.selfCords = this.selfCords || this._data?.selfCords;\n this.isLockedOpen = this._data?.isLockedOpen || this.config?.stayOpen;\n }\n\n ngOnInit() {\n\n const selfY = parseInt(this.selfCords.top.replace('px', ''));\n const selfX = parseInt(this.selfCords.left.replace('px', ''));\n\n this.coverRectCords = {\n top: this.ownerCords.y - selfY - 16,\n left: this.ownerCords.x - selfX - 16,\n height: this.ownerCords.height + 32,\n width: this.ownerCords.width + 32\n }\n\n if (this.template instanceof TemplateRef)\n this.isTemplate = true;\n else if (typeof this.template == \"function\")\n this.isTemplate = false;\n else\n throw new Error(\"Unrecognized template object provided.\");\n\n // TODO: resolve the event hook with the .void element\n setTimeout(() => {\n this.hasBootstrapped = true;\n if (this.pointerIsOnVoid && !this.isLockedOpen)\n this.dialogRef.close();\n }, 200);\n }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n el.addEventListener(\"keydown\", evt => {\n this.isLockedOpen = true;\n });\n\n el.addEventListener(\"pointerdown\", evt => {\n this.isLockedOpen = true;\n });\n\n el.addEventListener(\"touch\", evt => {\n this.isLockedOpen = true;\n });\n }\n\n @HostListener(\"window:keydown\", ['$event'])\n onKeyDown(evt: KeyboardEvent) {\n if (this.config.freezeOnKeyCode) {\n if (evt.code == this.config.freezeOnKeyCode)\n this.isLockedOpen = true;\n }\n }\n\n onVoidPointerDown(evt: PointerEvent) {\n if (!this.isLockedOpen) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.querySelector(\".void\").remove();\n\n setTimeout(() => {\n const clonedEvt = new PointerEvent(\"pointerdown\", evt);\n const target = document.elementFromPoint(evt.clientX, evt.clientY) as HTMLElement;\n\n console.log(\"DEBUG EVENTS\", {evt, clonedEvt});\n target.dispatchEvent(clonedEvt);\n }, 15)\n }\n\n this.closeOnVoid(true)\n }\n\n // If the void element gets stuck open, make wheel events pass through.\n onWheel(evt: WheelEvent) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.style.display = \"none\";\n const target = document.elementFromPoint(evt.clientX, evt.clientY);\n el.style.display = \"block\";\n\n target.scroll({\n top: evt.deltaY + target.scrollTop,\n left: evt.deltaX + target.scrollLeft,\n behavior: \"smooth\"\n });\n }\n\n /**\n * Close the tooltip if these actions occur\n */\n @HostListener(\"window:resize\")\n @HostListener(\"window:blur\")\n @HostListener(\"pointerleave\")\n private onClose() {\n if (!this.isLockedOpen)\n this.dialogRef?.close();\n\n this.clientWidth = window.innerWidth;\n this.clientHeight = window.innerHeight;\n }\n\n closeOnVoid(force = false) {\n if (!this.isLockedOpen || force)\n this.dialogRef.close();\n }\n}\n","<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords) {\n <!-- <div\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n ></div> -->\n\n <div class=\"void left\"\n [style.top]=\"'0px'\"\n [style.left]=\"'0px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(ownerCords.left) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void top\"\n [style.top]=\"'0px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"ownerCords.top + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void right\"\n [style.top]=\"'0px'\"\n [style.left]=\"(ownerCords.left + ownerCords.width) + 'px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(clientWidth - (ownerCords.left + ownerCords.width)) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void\"\n [style.top]=\"(ownerCords.top + ownerCords.height) + 'px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"(clientHeight - (ownerCords.top + ownerCords.height)) + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n}\n\n\n<div\n #container\n class=\"container\"\n>\n @if (isTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'element': container,\n 'tooltip': this\n }\"\n ></ng-container>\n }\n @else {\n <ng-container\n [ngComponentOutlet]=\"$any(template)\"\n >\n </ng-container>\n }\n</div>\n","import { Directive, Input, HostListener, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { getPosition } from './utils';\nimport { TooltipComponent, calcTooltipBounds } from '../components/tooltip/tooltip.component';\nimport { TooltipOptions } from '../types/tooltip';\nimport { ulid } from 'ulidx';\nimport { firstValueFrom } from 'rxjs';\n\n@Directive({\n selector: '[ngx-tooltip]',\n providers: [\n MatDialog\n ],\n standalone: true\n})\nexport class TooltipDirective {\n\n /**\n */\n @Input(\"ngx-tooltip\") template: TemplateRef<any> | Type<any>;\n\n /**\n * Configuration for opening the app menu\n */\n @Input(\"ngx-tooltip-config\") config: TooltipOptions = {};\n\n /**\n * Arbitrary data to pass into the template\n */\n @Input(\"ngx-tooltip-context\") data: any = {};\n\n private isCursorOverTarget = false;\n private dialogIsOpen = false;\n\n constructor(\n private dialog: MatDialog,\n private viewContainer: ViewContainerRef\n ) {\n }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n this.config?.triggers?.forEach(t => {\n el.addEventListener(t, () => {\n if (t == \"click\")\n this.config.stayOpen = true;\n\n this.open();\n })\n })\n }\n\n async open() {\n if (!this.dialogIsOpen) {\n const el = this.viewContainer.element.nativeElement;\n this.dialogIsOpen = true;\n await openTooltip(this.dialog, this.template, this.data, el, this.config);\n this.dialogIsOpen = false;\n }\n }\n\n @HostListener('pointerenter', ['$event'])\n public async onPointerEnter(evt: PointerEvent) {\n // If the template is not a template ref, do nothing.\n if (!(this.template instanceof TemplateRef))\n return;\n\n if (Array.isArray(this.config?.triggers) && !this.config.triggers.includes(\"hover\")) {\n return;\n }\n\n this.isCursorOverTarget = true;\n\n setTimeout(async () => {\n // If the cursor moved away in the time\n if (!this.isCursorOverTarget)\n return;\n\n this.open();\n }, this.config.delay ?? 250);\n }\n\n @HostListener('pointerleave', ['$event'])\n public async onPointerLeave(evt: PointerEvent) {\n this.isCursorOverTarget = false;\n }\n}\n\n// Helper to open the context menu without using the directive.\nexport const openTooltip = async (\n dialog: MatDialog,\n template: TemplateRef<any> | Type<any>,\n data: any,\n el: HTMLElement,\n config?: TooltipOptions,\n focusTrap = false,\n matPopupOptions?: MatDialogConfig<any>\n) => {\n\n const rect = await calcTooltipBounds(template, data, matPopupOptions);\n const ownerCords = el.getBoundingClientRect();\n const cords = getPosition(el, config, rect);\n const specificId = ulid();\n\n return firstValueFrom(\n dialog.open(TooltipComponent, {\n autoFocus: focusTrap,\n restoreFocus: focusTrap,\n data: {\n dialog,\n data: data,\n template: template,\n config: config,\n matPopupOptions,\n ownerCords: ownerCords,\n selfCords: cords,\n id: specificId\n },\n panelClass: [\"ngx-tooltip\", 'ngx-' + specificId].concat(config?.customClass || []),\n position: cords,\n hasBackdrop: false,\n ...matPopupOptions\n })\n .afterClosed()\n );\n};\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, HostListener, Inject, Input, OnInit, Optional, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { DomSanitizer, createApplication } from '@angular/platform-browser';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { firstValueFrom } from 'rxjs';\nimport { MenuItem, MenuOptions } from '../../types/menu';\nimport { TooltipDirective } from '../../directives/tooltip.directive';\n\ndeclare const Zone: any;\nconst zone = new Zone(Zone.current, { name: \"@dotglitch_menu\", properties: {} });\n\nexport const calcMenuItemBounds = async (menuItems: MenuItem[], dataObj: any) => {\n const data = {\n data: dataObj,\n items: menuItems,\n config: {},\n selfCords: { left: \"0px\", top: \"0px\" },\n ownerCords: { x: 0, y: 0, width: 0, height: 0 },\n id: null\n }\n\n return calcComponentBounds(MenuComponent, data);\n}\n\nconst calcComponentBounds = async (component: Type<any>, data: any) => {\n return new Promise<DOMRect>((res, rej) => {\n zone.run(async () => {\n const app = await createApplication({\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: data }\n ]\n });\n\n const del = document.createElement(\"div\");\n del.style.position = \"absolute\";\n del.style.left = '-1000vw';\n document.body.append(del);\n\n const base = app.bootstrap(component, del);\n const { instance } = base;\n\n await firstValueFrom(app.isStable);\n\n const el: HTMLElement = instance.viewContainer?.element?.nativeElement;\n\n const rect = el.getBoundingClientRect();\n app.destroy();\n del.remove();\n\n res(rect);\n });\n })\n}\n\nconst $data = Symbol(\"data\");\nconst $hover = Symbol(\"hover\");\n\n@Component({\n selector: 'ngx-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n imports: [\n NgTemplateOutlet,\n PortalModule,\n MatIconModule,\n MatProgressSpinnerModule,\n TooltipDirective\n ],\n standalone: true\n})\nexport class MenuComponent implements OnInit {\n\n @Input() public data: any;\n @Input() public items: MenuItem[];\n @Input() public config: MenuOptions;\n @Input() public id: string;\n @Input() public overlayOverlap = 32;\n @Input() public hoverDelay = 400;\n @Input() public showDebugOverlay = false;\n\n @Input() ownerCords: DOMRect;\n @Input() selfCords;\n @Input() parentItem;\n @Input() parentContext;\n @Input() isLockedOpen = false;\n\n public hasBootstrapped = false;\n public pointerIsOnVoid = false;\n public pointerHasBeenOverMask = false;\n\n coverRectCords = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n }\n\n // Check if there are any slashes or dots -- that will clearly exclude it from being a mat icon\n public readonly matIconRx = /[\\/\\.]/i;\n showIconColumn = true;\n showShortcutColumn = true;\n\n template: TemplateRef<any>;\n templateType: \"template\" | \"component\";\n componentPortal: ComponentPortal<any>;\n private childDialogs: MatDialogRef<any>[] = [];\n\n constructor(\n public viewContainer: ViewContainerRef,\n public sanitizer: DomSanitizer,\n @Optional() @Inject(MAT_DIALOG_DATA) private _data: any,\n @Optional() public dialog: MatDialog, // optional only for the purpose of estimating dimensions\n @Optional() public dialogRef: MatDialogRef<any>\n ) {\n // Defaults are set before @Input() hooks evaluate\n this.dialog = this.dialog || this._data?.dialog;\n this.data = this._data?.data;\n this.ownerCords = this._data?.ownerCords;\n this.selfCords = this._data?.selfCords;\n this.items = this._data?.items;\n this.config = this._data?.config;\n this.id = this._data?.id;\n this.parentItem = this._data?.parentItem;\n this.parentContext = this._data?.parentContext;\n this.isLockedOpen = this.isLockedOpen || this._data?.config?.['_isLockedOpen'];\n\n this.template = _data.template;\n\n this.templateType = this.template instanceof TemplateRef ? \"template\" : \"component\";\n\n if (this.templateType == \"component\") {\n this.componentPortal = new ComponentPortal(this.template as any);\n }\n }\n\n ngOnInit() {\n\n this.items?.forEach(i => {\n if (typeof i == \"string\") return;\n\n // Set defaults\n i['_disabled'] = false;\n i['_visible'] = true;\n i['_context'] = (typeof i.context == \"function\")\n ? i.context(this.data)\n : i.context;\n\n if (i.label)\n try { i['_formattedLabel'] = this.formatLabel(i.label); } catch (e) { console.warn(e) }\n\n if (typeof i.isDisabled == \"function\")\n try { i['_disabled'] = i.isDisabled(this.data || {}, i['_context']); } catch(e) { console.warn(e) }\n\n if (typeof i.isVisible == \"function\")\n try { i['_visible'] = i.isVisible(this.data || {}, i['_context']); } catch (e) { console.warn(e) }\n\n if (typeof i.linkTemplate == \"function\")\n try { i['_link'] = i.linkTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e) }\n\n if (typeof i.iconTemplate == \"function\")\n try { i['_icon'] = i.iconTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e); }\n });\n\n // Show the icon column if there are any items with an icon\n this.showIconColumn = !!this.items?.find(i =>\n typeof i == \"object\" &&\n typeof i['icon'] == \"string\" &&\n i['icon'].length > 2\n );\n\n this.showShortcutColumn = !!this.items?.find(i =>\n typeof i == \"object\" &&\n typeof i['shortcut'] == \"string\" &&\n i['shortcut'].length > 2\n );\n\n if (this.ownerCords) {\n const selfY = parseInt(this.selfCords.top?.replace('px', '') || '0');\n const selfX = parseInt(this.selfCords.left?.replace('px', '') || '0');\n\n this.coverRectCords = {\n top: this.ownerCords.y - selfY - (this.overlayOverlap/2),\n left: this.ownerCords.x - selfX - (this.overlayOverlap/2),\n height: this.ownerCords.height + this.overlayOverlap,\n width: this.ownerCords.width + this.overlayOverlap\n }\n }\n\n setTimeout(() => {\n this.hasBootstrapped = true;\n }, 200);\n }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.addEventListener(\"keydown\", evt => {\n this.isLockedOpen = true;\n });\n el.addEventListener(\"pointerdown\", evt => {\n this.isLockedOpen = true;\n });\n el.addEventListener(\"touch\", evt => {\n this.isLockedOpen = true;\n });\n }\n\n ngOnDestroy() {\n //\n this.childDialogs.forEach(d => d.close({[$data]: true}))\n }\n\n /**\n *\n * @param item\n * @param evt\n * @returns\n */\n async onMenuItemClick(item: MenuItem, row: HTMLTableRowElement, keepOpen = false) {\n if (typeof item == 'string') return null;\n if (item.separator) return null;\n\n const context = await item['_context'];\n\n // If cache is enabled, only load if we don't have any children.\n const forceLoad = (item.cacheResolvedChildren ? !item.children : true);\n\n if (item.childrenResolver && forceLoad) {\n item['_isResolving'] = true;\n item['_children'] = await item.childrenResolver(this.data, context);\n item['_isResolving'] = false;\n }\n else if (typeof item.children == \"function\" && forceLoad) {\n item['_isResolving'] = true;\n item['_children'] = await item.children(this.data, context);\n item['_isResolving'] = false;\n }\n else {\n item['_children'] = item.children;\n }\n\n if (item['_children'] || item.childTemplate)\n row['_open'] = true;\n\n if (!item.childTemplate && !item.children) {\n if (typeof item.action == \"function\") {\n const res = await item.action(this.data, context)\n this.close(res);\n return res;\n }\n\n // If no action, this is simply a text item.\n return null;\n }\n\n // Need X pos, Y pos, width and height\n const bounds = row.getBoundingClientRect();\n\n const cords = {\n top: null,\n left: null,\n bottom: null,\n right: null\n };\n\n // Set position coordinates\n const { width, height } = await (item.childTemplate\n ? calcComponentBounds(MenuComponent, { template: item.childTemplate })\n : calcMenuItemBounds(item['_children'], this.data));\n\n if (bounds.y + height > window.innerHeight)\n cords.bottom = \"0px\";\n if (bounds.x + bounds.width + width > window.innerWidth)\n cords.left = ((bounds.x - width)) + \"px\";\n\n if (!cords.bottom) cords.top = bounds.y + \"px\";\n if (!cords.left) cords.left = bounds.x + bounds.width + \"px\";\n\n\n const config = structuredClone(this.config)\n config['_isLockedOpen'] = keepOpen;\n\n const dialogRef = this.dialog.open(MenuComponent, {\n position: cords,\n panelClass: [\"ngx-menu\"].concat(this.config?.customClass || []),\n backdropClass: \"ngx-menu-backdrop\",\n hasBackdrop: false,\n data: {\n data: this.data,\n ownerCords: row.getBoundingClientRect(),\n selfCords: cords,\n parentItem: item,\n parentContext: context,\n items: item['_children'],\n template: item.childTemplate,\n config: config\n }\n });\n\n let _s = dialogRef\n .afterClosed()\n .subscribe(async (result) => {\n // Clicked \"void\" on a submenu\n if (typeof result == \"object\" && result[$data] == true) {\n this.close(result);\n }\n // Went back to parent menu -- do not close (same as result == null)\n else if (typeof result == \"object\" && result[$data] == false) {\n\n }\n // Got some other result value\n else if (result != null) {\n // Perform action callback\n if (typeof item.action == 'function') {\n this.close(await item.action(result, context));\n }\n // Just close.\n else {\n this.close();\n }\n }\n\n row['_open'] = false;\n\n this.childDialogs.splice(this.childDialogs.indexOf(dialogRef), 1);\n\n _s.unsubscribe();\n });\n\n this.childDialogs.push(dialogRef);\n return dialogRef;\n }\n\n /**\n *\n * @param label\n * @returns\n */\n formatLabel(label: string): string {\n return label.replace(/_([a-z0-9])_/i, (match, group) => `<u>${group}</u>`);\n }\n\n /**\n * Close the context menu under these circumstances\n */\n // @HostListener(\"window:resize\", ['event'])\n // @HostListener(\"window:blur\", ['event'])\n close(result?) {\n this.childDialogs.forEach(d => d.close())\n this.dialogRef?.close(result);\n }\n\n closeOnVoid(force = false) {\n if (!this.isLockedOpen || force) {\n this.close({[$data]: force});\n }\n }\n\n startHoverTimer(item, row) {\n\n // Invert check to make the logic simpler\n // TL;DR: if (any) of these are true, we will do the hover action\n if (!(\n Array.isArray(item.children) && item.children.length > 0 ||\n typeof item.children == \"function\" ||\n item.childTemplate ||\n item.childrenResolver\n ))\n return;\n\n item[$hover] = setTimeout(() => {\n delete item[$hover];\n\n if (!this.pointerIsOnVoid) {\n row['_open'] = true;\n this.onMenuItemClick(item, row);\n }\n }, this.hoverDelay);\n }\n stopHoverTimer(item) {\n item[$hover] && clearTimeout(item[$hover]);\n delete item[$hover];\n }\n\n /**\n * Check if the dialog is clipping offscreen\n * if so, move it back into view.\n */\n @HostListener(\"window:resize\")\n private onResize() {\n const el = this.viewContainer?.element?.nativeElement as HTMLElement;\n if (!el) return;\n\n const { width, height, x, y } = el.getBoundingClientRect();\n\n const target = document.querySelector(\".ngx-menu\") as HTMLElement;\n if (!target) return;\n\n // Move back into view if we're clipping outside of the bottom\n if (y + height > window.innerHeight) {\n const newTop = (window.innerHeight - (height + (this.config.edgePadding || 12))) + \"px\";\n target.style['margin-top'] = newTop;\n }\n\n // Move back into view if we're clipping off the right\n if (x + width > window.innerWidth) {\n const newLeft = (window.innerWidth - (width + (this.config.edgePadding || 12))) + \"px\"\n target.style['margin-left'] = newLeft;\n }\n }\n\n // If the void element gets stuck open, make wheel events pass through.\n onWheel(evt: WheelEvent) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.style.display = \"none\";\n const target = document.elementFromPoint(evt.clientX, evt.clientY);\n el.style.display = \"block\";\n\n target.scroll({\n top: evt.deltaY + target.scrollTop,\n left: evt.deltaX + target.scrollLeft,\n behavior: \"smooth\"\n })\n }\n}\n","<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords) {\n <div\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n [style.background]=\"showDebugOverlay ? '#f004' : '#0000'\"\n style=\"z-index: -1\"\n (pointerenter)=\"pointerHasBeenOverMask=true\"\n (click)=\"isLockedOpen = true\"\n ></div>\n}\n\n<div class=\"void\"\n [style.background]=\"showDebugOverlay ? '#00f4' : '#0000'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && !isLockedOpen && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"hasBootstrapped && closeOnVoid(true)\"\n (pointermove)=\"hasBootstrapped && !isLockedOpen && closeOnVoid()\"\n (wheel)=\"onWheel($event)\"\n></div>\n\n@if (!template) {\n <table>\n <tbody>\n @for (item of items; track item) {\n <!-- A row with a click action -->\n @if (item != 'separator' && item.separator != true && item['_visible']) {\n <tr #row\n [class.disabled]=\"item['_disabled']\"\n (click)=\"!item['_disabled'] && onMenuItemClick(item, row, true)\"\n [class.hover]=\"row['hover']\"\n [class.open]=\"row['_open']\"\n (pointerenter)=\"row['hover'] = true; startHoverTimer(item, row)\"\n (pointerleave)=\"row['hover'] = false; stopHoverTimer(item)\"\n >\n\n @if (showIconColumn) {\n <td class=\"icon\">\n @if (matIconRx.test(item['_icon'] ?? item.icon)) {\n <img [src]=\"item['_icon'] ?? item.icon\"/>\n }\n @else {\n <mat-icon\n [fontIcon]=\"item['_icon'] ?? item.icon\"\n [style.color]=\"item.iconColor\"\n />\n }\n </td>\n }\n\n <!-- 'Normal' action based item -->\n <td class=\"label\"\n [style.padding-left]=\"showIconColumn ? 0 : '16px'\"\n >\n <a\n #anchor\n [attr.target]=\"item.linkTarget\"\n [attr.href]=\"(item['_link'] || item.link) ? sanitizer.bypassSecurityTrustUrl(item['_link'] || item.link) : undefined\"\n >\n @if ($any(item.labelTemplate)?.prototype) {\n <ng-container\n [ngTemplateOutlet]=\"$any(item).labelTemplate\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'context': item['_context'],\n 'item': item,\n 'element': anchor,\n 'menu': this\n }\"\n />\n }\n @else {\n @if ($any(item)?.labelTemplate) {\n {{$any(item)?.labelTemplate(data || {})}}\n }\n @else {\n <div [innerHTML]=\"item['_formattedLabel']\"></div>\n }\n }\n </a>\n </td>\n\n @if (showShortcutColumn) {\n <td class=\"shortcut\">\n {{item.shortcutLabel}}\n </td>\n }\n\n <td style=\"min-width: 16px\">\n @if ((\n (item['children']?.length > 0) ||\n (item['_children']?.length > 0) ||\n item.childTemplate ||\n item.children?.['call'] ||\n item.childrenResolver\n ) &&\n !item['_isResolving']\n ) {\n <mat-icon\n style=\"transform: translateY(2px)\"\n >\n chevron_right\n </mat-icon>\n }\n\n @if (item['_isResolving']) {\n <mat-progress-spinner\n mode=\"indeterminate\"\n [diameter]=\"20\"\n style=\"margin-right: 4px\"\n />\n }\n </td>\n </tr>\n }\n @else if (item != 'separator' && item.separator == true) {\n <!-- Separator with label -->\n <tr\n class=\"disabled separator\"\n >\n <td\n class=\"center\"\n [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n >\n <span class=\"hr\">\n {{item['label'] || ''}}\n </span>\n </td>\n </tr>\n }\n @else if (item == 'separator') {\n <!-- Separator -->\n <tr\n class=\"disabled separator\"\n >\n <td\n [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n >\n <hr/>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n}\n@else {\n @if (templateType == 'template') {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'context': parentContext,\n 'item': parentItem,\n 'element': this.viewContainer?.element?.nativeElement,\n 'menu': this\n }\"\n />\n }\n @else {\n <ng-container\n [cdkPortalOutlet]=\"componentPortal\"\n />\n }\n}\n\n@if (showDebugOverlay) {\n <div>\n <div>hbs: {{hasBootstrapped}}</div>\n <div>pov: {{pointerIsOnVoid}}</div>\n <div>ilo: {{isLockedOpen}}</div>\n <div>hbom: {{pointerHasBeenOverMask}}</div>\n\n <div>type: {{templateType}}</div>\n </div>\n}\n","import { Directive, Input, ViewContainerRef, SecurityContext } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { getPosition } from './utils';\nimport { MenuItem, MenuOptions } from '../types/menu';\nimport { MenuComponent, calcMenuItemBounds } from '../components/menu/menu.component';\nimport { ulid } from 'ulidx';\nimport { firstValueFrom } from 'rxjs';\n\n@Directive({\n selector: '[ngx-contextmenu],[ngx-menu]',\n providers: [\n MatDialog\n ],\n standalone: true\n})\nexport class MenuDirective {\n\n /**\n * The data representing the item the menu was opened for.\n */\n @Input(\"ngx-menu-context\") data: any;\n\n /**\n * The items that will be bound to the context menu.\n */\n @Input(\"ngx-contextmenu\") ctxMenuItems: MenuItem[];\n\n /**\n * The items that will be bound to the menu that pops\n * up when the user clicks the element.\n */\n @Input(\"ngx-menu\") menuItems: MenuItem[];\n\n /**\n * Configuration for opening the app menu\n */\n @Input(\"ngx-menu-config\") config: MenuOptions = {};\n\n constructor(\n private dialog: MatDialog,\n private viewContainer: ViewContainerRef\n ) { }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n // Automatically attach context menu items to\n // the contextmenu event\n if (this.ctxMenuItems) {\n el.addEventListener('contextmenu', (e) => {\n e.preventDefault();\n this.openMenu(e as any, this.ctxMenuItems, true);\n });\n }\n\n if (this.menuItems?.length > 0) {\n if (!this.config?.trigger) {\n el.addEventListener('click', (e) => {\n this.openMenu(e as any, this.menuItems, true);\n });\n }\n else {\n const triggers = Array.isArray(this.config.trigger) ? this.config.trigger : [this.config.trigger];\n\n triggers.forEach(t => {\n if ([\"contextmenu\", \"click\"].includes(t)) {\n el.addEventListener(t, (e) => {\n e.preventDefault();\n this.openMenu(e as any, this.ctxMenuItems, true);\n });\n }\n else {\n el.addEventListener(t, this.openMenu.bind(this));\n }\n });\n }\n }\n }\n\n async openMenu(evt: PointerEvent, items = this.menuItems, keepOpen = false) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n el.classList.add(\"ngx-menu-open\");\n\n const isCtxEvent = evt.button == 2;\n\n const config = structuredClone(this.config);\n config['_isLockedOpen'] = keepOpen;\n\n return openMenu(\n this.dialog,\n items,\n this.data,\n evt,\n this.config,\n isCtxEvent ? null : el\n )\n .then((...res) => {\n el.classList.remove(\"ngx-menu-open\");\n return res;\n })\n .catch((ex) => {\n el.classList.remove(\"ngx-menu-open\");\n throw ex;\n });\n }\n}\n\n// Helper to open the menu without using the directive.\nexport const openMenu = async (\n dialog: MatDialog,\n menuItems: MenuItem[],\n data: any,\n evt: PointerEvent,\n config: MenuOptions = {},\n el?: HTMLElement\n) => {\n // console.log({ dialog, menuItems, data, evt, config, el });\n\n evt.preventDefault();\n evt.stopPropagation();\n\n // Apply defaults.\n if (!config.alignment)\n config.alignment = \"start\";\n\n const cords = getPosition(el || evt, config, await calcMenuItemBounds(menuItems, data));\n const specificId = ulid();\n\n return firstValueFrom(\n dialog.open(MenuComponent, {\n data: {\n dialog,\n data: data,\n ownerCords: el?.getBoundingClientRect(),\n selfCords: cords,\n items: menuItems,\n config: config,\n id: specificId\n },\n panelClass: [\"ngx-menu\", 'ngx-' + specificId].concat(config?.customClass || []),\n position: cords,\n backdropClass: \"ngx-menu-backdrop\"\n })\n .afterClosed());\n};\n","import { Directive, ElementRef, Inject, InjectionToken, Input, Optional } from '@angular/core';\nimport { INDEXEDDB, createInstance } from 'localforage';\n\nconst storage = createInstance({\n name: \"@dotglitch\",\n storeName: \"image-cache\",\n driver: INDEXEDDB,\n version: 1\n});\n\n\nconst imageCache: {\n [key: string]: HTMLImageElement;\n} = {};\n\nconst loadingSvg = `data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"32px\" height=\"32px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\"><circle cx=\"50\" cy=\"50\" fill=\"none\" stroke=\"%2340c4ff\" stroke-width=\"10\" r=\"35\" stroke-dasharray=\"164.93361431346415 56.97787143782138\"><animateTransform attributeName=\"transform\" type=\"rotate\" repeatCount=\"indefinite\" dur=\"1s\" values=\"0 50 50;360 50 50\" keyTimes=\"0;1\"></animateTransform></circle><!-- [ldio] generated by https://loading.io/ --></svg>`;\nconst brokenSvg = `data:image/svg+xml;utf8,<svg width=\"800\" height=\"800\" viewBox=\"0 0 24 24\" version=\"1.1\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\"><line x1=\"10.08\" y1=\"8.29\" x2=\"10.18\" y2=\"8.29\" style=\"fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"m 10.51,14.8 5.2,5.2 H 20 a 1,1 0 0 0 1,-1 V 15.73 L 15.29,10 Z M 3,16.71 V 19 a 1,1 0 0 0 1,1 h 11.71 l -8,-8 z M 21,5 v 14 a 1,1 0 0 1 -1,1 H 4 A 1,1 0 0 1 3,19 V 5 A 1,1 0 0 1 4,4 h 16 a 1,1 0 0 1 1,1 z\" style=\"fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"M 21.193388,21.193388 2.8066108,2.8066108 m 18.3867772,0 L 2.8066108,21.193388\" style=\"stroke:%23ff0000;stroke-width:2.62668;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1\" /></svg>`;\n\nexport type NgxImageCacheConfig = {\n /**\n * Image to use as a placeholder while loading the main image\n * Recommended to use inlined SVG or a base64 encoded image\n */\n loadingPlaceholder?: string,\n /**\n * Image to use as a placeholder where images fail to load\n * Recommended to use inlined SVG or a base64 encoded image\n */\n brokenPlaceholder?: string\n}\n\nexport const NGX_IMAGE_CACHE_CONFIG = new InjectionToken<NgxImageCacheConfig>('ngx-image-cache-config');\n\n\nexport type NgxImageCacheConfiguration = {\n /**\n * Max age to cache an image in milliseconds.\n * If set to `0` or a negative number, images will never expire.\n */\n maxAge: number,\n /**\n * Set to `false` to disable memory caching for the image\n * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n * no caching will happen. (You'll still get the loader)\n */\n cacheInMemory: boolean,\n /**\n * Set to `false` to disable indexedDB caching for the image\n * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n * no caching will happen. (You'll still get the loader)\n */\n cacheInIndexedDB: boolean\n}\n\n@Directive({\n selector: 'img[ngx-cache]',\n standalone: true\n})\nexport class NgxImageCacheDirective {\n\n @Input(\"source\")\n @Input(\"ngx-cache\") url: string;\n\n @Input(\"ngx-cache-config\") configuration: NgxImageCacheConfiguration;\n\n private get el() { return this.element.nativeElement as HTMLImageElement }\n\n constructor(\n private readonly element: ElementRef,\n @Optional() @Inject(NGX_IMAGE_CACHE_CONFIG) private readonly cacheConfig: NgxImageCacheConfig\n ) { }\n\n ngOnChanges() {\n this.getCachedImage();\n }\n\n async getCachedImage() {\n if (\n this.el.src?.trim() == this.url?.trim() || // Check that there's an actual change\n this.url?.trim().length == 0 // Check that there's an actual URL\n ) return;\n\n // Check if it's in the memory cache\n if (imageCache[this.url]) {\n const image = imageCache[this.url];\n\n // If the image is currently loading, show the loader\n // and add it to the reflist\n if (image['_loading'] == true) {\n image['_refs'].push(this.el);\n\n this.el.setAttribute(\"loading\", \"true\");\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n }\n else {\n // The image is fully loaded, swap out the src with a data-uri\n this.el.setAttribute(\"loading\", \"false\");\n this.el.src = image.src;\n }\n\n // If it's already in the image cache, we're going to trust that it loads properly.\n return;\n }\n\n // Check if it's in indexedDB\n if (this.configuration?.cacheInIndexedDB != false) {\n const cached = await storage.getItem<any>(this.url);\n if (cached) {\n // Attempt to load the base64 data from indexeddb.\n // If this fails, we'll fall back to attempting to download the image\n this.el.src = cached.data;\n\n const evt: Event = await new Promise(res => {\n this.el.addEventListener('load', res);\n this.el.addEventListener('error', res);\n });\n\n // If the event isn't an error\n if (evt.type == \"load\") {\n this.el.setAttribute(\"loading\", \"false\");\n\n if (this.configuration?.cacheInMemory != false) {\n // Successfully loaded into element\n // Create an entry in the memory cache\n const image = imageCache[this.url] = new Image();\n image.src = cached.data;\n image['_createdAt'] = Date.now();\n }\n return;\n }\n else {\n // Else, we try to load again.\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n }\n }\n }\n\n const image = (() => {\n if (this.configuration?.cacheInMemory != false) {\n return imageCache[this.url] = new Image();\n }\n return new Image();\n })();\n\n // const clone = image.cloneNode(true) as HTMLImageElement;\n image['_refs'] = image['_refs'] ?? [];\n image['_refs'].push(this.el);\n image['_loading'] = true;\n image['_createdAt'] = Date.now();\n\n // Show a loader while the image downloads.\n this.el.setAttribute(\"loading\", \"true\");\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n\n // Fetch the image via JS and cache it as base64\n window.fetch(this.url)\n .then(response => response.blob())\n .then(blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n image.src = reader.result as string;\n\n storage.setItem(this.url, {\n timestamp: Date.now(),\n data: reader.result\n });\n\n image['_refs'].forEach((ref: HTMLImageElement) => {\n ref.src = image.src;\n });\n\n image['_loading'] = false;\n resolve(0);\n };\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n }))\n .catch(err => {\n // If a failure occurs, purge this entry from the cache\n // TODO: Render better \"broken\" image\n delete imageCache[this.url];\n image['_refs'].forEach((ref: HTMLImageElement) => {\n ref.src = this.cacheConfig?.brokenPlaceholder || brokenSvg;\n ref.setAttribute(\"loading\", \"failed\");\n });\n });\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'htmlbypass',\n standalone: true\n})\nexport class HtmlBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustHtml(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'resourcebypass',\n standalone: true\n})\nexport class ResourceBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'scriptbypass',\n standalone: true\n})\nexport class ScriptBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustScript(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'stylebypass',\n standalone: true\n})\nexport class StyleBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustStyle(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'urlbypass',\n standalone: true\n})\nexport class UrlBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n}\n","export const sleep = ms => new Promise(r => setTimeout(r, ms));\n\n/**\n * Prompt the user to save a json file of the given object.\n */\nexport const saveObjectAsFile = (name: string, data: Object) => {\n const a = document.createElement(\"a\");\n const file = new Blob([JSON.stringify(data)], { type: \"application/json\" });\n a.href = URL.createObjectURL(file);\n a.download = name;\n a.click();\n a.remove();\n};\n\n/**\n * Construct an emoticon with any unicode icon you specify\n */\nexport class Emoticon {\n constructor (public icon: string){}\n}\n\n/**\n * authorization 🔐 \\\n * navigation 🧭 \\\n * user 🪪 \\\n * security 🛡 \\\n * system 🖥 \\\n * toolbox 🧰 \\\n * chore ⚙ \\\n * config 🛠 \\\n * renderer 📐 \\\n * package 📦 \\\n * time ⏳ \\\n * download 📥 \\\n * upload 📤 \\\n * bug 🦠 \\\n * bomb 💣 \\\n * tnt 🧨 \\\n * warning ⚠️ \\\n * chart 📊 \\\n * chart_up 📈 \\\n * chart_down 📉 \\\n * circle_red 🔴 \\\n * circle_orange 🟠 \\\n * circle_yellow 🟡 \\\n * circle_green 🟢 \\\n * circle_blue 🔵 \\\n * circle_violet 🟣 \\\n * circle_black ⚫️ \\\n * circle_white ⚪️ \\\n * circle_brown 🟤 \\\n * square_red 🟥 \\\n * square_orange 🟧 \\\n * square_yellow 🟨 \\\n * square_green 🟩 \\\n * square_blue 🟦 \\\n * square_violet 🟪 \\\n * square_black ⬛️ \\\n * square_white ⬜️ \\\n * square_brown 🟫\n */\nexport const LogIcon = {\n authorization: new Emoticon(\"🔐\"),\n navigation: new Emoticon(\"🧭\"),\n user: new Emoticon(\"🪪\"),\n security: new Emoticon(\"🛡\"),\n system: new Emoticon(\"🖥\"),\n toolbox: new Emoticon(\"🧰\"),\n chore: new Emoticon(\"⚙\"),\n config: new Emoticon(\"🛠\"),\n renderer: new Emoticon(\"📐\"),\n package: new Emoticon(\"📦\"),\n time: new Emoticon(\"⏳\"),\n download: new Emoticon(\"📥\"),\n upload: new Emoticon(\"📤\"),\n bug: new Emoticon(\"🦠\"),\n bomb: new Emoticon(\"💣\"),\n tnt: new Emoticon(\"🧨\"),\n stop: new Emoticon(\"🛑\"),\n police: new Emoticon(\"🚨\"),\n rocket: new Emoticon(\"🚀\"),\n warning: new Emoticon(\"⚠️\"),\n chart: new Emoticon(\"📊\"),\n chart_up: new Emoticon(\"📈\"),\n chart_down: new Emoticon(\"📉\"),\n\n circle_red: new Emoticon(\"🔴\"),\n circle_orange: new Emoticon(\"🟠\"),\n circle_yellow: new Emoticon(\"🟡\"),\n circle_green: new Emoticon(\"🟢\"),\n circle_blue: new Emoticon(\"🔵\"),\n circle_violet: new Emoticon(\"🟣\"),\n circle_black: new Emoticon(\"⚫️\"),\n circle_white: new Emoticon(\"⚪️\"),\n circle_brown: new Emoticon(\"🟤\"),\n square_red: new Emoticon(\"🟥\"),\n square_orange: new Emoticon(\"🟧\"),\n square_yellow: new Emoticon(\"🟨\"),\n square_green: new Emoticon(\"🟩\"),\n square_blue: new Emoticon(\"🟦\"),\n square_violet: new Emoticon(\"🟪\"),\n square_black: new Emoticon(\"⬛️\"),\n square_white: new Emoticon(\"⬜️\"),\n square_brown: new Emoticon(\"🟫\")\n}\n\nclass Log {\n constructor(\n private context: string,\n private contextColor: string,\n private textColor: string\n ) {\n // Force the bindings to stay intact with overloads.\n this.log = this.log.bind(this);\n this.warn = this.warn.bind(this);\n this.err = this.err.bind(this);\n this.error = this.error.bind(this);\n }\n\n log(icon: Emoticon, message: string, ...args)\n log(message: string, ...args)\n log(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n if (iconOrMessage instanceof Emoticon) {\n console.log(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n else {\n console.log(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n }\n\n warn(icon: Emoticon, message: string, ...args)\n warn(message: string, ...args)\n warn(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n if (iconOrMessage instanceof Emoticon) {\n console.warn(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n else {\n console.warn(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n }\n\n err(icon: Emoticon, message: string, ...args)\n err(message: string, ...args)\n err(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n if (iconOrMessage instanceof Emoticon) {\n console.error(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n else {\n console.error(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n }\n }\n\n error(icon: Emoticon, message: string, ...args)\n error(message: string, ...args)\n error(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n // @ts-ignore\n this.err(iconOrMessage, messageText, ...args);\n }\n}\n\n/**\n * Formatted logger that will print a bit of context before the message.\n * @returns\n */\nexport const ConsoleLogger = (context: string, contextColor: string, textColor: string = \"#03a9f4\") =>\n new Log(context, contextColor, textColor);\n\n/**\n * Convert a string `fooBAR baz_160054''\"1]\"` into a slug: `foobar-baz-1600541`\n */\nexport const stringToSlug = (text: string) =>\n (text || '')\n .trim()\n .toLowerCase()\n .replace(/[\\-_+ ]/g, '-')\n .replace(/[^a-z0-9\\-]/g, '');\n\n\n/**\n* Helper to update the page URL.\n* @param page component page ID to load.\n* @param data string or JSON data for query params.\n*/\nexport const updateUrl = (page?: string, data: string | string[][] | Record<string, string | number> | URLSearchParams = {}, replaceState = false) => {\n const [oldHash, qstring] = location.hash.split('?');\n\n if (!page)\n page = oldHash.split('/')[1];\n\n const hash = `#/${page}`;\n\n // Convert the data object to JSON.\n if (data instanceof URLSearchParams) {\n data = [...(data as any).entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n }\n\n const query = new URLSearchParams(data as any) as any;\n const prevParams = new URLSearchParams(qstring) as any;\n\n // If the hash is the same, retain params.\n if (hash == oldHash) {\n replaceState = true;\n for (const [key, value] of prevParams.entries())\n if (!query.has(key))\n query.set(key, prevParams.get(key));\n }\n\n for (const [key, val] of query.entries()) {\n if (\n val == null ||\n val == undefined ||\n val == '' ||\n val == 'null' ||\n Number.isNaN(val) ||\n val == 'NaN'\n )\n query.delete(key);\n }\n\n if (!(hash.toLowerCase() == \"#/frame\") || data['id'] == -1)\n query.delete('id');\n\n\n const strQuery = query.toString();\n console.log(data, hash, strQuery);\n if (replaceState) {\n window.history.replaceState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n }\n else {\n window.history.pushState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n }\n};\n\nexport const getUrlData = (source = window.location.hash) => {\n const [hash, query] = source.split('?');\n let data = new URLSearchParams(query) as any;\n return [...data.entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, Inject } from '@angular/core';\nimport { sleep } from '../utils';\n\nconst SCRIPT_INIT_TIMEOUT = 500; // ms\n\n/**\n * Service that installs CSS/JS dynamically\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DependencyService {\n\n constructor(\n @Inject(DOCUMENT) private document: Document\n ) { }\n\n /**\n * Install a Javascript file into the webpage on-demand\n * @param id Unique identifier for the JS script\n * @param src URL of the script\n * @param globalkey A global object the script will provide.\n * Providing this will ensure a promise only resolves after the\n * specified global object is provided, with a timeout of 500ms\n */\n loadScript(id: string, src: string, globalkey: string = null): Promise<void> {\n return new Promise((res, rej) => {\n if (this.document.getElementById(id)) return res();\n\n const script = this.document.createElement('script');\n script.id = id;\n\n script.setAttribute(\"async\", '');\n script.setAttribute(\"src\", src);\n\n script.onload = async () => {\n if (typeof globalkey == \"string\") {\n let i = 0;\n\n for (; !window[globalkey] && i < SCRIPT_INIT_TIMEOUT; i += 10)\n await sleep(10);\n\n if (i >= SCRIPT_INIT_TIMEOUT) {\n return rej(new Error(\"Timed out waiting for script to self-initialize.\"));\n }\n }\n\n res();\n }\n\n this.document.body.appendChild(script);\n })\n }\n\n // loadStylesheet(id: string, href: string) {\n // let themeLink = this.document.getElementById(id) as HTMLLinkElement;\n // if (themeLink) {\n // themeLink.href = href;\n // }\n // else {\n // const style = this.document.createElement('link');\n // style.id = id;\n // style.rel = 'stylesheet';\n // style.href = href;\n\n // const head = this.document.getElementsByTagName('head')[0];\n\n // head.appendChild(style);\n // }\n // }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\n\nexport enum ComponentResolveStrategy {\n /**\n * Match the fist component we find\n * (best used for standalone components)\n * @default\n */\n PickFirst,\n /**\n * Perform an Exact ID to Classname of the Component\n * case sensitive, zero tolerance.\n */\n MatchIdToClassName,\n /**\n * Perform a fuzzy ID to classname match\n * case insensitive, mutes symbols\n * ignores \"Component\" and \"Module\" postfixes on class\n * names\n */\n FuzzyIdClassName,\n\n /**\n * Use a user-provided component match function\n */\n Custom\n}\n\nexport type NgxLazyLoaderConfig = Partial<{\n entries: ComponentRegistration[],\n\n notFoundTemplate: TemplateRef<any>,\n notFoundComponent: ComponentType<any>,\n\n errorTemplate: TemplateRef<any>,\n errorComponent: ComponentType<any>,\n\n loaderDistractorTemplate: TemplateRef<any>,\n loaderDistractorComponent: ComponentType<any>,\n\n logger: {\n log: (...args: any) => void,\n warn: (...args: any) => void,\n err: (...args: any) => void;\n },\n /**\n * What strategy should be used to resolve components\n * @default ComponentResolveStrategy.FuzzyIdClassName\n */\n componentResolveStrategy: ComponentResolveStrategy,\n customResolver: (registry: (CompiledComponent | CompiledModule)[]) => Object\n}>;\n\ntype RegistrationConfig = {\n /**\n * Specify a group to categorize components. If not specified,\n * will default to the `default` group.\n */\n group?: string,\n /**\n * load: () => import('./pages/my-page/my-page.component')\n */\n load: () => any,\n\n /**\n * Called before a component is loaded.\n * If it returns `false` the component will not be loaded.\n */\n // canActivate: () => boolean\n\n [key: string]: any\n}\n\nexport type ComponentRegistration = (\n ({ id: string } & RegistrationConfig) |\n ({ matcher: string[] | RegExp | ((value: string) => boolean); } & RegistrationConfig)\n);\n\nexport type DynamicRegistrationArgs<T = any> = {\n id: string,\n group?: string,\n matcher?: string[] | RegExp | ((val: string) => boolean),\n component?: T,\n load?: () => any;\n}\n\n/**\n * This is roughly a compiled component\n */\nexport type CompiledComponent = {\n (): CompiledComponent,\n ɵfac: Function,\n ɵcmp: {\n consts;\n contentQueries;\n data;\n declaredInputs;\n decls;\n dependencies;\n directiveDefs;\n encapsulation;\n exportAs;\n factory;\n features;\n findHostDirectiveDefs;\n getStandaloneInjector;\n hostAttrs;\n hostBindings;\n hostDirectives;\n hostVars;\n id: string;\n inputs;\n ngContentSelectors;\n onPush: boolean;\n outputs;\n pipeDefs;\n providersResolver;\n schemas;\n selectors: string[];\n setInput;\n standalone: boolean;\n styles: string[];\n tView;\n template;\n type: Function;\n vars: number;\n viewQuery;\n };\n};\n\n/**\n * This is roughly a compiled module\n */\nexport type CompiledModule = {\n (): CompiledModule,\n ɵfac: Function,\n ɵinj: {\n providers: any[],\n imports: any[];\n },\n ɵmod: {\n bootstrap: any[],\n declarations: Function[],\n exports: any[],\n id: unknown,\n imports: any[],\n schemas: unknown,\n transitiveCompileScopes: unknown,\n type: Function;\n };\n};\n\nexport type CompiledBundle = { [key: string]: CompiledComponent | CompiledModule; };\n\n\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { CompiledComponent, CompiledModule, ComponentRegistration, ComponentResolveStrategy, DynamicRegistrationArgs, NgxLazyLoaderConfig } from './types';\nimport { stringToSlug, ConsoleLogger } from '../../utils';\n\n// Monkey-patch the type of these symbols.\nconst $id = Symbol(\"id\") as any as string;\nconst $group = Symbol(\"group\") as any as string;\n\nexport const NGX_LAZY_LOADER_CONFIG = new InjectionToken<NgxLazyLoaderConfig>('lazyloader-config');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LazyLoaderService {\n private get err() { return LazyLoaderService.config.logger.err; }\n private get log() { return LazyLoaderService.config.logger.log; }\n private get warn() { return LazyLoaderService.config.logger.warn; }\n\n // A proxied registry that mutates reference keys\n private static registry: {\n [key: string]: ComponentRegistration[];\n } = {};\n\n public static config: NgxLazyLoaderConfig;\n\n constructor(@Optional() @Inject(NGX_LAZY_LOADER_CONFIG) config: NgxLazyLoaderConfig = {}) {\n // Ensure this is singleton and works regardless of special instancing requirements.\n LazyLoaderService.configure(config);\n }\n\n private static configure(config: NgxLazyLoaderConfig) {\n const { log, warn, err } = ConsoleLogger(\"ngx-lazy-loader\", \"#009688\");\n\n this.config = {\n componentResolveStrategy: ComponentResolveStrategy.PickFirst,\n logger: {\n log,\n warn,\n err\n },\n ...config\n };\n\n config.entries?.forEach(e => this.addComponentToRegistry(e))\n\n // If a custom resolution strategy is provided but no resolution function is passed,\n // we throw an error\n if (\n this.config.componentResolveStrategy == ComponentResolveStrategy.Custom &&\n !this.config.customResolver\n ) {\n throw new Error(\"Cannot initialize. Configuration specifies a custom resolve matcher but none was provided\");\n }\n\n if (this.config.loaderDistractorComponent && this.config.loaderDistractorTemplate)\n throw new Error(\"Cannot have both a Component and Template for Distractor view.\")\n if (this.config.errorComponent && this.config.errorTemplate)\n throw new Error(\"Cannot have both a Component and Template for Error view.\")\n if (this.config.notFoundComponent && this.config.notFoundTemplate)\n throw new Error(\"Cannot have both a Component and Template for NotFound view.\")\n\n }\n\n private static addComponentToRegistry(registration: ComponentRegistration) {\n if (!registration)\n throw new Error(\"Cannot add <undefined> component into registry.\");\n\n // Clone the object into our repository and transfer the id into a standardized slug format\n\n const id = stringToSlug(registration.id ?? Date.now().toString()); // purge non-basic ASCII chars\n const group = registration.group || \"default\";\n\n registration[$id] = id;\n registration[$group] = id;\n\n\n if (!this.registry[group])\n this.registry[group] = [];\n\n // Check if we already have a registration for the component\n // if (this.registry[group] && typeof this.registry[group]['load'] == \"function\") {\n // // Warn the developer that the state is problematic\n // this.config.logger.warn(\n // `A previous entry already exists for ${id}! The old registration will be overridden.` +\n // `Please ensure you use groups if you intend to have duplicate component ids. ` +\n // `If this was intentional, first remove the old component from the registry before adding a new instance`\n // );\n\n // // If we're in dev mode, break the loader surface\n // if (isDevMode())\n // return;\n // }\n\n this.registry[group].push(registration);\n }\n\n /**\n * Register an Angular component\n * @param id identifier that is used to resolve the component\n * @param group\n * @param component Angular Component Class constructor\n */\n public registerComponent<T extends { new(...args: any[]): InstanceType<T>; }>(args: DynamicRegistrationArgs<T>) {\n if (this.isComponentRegistered(args.id, args.group)) {\n this.log(`Will not re-register component '${args.id}' in group '${args.group || 'default'}' `);\n return;\n }\n\n LazyLoaderService.addComponentToRegistry({\n id: stringToSlug(args.id),\n matcher: args.matcher,\n group: stringToSlug(args.group || \"default\"),\n load: args.load || (() => args.component)\n });\n }\n\n /**\n *\n * @param id\n * @param group\n */\n public unregisterComponent(id: string, group = \"default\") {\n const _id = stringToSlug(id);\n const _group = stringToSlug(group);\n\n if (!this.resolveRegistrationEntry(id, group))\n throw new Error(\"Cannot unregister component ${}! Component is not present in registry\")\n\n // TODO: handle clearing running instances\n delete LazyLoaderService.registry[_group][_id];\n }\n\n\n /**\n * Get the registration entry for a component.\n * Returns null if component is not in the registry.\n */\n public resolveRegistrationEntry(value: string, group = \"default\") {\n const _id = stringToSlug(value);\n const _group = stringToSlug(group);\n\n const targetGroup = (LazyLoaderService.registry[_group] || []);\n\n let items = targetGroup.filter(t => {\n if (!t) return false;\n\n // No matcher, check id\n if (!t.matcher)\n return t[$id] == _id;\n\n // Matcher is regex\n if (t.matcher instanceof RegExp)\n return t.matcher.test(_id) || t.matcher.test(value);\n\n // Matcher is string => regex\n if (typeof t.matcher == 'string') {\n const rx = new RegExp(t.matcher, 'ui');\n return rx.test(_id) || rx.test(value);\n }\n\n // Matcher is array\n if (Array.isArray(t.matcher)) {\n return !!t.matcher.find(e => stringToSlug(e) == _id);\n }\n\n // Custom matcher function\n if (typeof t.matcher == \"function\")\n return t.matcher(_id);\n\n return false;\n });\n\n if (items.length > 1) {\n this.warn(\"Resolved multiple components for the provided `[component]` binding. This may cause UI conflicts.\");\n }\n if (items.length == 0) {\n return null;\n }\n\n const out = items[0];\n\n if (out.matcher instanceof RegExp) {\n const result = _id.match(out.matcher) || value.match(out.matcher);\n\n return {\n entry: out,\n matchGroups: result?.groups\n };\n }\n\n return { entry: out };\n }\n\n /**\n * Check if a component is currently registered\n * Can be used to validate regex matchers and aliases.\n */\n public isComponentRegistered(value: string, group = \"default\") {\n return !!this.resolveRegistrationEntry(value, group);\n }\n\n /**\n *\n * @param bundle\n * @returns The component `Object` if a component was resolved, `null` if no component was found\n * `false` if the specified strategy was an invalid selection\n */\n public resolveComponent(id: string, group: string, modules: (CompiledComponent | CompiledModule)[]): Object | null | false {\n\n switch (LazyLoaderService.config.componentResolveStrategy) {\n case ComponentResolveStrategy.PickFirst: {\n\n return modules[0];\n }\n\n // Exact id -> classname match\n case ComponentResolveStrategy.MatchIdToClassName: {\n const matches =\n modules\n .filter(k => k.name == id);\n\n if (matches.length == 0)\n return null;\n\n return matches[0];\n }\n // Fuzzy id -> classname match\n case ComponentResolveStrategy.FuzzyIdClassName: {\n const _id = id.replace(/[^a-z0-9_\\-]/ig, '');\n\n if (_id.length == 0) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching stripped all symbols from the ID specified!\");\n return false;\n }\n\n const rx = new RegExp(`^${id}(component|module)?$`, \"i\");\n\n const matches = modules\n .filter(mod => {\n let kid = mod.name.replace(/[^a-z0-9_\\-]/ig, '');\n\n return rx.test(kid);\n });\n\n if (matches.length > 1) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved multiple targets!\");\n return false;\n }\n\n if (matches.length == 0) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved no targets!\");\n return null;\n }\n\n return matches[0];\n }\n case ComponentResolveStrategy.Custom: {\n return LazyLoaderService.config.customResolver(modules as any);\n }\n default: {\n return false;\n }\n }\n }\n}\n","import { Input, ViewContainerRef, isDevMode, ComponentRef, EventEmitter, Optional, ViewChild, Component, Inject, Output, NgModule, AfterViewInit, OnInit } from '@angular/core';\nimport { NgComponentOutlet, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { MAT_DIALOG_DATA, } from '@angular/material/dialog';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BehaviorSubject, debounceTime, Subscription } from 'rxjs';\nimport { LazyLoaderService } from './lazy-loader.service';\nimport { stringToSlug } from '../../utils';\nimport { CompiledBundle, NgxLazyLoaderConfig } from './types';\n\n\n@Component({\n selector: 'ngx-lazy-loader',\n templateUrl: './lazy-loader.component.html',\n styleUrls: [ './lazy-loader.component.scss' ],\n imports: [ NgIf, NgComponentOutlet, NgTemplateOutlet ],\n standalone: true\n})\nexport class LazyLoaderComponent implements AfterViewInit {\n @ViewChild(\"content\", { read: ViewContainerRef }) targetContainer: ViewContainerRef;\n\n /**\n * ! Here be dragons.\n * Only the bravest of Adventurers can survive the battles below,\n * and they must be trained and ready for the gruelling journey ahead.\n * Many a soul has tried to best these Dragons, yet only one has\n * succeeded since our founding.\n *\n * TL;DR -- Don't mess with this unless you know what you're doing.\n * This is central to a ton of moving parts -- breaking it will\n * cause more collateral damage than you may realize.\n */\n\n private _id: string;\n /**\n * The id of the component that will be lazy loaded\n */\n @Input(\"component\") set id(data: string) {\n const id = stringToSlug(data);\n\n // Check if there is a change to the loaded component's id\n // if it's updated, we destroy and rehydrate the entire container\n if (this.initialized && this._id != id) {\n this._id = id;\n this.ngAfterViewInit();\n }\n else {\n this._id = id;\n }\n };\n\n\n private _group = \"default\";\n @Input(\"group\") set group(data: string) {\n const group = stringToSlug(data);\n\n if (typeof group != \"string\" || !group) return;\n\n // If the group was updated, retry to bootstrap something into the container.\n if (this.initialized && this._group != group) {\n this._group = group;\n\n this.ngAfterViewInit();\n return;\n }\n\n this._group = group;\n }\n get group() { return this._group }\n\n private _matchGroups: { [key: string]: string };\n private _inputs: { [key: string]: any; };\n /**\n * A map of inputs to bind to the child.\n * Supports change detection. (May fail on deep JSON changes)\n *\n * ```html\n * <lazy-loader component=\"MyLazyComponent\"\n * [inputs]=\"{\n * prop1: true,\n * prop2: false,\n * complex: {\n * a: true,\n * b: 0\n * }\n * }\"\n * >\n * </lazy-loader>\n * ```\n */\n @Input(\"inputs\") set inputs(data: { [key: string]: any; }) {\n if (data == undefined) return;\n\n let previous = this._inputs;\n this._inputs = data;\n if (data == undefined)\n console.trace(data);\n\n if (this.targetComponentFactory) {\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n const currentKeys = Object.keys(inputs);\n\n const oldKeys = Object.keys(previous).filter(key => currentKeys.includes(key));\n const newKeys = Object.keys(data).filter(key => currentKeys.includes(key));\n\n const removed = oldKeys.filter(key => !newKeys.includes(key));\n\n // ? perhaps set to null or undefined instead\n removed.forEach(k => this.targetComponentInstance[k] = null);\n\n this.bindInputs();\n }\n }\n\n\n private outputSubscriptions: { [key: string]: Subscription; } = {};\n private _outputs: { [key: string]: Function; };\n /**\n * A map of outputs to bind from the child.\n * Should support change detection.\n * ```html\n * <lazy-loader component=\"MyLazyComponent\"\n * [outputs]=\"{\n * prop3: onOutputFire\n * }\"\n * >\n * </lazy-loader>\n * ```\n */\n @Input(\"outputs\") set outputs(data: { [key: string]: Function; }) {\n let previous = this._outputs;\n this._outputs = data;\n\n if (this.targetComponentFactory) {\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n const currentKeys = Object.keys(inputs);\n const removed = Object.keys(previous).filter(key => !currentKeys.includes(key));\n\n removed.forEach(k => {\n // Unsubscribe from observable\n this.outputSubscriptions[k]?.unsubscribe();\n delete this.targetComponentInstance[k];\n });\n\n this.bindOutputs();\n }\n }\n\n /**\n * Emits errors encountered when loading components\n */\n @Output() componentLoadError = new EventEmitter();\n\n /**\n * Emits when the component is fully constructed\n * and had it's inputs and outputs bound\n * > before `OnInit`\n *\n * Returns the active class instance of the lazy-loaded component\n */\n @Output() componentLoaded = new EventEmitter();\n\n\n /**\n * This is an instance of the component that is currently loaded.\n */\n public instance: any;\n\n\n /**\n * Container that provides the component data\n */\n private targetModule: CompiledBundle;\n\n /**\n * Component definition\n */\n private targetComponentFactory: any;\n\n /**\n * Active component container reference\n */\n private targetComponentContainerRef: ComponentRef<any>;\n private targetRef: any;\n /**\n * Reference to the component class instance\n */\n private targetComponentInstance: any;\n\n /**\n * Subscription with true/false state on whether the distractor should be\n */\n private distractorSubscription: Subscription;\n\n public config: NgxLazyLoaderConfig;\n private err;\n private warn;\n private log;\n\n // Force 500ms delay before revealing the spinner\n private clearEmitter = new EventEmitter();\n private clearLoader$ = this.clearEmitter.pipe(debounceTime(300));\n\n private showEmitter = new EventEmitter();\n private showLoader$ = this.showEmitter.pipe(debounceTime(1));\n\n private subscriptions = [\n this.clearLoader$.subscribe(() => {\n this.isClearingLoader = true;\n\n setTimeout(() => {\n this.renderSpinner = false;\n }, 300)\n }),\n this.showLoader$.subscribe(() => {\n this.isClearingLoader = false;\n this.renderSpinner = true;\n })\n ];\n\n public renderSpinner = true; // whether we render the DOM for the spinner\n public isClearingLoader = false; // should the spinner start fading out\n\n constructor(\n private service: LazyLoaderService,\n @Optional() private viewContainerRef: ViewContainerRef,\n @Optional() public dialog: DialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public dialogArguments\n ) {\n this.config = LazyLoaderService.config;\n this.err = LazyLoaderService.config.logger.err;\n this.warn = LazyLoaderService.config.logger.warn;\n this.log = LazyLoaderService.config.logger.log;\n\n // First, check for dialog arguments\n if (this.dialogArguments) {\n this.inputs = this.dialogArguments.inputs || this.dialogArguments.data;\n this.outputs = this.dialogArguments.outputs;\n this.id = this.dialogArguments.id;\n this.group = this.dialogArguments.group;\n }\n }\n\n private initialized = false;\n async ngAfterViewInit() {\n this.ngOnDestroy(false);\n this.isClearingLoader = false;\n this.renderSpinner = true;\n this.initialized = true;\n\n if (!this._id) {\n this.warn(\"No component was specified!\");\n return this.loadDefault();\n }\n\n try {\n const _entry = this.service.resolveRegistrationEntry(this._id, this._group);\n if (!_entry || !_entry.entry) {\n this.err(`Failed to find Component '${this._id}' in group '${this._group}' in registry!`);\n return this.loadDefault();\n }\n\n const { entry, matchGroups } = _entry;\n this._matchGroups = matchGroups;\n\n // Download the \"module\" (the standalone component)\n const bundle: CompiledBundle = this.targetModule = await entry.load();\n\n\n // Check if there is some corruption on the bundle.\n if (!bundle || typeof bundle != 'object') {\n this.err(`Failed to load component/module for '${this._id}'! Parsed resource is invalid.`);\n return this.loadError();\n }\n\n const modules = Object.keys(bundle)\n .map(k => {\n const entry = bundle[k];\n\n // Strictly check for exported modules or standalone components\n if (typeof entry == \"function\" && typeof entry[\"ɵfac\"] == \"function\")\n return entry;\n return null;\n })\n .filter(e => e != null)\n .filter(entry => {\n entry['_isModule'] = !!entry['ɵmod']; // module\n entry['_isComponent'] = !!entry['ɵcmp']; // component\n\n return (entry['_isModule'] || entry['_isComponent']);\n });\n\n if (modules.length == 0) {\n this.err(`Component/Module loaded for '${this._id}' has no exported components or modules!`);\n return this.loadError();\n }\n\n const component = this.targetComponentFactory = this.service.resolveComponent(this._id, \"default\", modules);\n\n if (!component) {\n this.err(`Component '${this._id}' is invalid or corrupted!`);\n return this.loadError();\n }\n\n\n // Bootstrap the component into the container\n const componentRef = this.targetComponentContainerRef = this.targetContainer.createComponent(component as any);\n this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);\n\n const instance: any = this.targetComponentInstance = componentRef['instance'];\n\n this.bindInputs();\n this.bindOutputs();\n\n this.componentLoaded.next(instance);\n this.instance = instance;\n\n // Look for an observable called isLoading$ that will make us show/hide\n // the same distractor that is used on basic loading\n const isLoading$ = instance['ngxShowDistractor$'] as BehaviorSubject<boolean>;\n\n if (isLoading$ && typeof isLoading$.subscribe == \"function\") {\n this.distractorSubscription = isLoading$.subscribe(loading => {\n loading ? this.showEmitter.emit() : this.clearEmitter.emit();\n });\n }\n else {\n this.clearEmitter.emit();\n }\n\n const name = Object.keys(bundle)[0];\n this.log(`Loaded '${name}'`);\n this.clearEmitter.emit();\n\n return componentRef;\n }\n catch (ex) {\n\n if (isDevMode()) {\n console.warn(\"Component DDD \" + this._id + \" threw an error on mount!\");\n console.warn(\"This will cause you to see a 404 panel.\");\n console.error(ex);\n }\n\n // Network errors throw a toast and return an error component\n if (ex && !isDevMode()) {\n console.error(\"Uncaught error when loading component\");\n throw ex;\n }\n\n return this.loadDefault();\n }\n }\n\n ngOnDestroy(clearAll = true) {\n // unsubscribe from all subscriptions\n Object.entries(this.outputSubscriptions).forEach(([key, sub]) => {\n sub.unsubscribe();\n });\n this.outputSubscriptions = {};\n\n // Clear all things\n if (clearAll) {\n Object.entries(this.subscriptions).forEach(([key, sub]) => {\n sub.unsubscribe();\n });\n }\n\n this.distractorSubscription?.unsubscribe();\n\n // Clear target container\n this.targetRef?.destroy();\n this.targetComponentContainerRef?.destroy();\n this.targetContainer?.clear();\n\n // Wipe the rest of the state clean\n this.targetRef = null;\n this.targetComponentContainerRef = null;\n }\n\n /**\n * Bind the input values to the child component.\n */\n private bindInputs() {\n if (!this._inputs || !this.targetComponentInstance) return;\n\n // Merge match groups\n if (typeof this._matchGroups == \"object\") {\n Object.entries(this._matchGroups).forEach(([key, val]) => {\n if (typeof this._inputs[key] == 'undefined')\n this._inputs[key] = val;\n });\n }\n\n // forward-bind inputs\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n // Returns a list of entries that need to be set\n // This makes it so that unnecessary setters are not invoked.\n const updated = Object.entries(inputs).filter(([parentKey, childKey]: [string, string]) => {\n return this.targetComponentInstance[childKey] != this._inputs[parentKey];\n });\n\n updated.forEach(([parentKey, childKey]: [string, string]) => {\n if (this._inputs.hasOwnProperty(parentKey))\n this.targetComponentInstance[childKey] = this._inputs[parentKey];\n });\n }\n\n /**\n * Bind the output handlers to the loaded child component\n */\n private bindOutputs() {\n if (!this._outputs || !this.targetComponentInstance) return;\n\n const { outputs } = this.targetComponentFactory.ɵcmp;\n\n // Get a list of unregistered outputs\n const newOutputs = Object.entries(outputs).filter(([parentKey, childKey]: [string, string]) => {\n return !this.outputSubscriptions[parentKey];\n });\n\n // Reverse bind via subscription\n newOutputs.forEach(([parentKey, childKey]: [string, string]) => {\n if (this._outputs.hasOwnProperty(parentKey)) {\n const target: EventEmitter<unknown> = this.targetComponentInstance[childKey];\n const outputs = this._outputs;\n\n // Angular folks, stop making this so difficult.\n const ctx = this.viewContainerRef['_hostLView'][8];\n const sub = target.subscribe(outputs[parentKey].bind(ctx)); // Subscription\n\n this.outputSubscriptions[parentKey] = sub;\n }\n });\n }\n\n /**\n * Load the \"Default\" component (404) screen normally.\n * This is shown when the component id isn't in the\n * registry or otherwise doesn't match\n *\n * This\n */\n private loadDefault() {\n if (this.config.notFoundComponent)\n this.targetContainer.createComponent(this.config.notFoundComponent);\n\n this.clearEmitter.emit();\n }\n\n /**\n * Load the \"Error\" component.\n * This is shown when we are able to resolve the component\n * in the registry, but have some issue boostrapping the\n * component into the viewContainer\n */\n private loadError() {\n if (this.config.errorComponent)\n this.targetContainer.createComponent(this.config.errorComponent);\n\n this.clearEmitter.emit();\n }\n}\n","<ng-container #content></ng-container>\n\n<div\n *ngIf=\"renderSpinner\"\n class=\"ngx-lazy-loader-distractor\"\n [class.destroying]=\"isClearingLoader\"\n>\n <ng-container *ngIf=\"config.loaderDistractorComponent\" [ngComponentOutlet]=\"config.loaderDistractorComponent\"></ng-container>\n <ng-container *ngIf=\"config.loaderDistractorTemplate\" [ngTemplateOutlet]=\"config.loaderDistractorTemplate\" [ngTemplateOutletContext]=\"{ '$implicit': inputs }\"></ng-container>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { ConsoleLogger } from '../utils';\nimport { LazyLoaderComponent } from '../components/lazy-loader/lazy-loader.component';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\n\nconst { log, warn, err } = ConsoleLogger(\"DialogService\", \"#607d8b\");\n\nexport type DialogOptions = Partial<Omit<MatDialogConfig<any>, 'data'> & {\n /**\n * List of properties to be provided to @Input() injectors\n */\n inputs: { [key: string]: any },\n /**\n * List of properties to be provided to @Input() injectors\n */\n outputs: { [key: string]: Function },\n /**\n * Context in which to execute callbacks from the `outputs` property via\n * @Output() event Emitters\n */\n parent: any\n}>;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private dialogs: MatDialogRef<unknown, any>[] = [];\n\n constructor(\n private dialog: MatDialog,\n private lazyLoader: LazyLoaderService\n ) {\n }\n\n open(name: string)\n open(name: string, opts: DialogOptions)\n open(name: string, group: string)\n open(name: string, group: string, opts: DialogOptions)\n open(name: string, groupOrOptions?: any, opts: DialogOptions = {}): Promise<any> {\n const group = typeof groupOrOptions == \"string\" ? groupOrOptions : 'default';\n if (typeof groupOrOptions == 'object')\n opts = groupOrOptions;\n\n return new Promise((resolve, reject) => {\n\n const registration = this.lazyLoader.resolveRegistrationEntry(name, group);\n if (!registration)\n return reject(new Error(\"Cannot open dialog for \" + name + \". Could not find in registry.\"));\n\n\n const args = {\n closeOnNavigation: true,\n restoreFocus: true,\n width: registration['width'],\n height: registration['height'],\n ...opts,\n data: {\n id: name,\n inputs: opts.inputs || {},\n outputs: opts.outputs || {},\n group: group\n },\n panelClass: [\n \"dialog-\" + name,\n ...(Array.isArray(opts.panelClass) ? opts.panelClass : [opts.panelClass] || [])\n ]\n };\n\n let dialog = this.dialog.open(LazyLoaderComponent, args);\n\n dialog['idx'] = name;\n this.dialogs.push(dialog);\n\n dialog.afterClosed().subscribe(result => {\n log(\"Dialog closed \" + name, result);\n resolve(result);\n });\n });\n }\n\n // Close all dialogs matching the given name\n close(name: string) {\n const dialogs = this.dialogs.filter(d => d['idx'] == name);\n dialogs.forEach(dialog => dialog.close());\n }\n\n /**\n * Method to close _all_ dialogs.\n * Should be used sparingly.\n */\n clearDialog() {\n this.dialogs.forEach(dialog => dialog.close());\n }\n\n /**\n * Open a confirmation dialog. Will reject if a cancel occurs.\n * @param title title of the dialog\n * @param message main question that a user needs to confirm/deny\n * @returns\n */\n // confirmAction(title: string, message: string): Promise<void> {\n // return new Promise((res, rej) => {\n // const dialog = this.dialog.open(ConfirmationComponent, {\n // maxHeight: \"90vh\",\n // maxWidth: \"90vw\",\n // panelClass: [\"dialog-confirmation\"],\n // closeOnNavigation: true,\n // restoreFocus: true,\n // data: {title, message}\n // });\n\n // dialog.afterClosed().subscribe(result => {\n // result == true ? res() : rej();\n // });\n // });\n // }\n}\n","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, isDevMode } from '@angular/core';\nimport { retry } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n// Total number of _retries_ if there is a 429 response code.\nconst retryCount = 2;\n\nexport type FetchOptions = {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n body?: any,\n observe?: 'body' | 'events' | 'response';\n reportProgress?: boolean;\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\n withCredentials?: boolean;\n}\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class Fetch {\n constructor(\n private http: HttpClient\n ) { }\n\n // Public interface for making AJAX transactions\n public get<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n return this.request<T>(\"get\", url, options, returnError);\n }\n public put<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"put\", url, options, returnError);\n }\n public post<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"post\", url, options, returnError);\n }\n public patch<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"patch\", url, options, returnError);\n }\n public delete<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n return this.request<T>(\"delete\", url, options, returnError);\n }\n\n // Internally, handle the observable as a promise.\n private request<T>(method: string, url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.reportProgress = true;\n\n // Allow support for different response types.\n // Generally we shouldn't need this to be anything other than JSON.\n options.responseType = options.responseType || \"json\";\n options.withCredentials = true;\n\n const p = new Promise((resolve, reject) => {\n const o = this.http.request(method, url, options)\n .pipe(retry({\n delay(error, retryCount) {\n // 429 and 502 are most common for overloaded\n // backends -- so we'll retry if we get these errors\n if (error.status == 429 || error.status == 502)\n return of({});\n\n if (error.status == 504 && isDevMode())\n alert(\"It looks like you can't reach your development backend anymore\");\n\n throw error;\n },\n count: retryCount\n }))\n .subscribe(data => {\n resolve(data as unknown as T);\n\n // provide 3ms slacktime before releasing observable.\n setTimeout(() => {\n o.unsubscribe();\n }, 3);\n });\n });\n\n return p as Promise<T>;\n }\n}\n","import { Injectable, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type KeyCommand = {\n /**\n * The non-modifier key(s) that must be pressed for the event to fire.\n */\n key: string | string[],\n label?: string,\n\n ctrl?: boolean,\n alt?: boolean,\n shift?: boolean,\n super?: boolean,\n tab?: boolean,\n\n /**\n * Should the handler interrupt default event handling\n */\n interrupt?: boolean,\n}\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class KeyboardService {\n\n private heldKeys: { [key: string]: boolean } = {};\n public keyCommands: {\n ctrl?: boolean,\n alt?: boolean,\n shift?: boolean,\n super?: boolean,\n interrupt?: boolean,\n label?: string,\n keys: string[],\n sub: Subject<KeyboardEvent>\n }[] = [];\n\n constructor() {\n window.addEventListener(\"keydown\", (evt) => this.onKeyDown(evt));\n window.addEventListener(\"keyup\", (evt) => this.onKeyUp(evt));\n }\n\n private onKeyDown(evt: KeyboardEvent) {\n // console.log(\"keydown\", evt.key)\n this.heldKeys[evt.key.toLowerCase()] = true;\n\n // Do a general filter where all of the modifiers must be matched if specified\n // Then check that the actual keys match what was specified\n let commands = this.keyCommands\n .filter(kc =>\n (kc.ctrl == undefined || kc.ctrl === evt.ctrlKey) &&\n (kc.alt == undefined || kc.alt === evt.altKey) &&\n (kc.shift == undefined || kc.shift === evt.shiftKey) &&\n (kc.super == undefined || kc.super === evt.metaKey) &&\n kc.keys.length == kc.keys.filter(k => this.heldKeys[k])?.length\n );\n\n if (evt.ctrlKey && commands.length > 0 || commands.find(c => c.interrupt)) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n\n if (evt.key == \"Pause\")\n debugger;\n\n commands.forEach(kc => kc.sub.next(evt));\n\n /**\n * Prevent CTRL+P and other standard key events from being handled by the browser.\n * Allow specific combonations:\n * CTRL+W\n * CTRL+T\n * CTRL+F5\n */\n // if (evt.ctrlKey && !['w', 't', 'F5'].includes(evt.key)) {\n // evt.preventDefault();\n // }\n }\n\n private onKeyUp(evt: KeyboardEvent) {\n this.heldKeys[evt.key.toLowerCase()] = false;\n }\n\n private onKeyPress(evt: KeyboardEvent) {\n // this.heldKeys[evt.key] = false;\n }\n\n /**\n * Use this to subscribe to keyboard events throughout\n * the application. This is a passive listener and will\n * **NOT** interrupt the event chain.\n */\n public onKeyCommand(key: KeyCommand) {\n const sub = new Subject<KeyboardEvent>();\n let item = {\n ...key,\n keys: (Array.isArray(key.key) ? key.key : [key.key]),\n sub: sub\n }\n\n this.keyCommands.push(item);\n\n return {\n ...sub,\n subscribe: ((...args) => {\n const s = sub.subscribe(...args);\n return {\n ...s,\n unsubscribe: () => {\n s.unsubscribe();\n\n // Remove the keycommand from the list of listeners.\n const i = this.keyCommands.findIndex(c => c == item);\n this.keyCommands.splice(i, 1);\n }\n };\n }) as Subject<KeyboardEvent>['subscribe']\n };\n }\n\n /**\n * Return `true` if shift is currently pressed.\n */\n get isShiftPressed() {\n return !!this.heldKeys[\"shift\"];\n }\n /**\n * Return `true` if ctrl is currently pressed.\n */\n get isCtrlPressed() {\n return !!this.heldKeys[\"control\"];\n }\n /**\n * Return `true` if alt is currently pressed.\n */\n get isAltPressed() {\n return !!this.heldKeys[\"alt\"];\n }\n /**\n * Return `true` if super (mac/linux) or the windows key is currently pressed.\n */\n get isSuperPressed() {\n return !!this.heldKeys[\"super\"];\n }\n /**\n * Return `true` if tab is currently pressed.\n */\n get isTabPressed() {\n return !!this.heldKeys[\"tab\"];\n }\n\n @HostListener(\"window:blur\")\n @HostListener(\"window:resize\")\n clearKeys() {\n Object.keys(this.heldKeys).forEach(k => {\n this.heldKeys[k] = false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Fetch } from './fetch.service';\n\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FileService {\n\n constructor(private fetch: Fetch) { }\n\n chooseFile = (accept?: string, multiple = false, formMetadata = {}, ) => {\n return new Promise(r => {\n const inEl = document.createElement('input');\n inEl.setAttribute('type', 'file');\n if (multiple)\n inEl.setAttribute('multiple', '');\n if (accept)\n inEl.setAttribute('accept', accept);\n\n inEl.click();\n\n let formData = new FormData();\n\n inEl.addEventListener('change', () => {\n Object.keys(inEl.files).forEach(k => {\n const file: {\n lastModified: number,\n lastModifiedDate: Date,\n name: string,\n size: number,\n type: string;\n } = inEl.files[k];\n\n const name = file.name;\n formData.append(name, file as any);\n });\n formData.append(\"data\", JSON.stringify(formMetadata));\n inEl.remove();\n r(formData);\n });\n });\n };\n\n // uploadFile = (config: NgxFileManagerConfiguration, currentDirectory: string, targetPath?: string) => {\n // return new Promise(r => {\n // const inEl = document.createElement('input');\n // inEl.setAttribute('type', 'file');\n // inEl.setAttribute('multiple', '');\n // inEl.click();\n\n // let formData = new FormData();\n\n // inEl.addEventListener('change', () => {\n // Object.keys(inEl.files).forEach(k => {\n // const file: {\n // lastModified: number,\n // lastModifiedDate: Date,\n // name: string,\n // size: number,\n // type: string;\n // } = inEl.files[k];\n\n // const name = file.name;\n // formData.append(name, file as any);\n // });\n // formData.append(\"data\", JSON.stringify({\n // path: currentDirectory\n // }));\n\n // const url = config.apiSettings.uploadEntryUrlTemplate\n // ? config.apiSettings.uploadEntryUrlTemplate(targetPath ?? currentDirectory)\n // : config.apiSettings.uploadEntryUrl;\n\n // r(this.fetch.post(url, formData).then(res => {\n // inEl.remove();\n // return res;\n // }));\n // });\n // });\n // };\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ntype AppTheme = \"light\" | \"dark\";\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService extends BehaviorSubject<AppTheme>{\n constructor() {\n super(document.body.classList.contains(\"light\") ? \"light\" : \"dark\");\n\n this.subscribe(t => {\n if (!t || t as any == 'undefined') return;\n\n if (document.body.classList.contains(\"dark\") && t == \"light\")\n document.body.classList.remove(\"dark\");\n if (document.body.classList.contains(\"light\") && t == \"dark\")\n document.body.classList.remove(\"light\");\n\n document.body.classList.add(t);\n });\n }\n\n public setTheme(t: AppTheme) {\n this.next(t);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { ConsoleLogger } from '../utils';\nimport { LazyLoaderService } from '../public-api';\n\nconst { log, warn, err } = ConsoleLogger(\"NavigationService\", \"#ff9800\");\n\ntype NavigationArguments = {\n root: string,\n chunks: [string, ...string[]],\n args: {\n [key: string]: any;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n public virtualPath$ = new BehaviorSubject<NavigationArguments>(null);\n\n constructor(\n private readonly lazyLoader: LazyLoaderService\n ) {\n window.onhashchange = () => this.loadRootPageFromUrl();\n this.loadRootPageFromUrl();\n }\n\n private loadRootPageFromUrl() {\n const hash = location.hash.split(\"?\")[0];\n\n // If the URL is imprecisely set, we restore it to the landing page\n if (!this.lazyLoader.isComponentRegistered(hash))\n return this.loadRootPage(\"#/Landing\");\n\n this.loadRootPage(location.hash);\n }\n\n private loadRootPage(url: string, data: Object = {}) {\n\n const [path, query] = url.split('?');\n const hash = path.replace(/^\\/?#\\/?/, '');\n const chunks = hash.split('/');\n\n // Get query params and pass them as @Input arguments.\n const params = query?.split('&')\n .reduce((pars, par) => {\n const [key, value] = par.split(\"=\");\n const decoded = decodeURIComponent(value);\n pars[key] = decoded;\n return pars;\n }, {}) || {};\n\n\n log(`Root page navigate to '${hash}'`, { params, chunks });\n\n this.virtualPath$.next({\n root: chunks[0],\n chunks: chunks as any,\n args: params\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { KeybindCode } from '../../../services/command-palette.service';\n\n@Component({\n selector: 'ngx-commandpalette-shortcut',\n templateUrl: './shortcut.component.html',\n styleUrls: ['./shortcut.component.scss'],\n standalone: true\n})\nexport class ShortcutComponent {\n\n @Input() shortcut: KeybindCode;\n\n keys: string[] = [];\n\n ngOnChanges() {\n this.keys = this.shortcut?.split(\"+\");\n }\n}\n","@for (key of keys; track key; let i = $index) {\n @if(i > 0) {\n <span class=\"plus\">+</span>\n }\n\n <span class=\"key\">{{key}}</span>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommandPaletteComponent } from '../command-palette.component';\nimport { CommandAction } from '../../../services/command-palette.service';\n\n@Component({\n selector: 'ngx-commandpalette-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n standalone: true\n})\nexport class BreadcrumbComponent {\n\n @Input() breadcrumbs: {\n action: CommandAction,\n commands: CommandAction[],\n destroying: boolean,\n selectedIndex: number\n }[] = [];\n\n constructor(\n private commandPalette: CommandPaletteComponent\n ) {\n\n }\n\n selectBreadcrumb(crumb) {\n const index = this.breadcrumbs.indexOf(crumb);\n if (index == -1)\n throw new Error(\"Something terrible happened.\");\n\n const layer = this.breadcrumbs.at(-1);\n layer.destroying = true;\n setTimeout(() => {\n this.commandPalette.setCommandList(this.breadcrumbs.at(-2).commands);\n this.commandPalette.breadcrumbs.pop();\n this.commandPalette.activeIndex = layer.selectedIndex;\n }, 190)\n }\n}\n","@for (crumb of breadcrumbs; track crumb; let i = $index) {\n <div class=\"crumb\">\n <div\n class=\"crumb_inner\"\n [class.destroy]=\"crumb.destroying\"\n [class.root]=\"i == 0\"\n (click)=\"selectBreadcrumb(crumb)\"\n >\n {{crumb.action.label}}\n </div>\n </div>\n}\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnInit, ViewChild, isDevMode } from '@angular/core';\nimport { CommandAction, CommandPaletteService } from '../../services/command-palette.service';\nimport { MatInputModule } from '@angular/material/input';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { NgScrollbar, NgScrollbarModule } from 'ngx-scrollbar';\nimport { ShortcutComponent } from './shortcut/shortcut.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@Component({\n selector: 'ngx-command-palette',\n templateUrl: './command-palette.component.html',\n styleUrls: ['./command-palette.component.scss'],\n host: {\n \"(click)\": \"textInput.nativeElement.focus()\"\n },\n imports: [\n MatIconModule,\n MatInputModule,\n ScrollingModule,\n NgScrollbarModule,\n ShortcutComponent,\n BreadcrumbComponent\n ],\n standalone: true\n})\nexport class CommandPaletteComponent implements OnInit {\n\n @ViewChild(NgScrollbar) scrollbar: NgScrollbar;\n @ViewChild('textinput') textInput: ElementRef<HTMLInputElement>;\n\n @Input() contextElement: HTMLElement;\n\n get el() { return this.elementRef.nativeElement as HTMLElement; }\n\n readonly MAT_ICON_REGEX = /[:\\/\\.]/;\n\n queryString = \"\";\n activeIndex = 0;\n readonly rowHeight = 29;\n readonly padding = 6;\n\n commands: CommandAction[] = [];\n filteredCommands: CommandAction[] = [];\n\n breadcrumbs: {\n action: CommandAction,\n commands: CommandAction[],\n destroying: boolean,\n selectedIndex: number\n }[] = [];\n\n constructor(\n private readonly commandPalette: CommandPaletteService,\n private readonly dialog: MatDialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly changeDetector: ChangeDetectorRef,\n @Inject(MAT_DIALOG_DATA) data: any\n ) {\n this.contextElement = this.contextElement ?? data.contextElement;\n }\n\n ngOnInit() {\n this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)\n this.setCommandList(this.commands);\n\n // TODO: custom name\n this.breadcrumbs.push({\n action: { label: \"/\" },\n commands: this.commands,\n destroying: false,\n selectedIndex: 0\n });\n }\n\n onKeyDown(evt: KeyboardEvent) {\n switch(evt.key) {\n case \"Enter\": {\n // Fire the first command\n if (this.filteredCommands.length > 0)\n this.executeCommand(this.filteredCommands[this.activeIndex]);\n\n evt.stopPropagation();\n return;\n }\n case \"ArrowUp\": {\n this.activeIndex = Math.max(this.activeIndex-1, 0);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"ArrowDown\": {\n this.activeIndex = Math.min(this.filteredCommands.length-1, this.activeIndex+1);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"PageUp\": {\n // Fire the first command\n this.activeIndex = Math.max(this.activeIndex-12, 0);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"PageDown\": {\n this.activeIndex = Math.min(this.filteredCommands.length-1, this.activeIndex+12);\n\n evt.stopPropagation();\n this.focusRow();\n return;\n }\n case \"Escape\": {\n this.dialog.close();\n evt.stopPropagation();\n return;\n }\n case \"Backspace\": {\n // If we have no characters and we're hitting backspace, go back\n // to the previous menu in the breadcrumb\n if (this.queryString.length == 0 && this.breadcrumbs.length > 1) {\n const layer = this.breadcrumbs.at(-1);\n layer.destroying = true;\n setTimeout(() => {\n this.setCommandList(this.breadcrumbs.at(-2).commands);\n this.breadcrumbs.pop();\n this.activeIndex = layer.selectedIndex;\n }, 190)\n return;\n }\n else {\n break;\n }\n }\n case \"Delete\": {\n\n }\n }\n\n this.activeIndex = 0;\n this.commands.forEach(c => c['_renderedLabel'] = '');\n\n // Check in the next tick to get the input's\n // value so that it's updated\n setTimeout(() => {\n this.queryString = (evt.target as HTMLInputElement).value;\n this.filterResults();\n })\n }\n\n private async filterResults() {\n // Whitespace doesn't count.\n if (this.queryString.trim().length == 0) {\n this.filteredCommands = this.commands;\n return;\n }\n\n const queryChars = this.queryString\n .toLowerCase()\n .split('');\n\n const matchedCommands: CommandAction[] = [];\n\n for (const command of this.commands) {\n const { label } = command;\n\n // Check the label\n if (command.label) {\n const commandChars = label\n .toLowerCase()\n .split('');\n\n let renderedLabel = '';\n let lastIndex = 0;\n let isMatch = true;\n\n for (const char of queryChars) {\n const index = commandChars.indexOf(char, lastIndex);\n\n if (index == -1) {\n isMatch = false;\n break;\n }\n else {\n renderedLabel += label.slice(lastIndex, index) + `<b>${label.slice(index, index + 1)}</b>`;\n lastIndex = index + 1;\n }\n }\n\n renderedLabel += label.slice(lastIndex);\n\n if (isMatch) {\n command['_renderedLabel'] = renderedLabel;\n matchedCommands.push(command);\n }\n }\n\n // Check the hint\n if (command.hint) {\n const commandChars = label\n .toLowerCase()\n .split('');\n\n let renderedHint = '';\n let lastIndex = 0;\n let isMatch = true;\n\n for (const char of queryChars) {\n const index = commandChars.indexOf(char, lastIndex);\n\n if (index == -1) {\n isMatch = false;\n break;\n }\n else {\n renderedHint += label.slice(lastIndex, index) + `<b>${label.slice(index, index + 1)}</b>`;\n lastIndex = index + 1;\n }\n }\n\n renderedHint += label.slice(lastIndex);\n\n if (isMatch) {\n command['_renderedHint'] = renderedHint;\n matchedCommands.push(command);\n }\n }\n }\n\n this.filteredCommands = matchedCommands;\n }\n\n public setCommandList(commands: CommandAction[]) {\n this.commands = commands\n .filter(c => c.visibleInList != false);\n this.filteredCommands = this.commands;\n this.queryString = '';\n this.activeIndex = 0;\n\n // Reset the filter labels\n this.commands.forEach(command => command['_renderedLabel'] = '');\n }\n\n private focusRow() {\n const top = this.activeIndex * this.rowHeight;\n const height = this.rowHeight;\n\n const viewTop = this.scrollbar?.viewport?.scrollTop;\n const viewHeight = this.scrollbar?.viewport?.clientHeight;\n const viewBottom = viewTop + viewHeight;\n\n if (top < viewTop) {\n this.scrollbar.viewport.nativeElement.scrollTo({ top: top + this.padding })\n }\n else if ((top + height) > viewBottom) {\n this.scrollbar.viewport.nativeElement.scrollTo({ top: ((top + this.rowHeight) - viewHeight) + this.padding })\n }\n\n // Immediately check for changes to update template\n this.changeDetector.detectChanges();\n }\n\n executeCommand(command: CommandAction) {\n // Open a sub menu of items\n if (Array.isArray(command.subMenu)) {\n this.breadcrumbs.push({\n action: command,\n commands: command.subMenu,\n selectedIndex: this.activeIndex,\n destroying: false\n });\n\n this.setCommandList(command.subMenu);\n }\n // Directly invoke the action and kill the dialog\n else {\n this.commandPalette.invokeAction(command);\n this.dialog.close();\n }\n }\n\n @HostListener(\"window:blur\")\n @HostListener(\"window:resize\")\n onBlur() {\n if (!isDevMode()) {\n this.dialog.close();\n }\n }\n}\n","<mat-form-field style=\"width: 100%; padding: 8px 8px 0 8px\">\n <ngx-commandpalette-breadcrumb\n [breadcrumbs]=\"breadcrumbs\"\n />\n <input\n #textinput\n matInput\n type=\"text\"\n [value]=\"queryString\"\n (keydown)=\"onKeyDown($event)\"\n >\n</mat-form-field>\n\n@if (filteredCommands.length == 0) {\n <div class=\"commands\">\n <div class=\"command selected\">\n <div class=\"label\">No matching results.</div>\n </div>\n </div>\n}\n@else {\n <div\n class=\"commands\"\n [style.flex]=\"(filteredCommands.length * rowHeight) + 'px'\"\n [class.shadow]=\"scrollbar?.viewport?.scrollTop > 2\"\n >\n <ng-scrollbar #scrollbar>\n <cdk-virtual-scroll-viewport [itemSize]=\"rowHeight\" scrollViewport [minBufferPx]=\"150\">\n <div\n *cdkVirtualFor=\"let command of filteredCommands; let index = index\"\n class=\"command\"\n [style.height]=\"rowHeight + 'px'\"\n [class.selected]=\"index==activeIndex\"\n [class.has-icon]=\"command.icon\"\n [attr.index]=\"index\"\n (click)=\"executeCommand(command)\"\n >\n @if (command.icon) {\n <div class=\"icon\">\n @if (!MAT_ICON_REGEX.test(command.icon)) {\n <mat-icon [fontIcon]=\"command.icon\"></mat-icon>\n }\n @else {\n <img [src]=\"command.icon\"/>\n }\n </div>\n }\n\n <div\n class=\"label\"\n [innerHTML]=\"command['_renderedLabel'] || command.label || command.description\"\n ></div>\n\n @if (command['_renderedHint'] || command.hint) {\n <div\n class=\"hint\"\n [innerHTML]=\"command['_renderedHint'] || command.hint\"\n ></div>\n }\n <div style=\"flex: 1\"></div>\n\n <div>\n @for (shortcut of (command.shortcutKey?.find ? command.shortcutKey : [command.shortcutKey]); track shortcut) {\n @if (shortcut) {\n <ngx-commandpalette-shortcut [shortcut]=\"shortcut\"/>\n }\n }\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-scrollbar>\n </div>\n}\n\n","import { Injectable, HostListener, Type, isDevMode } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConsoleLogger, LogIcon } from '../utils';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\nimport { CommandPaletteComponent } from '../components/command-palette/command-palette.component';\n\nconst { log, warn, err } = ConsoleLogger(\"CommandPalette\", \"#2196f3\");\n\ntype KeyCode = \"Backspace\" | \"Tab\" | \"Enter\" | \"ShiftLeft\" | \"ShiftRight\"\n | \"ControlLeft\" | \"ControlRight\" | \"AltLeft\" | \"AltRight\" | \"Pause\" | \"CapsLock\"\n | \"Escape\" | \"Space\" | \"PageUp\" | \"PageDown\" | \"End\" | \"Home\" | \"ArrowLeft\"\n | \"ArrowUp\" | \"ArrowRight\" | \"ArrowDown\" | \"PrintScreen\" | \"Insert\" | \"Delete\"\n | \"MetaLeft\" | \"MetaRight\" | \"ContextMenu\" | \"Numpad0\" | \"Numpad1\" | \"Numpad2\"\n | \"Numpad3\" | \"Numpad4\" | \"Numpad5\" | \"Numpad6\" | \"Numpad7\" | \"Numpad8\"\n | \"Numpad9\" | \"NumpadMultiply\" | \"NumpadAdd\" | \"NumpadSubtract\"\n | \"NumpadDecimal\" | \"NumpadDivide\"\n | \"F1\" | \"F2\" | \"F3\" | \"F4\" | \"F5\" | \"F6\" | \"F7\" | \"F8\" | \"F9\" | \"F10\" | \"F11\" | \"F12\"\n | \"NumLock\" | \"ScrollLock\" | \"Semicolon\" | \"Equal\" | \"Comma\" | \"Minus\"\n | \"Period\" | \"Slash\" | \"Backquote\" | \"BracketLeft\" | \"Backslash\"\n | \"BracketRight\" | \"Quote\" | \"backspace\" | \"tab\" | \"enter\" | \"shiftleft\"\n | \"shiftright\" | \"controlleft\" | \"controlright\" | \"altleft\" | \"altright\"\n | \"pause\" | \"capslock\" | \"escape\" | \"space\" | \"pageup\" | \"pagedown\" | \"end\"\n | \"home\" | \"arrowleft\" | \"arrowup\" | \"arrowright\" | \"arrowdown\" | \"printscreen\"\n | \"insert\" | \"delete\" | \"metaleft\" | \"metaright\" | \"contextmenu\"\n | \"numpad0\" | \"numpad1\" | \"numpad2\" | \"numpad3\" | \"numpad4\" | \"numpad5\"\n | \"numpad6\" | \"numpad7\" | \"numpad8\" | \"numpad9\" | \"numpadmultiply\" | \"numpadadd\"\n | \"numpadsubtract\" | \"numpaddecimal\" | \"numpaddivide\"\n | \"f1\" | \"f2\" | \"f3\" | \"f4\" | \"f5\" | \"f6\" | \"f7\" | \"f8\" | \"f9\" | \"f10\" | \"f11\" | \"f12\"\n | \"numlock\" | \"scrolllock\" | \"semicolon\" | \"equal\" | \"comma\" | \"minus\" | \"period\"\n | \"slash\" | \"backquote\" | \"bracketleft\" | \"backslash\" | \"bracketright\" | \"quote\"\n | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"H\" | \"I\" | \"J\" | \"K\" | \"L\" | \"M\"\n | \"N\" | \"O\" | \"P\" | \"Q\" | \"R\" | \"S\" | \"T\" | \"U\" | \"V\" | \"W\" | \"X\" | \"Y\" | \"Z\"\n | \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\" | \"g\" | \"h\" | \"i\" | \"j\" | \"k\" | \"l\" | \"m\"\n | \"n\" | \"o\" | \"p\" | \"q\" | \"r\" | \"s\" | \"t\" | \"u\" | \"v\" | \"w\" | \"x\" | \"y\" | \"z\";\n\n// ctrl+alt+meta+shift\ntype KeyPrefix =\n `ctrl` |\n `ctrl+alt` |\n `ctrl+alt+shift` |\n `ctrl+alt+shift+meta` |\n `ctrl+alt+meta` |\n `ctrl+shift` |\n `ctrl+shift+meta` |\n `ctrl+meta` |\n `alt` |\n `alt+shift` |\n `alt+shift+meta` |\n `alt+meta` |\n `shift` |\n `shift+meta` |\n `meta`\n\nexport type KeybindEvent = (e: KeyboardEvent) => void;\nexport type KeybindCode = `${KeyPrefix}+${KeyCode}` | KeyCode;\n\n\n\nexport type CommandAction<T = any> = {\n /**\n * The non-modifier key(s) that must be pressed for the event to fire.\n */\n shortcutKey?: KeybindCode | KeybindCode[],\n\n /**\n * Action that is invoked when the keyboard shortcut is pressed or the item\n * is activated in the GUI menu\n * If the GUI menu is open, it will show a spinner if the action returns a `Promise`\n */\n action?: (evt: KeyboardEvent, data?: T) => Promise<any> | any,\n\n /**\n * Arbitrary data object to be passed into the action\n */\n data?: T,\n\n /**\n * Label in the command palette popup\n */\n label?: string,\n\n /**\n * Hint that follows the label, subtly\n */\n hint?: string,\n\n /**\n * Icon for the entry\n * Can be a mat-icon\n * Will be a mat-icon if the string is simple\n * If the string contains a slash or colon, it will be loaded as\n * an image source\n */\n icon?: string,\n\n /**\n * Keywords that can help pick this command\n */\n keywords?: string | string[],\n\n /**\n * Description for the popup\n * WIP\n */\n description?: string,\n\n /**\n * The root ancestor element of the action\n * (This allows scoping commands to specific HTML elements)\n * This requires that the event target must be a descendant\n *\n * If there are multiple matching descendants, only\n * the furthest descendant will be fired\n *\n * For command scoping, we read the data-label attribute\n * Alternatively, you can set label and element as an object here.\n */\n rootElement?: HTMLElement | string | {\n element: HTMLElement | string,\n label: string\n },\n\n /**\n * The label for the root. Used for the UI control and debugging.\n */\n rootName?: string,\n\n /**\n * Control whether this command action is visible in the popup command\n * palette GUI.\n */\n visibleInList?: boolean,\n\n /**\n * Enable selecting an item to show a list of sub-items\n */\n subMenu?: CommandAction<T>[] | (() => Promise<CommandAction<T>[]>) | (() => CommandAction<T>[])\n\n};\n\ntype CommandBlock = {\n element: HTMLElement,\n actions: CommandAction[];\n};\n\nexport type CommandPaletteOptions = {\n keybind: KeybindCode\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommandPaletteService {\n\n private commandBlocks: CommandBlock[] = [];\n private interval;\n\n constructor(\n private readonly dialog: MatDialog,\n private readonly lazyLoader: LazyLoaderService\n ) {\n window.addEventListener(\"keydown\", (evt) => this.onKeyDown(evt));\n\n this.interval = setInterval(() => {\n // Go backwards since we're splicing items out of the array.\n for (let i = this.commandBlocks.length; i >= 0; i--) {\n let commandBlock = this.commandBlocks[i];\n\n // If the current index is somehow null, rip it out of\n // the array and wait for cleanup to trigger again\n // for the rest of the array.\n // TODO: Could this lead to leaks where things at the end\n // never get cleaned?\n if (commandBlock == null) {\n this.commandBlocks.splice(i, 1);\n return;\n }\n\n // If the element has been disconnected from the DOM, we will\n // treat it as having been permanently removed.\n // TODO: Could this ever cause unintended consequences?\n if (!commandBlock?.element.isConnected)\n this.commandBlocks.splice(i, 1);\n }\n }, 5 * 60 * 1000);\n }\n\n private ngOnDestroy() {\n clearInterval(this.interval);\n }\n\n private getCommandBlocks(element: HTMLElement = document.body) {\n const elementPath: HTMLElement[] = [element];\n let currentTarget: HTMLElement = element;\n do {\n elementPath.unshift(currentTarget = currentTarget.parentElement);\n } while (currentTarget.parentElement);\n\n // Ordered matching command blocks, closest first\n const matchingCommandBlocks: CommandBlock[] = [];\n for (const element of elementPath) {\n const commandBlock = this.commandBlocks.find(cb => cb.element == element);\n if (commandBlock) {\n matchingCommandBlocks.unshift(commandBlock);\n }\n }\n\n return matchingCommandBlocks;\n }\n\n /**\n * Handle keydown events\n *\n * If an event has been removed from the DOM tree, we don't need\n * to explicitly remove the bindings, as they will never fire\n *\n * We periodically check and remove unconnected command blocks\n */\n private onKeyDown(evt: KeyboardEvent) {\n const matchingCommandBlocks = this.getCommandBlocks(evt.target as HTMLElement);\n\n // String in format `ctrl+alt+F`, `ctrl+F` etc.\n const key = [\n evt.ctrlKey ? \"ctrl\" : undefined,\n evt.altKey ? \"alt\" : undefined,\n evt.shiftKey ? \"shift\" : undefined,\n evt.metaKey ? \"meta\" : undefined,\n evt.code.startsWith(\"Key\") ? evt.key : evt.code\n ].filter(a => a).join('+').toLowerCase();\n\n for (const commandBlock of matchingCommandBlocks) {\n const action = commandBlock.actions.find(a => {\n return Array.isArray(a.shortcutKey)\n ? a.shortcutKey.includes(key as any)\n : a.shortcutKey == key as any\n });\n\n if (action) {\n evt.stopPropagation();\n evt.preventDefault();\n\n this.invokeAction(action);\n\n // Execute the action and move on.\n return;\n }\n // Keep checking for matching actions\n }\n\n // If execution reaches this point, there were no matching actions on the\n // path of elements that were registered.\n }\n\n private addCommand(element: HTMLElement, action: CommandAction) {\n const commandBlock = this.commandBlocks.find(b => b.element == element) ?? (() => {\n const cb = { element, actions: [] };\n this.commandBlocks.push(cb);\n return cb;\n })();\n\n // This is likely a duplicate entry\n if (commandBlock.actions.find(a => a.shortcutKey && a.shortcutKey == action.shortcutKey)) {\n warn(`Inserting duplicate action on element`, { element, action });\n }\n else {\n log(LogIcon.circle_blue, `Inserted action`, action)\n }\n\n // Make the shortcut keys lowercase so case sensitivity doesn't scalp someone\n if (action.shortcutKey) {\n if (Array.isArray(action.shortcutKey))\n action.shortcutKey = action.shortcutKey.map(k => k.toLowerCase()) as any;\n else\n action.shortcutKey = action.shortcutKey.toLowerCase() as any;\n }\n\n commandBlock.actions.push(action);\n }\n\n private removeCommand(element: HTMLElement, action: CommandAction | string) {\n const commandBlock = this.commandBlocks.find(b => b.element == element) ?? { element, actions: [] };\n const actionIndex = commandBlock?.actions.findIndex(a => typeof action == \"string\" ? a.shortcutKey == action : a == action);\n\n if (!commandBlock) {\n err(LogIcon.warning, `Cannot remove command: element does not have any commands registered`, { element, action })\n }\n else if (actionIndex == -1) {\n warn(LogIcon.warning, `Cannot remove command: not present in list`, { element, action })\n }\n else {\n commandBlock.actions.splice(actionIndex, 1);\n }\n }\n\n /**\n *\n */\n initialize(options: CommandPaletteOptions) {\n this.attachElementCommands([\n {\n shortcutKey: options.keybind,\n action: () => this.openPalette(),\n description: \"Open the command palette\",\n keywords: [\"command\", \"prompt\", \"console\", \"actions\"],\n label: \"Command Palette\",\n visibleInList: false\n }\n ]);\n }\n\n /**\n * Open the command palette\n */\n openPalette() {\n return this.dialog.open(CommandPaletteComponent, {\n position: {\n top: \"8px\"\n },\n data: {\n contextElement: document.activeElement\n },\n restoreFocus: true,\n // autoFocus: false,\n role: 'dialog'\n });\n }\n\n /**\n * Public helper to invoke an action.\n */\n invokeAction(action: CommandAction, args?) {\n const fn = action.action;\n if (typeof fn == 'function') {\n\n try {\n const res = fn(args);\n\n // Handle promises so that the GUI can show spinners for them\n if (res instanceof Promise) {\n // TODO\n }\n else {\n // TODO\n }\n }\n catch (ex) {\n err(LogIcon.bomb, `Executing action threw an error`, { action }, ex);\n }\n }\n else {\n warn(LogIcon.warning, `Cannot execute action, type is not \"function\"`, { action });\n }\n }\n\n /**\n * Attach commands to an Element and it's subtree\n */\n attachElementCommands(actions: CommandAction[])\n attachElementCommands(element: HTMLElement, actions: CommandAction[])\n attachElementCommands(element: CommandAction[] | HTMLElement = document.body, actions: CommandAction[] = []) {\n if (Array.isArray(element)) {\n actions = element;\n element = document.body;\n }\n\n actions.forEach(a => this.addCommand(element as any, a));\n }\n\n /**\n * Detach specified commands from an Element subtree\n */\n detachElementCommands(element: HTMLElement = document.body, actions: CommandAction[] = []) {\n actions.forEach(a => this.removeCommand(element, a));\n }\n\n /**\n * Return the list of registered commands under a given element\n */\n getRegisteredCommands(element: HTMLElement = document.body) {\n return this.getCommandBlocks(element).map(c => c.actions).flat();\n }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { NgxLazyLoaderConfig } from './types';\nimport { LazyLoaderComponent } from './lazy-loader.component';\nimport { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from './lazy-loader.service';\n\n@NgModule({\n imports: [LazyLoaderComponent],\n exports: [LazyLoaderComponent]\n})\nexport class LazyLoaderModule {\n public static forRoot(@Optional() config: NgxLazyLoaderConfig): ModuleWithProviders<LazyLoaderModule> {\n return ({\n ngModule: LazyLoaderModule,\n providers: [\n {\n provide: NGX_LAZY_LOADER_CONFIG,\n useValue: config\n },\n LazyLoaderService\n ]\n });\n }\n}\n","import { InjectionToken, Type } from '@angular/core';\n\nexport abstract class OnMount {\n abstract dynamicOnMount(attrs?: Map<string, string>, content?: string, element?: Element): void;\n}\n\nexport interface ComponentWithSelector {\n selector: string;\n component: Type<any>;\n}\nexport class DynamicHTMLOptions {\n components: Array<ComponentWithSelector>;\n}\n\nexport const NGX_DYNAMIC_CONFIG = new InjectionToken<DynamicHTMLOptions>('dynamichtml-config');\n\n","import { Injectable, Injector, ElementRef, ComponentFactoryResolver, ComponentFactory, ComponentRef, Inject } from '@angular/core';\nimport { DynamicHTMLOptions, NGX_DYNAMIC_CONFIG, OnMount } from './types';\n\nexport interface DynamicHTMLRef {\n check: () => void;\n destroy: () => void;\n}\n\nfunction isBrowserPlatform() {\n return window != null && window.document != null;\n}\n\n@Injectable()\nexport class DynamicHTMLRenderer {\n\n private componentFactories = new Map<string, ComponentFactory<any>>();\n\n private componentRefs = new Map<any, Array<ComponentRef<any>>>();\n\n constructor(@Inject(NGX_DYNAMIC_CONFIG) private config: DynamicHTMLOptions, private cfr: ComponentFactoryResolver, private injector: Injector) {\n this.config.components.forEach(({ selector, component }) => {\n let cf: ComponentFactory<any>;\n cf = this.cfr.resolveComponentFactory(component);\n this.componentFactories.set(selector, cf);\n });\n }\n\n renderInnerHTML(elementRef: ElementRef, html: string): DynamicHTMLRef {\n if (!isBrowserPlatform()) {\n return {\n check: () => { },\n destroy: () => { },\n };\n }\n elementRef.nativeElement.innerHTML = html;\n\n const componentRefs: Array<ComponentRef<any>> = [];\n this.config.components.forEach(({ selector }) => {\n const elements = (elementRef.nativeElement as Element).querySelectorAll(selector);\n Array.prototype.forEach.call(elements, (el: Element) => {\n const content = el.innerHTML;\n const cmpRef = this.componentFactories.get(selector).create(this.injector, [], el);\n\n el.removeAttribute('ng-version');\n\n if (cmpRef.instance.dynamicOnMount) {\n const attrsMap = new Map<string, string>();\n if (el.hasAttributes()) {\n Array.prototype.forEach.call(el.attributes, (attr: Attr) => {\n attrsMap.set(attr.name, attr.value);\n });\n }\n (cmpRef.instance as OnMount).dynamicOnMount(attrsMap, content, el);\n }\n\n componentRefs.push(cmpRef);\n });\n });\n this.componentRefs.set(elementRef, componentRefs);\n\n return {\n check: () => componentRefs.forEach(ref => ref.changeDetectorRef.detectChanges()),\n destroy: () => {\n componentRefs.forEach(ref => ref.destroy());\n this.componentRefs.delete(elementRef);\n },\n };\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n SimpleChanges,\n OnChanges,\n OnDestroy,\n DoCheck,\n} from '@angular/core';\n\nimport { DynamicHTMLRenderer, DynamicHTMLRef } from './dynamic-html.service';\n\n@Component({\n selector: 'dynamic-html',\n template: '',\n standalone: true\n})\nexport class DynamicHTMLComponent implements DoCheck, OnChanges, OnDestroy {\n @Input() content: string;\n\n private ref: DynamicHTMLRef = null;\n\n constructor(\n private renderer: DynamicHTMLRenderer,\n private elementRef: ElementRef,\n ) { }\n\n ngOnChanges(_: SimpleChanges) {\n if (this.ref) {\n this.ref.destroy();\n this.ref = null;\n }\n if (this.content && this.elementRef) {\n this.ref = this.renderer.renderInnerHTML(this.elementRef, this.content);\n }\n }\n\n ngDoCheck() {\n if (this.ref) {\n this.ref.check();\n }\n }\n\n ngOnDestroy() {\n if (this.ref) {\n this.ref.destroy();\n this.ref = null;\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DynamicHTMLComponent } from './dynamic-html.component';\nimport { DynamicHTMLOptions, NGX_DYNAMIC_CONFIG } from './types';\nimport { DynamicHTMLRenderer } from './dynamic-html.service';\n\n@NgModule({\n imports: [DynamicHTMLComponent],\n exports: [DynamicHTMLComponent],\n})\nexport class NgxDynamicHTMLModule {\n public static forRoot(config: DynamicHTMLOptions): ModuleWithProviders<NgxDynamicHTMLModule> {\n return {\n ngModule: NgxDynamicHTMLModule,\n providers: [\n DynamicHTMLRenderer,\n { provide: NGX_DYNAMIC_CONFIG, useValue: config }\n ],\n };\n }\n}\n","/** List of text file extensions */\nexport default [\n 'Makefile',\n 'Rakefile',\n 'ada',\n 'adb',\n 'ads',\n 'applescript',\n 'as',\n 'ascx',\n 'asm',\n 'asmx',\n 'asp',\n 'aspx',\n 'atom',\n 'bas',\n 'bash',\n 'bashrc',\n 'bat',\n 'bbcolors',\n 'bdsgroup',\n 'bdsproj',\n 'bib',\n 'bowerrc',\n 'c',\n 'cbl',\n 'cc',\n 'cfc',\n 'cfg',\n 'cfm',\n 'cfml',\n 'cgi',\n 'clj',\n 'cls',\n 'cmake',\n 'cmd',\n 'cnf',\n 'cob',\n 'coffee',\n 'coffeekup',\n 'conf',\n 'cpp',\n 'cpt',\n 'cpy',\n 'crt',\n 'cs',\n 'csh',\n 'cson',\n 'csr',\n 'css',\n 'csslintrc',\n 'csv',\n 'ctl',\n 'curlrc',\n 'cxx',\n 'dart',\n 'dfm',\n 'diff',\n 'dof',\n 'dpk',\n 'dproj',\n 'dtd',\n 'eco',\n 'editorconfig',\n 'ejs',\n 'el',\n 'emacs',\n 'eml',\n 'ent',\n 'erb',\n 'erl',\n 'eslintignore',\n 'eslintrc',\n 'ex',\n 'exs',\n 'f',\n 'f03',\n 'f77',\n 'f90',\n 'f95',\n 'fish',\n 'for',\n 'fpp',\n 'frm',\n 'ftn',\n 'gemrc',\n 'gitattributes',\n 'gitconfig',\n 'gitignore',\n 'gitkeep',\n 'gitmodules',\n 'go',\n 'gpp',\n 'gradle',\n 'groovy',\n 'groupproj',\n 'grunit',\n 'gtmpl',\n 'gvimrc',\n 'h',\n 'haml',\n 'hbs',\n 'hgignore',\n 'hh',\n 'hpp',\n 'hrl',\n 'hs',\n 'hta',\n 'htaccess',\n 'htc',\n 'htm',\n 'html',\n 'htpasswd',\n 'hxx',\n 'iced',\n 'inc',\n 'ini',\n 'ino',\n 'int',\n 'irbrc',\n 'itcl',\n 'itermcolors',\n 'itk',\n 'jade',\n 'java',\n 'jhtm',\n 'jhtml',\n 'js',\n 'jscsrc',\n 'jshintignore',\n 'jshintrc',\n 'json',\n 'json5',\n 'jsonld',\n 'jsp',\n 'jspx',\n 'jsx',\n 'ksh',\n 'less',\n 'lhs',\n 'lisp',\n 'log',\n 'ls',\n 'lsp',\n 'lua',\n 'm',\n 'mak',\n 'map',\n 'markdown',\n 'master',\n 'md',\n 'mdown',\n 'mdwn',\n 'mdx',\n 'metadata',\n 'mht',\n 'mhtml',\n 'mjs',\n 'mk',\n 'mkd',\n 'mkdn',\n 'mkdown',\n 'ml',\n 'mli',\n 'mm',\n 'mxml',\n 'nfm',\n 'nfo',\n 'njk',\n 'noon',\n 'npmignore',\n 'npmrc',\n 'nvmrc',\n 'ops',\n 'pas',\n 'pasm',\n 'patch',\n 'pbxproj',\n 'pch',\n 'pem',\n 'pg',\n 'php',\n 'php3',\n 'php4',\n 'php5',\n 'phpt',\n 'phtml',\n 'pir',\n 'pl',\n 'pm',\n 'pmc',\n 'pod',\n 'pot',\n 'properties',\n 'props',\n 'pt',\n 'pug',\n 'py',\n 'r',\n 'rake',\n 'rb',\n 'rdoc',\n 'rdoc_options',\n 'resx',\n 'rhtml',\n 'rjs',\n 'rlib',\n 'rmd',\n 'ron',\n 'rs',\n 'rss',\n 'rst',\n 'rtf',\n 'rvmrc',\n 'rxml',\n 's',\n 'sass',\n 'scala',\n 'scm',\n 'scss',\n 'seestyle',\n 'sh',\n 'shtml',\n 'sls',\n 'spec',\n 'sql',\n 'sqlite',\n 'ss',\n 'sss',\n 'st',\n 'strings',\n 'sty',\n 'styl',\n 'stylus',\n 'sub',\n 'sublime-build',\n 'sublime-commands',\n 'sublime-completions',\n 'sublime-keymap',\n 'sublime-macro',\n 'sublime-menu',\n 'sublime-project',\n 'sublime-settings',\n 'sublime-workspace',\n 'sv',\n 'svc',\n 'svg',\n 't',\n 'tcl',\n 'tcsh',\n 'terminal',\n 'tex',\n 'text',\n 'textile',\n 'tg',\n 'tmLanguage',\n 'tmTheme',\n 'tmpl',\n 'tpl',\n 'ts',\n 'tsv',\n 'tsx',\n 'tt',\n 'tt2',\n 'ttml',\n 'txt',\n 'v',\n 'vb',\n 'vbs',\n 'vh',\n 'vhd',\n 'vhdl',\n 'vim',\n 'viminfo',\n 'vimrc',\n 'vue',\n 'webapp',\n 'wxml',\n 'wxss',\n 'x-php',\n 'xaml',\n 'xht',\n 'xhtml',\n 'xml',\n 'xs',\n 'xsd',\n 'xsl',\n 'xslt',\n 'yaml',\n 'yml',\n 'zsh',\n 'zshrc',\n];\n","export default {\n \"iconDefinitions\": {\n \"git\": {\n \"iconPath\": \"./../icons/git.svg\"\n },\n \"yaml\": {\n \"iconPath\": \"./../icons/yaml.svg\"\n },\n \"xml\": {\n \"iconPath\": \"./../icons/xml.svg\"\n },\n \"matlab\": {\n \"iconPath\": \"./../icons/matlab.svg\"\n },\n \"settings\": {\n \"iconPath\": \"./../icons/settings.svg\"\n },\n \"shaderlab\": {\n \"iconPath\": \"./../icons/shaderlab.svg\"\n },\n \"diff\": {\n \"iconPath\": \"./../icons/diff.svg\"\n },\n \"json\": {\n \"iconPath\": \"./../icons/json.svg\"\n },\n \"blink\": {\n \"iconPath\": \"./../icons/blink.svg\"\n },\n \"java\": {\n \"iconPath\": \"./../icons/java.svg\"\n },\n \"razor\": {\n \"iconPath\": \"./../icons/razor.svg\"\n },\n \"python\": {\n \"iconPath\": \"./../icons/python.svg\"\n },\n \"javascript\": {\n \"iconPath\": \"./../icons/javascript.svg\"\n },\n \"typescript\": {\n \"iconPath\": \"./../icons/typescript.svg\"\n },\n \"scala\": {\n \"iconPath\": \"./../icons/scala.svg\"\n },\n \"handlebars\": {\n \"iconPath\": \"./../icons/handlebars.svg\"\n },\n \"perl\": {\n \"iconPath\": \"./../icons/perl.svg\"\n },\n \"haxe\": {\n \"iconPath\": \"./../icons/haxe.svg\"\n },\n \"puppet\": {\n \"iconPath\": \"./../icons/puppet.svg\"\n },\n \"elixir\": {\n \"iconPath\": \"./../icons/elixir.svg\"\n },\n \"livescript\": {\n \"iconPath\": \"./../icons/livescript.svg\"\n },\n \"erlang\": {\n \"iconPath\": \"./../icons/erlang.svg\"\n },\n \"twig\": {\n \"iconPath\": \"./../icons/twig.svg\"\n },\n \"julia\": {\n \"iconPath\": \"./../icons/julia.svg\"\n },\n \"elm\": {\n \"iconPath\": \"./../icons/elm.svg\"\n },\n \"purescript\": {\n \"iconPath\": \"./../icons/purescript.svg\"\n },\n \"stylus\": {\n \"iconPath\": \"./../icons/stylus.svg\"\n },\n \"nunjucks\": {\n \"iconPath\": \"./../icons/nunjucks.svg\"\n },\n \"pug\": {\n \"iconPath\": \"./../icons/pug.svg\"\n },\n \"robot\": {\n \"iconPath\": \"./../icons/robot.svg\"\n },\n \"sass\": {\n \"iconPath\": \"./../icons/sass.svg\"\n },\n \"less\": {\n \"iconPath\": \"./../icons/less.svg\"\n },\n \"css\": {\n \"iconPath\": \"./../icons/css.svg\"\n },\n \"visualstudio\": {\n \"iconPath\": \"./../icons/visualstudio.svg\"\n },\n \"angular\": {\n \"iconPath\": \"./../icons/angular.svg\"\n },\n \"graphql\": {\n \"iconPath\": \"./../icons/graphql.svg\"\n },\n \"solidity\": {\n \"iconPath\": \"./../icons/solidity.svg\"\n },\n \"autoit\": {\n \"iconPath\": \"./../icons/autoit.svg\"\n },\n \"haml\": {\n \"iconPath\": \"./../icons/haml.svg\"\n },\n \"yang\": {\n \"iconPath\": \"./../icons/yang.svg\"\n },\n \"terraform\": {\n \"iconPath\": \"./../icons/terraform.svg\"\n },\n \"applescript\": {\n \"iconPath\": \"./../icons/applescript.svg\"\n },\n \"cake\": {\n \"iconPath\": \"./../icons/cake.svg\"\n },\n \"cucumber\": {\n \"iconPath\": \"./../icons/cucumber.svg\"\n },\n \"nim\": {\n \"iconPath\": \"./../icons/nim.svg\"\n },\n \"apiblueprint\": {\n \"iconPath\": \"./../icons/apiblueprint.svg\"\n },\n \"riot\": {\n \"iconPath\": \"./../icons/riot.svg\"\n },\n \"postcss\": {\n \"iconPath\": \"./../icons/postcss.svg\"\n },\n \"coldfusion\": {\n \"iconPath\": \"./../icons/coldfusion.svg\"\n },\n \"haskell\": {\n \"iconPath\": \"./../icons/haskell.svg\"\n },\n \"dhall\": {\n \"iconPath\": \"./../icons/dhall.svg\"\n },\n \"cabal\": {\n \"iconPath\": \"./../icons/cabal.svg\"\n },\n \"nix\": {\n \"iconPath\": \"./../icons/nix.svg\"\n },\n \"ruby\": {\n \"iconPath\": \"./../icons/ruby.svg\"\n },\n \"slim\": {\n \"iconPath\": \"./../icons/slim.svg\"\n },\n \"php\": {\n \"iconPath\": \"./../icons/php.svg\"\n },\n \"php_elephant\": {\n \"iconPath\": \"./../icons/php_elephant.svg\"\n },\n \"php_elephant_pink\": {\n \"iconPath\": \"./../icons/php_elephant_pink.svg\"\n },\n \"hack\": {\n \"iconPath\": \"./../icons/hack.svg\"\n },\n \"react\": {\n \"iconPath\": \"./../icons/react.svg\"\n },\n \"mjml\": {\n \"iconPath\": \"./../icons/mjml.svg\"\n },\n \"processing\": {\n \"iconPath\": \"./../icons/processing.svg\"\n },\n \"hcl\": {\n \"iconPath\": \"./../icons/hcl.svg\"\n },\n \"go\": {\n \"iconPath\": \"./../icons/go.svg\"\n },\n \"go_gopher\": {\n \"iconPath\": \"./../icons/go_gopher.svg\"\n },\n \"nodejs_alt\": {\n \"iconPath\": \"./../icons/nodejs_alt.svg\"\n },\n \"django\": {\n \"iconPath\": \"./../icons/django.svg\"\n },\n \"html\": {\n \"iconPath\": \"./../icons/html.svg\"\n },\n \"godot\": {\n \"iconPath\": \"./../icons/godot.svg\"\n },\n \"godot-assets\": {\n \"iconPath\": \"./../icons/godot-assets.svg\"\n },\n \"vim\": {\n \"iconPath\": \"./../icons/vim.svg\"\n },\n \"silverstripe\": {\n \"iconPath\": \"./../icons/silverstripe.svg\"\n },\n \"prolog\": {\n \"iconPath\": \"./../icons/prolog.svg\"\n },\n \"pawn\": {\n \"iconPath\": \"./../icons/pawn.svg\"\n },\n \"reason\": {\n \"iconPath\": \"./../icons/reason.svg\"\n },\n \"sml\": {\n \"iconPath\": \"./../icons/sml.svg\"\n },\n \"tex\": {\n \"iconPath\": \"./../icons/tex.svg\"\n },\n \"salesforce\": {\n \"iconPath\": \"./../icons/salesforce.svg\"\n },\n \"sas\": {\n \"iconPath\": \"./../icons/sas.svg\"\n },\n \"docker\": {\n \"iconPath\": \"./../icons/docker.svg\"\n },\n \"table\": {\n \"iconPath\": \"./../icons/table.svg\"\n },\n \"csharp\": {\n \"iconPath\": \"./../icons/csharp.svg\"\n },\n \"console\": {\n \"iconPath\": \"./../icons/console.svg\"\n },\n \"c\": {\n \"iconPath\": \"./../icons/c.svg\"\n },\n \"cpp\": {\n \"iconPath\": \"./../icons/cpp.svg\"\n },\n \"objective-c\": {\n \"iconPath\": \"./../icons/objective-c.svg\"\n },\n \"objective-cpp\": {\n \"iconPath\": \"./../icons/objective-cpp.svg\"\n },\n \"coffee\": {\n \"iconPath\": \"./../icons/coffee.svg\"\n },\n \"fsharp\": {\n \"iconPath\": \"./../icons/fsharp.svg\"\n },\n \"editorconfig\": {\n \"iconPath\": \"./../icons/editorconfig.svg\"\n },\n \"clojure\": {\n \"iconPath\": \"./../icons/clojure.svg\"\n },\n \"groovy\": {\n \"iconPath\": \"./../icons/groovy.svg\"\n },\n \"markdown\": {\n \"iconPath\": \"./../icons/markdown.svg\"\n },\n \"jinja\": {\n \"iconPath\": \"./../icons/jinja.svg\"\n },\n \"proto\": {\n \"iconPath\": \"./../icons/proto.svg\"\n },\n \"python-misc\": {\n \"iconPath\": \"./../icons/python-misc.svg\"\n },\n \"vue\": {\n \"iconPath\": \"./../icons/vue.svg\"\n },\n \"lua\": {\n \"iconPath\": \"./../icons/lua.svg\"\n },\n \"lib\": {\n \"iconPath\": \"./../icons/lib.svg\"\n },\n \"log\": {\n \"iconPath\": \"./../icons/log.svg\"\n },\n \"jupyter\": {\n \"iconPath\": \"./../icons/jupyter.svg\"\n },\n \"document\": {\n \"iconPath\": \"./../icons/document.svg\"\n },\n \"pdf\": {\n \"iconPath\": \"./../icons/pdf.svg\"\n },\n \"powershell\": {\n \"iconPath\": \"./../icons/powershell.svg\"\n },\n \"r\": {\n \"iconPath\": \"./../icons/r.svg\"\n },\n \"rust\": {\n \"iconPath\": \"./../icons/rust.svg\"\n },\n \"database\": {\n \"iconPath\": \"./../icons/database.svg\"\n },\n \"kusto\": {\n \"iconPath\": \"./../icons/kusto.svg\"\n },\n \"lock\": {\n \"iconPath\": \"./../icons/lock.svg\"\n },\n \"svg\": {\n \"iconPath\": \"./../icons/svg.svg\"\n },\n \"swift\": {\n \"iconPath\": \"./../icons/swift.svg\"\n },\n \"react_ts\": {\n \"iconPath\": \"./../icons/react_ts.svg\"\n },\n \"search\": {\n \"iconPath\": \"./../icons/search.svg\"\n },\n \"minecraft\": {\n \"iconPath\": \"./../icons/minecraft.svg\"\n },\n \"rescript\": {\n \"iconPath\": \"./../icons/rescript.svg\"\n },\n \"otne\": {\n \"iconPath\": \"./../icons/otne.svg\"\n },\n \"twine\": {\n \"iconPath\": \"./../icons/twine.svg\"\n },\n \"grain\": {\n \"iconPath\": \"./../icons/grain.svg\"\n },\n \"lolcode\": {\n \"iconPath\": \"./../icons/lolcode.svg\"\n },\n \"idris\": {\n \"iconPath\": \"./../icons/idris.svg\"\n },\n \"chess\": {\n \"iconPath\": \"./../icons/chess.svg\"\n },\n \"gemini\": {\n \"iconPath\": \"./../icons/gemini.svg\"\n },\n \"vlang\": {\n \"iconPath\": \"./../icons/vlang.svg\"\n },\n \"wolframlanguage\": {\n \"iconPath\": \"./../icons/wolframlanguage.svg\"\n },\n \"shader\": {\n \"iconPath\": \"./../icons/shader.svg\"\n },\n \"tree\": {\n \"iconPath\": \"./../icons/tree.svg\"\n },\n \"svelte\": {\n \"iconPath\": \"./../icons/svelte.svg\"\n },\n \"dart\": {\n \"iconPath\": \"./../icons/dart.svg\"\n },\n \"cadence\": {\n \"iconPath\": \"./../icons/cadence.svg\"\n },\n \"stylable\": {\n \"iconPath\": \"./../icons/stylable.svg\"\n },\n \"blink_light\": {\n \"iconPath\": \"./../icons/blink_light.svg\"\n },\n \"jinja_light\": {\n \"iconPath\": \"./../icons/jinja_light.svg\"\n },\n \"playwright\": {\n \"iconPath\": \"./../icons/playwright.svg\"\n },\n \"sublime\": {\n \"iconPath\": \"./../icons/sublime.svg\"\n },\n \"image\": {\n \"iconPath\": \"./../icons/image.svg\"\n },\n \"routing\": {\n \"iconPath\": \"./../icons/routing.svg\"\n },\n \"typescript-def\": {\n \"iconPath\": \"./../icons/typescript-def.svg\"\n },\n \"markojs\": {\n \"iconPath\": \"./../icons/markojs.svg\"\n },\n \"astro\": {\n \"iconPath\": \"./../icons/astro.svg\"\n },\n \"vscode\": {\n \"iconPath\": \"./../icons/vscode.svg\"\n },\n \"qsharp\": {\n \"iconPath\": \"./../icons/qsharp.svg\"\n },\n \"zip\": {\n \"iconPath\": \"./../icons/zip.svg\"\n },\n \"vala\": {\n \"iconPath\": \"./../icons/vala.svg\"\n },\n \"zig\": {\n \"iconPath\": \"./../icons/zig.svg\"\n },\n \"exe\": {\n \"iconPath\": \"./../icons/exe.svg\"\n },\n \"hex\": {\n \"iconPath\": \"./../icons/hex.svg\"\n },\n \"jar\": {\n \"iconPath\": \"./../icons/jar.svg\"\n },\n \"javaclass\": {\n \"iconPath\": \"./../icons/javaclass.svg\"\n },\n \"h\": {\n \"iconPath\": \"./../icons/h.svg\"\n },\n \"hpp\": {\n \"iconPath\": \"./../icons/hpp.svg\"\n },\n \"rc\": {\n \"iconPath\": \"./../icons/rc.svg\"\n },\n \"go-mod\": {\n \"iconPath\": \"./../icons/go-mod.svg\"\n },\n \"url\": {\n \"iconPath\": \"./../icons/url.svg\"\n },\n \"gradle\": {\n \"iconPath\": \"./../icons/gradle.svg\"\n },\n \"word\": {\n \"iconPath\": \"./../icons/word.svg\"\n },\n \"certificate\": {\n \"iconPath\": \"./../icons/certificate.svg\"\n },\n \"key\": {\n \"iconPath\": \"./../icons/key.svg\"\n },\n \"font\": {\n \"iconPath\": \"./../icons/font.svg\"\n },\n \"gemfile\": {\n \"iconPath\": \"./../icons/gemfile.svg\"\n },\n \"rubocop\": {\n \"iconPath\": \"./../icons/rubocop.svg\"\n },\n \"rubocop_light\": {\n \"iconPath\": \"./../icons/rubocop_light.svg\"\n },\n \"arduino\": {\n \"iconPath\": \"./../icons/arduino.svg\"\n },\n \"powerpoint\": {\n \"iconPath\": \"./../icons/powerpoint.svg\"\n },\n \"video\": {\n \"iconPath\": \"./../icons/video.svg\"\n },\n \"virtual\": {\n \"iconPath\": \"./../icons/virtual.svg\"\n },\n \"email\": {\n \"iconPath\": \"./../icons/email.svg\"\n },\n \"audio\": {\n \"iconPath\": \"./../icons/audio.svg\"\n },\n \"raml\": {\n \"iconPath\": \"./../icons/raml.svg\"\n },\n \"xaml\": {\n \"iconPath\": \"./../icons/xaml.svg\"\n },\n \"kotlin\": {\n \"iconPath\": \"./../icons/kotlin.svg\"\n },\n \"dart_generated\": {\n \"iconPath\": \"./../icons/dart_generated.svg\"\n },\n \"actionscript\": {\n \"iconPath\": \"./../icons/actionscript.svg\"\n },\n \"mxml\": {\n \"iconPath\": \"./../icons/mxml.svg\"\n },\n \"autohotkey\": {\n \"iconPath\": \"./../icons/autohotkey.svg\"\n },\n \"flash\": {\n \"iconPath\": \"./../icons/flash.svg\"\n },\n \"swc\": {\n \"iconPath\": \"./../icons/swc.svg\"\n },\n \"cmake\": {\n \"iconPath\": \"./../icons/cmake.svg\"\n },\n \"assembly\": {\n \"iconPath\": \"./../icons/assembly.svg\"\n },\n \"vue-config\": {\n \"iconPath\": \"./../icons/vue-config.svg\"\n },\n \"nuxt\": {\n \"iconPath\": \"./../icons/nuxt.svg\"\n },\n \"ocaml\": {\n \"iconPath\": \"./../icons/ocaml.svg\"\n },\n \"odin\": {\n \"iconPath\": \"./../icons/odin.svg\"\n },\n \"javascript-map\": {\n \"iconPath\": \"./../icons/javascript-map.svg\"\n },\n \"css-map\": {\n \"iconPath\": \"./../icons/css-map.svg\"\n },\n \"test-ts\": {\n \"iconPath\": \"./../icons/test-ts.svg\"\n },\n \"test-jsx\": {\n \"iconPath\": \"./../icons/test-jsx.svg\"\n },\n \"test-js\": {\n \"iconPath\": \"./../icons/test-js.svg\"\n },\n \"angular-component\": {\n \"iconPath\": \"./../icons/angular-component.svg\"\n },\n \"angular-guard\": {\n \"iconPath\": \"./../icons/angular-guard.svg\"\n },\n \"angular-service\": {\n \"iconPath\": \"./../icons/angular-service.svg\"\n },\n \"angular-pipe\": {\n \"iconPath\": \"./../icons/angular-pipe.svg\"\n },\n \"angular-directive\": {\n \"iconPath\": \"./../icons/angular-directive.svg\"\n },\n \"angular-resolver\": {\n \"iconPath\": \"./../icons/angular-resolver.svg\"\n },\n \"smarty\": {\n \"iconPath\": \"./../icons/smarty.svg\"\n },\n \"bucklescript\": {\n \"iconPath\": \"./../icons/bucklescript.svg\"\n },\n \"merlin\": {\n \"iconPath\": \"./../icons/merlin.svg\"\n },\n \"verilog\": {\n \"iconPath\": \"./../icons/verilog.svg\"\n },\n \"mathematica\": {\n \"iconPath\": \"./../icons/mathematica.svg\"\n },\n \"vercel\": {\n \"iconPath\": \"./../icons/vercel.svg\"\n },\n \"vercel_light\": {\n \"iconPath\": \"./../icons/vercel_light.svg\"\n },\n \"verdaccio\": {\n \"iconPath\": \"./../icons/verdaccio.svg\"\n },\n \"next\": {\n \"iconPath\": \"./../icons/next.svg\"\n },\n \"next_light\": {\n \"iconPath\": \"./../icons/next_light.svg\"\n },\n \"remix\": {\n \"iconPath\": \"./../icons/remix.svg\"\n },\n \"remix_light\": {\n \"iconPath\": \"./../icons/remix_light.svg\"\n },\n \"laravel\": {\n \"iconPath\": \"./../icons/laravel.svg\"\n },\n \"vfl\": {\n \"iconPath\": \"./../icons/vfl.svg\"\n },\n \"kl\": {\n \"iconPath\": \"./../icons/kl.svg\"\n },\n \"posthtml\": {\n \"iconPath\": \"./../icons/posthtml.svg\"\n },\n \"todo\": {\n \"iconPath\": \"./../icons/todo.svg\"\n },\n \"http\": {\n \"iconPath\": \"./../icons/http.svg\"\n },\n \"restql\": {\n \"iconPath\": \"./../icons/restql.svg\"\n },\n \"kivy\": {\n \"iconPath\": \"./../icons/kivy.svg\"\n },\n \"graphcool\": {\n \"iconPath\": \"./../icons/graphcool.svg\"\n },\n \"sbt\": {\n \"iconPath\": \"./../icons/sbt.svg\"\n },\n \"webpack\": {\n \"iconPath\": \"./../icons/webpack.svg\"\n },\n \"ionic\": {\n \"iconPath\": \"./../icons/ionic.svg\"\n },\n \"gulp\": {\n \"iconPath\": \"./../icons/gulp.svg\"\n },\n \"nodejs\": {\n \"iconPath\": \"./../icons/nodejs.svg\"\n },\n \"npm\": {\n \"iconPath\": \"./../icons/npm.svg\"\n },\n \"yarn\": {\n \"iconPath\": \"./../icons/yarn.svg\"\n },\n \"android\": {\n \"iconPath\": \"./../icons/android.svg\"\n },\n \"tune\": {\n \"iconPath\": \"./../icons/tune.svg\"\n },\n \"turborepo\": {\n \"iconPath\": \"./../icons/turborepo.svg\"\n },\n \"turborepo_light\": {\n \"iconPath\": \"./../icons/turborepo_light.svg\"\n },\n \"babel\": {\n \"iconPath\": \"./../icons/babel.svg\"\n },\n \"blitz\": {\n \"iconPath\": \"./../icons/blitz.svg\"\n },\n \"contributing\": {\n \"iconPath\": \"./../icons/contributing.svg\"\n },\n \"readme\": {\n \"iconPath\": \"./../icons/readme.svg\"\n },\n \"changelog\": {\n \"iconPath\": \"./../icons/changelog.svg\"\n },\n \"architecture\": {\n \"iconPath\": \"./../icons/architecture.svg\"\n },\n \"credits\": {\n \"iconPath\": \"./../icons/credits.svg\"\n },\n \"authors\": {\n \"iconPath\": \"./../icons/authors.svg\"\n },\n \"flow\": {\n \"iconPath\": \"./../icons/flow.svg\"\n },\n \"favicon\": {\n \"iconPath\": \"./../icons/favicon.svg\"\n },\n \"karma\": {\n \"iconPath\": \"./../icons/karma.svg\"\n },\n \"bithound\": {\n \"iconPath\": \"./../icons/bithound.svg\"\n },\n \"svgo\": {\n \"iconPath\": \"./../icons/svgo.svg\"\n },\n \"appveyor\": {\n \"iconPath\": \"./../icons/appveyor.svg\"\n },\n \"travis\": {\n \"iconPath\": \"./../icons/travis.svg\"\n },\n \"codecov\": {\n \"iconPath\": \"./../icons/codecov.svg\"\n },\n \"sonarcloud\": {\n \"iconPath\": \"./../icons/sonarcloud.svg\"\n },\n \"protractor\": {\n \"iconPath\": \"./../icons/protractor.svg\"\n },\n \"fusebox\": {\n \"iconPath\": \"./../icons/fusebox.svg\"\n },\n \"heroku\": {\n \"iconPath\": \"./../icons/heroku.svg\"\n },\n \"gitlab\": {\n \"iconPath\": \"./../icons/gitlab.svg\"\n },\n \"bower\": {\n \"iconPath\": \"./../icons/bower.svg\"\n },\n \"eslint\": {\n \"iconPath\": \"./../icons/eslint.svg\"\n },\n \"conduct\": {\n \"iconPath\": \"./../icons/conduct.svg\"\n },\n \"watchman\": {\n \"iconPath\": \"./../icons/watchman.svg\"\n },\n \"aurelia\": {\n \"iconPath\": \"./../icons/aurelia.svg\"\n },\n \"auto\": {\n \"iconPath\": \"./../icons/auto.svg\"\n },\n \"auto_light\": {\n \"iconPath\": \"./../icons/auto_light.svg\"\n },\n \"mocha\": {\n \"iconPath\": \"./../icons/mocha.svg\"\n },\n \"jenkins\": {\n \"iconPath\": \"./../icons/jenkins.svg\"\n },\n \"firebase\": {\n \"iconPath\": \"./../icons/firebase.svg\"\n },\n \"figma\": {\n \"iconPath\": \"./../icons/figma.svg\"\n },\n \"rollup\": {\n \"iconPath\": \"./../icons/rollup.svg\"\n },\n \"hardhat\": {\n \"iconPath\": \"./../icons/hardhat.svg\"\n },\n \"stylelint\": {\n \"iconPath\": \"./../icons/stylelint.svg\"\n },\n \"stylelint_light\": {\n \"iconPath\": \"./../icons/stylelint_light.svg\"\n },\n \"code-climate\": {\n \"iconPath\": \"./../icons/code-climate.svg\"\n },\n \"code-climate_light\": {\n \"iconPath\": \"./../icons/code-climate_light.svg\"\n },\n \"prettier\": {\n \"iconPath\": \"./../icons/prettier.svg\"\n },\n \"renovate\": {\n \"iconPath\": \"./../icons/renovate.svg\"\n },\n \"apollo\": {\n \"iconPath\": \"./../icons/apollo.svg\"\n },\n \"nodemon\": {\n \"iconPath\": \"./../icons/nodemon.svg\"\n },\n \"webhint\": {\n \"iconPath\": \"./../icons/webhint.svg\"\n },\n \"browserlist\": {\n \"iconPath\": \"./../icons/browserlist.svg\"\n },\n \"browserlist_light\": {\n \"iconPath\": \"./../icons/browserlist_light.svg\"\n },\n \"crystal\": {\n \"iconPath\": \"./../icons/crystal.svg\"\n },\n \"crystal_light\": {\n \"iconPath\": \"./../icons/crystal_light.svg\"\n },\n \"snyk\": {\n \"iconPath\": \"./../icons/snyk.svg\"\n },\n \"drone\": {\n \"iconPath\": \"./../icons/drone.svg\"\n },\n \"drone_light\": {\n \"iconPath\": \"./../icons/drone_light.svg\"\n },\n \"cuda\": {\n \"iconPath\": \"./../icons/cuda.svg\"\n },\n \"dotjs\": {\n \"iconPath\": \"./../icons/dotjs.svg\"\n },\n \"ejs\": {\n \"iconPath\": \"./../icons/ejs.svg\"\n },\n \"sequelize\": {\n \"iconPath\": \"./../icons/sequelize.svg\"\n },\n \"gatsby\": {\n \"iconPath\": \"./../icons/gatsby.svg\"\n },\n \"wakatime\": {\n \"iconPath\": \"./../icons/wakatime.svg\"\n },\n \"wakatime_light\": {\n \"iconPath\": \"./../icons/wakatime_light.svg\"\n },\n \"circleci\": {\n \"iconPath\": \"./../icons/circleci.svg\"\n },\n \"circleci_light\": {\n \"iconPath\": \"./../icons/circleci_light.svg\"\n },\n \"cloudfoundry\": {\n \"iconPath\": \"./../icons/cloudfoundry.svg\"\n },\n \"grunt\": {\n \"iconPath\": \"./../icons/grunt.svg\"\n },\n \"jest\": {\n \"iconPath\": \"./../icons/jest.svg\"\n },\n \"storybook\": {\n \"iconPath\": \"./../icons/storybook.svg\"\n },\n \"wepy\": {\n \"iconPath\": \"./../icons/wepy.svg\"\n },\n \"fastlane\": {\n \"iconPath\": \"./../icons/fastlane.svg\"\n },\n \"hcl_light\": {\n \"iconPath\": \"./../icons/hcl_light.svg\"\n },\n \"helm\": {\n \"iconPath\": \"./../icons/helm.svg\"\n },\n \"san\": {\n \"iconPath\": \"./../icons/san.svg\"\n },\n \"wallaby\": {\n \"iconPath\": \"./../icons/wallaby.svg\"\n },\n \"stencil\": {\n \"iconPath\": \"./../icons/stencil.svg\"\n },\n \"red\": {\n \"iconPath\": \"./../icons/red.svg\"\n },\n \"makefile\": {\n \"iconPath\": \"./../icons/makefile.svg\"\n },\n \"foxpro\": {\n \"iconPath\": \"./../icons/foxpro.svg\"\n },\n \"i18n\": {\n \"iconPath\": \"./../icons/i18n.svg\"\n },\n \"webassembly\": {\n \"iconPath\": \"./../icons/webassembly.svg\"\n },\n \"semantic-release\": {\n \"iconPath\": \"./../icons/semantic-release.svg\"\n },\n \"semantic-release_light\": {\n \"iconPath\": \"./../icons/semantic-release_light.svg\"\n },\n \"bitbucket\": {\n \"iconPath\": \"./../icons/bitbucket.svg\"\n },\n \"d\": {\n \"iconPath\": \"./../icons/d.svg\"\n },\n \"mdx\": {\n \"iconPath\": \"./../icons/mdx.svg\"\n },\n \"mdsvex\": {\n \"iconPath\": \"./../icons/mdsvex.svg\"\n },\n \"ballerina\": {\n \"iconPath\": \"./../icons/ballerina.svg\"\n },\n \"racket\": {\n \"iconPath\": \"./../icons/racket.svg\"\n },\n \"bazel\": {\n \"iconPath\": \"./../icons/bazel.svg\"\n },\n \"mint\": {\n \"iconPath\": \"./../icons/mint.svg\"\n },\n \"velocity\": {\n \"iconPath\": \"./../icons/velocity.svg\"\n },\n \"azure-pipelines\": {\n \"iconPath\": \"./../icons/azure-pipelines.svg\"\n },\n \"azure\": {\n \"iconPath\": \"./../icons/azure.svg\"\n },\n \"vagrant\": {\n \"iconPath\": \"./../icons/vagrant.svg\"\n },\n \"prisma\": {\n \"iconPath\": \"./../icons/prisma.svg\"\n },\n \"abc\": {\n \"iconPath\": \"./../icons/abc.svg\"\n },\n \"asciidoc\": {\n \"iconPath\": \"./../icons/asciidoc.svg\"\n },\n \"istanbul\": {\n \"iconPath\": \"./../icons/istanbul.svg\"\n },\n \"edge\": {\n \"iconPath\": \"./../icons/edge.svg\"\n },\n \"scheme\": {\n \"iconPath\": \"./../icons/scheme.svg\"\n },\n \"lisp\": {\n \"iconPath\": \"./../icons/lisp.svg\"\n },\n \"tailwindcss\": {\n \"iconPath\": \"./../icons/tailwindcss.svg\"\n },\n \"3d\": {\n \"iconPath\": \"./../icons/3d.svg\"\n },\n \"buildkite\": {\n \"iconPath\": \"./../icons/buildkite.svg\"\n },\n \"netlify\": {\n \"iconPath\": \"./../icons/netlify.svg\"\n },\n \"netlify_light\": {\n \"iconPath\": \"./../icons/netlify_light.svg\"\n },\n \"nest\": {\n \"iconPath\": \"./../icons/nest.svg\"\n },\n \"moonscript\": {\n \"iconPath\": \"./../icons/moonscript.svg\"\n },\n \"percy\": {\n \"iconPath\": \"./../icons/percy.svg\"\n },\n \"gitpod\": {\n \"iconPath\": \"./../icons/gitpod.svg\"\n },\n \"advpl_prw\": {\n \"iconPath\": \"./../icons/advpl_prw.svg\"\n },\n \"advpl_ptm\": {\n \"iconPath\": \"./../icons/advpl_ptm.svg\"\n },\n \"advpl_tlpp\": {\n \"iconPath\": \"./../icons/advpl_tlpp.svg\"\n },\n \"advpl_include\": {\n \"iconPath\": \"./../icons/advpl_include.svg\"\n },\n \"codeowners\": {\n \"iconPath\": \"./../icons/codeowners.svg\"\n },\n \"gcp\": {\n \"iconPath\": \"./../icons/gcp.svg\"\n },\n \"disc\": {\n \"iconPath\": \"./../icons/disc.svg\"\n },\n \"fortran\": {\n \"iconPath\": \"./../icons/fortran.svg\"\n },\n \"tcl\": {\n \"iconPath\": \"./../icons/tcl.svg\"\n },\n \"liquid\": {\n \"iconPath\": \"./../icons/liquid.svg\"\n },\n \"husky\": {\n \"iconPath\": \"./../icons/husky.svg\"\n },\n \"coconut\": {\n \"iconPath\": \"./../icons/coconut.svg\"\n },\n \"tilt\": {\n \"iconPath\": \"./../icons/tilt.svg\"\n },\n \"capacitor\": {\n \"iconPath\": \"./../icons/capacitor.svg\"\n },\n \"sketch\": {\n \"iconPath\": \"./../icons/sketch.svg\"\n },\n \"adonis\": {\n \"iconPath\": \"./../icons/adonis.svg\"\n },\n \"forth\": {\n \"iconPath\": \"./../icons/forth.svg\"\n },\n \"uml\": {\n \"iconPath\": \"./../icons/uml.svg\"\n },\n \"uml_light\": {\n \"iconPath\": \"./../icons/uml_light.svg\"\n },\n \"meson\": {\n \"iconPath\": \"./../icons/meson.svg\"\n },\n \"commitlint\": {\n \"iconPath\": \"./../icons/commitlint.svg\"\n },\n \"buck\": {\n \"iconPath\": \"./../icons/buck.svg\"\n },\n \"nrwl\": {\n \"iconPath\": \"./../icons/nrwl.svg\"\n },\n \"opam\": {\n \"iconPath\": \"./../icons/opam.svg\"\n },\n \"dune\": {\n \"iconPath\": \"./../icons/dune.svg\"\n },\n \"imba\": {\n \"iconPath\": \"./../icons/imba.svg\"\n },\n \"drawio\": {\n \"iconPath\": \"./../icons/drawio.svg\"\n },\n \"pascal\": {\n \"iconPath\": \"./../icons/pascal.svg\"\n },\n \"roadmap\": {\n \"iconPath\": \"./../icons/roadmap.svg\"\n },\n \"nuget\": {\n \"iconPath\": \"./../icons/nuget.svg\"\n },\n \"command\": {\n \"iconPath\": \"./../icons/command.svg\"\n },\n \"stryker\": {\n \"iconPath\": \"./../icons/stryker.svg\"\n },\n \"denizenscript\": {\n \"iconPath\": \"./../icons/denizenscript.svg\"\n },\n \"modernizr\": {\n \"iconPath\": \"./../icons/modernizr.svg\"\n },\n \"slug\": {\n \"iconPath\": \"./../icons/slug.svg\"\n },\n \"stitches\": {\n \"iconPath\": \"./../icons/stitches.svg\"\n },\n \"stitches_light\": {\n \"iconPath\": \"./../icons/stitches_light.svg\"\n },\n \"nginx\": {\n \"iconPath\": \"./../icons/nginx.svg\"\n },\n \"replit\": {\n \"iconPath\": \"./../icons/replit.svg\"\n },\n \"rescript-interface\": {\n \"iconPath\": \"./../icons/rescript-interface.svg\"\n },\n \"snowpack\": {\n \"iconPath\": \"./../icons/snowpack.svg\"\n },\n \"snowpack_light\": {\n \"iconPath\": \"./../icons/snowpack_light.svg\"\n },\n \"brainfuck\": {\n \"iconPath\": \"./../icons/brainfuck.svg\"\n },\n \"bicep\": {\n \"iconPath\": \"./../icons/bicep.svg\"\n },\n \"cobol\": {\n \"iconPath\": \"./../icons/cobol.svg\"\n },\n \"quasar\": {\n \"iconPath\": \"./../icons/quasar.svg\"\n },\n \"dependabot\": {\n \"iconPath\": \"./../icons/dependabot.svg\"\n },\n \"pipeline\": {\n \"iconPath\": \"./../icons/pipeline.svg\"\n },\n \"vite\": {\n \"iconPath\": \"./../icons/vite.svg\"\n },\n \"vitest\": {\n \"iconPath\": \"./../icons/vitest.svg\"\n },\n \"opa\": {\n \"iconPath\": \"./../icons/opa.svg\"\n },\n \"lerna\": {\n \"iconPath\": \"./../icons/lerna.svg\"\n },\n \"windicss\": {\n \"iconPath\": \"./../icons/windicss.svg\"\n },\n \"textlint\": {\n \"iconPath\": \"./../icons/textlint.svg\"\n },\n \"lilypond\": {\n \"iconPath\": \"./../icons/lilypond.svg\"\n },\n \"chess_light\": {\n \"iconPath\": \"./../icons/chess_light.svg\"\n },\n \"sentry\": {\n \"iconPath\": \"./../icons/sentry.svg\"\n },\n \"phpunit\": {\n \"iconPath\": \"./../icons/phpunit.svg\"\n },\n \"php-cs-fixer\": {\n \"iconPath\": \"./../icons/php-cs-fixer.svg\"\n },\n \"robots\": {\n \"iconPath\": \"./../icons/robots.svg\"\n },\n \"tsconfig\": {\n \"iconPath\": \"./../icons/tsconfig.svg\"\n },\n \"tauri\": {\n \"iconPath\": \"./../icons/tauri.svg\"\n },\n \"jsconfig\": {\n \"iconPath\": \"./../icons/jsconfig.svg\"\n },\n \"maven\": {\n \"iconPath\": \"./../icons/maven.svg\"\n },\n \"ada\": {\n \"iconPath\": \"./../icons/ada.svg\"\n },\n \"serverless\": {\n \"iconPath\": \"./../icons/serverless.svg\"\n },\n \"supabase\": {\n \"iconPath\": \"./../icons/supabase.svg\"\n },\n \"ember\": {\n \"iconPath\": \"./../icons/ember.svg\"\n },\n \"horusec\": {\n \"iconPath\": \"./../icons/horusec.svg\"\n },\n \"poetry\": {\n \"iconPath\": \"./../icons/poetry.svg\"\n },\n \"coala\": {\n \"iconPath\": \"./../icons/coala.svg\"\n },\n \"parcel\": {\n \"iconPath\": \"./../icons/parcel.svg\"\n },\n \"dinophp\": {\n \"iconPath\": \"./../icons/dinophp.svg\"\n },\n \"teal\": {\n \"iconPath\": \"./../icons/teal.svg\"\n },\n \"template\": {\n \"iconPath\": \"./../icons/template.svg\"\n },\n \"astyle\": {\n \"iconPath\": \"./../icons/astyle.svg\"\n },\n \"lighthouse\": {\n \"iconPath\": \"./../icons/lighthouse.svg\"\n },\n \"svgr\": {\n \"iconPath\": \"./../icons/svgr.svg\"\n },\n \"rome\": {\n \"iconPath\": \"./../icons/rome.svg\"\n },\n \"cypress\": {\n \"iconPath\": \"./../icons/cypress.svg\"\n },\n \"siyuan\": {\n \"iconPath\": \"./../icons/siyuan.svg\"\n },\n \"ndst\": {\n \"iconPath\": \"./../icons/ndst.svg\"\n },\n \"plop\": {\n \"iconPath\": \"./../icons/plop.svg\"\n },\n \"tobi\": {\n \"iconPath\": \"./../icons/tobi.svg\"\n },\n \"tobimake\": {\n \"iconPath\": \"./../icons/tobimake.svg\"\n },\n \"gleam\": {\n \"iconPath\": \"./../icons/gleam.svg\"\n },\n \"pnpm\": {\n \"iconPath\": \"./../icons/pnpm.svg\"\n },\n \"pnpm_light\": {\n \"iconPath\": \"./../icons/pnpm_light.svg\"\n },\n \"gridsome\": {\n \"iconPath\": \"./../icons/gridsome.svg\"\n },\n \"steadybit\": {\n \"iconPath\": \"./../icons/steadybit.svg\"\n },\n \"caddy\": {\n \"iconPath\": \"./../icons/caddy.svg\"\n },\n \"bun\": {\n \"iconPath\": \"./../icons/bun.svg\"\n },\n \"bun_light\": {\n \"iconPath\": \"./../icons/bun_light.svg\"\n },\n \"antlr\": {\n \"iconPath\": \"./../icons/antlr.svg\"\n },\n \"pinejs\": {\n \"iconPath\": \"./../icons/pinejs.svg\"\n },\n \"nano-staged\": {\n \"iconPath\": \"./../icons/nano-staged.svg\"\n },\n \"nano-staged_light\": {\n \"iconPath\": \"./../icons/nano-staged_light.svg\"\n },\n \"craco\": {\n \"iconPath\": \"./../icons/craco.svg\"\n },\n \"gamemaker\": {\n \"iconPath\": \"./../icons/gamemaker.svg\"\n },\n \"tldraw\": {\n \"iconPath\": \"./../icons/tldraw.svg\"\n },\n \"tldraw_light\": {\n \"iconPath\": \"./../icons/tldraw_light.svg\"\n },\n \"mercurial\": {\n \"iconPath\": \"./../icons/mercurial.svg\"\n },\n \"deno\": {\n \"iconPath\": \"./../icons/deno.svg\"\n },\n \"deno_light\": {\n \"iconPath\": \"./../icons/deno_light.svg\"\n },\n \"plastic\": {\n \"iconPath\": \"./../icons/plastic.svg\"\n },\n \"typst\": {\n \"iconPath\": \"./../icons/typst.svg\"\n },\n \"ifanr-cloud\": {\n \"iconPath\": \"./../icons/ifanr-cloud.svg\"\n },\n \"mermaid\": {\n \"iconPath\": \"./../icons/mermaid.svg\"\n },\n \"file\": {\n \"iconPath\": \"./../icons/file.svg\"\n },\n \"folder-src\": {\n \"iconPath\": \"./../icons/folder-src.svg\"\n },\n \"folder-src-open\": {\n \"iconPath\": \"./../icons/folder-src-open.svg\"\n },\n \"folder-dist\": {\n \"iconPath\": \"./../icons/folder-dist.svg\"\n },\n \"folder-dist-open\": {\n \"iconPath\": \"./../icons/folder-dist-open.svg\"\n },\n \"folder-css\": {\n \"iconPath\": \"./../icons/folder-css.svg\"\n },\n \"folder-css-open\": {\n \"iconPath\": \"./../icons/folder-css-open.svg\"\n },\n \"folder-sass\": {\n \"iconPath\": \"./../icons/folder-sass.svg\"\n },\n \"folder-sass-open\": {\n \"iconPath\": \"./../icons/folder-sass-open.svg\"\n },\n \"folder-images\": {\n \"iconPath\": \"./../icons/folder-images.svg\"\n },\n \"folder-images-open\": {\n \"iconPath\": \"./../icons/folder-images-open.svg\"\n },\n \"folder-scripts\": {\n \"iconPath\": \"./../icons/folder-scripts.svg\"\n },\n \"folder-scripts-open\": {\n \"iconPath\": \"./../icons/folder-scripts-open.svg\"\n },\n \"folder-node\": {\n \"iconPath\": \"./../icons/folder-node.svg\"\n },\n \"folder-node-open\": {\n \"iconPath\": \"./../icons/folder-node-open.svg\"\n },\n \"folder-javascript\": {\n \"iconPath\": \"./../icons/folder-javascript.svg\"\n },\n \"folder-javascript-open\": {\n \"iconPath\": \"./../icons/folder-javascript-open.svg\"\n },\n \"folder-json\": {\n \"iconPath\": \"./../icons/folder-json.svg\"\n },\n \"folder-json-open\": {\n \"iconPath\": \"./../icons/folder-json-open.svg\"\n },\n \"folder-font\": {\n \"iconPath\": \"./../icons/folder-font.svg\"\n },\n \"folder-font-open\": {\n \"iconPath\": \"./../icons/folder-font-open.svg\"\n },\n \"folder-bower\": {\n \"iconPath\": \"./../icons/folder-bower.svg\"\n },\n \"folder-bower-open\": {\n \"iconPath\": \"./../icons/folder-bower-open.svg\"\n },\n \"folder-test\": {\n \"iconPath\": \"./../icons/folder-test.svg\"\n },\n \"folder-test-open\": {\n \"iconPath\": \"./../icons/folder-test-open.svg\"\n },\n \"folder-jinja\": {\n \"iconPath\": \"./../icons/folder-jinja.svg\"\n },\n \"folder-jinja-open\": {\n \"iconPath\": \"./../icons/folder-jinja-open.svg\"\n },\n \"folder-jinja_light\": {\n \"iconPath\": \"./../icons/folder-jinja_light.svg\"\n },\n \"folder-jinja-open_light\": {\n \"iconPath\": \"./../icons/folder-jinja-open_light.svg\"\n },\n \"folder-markdown\": {\n \"iconPath\": \"./../icons/folder-markdown.svg\"\n },\n \"folder-markdown-open\": {\n \"iconPath\": \"./../icons/folder-markdown-open.svg\"\n },\n \"folder-php\": {\n \"iconPath\": \"./../icons/folder-php.svg\"\n },\n \"folder-php-open\": {\n \"iconPath\": \"./../icons/folder-php-open.svg\"\n },\n \"folder-phpmailer\": {\n \"iconPath\": \"./../icons/folder-phpmailer.svg\"\n },\n \"folder-phpmailer-open\": {\n \"iconPath\": \"./../icons/folder-phpmailer-open.svg\"\n },\n \"folder-sublime\": {\n \"iconPath\": \"./../icons/folder-sublime.svg\"\n },\n \"folder-sublime-open\": {\n \"iconPath\": \"./../icons/folder-sublime-open.svg\"\n },\n \"folder-docs\": {\n \"iconPath\": \"./../icons/folder-docs.svg\"\n },\n \"folder-docs-open\": {\n \"iconPath\": \"./../icons/folder-docs-open.svg\"\n },\n \"folder-git\": {\n \"iconPath\": \"./../icons/folder-git.svg\"\n },\n \"folder-git-open\": {\n \"iconPath\": \"./../icons/folder-git-open.svg\"\n },\n \"folder-github\": {\n \"iconPath\": \"./../icons/folder-github.svg\"\n },\n \"folder-github-open\": {\n \"iconPath\": \"./../icons/folder-github-open.svg\"\n },\n \"folder-gitlab\": {\n \"iconPath\": \"./../icons/folder-gitlab.svg\"\n },\n \"folder-gitlab-open\": {\n \"iconPath\": \"./../icons/folder-gitlab-open.svg\"\n },\n \"folder-vscode\": {\n \"iconPath\": \"./../icons/folder-vscode.svg\"\n },\n \"folder-vscode-open\": {\n \"iconPath\": \"./../icons/folder-vscode-open.svg\"\n },\n \"folder-views\": {\n \"iconPath\": \"./../icons/folder-views.svg\"\n },\n \"folder-views-open\": {\n \"iconPath\": \"./../icons/folder-views-open.svg\"\n },\n \"folder-vue\": {\n \"iconPath\": \"./../icons/folder-vue.svg\"\n },\n \"folder-vue-open\": {\n \"iconPath\": \"./../icons/folder-vue-open.svg\"\n },\n \"folder-vuepress\": {\n \"iconPath\": \"./../icons/folder-vuepress.svg\"\n },\n \"folder-vuepress-open\": {\n \"iconPath\": \"./../icons/folder-vuepress-open.svg\"\n },\n \"folder-expo\": {\n \"iconPath\": \"./../icons/folder-expo.svg\"\n },\n \"folder-expo-open\": {\n \"iconPath\": \"./../icons/folder-expo-open.svg\"\n },\n \"folder-config\": {\n \"iconPath\": \"./../icons/folder-config.svg\"\n },\n \"folder-config-open\": {\n \"iconPath\": \"./../icons/folder-config-open.svg\"\n },\n \"folder-i18n\": {\n \"iconPath\": \"./../icons/folder-i18n.svg\"\n },\n \"folder-i18n-open\": {\n \"iconPath\": \"./../icons/folder-i18n-open.svg\"\n },\n \"folder-components\": {\n \"iconPath\": \"./../icons/folder-components.svg\"\n },\n \"folder-components-open\": {\n \"iconPath\": \"./../icons/folder-components-open.svg\"\n },\n \"folder-verdaccio\": {\n \"iconPath\": \"./../icons/folder-verdaccio.svg\"\n },\n \"folder-verdaccio-open\": {\n \"iconPath\": \"./../icons/folder-verdaccio-open.svg\"\n },\n \"folder-aurelia\": {\n \"iconPath\": \"./../icons/folder-aurelia.svg\"\n },\n \"folder-aurelia-open\": {\n \"iconPath\": \"./../icons/folder-aurelia-open.svg\"\n },\n \"folder-resource\": {\n \"iconPath\": \"./../icons/folder-resource.svg\"\n },\n \"folder-resource-open\": {\n \"iconPath\": \"./../icons/folder-resource-open.svg\"\n },\n \"folder-lib\": {\n \"iconPath\": \"./../icons/folder-lib.svg\"\n },\n \"folder-lib-open\": {\n \"iconPath\": \"./../icons/folder-lib-open.svg\"\n },\n \"folder-theme\": {\n \"iconPath\": \"./../icons/folder-theme.svg\"\n },\n \"folder-theme-open\": {\n \"iconPath\": \"./../icons/folder-theme-open.svg\"\n },\n \"folder-webpack\": {\n \"iconPath\": \"./../icons/folder-webpack.svg\"\n },\n \"folder-webpack-open\": {\n \"iconPath\": \"./../icons/folder-webpack-open.svg\"\n },\n \"folder-global\": {\n \"iconPath\": \"./../icons/folder-global.svg\"\n },\n \"folder-global-open\": {\n \"iconPath\": \"./../icons/folder-global-open.svg\"\n },\n \"folder-public\": {\n \"iconPath\": \"./../icons/folder-public.svg\"\n },\n \"folder-public-open\": {\n \"iconPath\": \"./../icons/folder-public-open.svg\"\n },\n \"folder-include\": {\n \"iconPath\": \"./../icons/folder-include.svg\"\n },\n \"folder-include-open\": {\n \"iconPath\": \"./../icons/folder-include-open.svg\"\n },\n \"folder-docker\": {\n \"iconPath\": \"./../icons/folder-docker.svg\"\n },\n \"folder-docker-open\": {\n \"iconPath\": \"./../icons/folder-docker-open.svg\"\n },\n \"folder-database\": {\n \"iconPath\": \"./../icons/folder-database.svg\"\n },\n \"folder-database-open\": {\n \"iconPath\": \"./../icons/folder-database-open.svg\"\n },\n \"folder-log\": {\n \"iconPath\": \"./../icons/folder-log.svg\"\n },\n \"folder-log-open\": {\n \"iconPath\": \"./../icons/folder-log-open.svg\"\n },\n \"folder-target\": {\n \"iconPath\": \"./../icons/folder-target.svg\"\n },\n \"folder-target-open\": {\n \"iconPath\": \"./../icons/folder-target-open.svg\"\n },\n \"folder-temp\": {\n \"iconPath\": \"./../icons/folder-temp.svg\"\n },\n \"folder-temp-open\": {\n \"iconPath\": \"./../icons/folder-temp-open.svg\"\n },\n \"folder-aws\": {\n \"iconPath\": \"./../icons/folder-aws.svg\"\n },\n \"folder-aws-open\": {\n \"iconPath\": \"./../icons/folder-aws-open.svg\"\n },\n \"folder-audio\": {\n \"iconPath\": \"./../icons/folder-audio.svg\"\n },\n \"folder-audio-open\": {\n \"iconPath\": \"./../icons/folder-audio-open.svg\"\n },\n \"folder-video\": {\n \"iconPath\": \"./../icons/folder-video.svg\"\n },\n \"folder-video-open\": {\n \"iconPath\": \"./../icons/folder-video-open.svg\"\n },\n \"folder-kubernetes\": {\n \"iconPath\": \"./../icons/folder-kubernetes.svg\"\n },\n \"folder-kubernetes-open\": {\n \"iconPath\": \"./../icons/folder-kubernetes-open.svg\"\n },\n \"folder-import\": {\n \"iconPath\": \"./../icons/folder-import.svg\"\n },\n \"folder-import-open\": {\n \"iconPath\": \"./../icons/folder-import-open.svg\"\n },\n \"folder-export\": {\n \"iconPath\": \"./../icons/folder-export.svg\"\n },\n \"folder-export-open\": {\n \"iconPath\": \"./../icons/folder-export-open.svg\"\n },\n \"folder-wakatime\": {\n \"iconPath\": \"./../icons/folder-wakatime.svg\"\n },\n \"folder-wakatime-open\": {\n \"iconPath\": \"./../icons/folder-wakatime-open.svg\"\n },\n \"folder-circleci\": {\n \"iconPath\": \"./../icons/folder-circleci.svg\"\n },\n \"folder-circleci-open\": {\n \"iconPath\": \"./../icons/folder-circleci-open.svg\"\n },\n \"folder-wordpress\": {\n \"iconPath\": \"./../icons/folder-wordpress.svg\"\n },\n \"folder-wordpress-open\": {\n \"iconPath\": \"./../icons/folder-wordpress-open.svg\"\n },\n \"folder-gradle\": {\n \"iconPath\": \"./../icons/folder-gradle.svg\"\n },\n \"folder-gradle-open\": {\n \"iconPath\": \"./../icons/folder-gradle-open.svg\"\n },\n \"folder-coverage\": {\n \"iconPath\": \"./../icons/folder-coverage.svg\"\n },\n \"folder-coverage-open\": {\n \"iconPath\": \"./../icons/folder-coverage-open.svg\"\n },\n \"folder-class\": {\n \"iconPath\": \"./../icons/folder-class.svg\"\n },\n \"folder-class-open\": {\n \"iconPath\": \"./../icons/folder-class-open.svg\"\n },\n \"folder-other\": {\n \"iconPath\": \"./../icons/folder-other.svg\"\n },\n \"folder-other-open\": {\n \"iconPath\": \"./../icons/folder-other-open.svg\"\n },\n \"folder-lua\": {\n \"iconPath\": \"./../icons/folder-lua.svg\"\n },\n \"folder-lua-open\": {\n \"iconPath\": \"./../icons/folder-lua-open.svg\"\n },\n \"folder-typescript\": {\n \"iconPath\": \"./../icons/folder-typescript.svg\"\n },\n \"folder-typescript-open\": {\n \"iconPath\": \"./../icons/folder-typescript-open.svg\"\n },\n \"folder-graphql\": {\n \"iconPath\": \"./../icons/folder-graphql.svg\"\n },\n \"folder-graphql-open\": {\n \"iconPath\": \"./../icons/folder-graphql-open.svg\"\n },\n \"folder-routes\": {\n \"iconPath\": \"./../icons/folder-routes.svg\"\n },\n \"folder-routes-open\": {\n \"iconPath\": \"./../icons/folder-routes-open.svg\"\n },\n \"folder-ci\": {\n \"iconPath\": \"./../icons/folder-ci.svg\"\n },\n \"folder-ci-open\": {\n \"iconPath\": \"./../icons/folder-ci-open.svg\"\n },\n \"folder-benchmark\": {\n \"iconPath\": \"./../icons/folder-benchmark.svg\"\n },\n \"folder-benchmark-open\": {\n \"iconPath\": \"./../icons/folder-benchmark-open.svg\"\n },\n \"folder-messages\": {\n \"iconPath\": \"./../icons/folder-messages.svg\"\n },\n \"folder-messages-open\": {\n \"iconPath\": \"./../icons/folder-messages-open.svg\"\n },\n \"folder-less\": {\n \"iconPath\": \"./../icons/folder-less.svg\"\n },\n \"folder-less-open\": {\n \"iconPath\": \"./../icons/folder-less-open.svg\"\n },\n \"folder-gulp\": {\n \"iconPath\": \"./../icons/folder-gulp.svg\"\n },\n \"folder-gulp-open\": {\n \"iconPath\": \"./../icons/folder-gulp-open.svg\"\n },\n \"folder-python\": {\n \"iconPath\": \"./../icons/folder-python.svg\"\n },\n \"folder-python-open\": {\n \"iconPath\": \"./../icons/folder-python-open.svg\"\n },\n \"folder-debug\": {\n \"iconPath\": \"./../icons/folder-debug.svg\"\n },\n \"folder-debug-open\": {\n \"iconPath\": \"./../icons/folder-debug-open.svg\"\n },\n \"folder-fastlane\": {\n \"iconPath\": \"./../icons/folder-fastlane.svg\"\n },\n \"folder-fastlane-open\": {\n \"iconPath\": \"./../icons/folder-fastlane-open.svg\"\n },\n \"folder-plugin\": {\n \"iconPath\": \"./../icons/folder-plugin.svg\"\n },\n \"folder-plugin-open\": {\n \"iconPath\": \"./../icons/folder-plugin-open.svg\"\n },\n \"folder-middleware\": {\n \"iconPath\": \"./../icons/folder-middleware.svg\"\n },\n \"folder-middleware-open\": {\n \"iconPath\": \"./../icons/folder-middleware-open.svg\"\n },\n \"folder-controller\": {\n \"iconPath\": \"./../icons/folder-controller.svg\"\n },\n \"folder-controller-open\": {\n \"iconPath\": \"./../icons/folder-controller-open.svg\"\n },\n \"folder-ansible\": {\n \"iconPath\": \"./../icons/folder-ansible.svg\"\n },\n \"folder-ansible-open\": {\n \"iconPath\": \"./../icons/folder-ansible-open.svg\"\n },\n \"folder-server\": {\n \"iconPath\": \"./../icons/folder-server.svg\"\n },\n \"folder-server-open\": {\n \"iconPath\": \"./../icons/folder-server-open.svg\"\n },\n \"folder-client\": {\n \"iconPath\": \"./../icons/folder-client.svg\"\n },\n \"folder-client-open\": {\n \"iconPath\": \"./../icons/folder-client-open.svg\"\n },\n \"folder-tasks\": {\n \"iconPath\": \"./../icons/folder-tasks.svg\"\n },\n \"folder-tasks-open\": {\n \"iconPath\": \"./../icons/folder-tasks-open.svg\"\n },\n \"folder-android\": {\n \"iconPath\": \"./../icons/folder-android.svg\"\n },\n \"folder-android-open\": {\n \"iconPath\": \"./../icons/folder-android-open.svg\"\n },\n \"folder-ios\": {\n \"iconPath\": \"./../icons/folder-ios.svg\"\n },\n \"folder-ios-open\": {\n \"iconPath\": \"./../icons/folder-ios-open.svg\"\n },\n \"folder-upload\": {\n \"iconPath\": \"./../icons/folder-upload.svg\"\n },\n \"folder-upload-open\": {\n \"iconPath\": \"./../icons/folder-upload-open.svg\"\n },\n \"folder-download\": {\n \"iconPath\": \"./../icons/folder-download.svg\"\n },\n \"folder-download-open\": {\n \"iconPath\": \"./../icons/folder-download-open.svg\"\n },\n \"folder-tools\": {\n \"iconPath\": \"./../icons/folder-tools.svg\"\n },\n \"folder-tools-open\": {\n \"iconPath\": \"./../icons/folder-tools-open.svg\"\n },\n \"folder-helper\": {\n \"iconPath\": \"./../icons/folder-helper.svg\"\n },\n \"folder-helper-open\": {\n \"iconPath\": \"./../icons/folder-helper-open.svg\"\n },\n \"folder-serverless\": {\n \"iconPath\": \"./../icons/folder-serverless.svg\"\n },\n \"folder-serverless-open\": {\n \"iconPath\": \"./../icons/folder-serverless-open.svg\"\n },\n \"folder-api\": {\n \"iconPath\": \"./../icons/folder-api.svg\"\n },\n \"folder-api-open\": {\n \"iconPath\": \"./../icons/folder-api-open.svg\"\n },\n \"folder-app\": {\n \"iconPath\": \"./../icons/folder-app.svg\"\n },\n \"folder-app-open\": {\n \"iconPath\": \"./../icons/folder-app-open.svg\"\n },\n \"folder-apollo\": {\n \"iconPath\": \"./../icons/folder-apollo.svg\"\n },\n \"folder-apollo-open\": {\n \"iconPath\": \"./../icons/folder-apollo-open.svg\"\n },\n \"folder-archive\": {\n \"iconPath\": \"./../icons/folder-archive.svg\"\n },\n \"folder-archive-open\": {\n \"iconPath\": \"./../icons/folder-archive-open.svg\"\n },\n \"folder-batch\": {\n \"iconPath\": \"./../icons/folder-batch.svg\"\n },\n \"folder-batch-open\": {\n \"iconPath\": \"./../icons/folder-batch-open.svg\"\n },\n \"folder-buildkite\": {\n \"iconPath\": \"./../icons/folder-buildkite.svg\"\n },\n \"folder-buildkite-open\": {\n \"iconPath\": \"./../icons/folder-buildkite-open.svg\"\n },\n \"folder-cluster\": {\n \"iconPath\": \"./../icons/folder-cluster.svg\"\n },\n \"folder-cluster-open\": {\n \"iconPath\": \"./../icons/folder-cluster-open.svg\"\n },\n \"folder-command\": {\n \"iconPath\": \"./../icons/folder-command.svg\"\n },\n \"folder-command-open\": {\n \"iconPath\": \"./../icons/folder-command-open.svg\"\n },\n \"folder-constant\": {\n \"iconPath\": \"./../icons/folder-constant.svg\"\n },\n \"folder-constant-open\": {\n \"iconPath\": \"./../icons/folder-constant-open.svg\"\n },\n \"folder-container\": {\n \"iconPath\": \"./../icons/folder-container.svg\"\n },\n \"folder-container-open\": {\n \"iconPath\": \"./../icons/folder-container-open.svg\"\n },\n \"folder-content\": {\n \"iconPath\": \"./../icons/folder-content.svg\"\n },\n \"folder-content-open\": {\n \"iconPath\": \"./../icons/folder-content-open.svg\"\n },\n \"folder-context\": {\n \"iconPath\": \"./../icons/folder-context.svg\"\n },\n \"folder-context-open\": {\n \"iconPath\": \"./../icons/folder-context-open.svg\"\n },\n \"folder-core\": {\n \"iconPath\": \"./../icons/folder-core.svg\"\n },\n \"folder-core-open\": {\n \"iconPath\": \"./../icons/folder-core-open.svg\"\n },\n \"folder-delta\": {\n \"iconPath\": \"./../icons/folder-delta.svg\"\n },\n \"folder-delta-open\": {\n \"iconPath\": \"./../icons/folder-delta-open.svg\"\n },\n \"folder-dump\": {\n \"iconPath\": \"./../icons/folder-dump.svg\"\n },\n \"folder-dump-open\": {\n \"iconPath\": \"./../icons/folder-dump-open.svg\"\n },\n \"folder-examples\": {\n \"iconPath\": \"./../icons/folder-examples.svg\"\n },\n \"folder-examples-open\": {\n \"iconPath\": \"./../icons/folder-examples-open.svg\"\n },\n \"folder-environment\": {\n \"iconPath\": \"./../icons/folder-environment.svg\"\n },\n \"folder-environment-open\": {\n \"iconPath\": \"./../icons/folder-environment-open.svg\"\n },\n \"folder-functions\": {\n \"iconPath\": \"./../icons/folder-functions.svg\"\n },\n \"folder-functions-open\": {\n \"iconPath\": \"./../icons/folder-functions-open.svg\"\n },\n \"folder-generator\": {\n \"iconPath\": \"./../icons/folder-generator.svg\"\n },\n \"folder-generator-open\": {\n \"iconPath\": \"./../icons/folder-generator-open.svg\"\n },\n \"folder-hook\": {\n \"iconPath\": \"./../icons/folder-hook.svg\"\n },\n \"folder-hook-open\": {\n \"iconPath\": \"./../icons/folder-hook-open.svg\"\n },\n \"folder-job\": {\n \"iconPath\": \"./../icons/folder-job.svg\"\n },\n \"folder-job-open\": {\n \"iconPath\": \"./../icons/folder-job-open.svg\"\n },\n \"folder-keys\": {\n \"iconPath\": \"./../icons/folder-keys.svg\"\n },\n \"folder-keys-open\": {\n \"iconPath\": \"./../icons/folder-keys-open.svg\"\n },\n \"folder-layout\": {\n \"iconPath\": \"./../icons/folder-layout.svg\"\n },\n \"folder-layout-open\": {\n \"iconPath\": \"./../icons/folder-layout-open.svg\"\n },\n \"folder-mail\": {\n \"iconPath\": \"./../icons/folder-mail.svg\"\n },\n \"folder-mail-open\": {\n \"iconPath\": \"./../icons/folder-mail-open.svg\"\n },\n \"folder-mappings\": {\n \"iconPath\": \"./../icons/folder-mappings.svg\"\n },\n \"folder-mappings-open\": {\n \"iconPath\": \"./../icons/folder-mappings-open.svg\"\n },\n \"folder-meta\": {\n \"iconPath\": \"./../icons/folder-meta.svg\"\n },\n \"folder-meta-open\": {\n \"iconPath\": \"./../icons/folder-meta-open.svg\"\n },\n \"folder-changesets\": {\n \"iconPath\": \"./../icons/folder-changesets.svg\"\n },\n \"folder-changesets-open\": {\n \"iconPath\": \"./../icons/folder-changesets-open.svg\"\n },\n \"folder-packages\": {\n \"iconPath\": \"./../icons/folder-packages.svg\"\n },\n \"folder-packages-open\": {\n \"iconPath\": \"./../icons/folder-packages-open.svg\"\n },\n \"folder-shared\": {\n \"iconPath\": \"./../icons/folder-shared.svg\"\n },\n \"folder-shared-open\": {\n \"iconPath\": \"./../icons/folder-shared-open.svg\"\n },\n \"folder-shader\": {\n \"iconPath\": \"./../icons/folder-shader.svg\"\n },\n \"folder-shader-open\": {\n \"iconPath\": \"./../icons/folder-shader-open.svg\"\n },\n \"folder-stack\": {\n \"iconPath\": \"./../icons/folder-stack.svg\"\n },\n \"folder-stack-open\": {\n \"iconPath\": \"./../icons/folder-stack-open.svg\"\n },\n \"folder-template\": {\n \"iconPath\": \"./../icons/folder-template.svg\"\n },\n \"folder-template-open\": {\n \"iconPath\": \"./../icons/folder-template-open.svg\"\n },\n \"folder-utils\": {\n \"iconPath\": \"./../icons/folder-utils.svg\"\n },\n \"folder-utils-open\": {\n \"iconPath\": \"./../icons/folder-utils-open.svg\"\n },\n \"folder-supabase\": {\n \"iconPath\": \"./../icons/folder-supabase.svg\"\n },\n \"folder-supabase-open\": {\n \"iconPath\": \"./../icons/folder-supabase-open.svg\"\n },\n \"folder-private\": {\n \"iconPath\": \"./../icons/folder-private.svg\"\n },\n \"folder-private-open\": {\n \"iconPath\": \"./../icons/folder-private-open.svg\"\n },\n \"folder-error\": {\n \"iconPath\": \"./../icons/folder-error.svg\"\n },\n \"folder-error-open\": {\n \"iconPath\": \"./../icons/folder-error-open.svg\"\n },\n \"folder-event\": {\n \"iconPath\": \"./../icons/folder-event.svg\"\n },\n \"folder-event-open\": {\n \"iconPath\": \"./../icons/folder-event-open.svg\"\n },\n \"folder-secure\": {\n \"iconPath\": \"./../icons/folder-secure.svg\"\n },\n \"folder-secure-open\": {\n \"iconPath\": \"./../icons/folder-secure-open.svg\"\n },\n \"folder-custom\": {\n \"iconPath\": \"./../icons/folder-custom.svg\"\n },\n \"folder-custom-open\": {\n \"iconPath\": \"./../icons/folder-custom-open.svg\"\n },\n \"folder-mock\": {\n \"iconPath\": \"./../icons/folder-mock.svg\"\n },\n \"folder-mock-open\": {\n \"iconPath\": \"./../icons/folder-mock-open.svg\"\n },\n \"folder-syntax\": {\n \"iconPath\": \"./../icons/folder-syntax.svg\"\n },\n \"folder-syntax-open\": {\n \"iconPath\": \"./../icons/folder-syntax-open.svg\"\n },\n \"folder-vm\": {\n \"iconPath\": \"./../icons/folder-vm.svg\"\n },\n \"folder-vm-open\": {\n \"iconPath\": \"./../icons/folder-vm-open.svg\"\n },\n \"folder-stylus\": {\n \"iconPath\": \"./../icons/folder-stylus.svg\"\n },\n \"folder-stylus-open\": {\n \"iconPath\": \"./../icons/folder-stylus-open.svg\"\n },\n \"folder-flow\": {\n \"iconPath\": \"./../icons/folder-flow.svg\"\n },\n \"folder-flow-open\": {\n \"iconPath\": \"./../icons/folder-flow-open.svg\"\n },\n \"folder-rules\": {\n \"iconPath\": \"./../icons/folder-rules.svg\"\n },\n \"folder-rules-open\": {\n \"iconPath\": \"./../icons/folder-rules-open.svg\"\n },\n \"folder-review\": {\n \"iconPath\": \"./../icons/folder-review.svg\"\n },\n \"folder-review-open\": {\n \"iconPath\": \"./../icons/folder-review-open.svg\"\n },\n \"folder-animation\": {\n \"iconPath\": \"./../icons/folder-animation.svg\"\n },\n \"folder-animation-open\": {\n \"iconPath\": \"./../icons/folder-animation-open.svg\"\n },\n \"folder-guard\": {\n \"iconPath\": \"./../icons/folder-guard.svg\"\n },\n \"folder-guard-open\": {\n \"iconPath\": \"./../icons/folder-guard-open.svg\"\n },\n \"folder-prisma\": {\n \"iconPath\": \"./../icons/folder-prisma.svg\"\n },\n \"folder-prisma-open\": {\n \"iconPath\": \"./../icons/folder-prisma-open.svg\"\n },\n \"folder-pipe\": {\n \"iconPath\": \"./../icons/folder-pipe.svg\"\n },\n \"folder-pipe-open\": {\n \"iconPath\": \"./../icons/folder-pipe-open.svg\"\n },\n \"folder-svg\": {\n \"iconPath\": \"./../icons/folder-svg.svg\"\n },\n \"folder-svg-open\": {\n \"iconPath\": \"./../icons/folder-svg-open.svg\"\n },\n \"folder-terraform\": {\n \"iconPath\": \"./../icons/folder-terraform.svg\"\n },\n \"folder-terraform-open\": {\n \"iconPath\": \"./../icons/folder-terraform-open.svg\"\n },\n \"folder-mobile\": {\n \"iconPath\": \"./../icons/folder-mobile.svg\"\n },\n \"folder-mobile-open\": {\n \"iconPath\": \"./../icons/folder-mobile-open.svg\"\n },\n \"folder-stencil\": {\n \"iconPath\": \"./../icons/folder-stencil.svg\"\n },\n \"folder-stencil-open\": {\n \"iconPath\": \"./../icons/folder-stencil-open.svg\"\n },\n \"folder-firebase\": {\n \"iconPath\": \"./../icons/folder-firebase.svg\"\n },\n \"folder-firebase-open\": {\n \"iconPath\": \"./../icons/folder-firebase-open.svg\"\n },\n \"folder-svelte\": {\n \"iconPath\": \"./../icons/folder-svelte.svg\"\n },\n \"folder-svelte-open\": {\n \"iconPath\": \"./../icons/folder-svelte-open.svg\"\n },\n \"folder-update\": {\n \"iconPath\": \"./../icons/folder-update.svg\"\n },\n \"folder-update-open\": {\n \"iconPath\": \"./../icons/folder-update-open.svg\"\n },\n \"folder-intellij\": {\n \"iconPath\": \"./../icons/folder-intellij.svg\"\n },\n \"folder-intellij-open\": {\n \"iconPath\": \"./../icons/folder-intellij-open.svg\"\n },\n \"folder-intellij_light\": {\n \"iconPath\": \"./../icons/folder-intellij_light.svg\"\n },\n \"folder-intellij-open_light\": {\n \"iconPath\": \"./../icons/folder-intellij-open_light.svg\"\n },\n \"folder-azure-pipelines\": {\n \"iconPath\": \"./../icons/folder-azure-pipelines.svg\"\n },\n \"folder-azure-pipelines-open\": {\n \"iconPath\": \"./../icons/folder-azure-pipelines-open.svg\"\n },\n \"folder-mjml\": {\n \"iconPath\": \"./../icons/folder-mjml.svg\"\n },\n \"folder-mjml-open\": {\n \"iconPath\": \"./../icons/folder-mjml-open.svg\"\n },\n \"folder-admin\": {\n \"iconPath\": \"./../icons/folder-admin.svg\"\n },\n \"folder-admin-open\": {\n \"iconPath\": \"./../icons/folder-admin-open.svg\"\n },\n \"folder-scala\": {\n \"iconPath\": \"./../icons/folder-scala.svg\"\n },\n \"folder-scala-open\": {\n \"iconPath\": \"./../icons/folder-scala-open.svg\"\n },\n \"folder-connection\": {\n \"iconPath\": \"./../icons/folder-connection.svg\"\n },\n \"folder-connection-open\": {\n \"iconPath\": \"./../icons/folder-connection-open.svg\"\n },\n \"folder-quasar\": {\n \"iconPath\": \"./../icons/folder-quasar.svg\"\n },\n \"folder-quasar-open\": {\n \"iconPath\": \"./../icons/folder-quasar-open.svg\"\n },\n \"folder-next\": {\n \"iconPath\": \"./../icons/folder-next.svg\"\n },\n \"folder-next-open\": {\n \"iconPath\": \"./../icons/folder-next-open.svg\"\n },\n \"folder-cobol\": {\n \"iconPath\": \"./../icons/folder-cobol.svg\"\n },\n \"folder-cobol-open\": {\n \"iconPath\": \"./../icons/folder-cobol-open.svg\"\n },\n \"folder-yarn\": {\n \"iconPath\": \"./../icons/folder-yarn.svg\"\n },\n \"folder-yarn-open\": {\n \"iconPath\": \"./../icons/folder-yarn-open.svg\"\n },\n \"folder-husky\": {\n \"iconPath\": \"./../icons/folder-husky.svg\"\n },\n \"folder-husky-open\": {\n \"iconPath\": \"./../icons/folder-husky-open.svg\"\n },\n \"folder-storybook\": {\n \"iconPath\": \"./../icons/folder-storybook.svg\"\n },\n \"folder-storybook-open\": {\n \"iconPath\": \"./../icons/folder-storybook-open.svg\"\n },\n \"folder-base\": {\n \"iconPath\": \"./../icons/folder-base.svg\"\n },\n \"folder-base-open\": {\n \"iconPath\": \"./../icons/folder-base-open.svg\"\n },\n \"folder-cart\": {\n \"iconPath\": \"./../icons/folder-cart.svg\"\n },\n \"folder-cart-open\": {\n \"iconPath\": \"./../icons/folder-cart-open.svg\"\n },\n \"folder-home\": {\n \"iconPath\": \"./../icons/folder-home.svg\"\n },\n \"folder-home-open\": {\n \"iconPath\": \"./../icons/folder-home-open.svg\"\n },\n \"folder-project\": {\n \"iconPath\": \"./../icons/folder-project.svg\"\n },\n \"folder-project-open\": {\n \"iconPath\": \"./../icons/folder-project-open.svg\"\n },\n \"folder-interface\": {\n \"iconPath\": \"./../icons/folder-interface.svg\"\n },\n \"folder-interface-open\": {\n \"iconPath\": \"./../icons/folder-interface-open.svg\"\n },\n \"folder-netlify\": {\n \"iconPath\": \"./../icons/folder-netlify.svg\"\n },\n \"folder-netlify-open\": {\n \"iconPath\": \"./../icons/folder-netlify-open.svg\"\n },\n \"folder-contract\": {\n \"iconPath\": \"./../icons/folder-contract.svg\"\n },\n \"folder-contract-open\": {\n \"iconPath\": \"./../icons/folder-contract-open.svg\"\n },\n \"folder-queue\": {\n \"iconPath\": \"./../icons/folder-queue.svg\"\n },\n \"folder-queue-open\": {\n \"iconPath\": \"./../icons/folder-queue-open.svg\"\n },\n \"folder-vercel\": {\n \"iconPath\": \"./../icons/folder-vercel.svg\"\n },\n \"folder-vercel-open\": {\n \"iconPath\": \"./../icons/folder-vercel-open.svg\"\n },\n \"folder-cypress\": {\n \"iconPath\": \"./../icons/folder-cypress.svg\"\n },\n \"folder-cypress-open\": {\n \"iconPath\": \"./../icons/folder-cypress-open.svg\"\n },\n \"folder-decorators\": {\n \"iconPath\": \"./../icons/folder-decorators.svg\"\n },\n \"folder-decorators-open\": {\n \"iconPath\": \"./../icons/folder-decorators-open.svg\"\n },\n \"folder-java\": {\n \"iconPath\": \"./../icons/folder-java.svg\"\n },\n \"folder-java-open\": {\n \"iconPath\": \"./../icons/folder-java-open.svg\"\n },\n \"folder-resolver\": {\n \"iconPath\": \"./../icons/folder-resolver.svg\"\n },\n \"folder-resolver-open\": {\n \"iconPath\": \"./../icons/folder-resolver-open.svg\"\n },\n \"folder-angular\": {\n \"iconPath\": \"./../icons/folder-angular.svg\"\n },\n \"folder-angular-open\": {\n \"iconPath\": \"./../icons/folder-angular-open.svg\"\n },\n \"folder-unity\": {\n \"iconPath\": \"./../icons/folder-unity.svg\"\n },\n \"folder-unity-open\": {\n \"iconPath\": \"./../icons/folder-unity-open.svg\"\n },\n \"folder-pdf\": {\n \"iconPath\": \"./../icons/folder-pdf.svg\"\n },\n \"folder-pdf-open\": {\n \"iconPath\": \"./../icons/folder-pdf-open.svg\"\n },\n \"folder-proto\": {\n \"iconPath\": \"./../icons/folder-proto.svg\"\n },\n \"folder-proto-open\": {\n \"iconPath\": \"./../icons/folder-proto-open.svg\"\n },\n \"folder-plastic\": {\n \"iconPath\": \"./../icons/folder-plastic.svg\"\n },\n \"folder-plastic-open\": {\n \"iconPath\": \"./../icons/folder-plastic-open.svg\"\n },\n \"folder-gamemaker\": {\n \"iconPath\": \"./../icons/folder-gamemaker.svg\"\n },\n \"folder-gamemaker-open\": {\n \"iconPath\": \"./../icons/folder-gamemaker-open.svg\"\n },\n \"folder-mercurial\": {\n \"iconPath\": \"./../icons/folder-mercurial.svg\"\n },\n \"folder-mercurial-open\": {\n \"iconPath\": \"./../icons/folder-mercurial-open.svg\"\n },\n \"folder-godot\": {\n \"iconPath\": \"./../icons/folder-godot.svg\"\n },\n \"folder-godot-open\": {\n \"iconPath\": \"./../icons/folder-godot-open.svg\"\n },\n \"folder\": {\n \"iconPath\": \"./../icons/folder.svg\"\n },\n \"folder-open\": {\n \"iconPath\": \"./../icons/folder-open.svg\"\n },\n \"folder-root\": {\n \"iconPath\": \"./../icons/folder-root.svg\"\n },\n \"folder-root-open\": {\n \"iconPath\": \"./../icons/folder-root-open.svg\"\n }\n },\n \"folderNames\": {\n \"src\": \"folder-src\",\n \"srcs\": \"folder-src\",\n \"source\": \"folder-src\",\n \"sources\": \"folder-src\",\n \"code\": \"folder-src\",\n \"dist\": \"folder-dist\",\n \"out\": \"folder-dist\",\n \"build\": \"folder-dist\",\n \"release\": \"folder-dist\",\n \"bin\": \"folder-dist\",\n \"css\": \"folder-css\",\n \"stylesheet\": \"folder-css\",\n \"stylesheets\": \"folder-css\",\n \"style\": \"folder-css\",\n \"styles\": \"folder-css\",\n \"sass\": \"folder-sass\",\n \"_sass\": \"folder-sass\",\n \"scss\": \"folder-sass\",\n \"_scss\": \"folder-sass\",\n \"_images\": \"folder-images\",\n \"_image\": \"folder-images\",\n \"_imgs\": \"folder-images\",\n \"_img\": \"folder-images\",\n \"images\": \"folder-images\",\n \"image\": \"folder-images\",\n \"imgs\": \"folder-images\",\n \"img\": \"folder-images\",\n \"icons\": \"folder-images\",\n \"icon\": \"folder-images\",\n \"icos\": \"folder-images\",\n \"ico\": \"folder-images\",\n \"figures\": \"folder-images\",\n \"figure\": \"folder-images\",\n \"figs\": \"folder-images\",\n \"fig\": \"folder-images\",\n \"screenshot\": \"folder-images\",\n \"screenshots\": \"folder-images\",\n \"screengrab\": \"folder-images\",\n \"screengrabs\": \"folder-images\",\n \"pic\": \"folder-images\",\n \"pics\": \"folder-images\",\n \"picture\": \"folder-images\",\n \"pictures\": \"folder-images\",\n \"script\": \"folder-scripts\",\n \"scripts\": \"folder-scripts\",\n \"node_modules\": \"folder-node\",\n \"js\": \"folder-javascript\",\n \"javascript\": \"folder-javascript\",\n \"javascripts\": \"folder-javascript\",\n \"json\": \"folder-json\",\n \"jsons\": \"folder-json\",\n \"font\": \"folder-font\",\n \"fonts\": \"folder-font\",\n \"bower_components\": \"folder-bower\",\n \"test\": \"folder-test\",\n \"tests\": \"folder-test\",\n \"testing\": \"folder-test\",\n \"__tests__\": \"folder-test\",\n \"__snapshots__\": \"folder-test\",\n \"__mocks__\": \"folder-test\",\n \"__fixtures__\": \"folder-test\",\n \"__test__\": \"folder-test\",\n \"spec\": \"folder-test\",\n \"specs\": \"folder-test\",\n \"jinja\": \"folder-jinja\",\n \"jinja2\": \"folder-jinja\",\n \"j2\": \"folder-jinja\",\n \"markdown\": \"folder-markdown\",\n \"md\": \"folder-markdown\",\n \"php\": \"folder-php\",\n \"phpmailer\": \"folder-phpmailer\",\n \"sublime\": \"folder-sublime\",\n \"_post\": \"folder-docs\",\n \"_posts\": \"folder-docs\",\n \"doc\": \"folder-docs\",\n \"docs\": \"folder-docs\",\n \"document\": \"folder-docs\",\n \"documents\": \"folder-docs\",\n \"documentation\": \"folder-docs\",\n \"post\": \"folder-docs\",\n \"posts\": \"folder-docs\",\n \"article\": \"folder-docs\",\n \"articles\": \"folder-docs\",\n \".git\": \"folder-git\",\n \"patches\": \"folder-git\",\n \"githooks\": \"folder-git\",\n \".githooks\": \"folder-git\",\n \"submodules\": \"folder-git\",\n \".submodules\": \"folder-git\",\n \".github\": \"folder-github\",\n \"github\": \"folder-github\",\n \".gitlab\": \"folder-gitlab\",\n \".vscode\": \"folder-vscode\",\n \".vscode-test\": \"folder-vscode\",\n \"view\": \"folder-views\",\n \"views\": \"folder-views\",\n \"screen\": \"folder-views\",\n \"screens\": \"folder-views\",\n \"page\": \"folder-views\",\n \"pages\": \"folder-views\",\n \"html\": \"folder-views\",\n \"vue\": \"folder-vue\",\n \".vuepress\": \"folder-vuepress\",\n \".expo\": \"folder-expo\",\n \".expo-shared\": \"folder-expo\",\n \"cfg\": \"folder-config\",\n \"cfgs\": \"folder-config\",\n \"conf\": \"folder-config\",\n \"confs\": \"folder-config\",\n \"config\": \"folder-config\",\n \"configs\": \"folder-config\",\n \"configuration\": \"folder-config\",\n \"configurations\": \"folder-config\",\n \"setting\": \"folder-config\",\n \".setting\": \"folder-config\",\n \"settings\": \"folder-config\",\n \".settings\": \"folder-config\",\n \"META-INF\": \"folder-config\",\n \"i18n\": \"folder-i18n\",\n \"internationalization\": \"folder-i18n\",\n \"lang\": \"folder-i18n\",\n \"langs\": \"folder-i18n\",\n \"language\": \"folder-i18n\",\n \"languages\": \"folder-i18n\",\n \"locale\": \"folder-i18n\",\n \"locales\": \"folder-i18n\",\n \"l10n\": \"folder-i18n\",\n \"localization\": \"folder-i18n\",\n \"translation\": \"folder-i18n\",\n \"translate\": \"folder-i18n\",\n \"translations\": \"folder-i18n\",\n \".tx\": \"folder-i18n\",\n \"components\": \"folder-components\",\n \"widget\": \"folder-components\",\n \"widgets\": \"folder-components\",\n \"fragments\": \"folder-components\",\n \".verdaccio\": \"folder-verdaccio\",\n \"verdaccio\": \"folder-verdaccio\",\n \"aurelia_project\": \"folder-aurelia\",\n \"resource\": \"folder-resource\",\n \"resources\": \"folder-resource\",\n \"res\": \"folder-resource\",\n \"asset\": \"folder-resource\",\n \"assets\": \"folder-resource\",\n \"static\": \"folder-resource\",\n \"report\": \"folder-resource\",\n \"reports\": \"folder-resource\",\n \"lib\": \"folder-lib\",\n \"libs\": \"folder-lib\",\n \"library\": \"folder-lib\",\n \"libraries\": \"folder-lib\",\n \"vendor\": \"folder-lib\",\n \"vendors\": \"folder-lib\",\n \"third-party\": \"folder-lib\",\n \"themes\": \"folder-theme\",\n \"theme\": \"folder-theme\",\n \"color\": \"folder-theme\",\n \"colors\": \"folder-theme\",\n \"design\": \"folder-theme\",\n \"designs\": \"folder-theme\",\n \"webpack\": \"folder-webpack\",\n \".webpack\": \"folder-webpack\",\n \"global\": \"folder-global\",\n \"_site\": \"folder-public\",\n \"public\": \"folder-public\",\n \"www\": \"folder-public\",\n \"wwwroot\": \"folder-public\",\n \"web\": \"folder-public\",\n \"website\": \"folder-public\",\n \"site\": \"folder-public\",\n \"browser\": \"folder-public\",\n \"browsers\": \"folder-public\",\n \"include\": \"folder-include\",\n \"includes\": \"folder-include\",\n \"_includes\": \"folder-include\",\n \"inc\": \"folder-include\",\n \"partials\": \"folder-include\",\n \"_partials\": \"folder-include\",\n \"docker\": \"folder-docker\",\n \"dockerfiles\": \"folder-docker\",\n \".docker\": \"folder-docker\",\n \"db\": \"folder-database\",\n \"database\": \"folder-database\",\n \"databases\": \"folder-database\",\n \"sql\": \"folder-database\",\n \"data\": \"folder-database\",\n \"_data\": \"folder-database\",\n \"log\": \"folder-log\",\n \"logs\": \"folder-log\",\n \"target\": \"folder-target\",\n \"temp\": \"folder-temp\",\n \".temp\": \"folder-temp\",\n \"tmp\": \"folder-temp\",\n \".tmp\": \"folder-temp\",\n \"cached\": \"folder-temp\",\n \"cache\": \"folder-temp\",\n \".cache\": \"folder-temp\",\n \"aws\": \"folder-aws\",\n \".aws\": \"folder-aws\",\n \"aud\": \"folder-audio\",\n \"auds\": \"folder-audio\",\n \"audio\": \"folder-audio\",\n \"audios\": \"folder-audio\",\n \"music\": \"folder-audio\",\n \"sound\": \"folder-audio\",\n \"sounds\": \"folder-audio\",\n \"vid\": \"folder-video\",\n \"vids\": \"folder-video\",\n \"video\": \"folder-video\",\n \"videos\": \"folder-video\",\n \"movie\": \"folder-video\",\n \"movies\": \"folder-video\",\n \"kubernetes\": \"folder-kubernetes\",\n \".kubernetes\": \"folder-kubernetes\",\n \"k8s\": \"folder-kubernetes\",\n \".k8s\": \"folder-kubernetes\",\n \"import\": \"folder-import\",\n \"imports\": \"folder-import\",\n \"imported\": \"folder-import\",\n \"export\": \"folder-export\",\n \"exports\": \"folder-export\",\n \"exported\": \"folder-export\",\n \"wakatime\": \"folder-wakatime\",\n \".circleci\": \"folder-circleci\",\n \".wordpress-org\": \"folder-wordpress\",\n \"wp-content\": \"folder-wordpress\",\n \"gradle\": \"folder-gradle\",\n \".gradle\": \"folder-gradle\",\n \"coverage\": \"folder-coverage\",\n \".nyc-output\": \"folder-coverage\",\n \".nyc_output\": \"folder-coverage\",\n \"e2e\": \"folder-coverage\",\n \"it\": \"folder-coverage\",\n \"integration-test\": \"folder-coverage\",\n \"integration-tests\": \"folder-coverage\",\n \"__integration-test__\": \"folder-coverage\",\n \"__integration-tests__\": \"folder-coverage\",\n \"class\": \"folder-class\",\n \"classes\": \"folder-class\",\n \"model\": \"folder-class\",\n \"models\": \"folder-class\",\n \"schemas\": \"folder-class\",\n \"schema\": \"folder-class\",\n \"other\": \"folder-other\",\n \"others\": \"folder-other\",\n \"misc\": \"folder-other\",\n \"miscellaneous\": \"folder-other\",\n \"extra\": \"folder-other\",\n \"extras\": \"folder-other\",\n \"etc\": \"folder-other\",\n \"lua\": \"folder-lua\",\n \"typescript\": \"folder-typescript\",\n \"ts\": \"folder-typescript\",\n \"typings\": \"folder-typescript\",\n \"@types\": \"folder-typescript\",\n \"types\": \"folder-typescript\",\n \"graphql\": \"folder-graphql\",\n \"gql\": \"folder-graphql\",\n \"routes\": \"folder-routes\",\n \"router\": \"folder-routes\",\n \"routers\": \"folder-routes\",\n \".ci\": \"folder-ci\",\n \"ci\": \"folder-ci\",\n \"benchmark\": \"folder-benchmark\",\n \"benchmarks\": \"folder-benchmark\",\n \"performance\": \"folder-benchmark\",\n \"measure\": \"folder-benchmark\",\n \"measures\": \"folder-benchmark\",\n \"measurement\": \"folder-benchmark\",\n \"messages\": \"folder-messages\",\n \"messaging\": \"folder-messages\",\n \"forum\": \"folder-messages\",\n \"chat\": \"folder-messages\",\n \"chats\": \"folder-messages\",\n \"conversation\": \"folder-messages\",\n \"conversations\": \"folder-messages\",\n \"less\": \"folder-less\",\n \"gulp\": \"folder-gulp\",\n \"gulp-tasks\": \"folder-gulp\",\n \"gulpfile.js\": \"folder-gulp\",\n \"gulpfile.mjs\": \"folder-gulp\",\n \"gulpfile.ts\": \"folder-gulp\",\n \"gulpfile.babel.js\": \"folder-gulp\",\n \"python\": \"folder-python\",\n \"__pycache__\": \"folder-python\",\n \".pytest_cache\": \"folder-python\",\n \"debug\": \"folder-debug\",\n \"debugging\": \"folder-debug\",\n \"fastlane\": \"folder-fastlane\",\n \"plugin\": \"folder-plugin\",\n \"plugins\": \"folder-plugin\",\n \"_plugins\": \"folder-plugin\",\n \"extension\": \"folder-plugin\",\n \"extensions\": \"folder-plugin\",\n \"addon\": \"folder-plugin\",\n \"addons\": \"folder-plugin\",\n \"module\": \"folder-plugin\",\n \"modules\": \"folder-plugin\",\n \"middleware\": \"folder-middleware\",\n \"middlewares\": \"folder-middleware\",\n \"controller\": \"folder-controller\",\n \"controllers\": \"folder-controller\",\n \"service\": \"folder-controller\",\n \"services\": \"folder-controller\",\n \"provider\": \"folder-controller\",\n \"providers\": \"folder-controller\",\n \"handler\": \"folder-controller\",\n \"handlers\": \"folder-controller\",\n \"ansible\": \"folder-ansible\",\n \"server\": \"folder-server\",\n \"servers\": \"folder-server\",\n \"backend\": \"folder-server\",\n \"client\": \"folder-client\",\n \"clients\": \"folder-client\",\n \"frontend\": \"folder-client\",\n \"pwa\": \"folder-client\",\n \"tasks\": \"folder-tasks\",\n \"tickets\": \"folder-tasks\",\n \"android\": \"folder-android\",\n \"ios\": \"folder-ios\",\n \"uploads\": \"folder-upload\",\n \"upload\": \"folder-upload\",\n \"downloads\": \"folder-download\",\n \"download\": \"folder-download\",\n \"tools\": \"folder-tools\",\n \"toolkit\": \"folder-tools\",\n \"toolkits\": \"folder-tools\",\n \"toolbox\": \"folder-tools\",\n \"toolboxes\": \"folder-tools\",\n \"helpers\": \"folder-helper\",\n \"helper\": \"folder-helper\",\n \".serverless\": \"folder-serverless\",\n \"serverless\": \"folder-serverless\",\n \"api\": \"folder-api\",\n \"apis\": \"folder-api\",\n \"restapi\": \"folder-api\",\n \"app\": \"folder-app\",\n \"apps\": \"folder-app\",\n \"apollo\": \"folder-apollo\",\n \"apollo-client\": \"folder-apollo\",\n \"apollo-cache\": \"folder-apollo\",\n \"apollo-config\": \"folder-apollo\",\n \"arc\": \"folder-archive\",\n \"arcs\": \"folder-archive\",\n \"archive\": \"folder-archive\",\n \"archives\": \"folder-archive\",\n \"archival\": \"folder-archive\",\n \"bkp\": \"folder-archive\",\n \"bkps\": \"folder-archive\",\n \"bak\": \"folder-archive\",\n \"baks\": \"folder-archive\",\n \"backup\": \"folder-archive\",\n \"backups\": \"folder-archive\",\n \"back-up\": \"folder-archive\",\n \"back-ups\": \"folder-archive\",\n \"batch\": \"folder-batch\",\n \"batchs\": \"folder-batch\",\n \"batches\": \"folder-batch\",\n \"buildkite\": \"folder-buildkite\",\n \".buildkite\": \"folder-buildkite\",\n \"cluster\": \"folder-cluster\",\n \"clusters\": \"folder-cluster\",\n \"command\": \"folder-command\",\n \"commands\": \"folder-command\",\n \"cmd\": \"folder-command\",\n \"cli\": \"folder-command\",\n \"clis\": \"folder-command\",\n \"constant\": \"folder-constant\",\n \"constants\": \"folder-constant\",\n \"container\": \"folder-container\",\n \"containers\": \"folder-container\",\n \".devcontainer\": \"folder-container\",\n \"content\": \"folder-content\",\n \"contents\": \"folder-content\",\n \"context\": \"folder-context\",\n \"contexts\": \"folder-context\",\n \"core\": \"folder-core\",\n \"delta\": \"folder-delta\",\n \"deltas\": \"folder-delta\",\n \"changes\": \"folder-delta\",\n \"dump\": \"folder-dump\",\n \"dumps\": \"folder-dump\",\n \"demo\": \"folder-examples\",\n \"demos\": \"folder-examples\",\n \"example\": \"folder-examples\",\n \"examples\": \"folder-examples\",\n \"sample\": \"folder-examples\",\n \"samples\": \"folder-examples\",\n \"sample-data\": \"folder-examples\",\n \".env\": \"folder-environment\",\n \".environment\": \"folder-environment\",\n \"env\": \"folder-environment\",\n \"envs\": \"folder-environment\",\n \"environment\": \"folder-environment\",\n \"environments\": \"folder-environment\",\n \".venv\": \"folder-environment\",\n \"func\": \"folder-functions\",\n \"funcs\": \"folder-functions\",\n \"function\": \"folder-functions\",\n \"functions\": \"folder-functions\",\n \"lambda\": \"folder-functions\",\n \"lambdas\": \"folder-functions\",\n \"logic\": \"folder-functions\",\n \"math\": \"folder-functions\",\n \"maths\": \"folder-functions\",\n \"calc\": \"folder-functions\",\n \"calcs\": \"folder-functions\",\n \"calculation\": \"folder-functions\",\n \"calculations\": \"folder-functions\",\n \"generator\": \"folder-generator\",\n \"generators\": \"folder-generator\",\n \"generated\": \"folder-generator\",\n \"cfn-gen\": \"folder-generator\",\n \"gen\": \"folder-generator\",\n \"gens\": \"folder-generator\",\n \"auto\": \"folder-generator\",\n \"hook\": \"folder-hook\",\n \"hooks\": \"folder-hook\",\n \"trigger\": \"folder-hook\",\n \"triggers\": \"folder-hook\",\n \"job\": \"folder-job\",\n \"jobs\": \"folder-job\",\n \"keys\": \"folder-keys\",\n \"key\": \"folder-keys\",\n \"token\": \"folder-keys\",\n \"tokens\": \"folder-keys\",\n \"jwt\": \"folder-keys\",\n \"layout\": \"folder-layout\",\n \"layouts\": \"folder-layout\",\n \"_layouts\": \"folder-layout\",\n \"mail\": \"folder-mail\",\n \"mails\": \"folder-mail\",\n \"email\": \"folder-mail\",\n \"emails\": \"folder-mail\",\n \"smtp\": \"folder-mail\",\n \"mailers\": \"folder-mail\",\n \"mappings\": \"folder-mappings\",\n \"mapping\": \"folder-mappings\",\n \"meta\": \"folder-meta\",\n \".changesets\": \"folder-changesets\",\n \".changeset\": \"folder-changesets\",\n \"package\": \"folder-packages\",\n \"packages\": \"folder-packages\",\n \"pkg\": \"folder-packages\",\n \"pkgs\": \"folder-packages\",\n \"shared\": \"folder-shared\",\n \"common\": \"folder-shared\",\n \"glsl\": \"folder-shader\",\n \"hlsl\": \"folder-shader\",\n \"shader\": \"folder-shader\",\n \"shaders\": \"folder-shader\",\n \"stack\": \"folder-stack\",\n \"stacks\": \"folder-stack\",\n \"template\": \"folder-template\",\n \"templates\": \"folder-template\",\n \"util\": \"folder-utils\",\n \"utils\": \"folder-utils\",\n \"utility\": \"folder-utils\",\n \"utilities\": \"folder-utils\",\n \"supabase\": \"folder-supabase\",\n \".supabase\": \"folder-supabase\",\n \"private\": \"folder-private\",\n \".private\": \"folder-private\",\n \"error\": \"folder-error\",\n \"errors\": \"folder-error\",\n \"err\": \"folder-error\",\n \"event\": \"folder-event\",\n \"events\": \"folder-event\",\n \"auth\": \"folder-secure\",\n \"authentication\": \"folder-secure\",\n \"secure\": \"folder-secure\",\n \"security\": \"folder-secure\",\n \"cert\": \"folder-secure\",\n \"certs\": \"folder-secure\",\n \"certificate\": \"folder-secure\",\n \"certificates\": \"folder-secure\",\n \"ssl\": \"folder-secure\",\n \"custom\": \"folder-custom\",\n \"customs\": \"folder-custom\",\n \"_draft\": \"folder-mock\",\n \"_drafts\": \"folder-mock\",\n \"mock\": \"folder-mock\",\n \"mocks\": \"folder-mock\",\n \"fixture\": \"folder-mock\",\n \"fixtures\": \"folder-mock\",\n \"draft\": \"folder-mock\",\n \"drafts\": \"folder-mock\",\n \"concept\": \"folder-mock\",\n \"concepts\": \"folder-mock\",\n \"sketch\": \"folder-mock\",\n \"sketches\": \"folder-mock\",\n \"syntax\": \"folder-syntax\",\n \"syntaxes\": \"folder-syntax\",\n \"spellcheck\": \"folder-syntax\",\n \"vm\": \"folder-vm\",\n \"vms\": \"folder-vm\",\n \"stylus\": \"folder-stylus\",\n \"flow-typed\": \"folder-flow\",\n \"rule\": \"folder-rules\",\n \"rules\": \"folder-rules\",\n \"validation\": \"folder-rules\",\n \"validations\": \"folder-rules\",\n \"validator\": \"folder-rules\",\n \"validators\": \"folder-rules\",\n \"review\": \"folder-review\",\n \"reviews\": \"folder-review\",\n \"revisal\": \"folder-review\",\n \"revisals\": \"folder-review\",\n \"reviewed\": \"folder-review\",\n \"anim\": \"folder-animation\",\n \"anims\": \"folder-animation\",\n \"animation\": \"folder-animation\",\n \"animations\": \"folder-animation\",\n \"animated\": \"folder-animation\",\n \"guard\": \"folder-guard\",\n \"guards\": \"folder-guard\",\n \"prisma\": \"folder-prisma\",\n \"pipe\": \"folder-pipe\",\n \"pipes\": \"folder-pipe\",\n \"svg\": \"folder-svg\",\n \"svgs\": \"folder-svg\",\n \"terraform\": \"folder-terraform\",\n \".terraform\": \"folder-terraform\",\n \"mobile\": \"folder-mobile\",\n \"mobiles\": \"folder-mobile\",\n \"portable\": \"folder-mobile\",\n \"portability\": \"folder-mobile\",\n \".stencil\": \"folder-stencil\",\n \"firebase\": \"folder-firebase\",\n \".firebase\": \"folder-firebase\",\n \"svelte\": \"folder-svelte\",\n \".svelte-kit\": \"folder-svelte\",\n \"update\": \"folder-update\",\n \"updates\": \"folder-update\",\n \"upgrade\": \"folder-update\",\n \"upgrades\": \"folder-update\",\n \".idea\": \"folder-intellij\",\n \".azure-pipelines\": \"folder-azure-pipelines\",\n \".azure-pipelines-ci\": \"folder-azure-pipelines\",\n \"mjml\": \"folder-mjml\",\n \"admin\": \"folder-admin\",\n \"manager\": \"folder-admin\",\n \"moderator\": \"folder-admin\",\n \"scala\": \"folder-scala\",\n \"connection\": \"folder-connection\",\n \"connections\": \"folder-connection\",\n \"integration\": \"folder-connection\",\n \"integrations\": \"folder-connection\",\n \".quasar\": \"folder-quasar\",\n \".next\": \"folder-next\",\n \"cobol\": \"folder-cobol\",\n \"yarn\": \"folder-yarn\",\n \".yarn\": \"folder-yarn\",\n \"husky\": \"folder-husky\",\n \".husky\": \"folder-husky\",\n \".storybook\": \"folder-storybook\",\n \"storybook\": \"folder-storybook\",\n \"stories\": \"folder-storybook\",\n \"__stories__\": \"folder-storybook\",\n \"base\": \"folder-base\",\n \".base\": \"folder-base\",\n \"bases\": \"folder-base\",\n \"cart\": \"folder-cart\",\n \"shopping-cart\": \"folder-cart\",\n \"shopping\": \"folder-cart\",\n \"shop\": \"folder-cart\",\n \"home\": \"folder-home\",\n \".home\": \"folder-home\",\n \"start\": \"folder-home\",\n \".start\": \"folder-home\",\n \"project\": \"folder-project\",\n \"projects\": \"folder-project\",\n \".project\": \"folder-project\",\n \".projects\": \"folder-project\",\n \"interface\": \"folder-interface\",\n \"interfaces\": \"folder-interface\",\n \".netlify\": \"folder-netlify\",\n \"pact\": \"folder-contract\",\n \"pacts\": \"folder-contract\",\n \"contract\": \"folder-contract\",\n \".contract\": \"folder-contract\",\n \"contracts\": \"folder-contract\",\n \"contract-testing\": \"folder-contract\",\n \"contract-test\": \"folder-contract\",\n \"contract-tests\": \"folder-contract\",\n \"queue\": \"folder-queue\",\n \"queues\": \"folder-queue\",\n \"bull\": \"folder-queue\",\n \"mq\": \"folder-queue\",\n \"vercel\": \"folder-vercel\",\n \".vercel\": \"folder-vercel\",\n \"now\": \"folder-vercel\",\n \".now\": \"folder-vercel\",\n \"cypress\": \"folder-cypress\",\n \".cypress\": \"folder-cypress\",\n \"decorator\": \"folder-decorators\",\n \"decorators\": \"folder-decorators\",\n \"java\": \"folder-java\",\n \"resolver\": \"folder-resolver\",\n \"resolvers\": \"folder-resolver\",\n \"angular\": \"folder-angular\",\n \".angular\": \"folder-angular\",\n \"unity\": \"folder-unity\",\n \"pdf\": \"folder-pdf\",\n \"pdfs\": \"folder-pdf\",\n \"protobufs\": \"folder-proto\",\n \"proto\": \"folder-proto\",\n \"plastic\": \"folder-plastic\",\n \".plastic\": \"folder-plastic\",\n \"gamemaker\": \"folder-gamemaker\",\n \"gamemaker2\": \"folder-gamemaker\",\n \".hg\": \"folder-mercurial\",\n \"hghooks\": \"folder-mercurial\",\n \".hghooks\": \"folder-mercurial\",\n \".hgext\": \"folder-mercurial\",\n \"godot\": \"folder-godot\",\n \".godot\": \"folder-godot\",\n \"godot-cpp\": \"folder-godot\",\n \".godot-cpp\": \"folder-godot\"\n },\n \"folderNamesExpanded\": {\n \"src\": \"folder-src-open\",\n \"srcs\": \"folder-src-open\",\n \"source\": \"folder-src-open\",\n \"sources\": \"folder-src-open\",\n \"code\": \"folder-src-open\",\n \"dist\": \"folder-dist-open\",\n \"out\": \"folder-dist-open\",\n \"build\": \"folder-dist-open\",\n \"release\": \"folder-dist-open\",\n \"bin\": \"folder-dist-open\",\n \"css\": \"folder-css-open\",\n \"stylesheet\": \"folder-css-open\",\n \"stylesheets\": \"folder-css-open\",\n \"style\": \"folder-css-open\",\n \"styles\": \"folder-css-open\",\n \"sass\": \"folder-sass-open\",\n \"_sass\": \"folder-sass-open\",\n \"scss\": \"folder-sass-open\",\n \"_scss\": \"folder-sass-open\",\n \"_images\": \"folder-images-open\",\n \"_image\": \"folder-images-open\",\n \"_imgs\": \"folder-images-open\",\n \"_img\": \"folder-images-open\",\n \"images\": \"folder-images-open\",\n \"image\": \"folder-images-open\",\n \"imgs\": \"folder-images-open\",\n \"img\": \"folder-images-open\",\n \"icons\": \"folder-images-open\",\n \"icon\": \"folder-images-open\",\n \"icos\": \"folder-images-open\",\n \"ico\": \"folder-images-open\",\n \"figures\": \"folder-images-open\",\n \"figure\": \"folder-images-open\",\n \"figs\": \"folder-images-open\",\n \"fig\": \"folder-images-open\",\n \"screenshot\": \"folder-images-open\",\n \"screenshots\": \"folder-images-open\",\n \"screengrab\": \"folder-images-open\",\n \"screengrabs\": \"folder-images-open\",\n \"pic\": \"folder-images-open\",\n \"pics\": \"folder-images-open\",\n \"picture\": \"folder-images-open\",\n \"pictures\": \"folder-images-open\",\n \"script\": \"folder-scripts-open\",\n \"scripts\": \"folder-scripts-open\",\n \"node_modules\": \"folder-node-open\",\n \"js\": \"folder-javascript-open\",\n \"javascript\": \"folder-javascript-open\",\n \"javascripts\": \"folder-javascript-open\",\n \"json\": \"folder-json-open\",\n \"jsons\": \"folder-json-open\",\n \"font\": \"folder-font-open\",\n \"fonts\": \"folder-font-open\",\n \"bower_components\": \"folder-bower-open\",\n \"test\": \"folder-test-open\",\n \"tests\": \"folder-test-open\",\n \"testing\": \"folder-test-open\",\n \"__tests__\": \"folder-test-open\",\n \"__snapshots__\": \"folder-test-open\",\n \"__mocks__\": \"folder-test-open\",\n \"__fixtures__\": \"folder-test-open\",\n \"__test__\": \"folder-test-open\",\n \"spec\": \"folder-test-open\",\n \"specs\": \"folder-test-open\",\n \"jinja\": \"folder-jinja-open\",\n \"jinja2\": \"folder-jinja-open\",\n \"j2\": \"folder-jinja-open\",\n \"markdown\": \"folder-markdown-open\",\n \"md\": \"folder-markdown-open\",\n \"php\": \"folder-php-open\",\n \"phpmailer\": \"folder-phpmailer-open\",\n \"sublime\": \"folder-sublime-open\",\n \"_post\": \"folder-docs-open\",\n \"_posts\": \"folder-docs-open\",\n \"doc\": \"folder-docs-open\",\n \"docs\": \"folder-docs-open\",\n \"document\": \"folder-docs-open\",\n \"documents\": \"folder-docs-open\",\n \"documentation\": \"folder-docs-open\",\n \"post\": \"folder-docs-open\",\n \"posts\": \"folder-docs-open\",\n \"article\": \"folder-docs-open\",\n \"articles\": \"folder-docs-open\",\n \".git\": \"folder-git-open\",\n \"patches\": \"folder-git-open\",\n \"githooks\": \"folder-git-open\",\n \".githooks\": \"folder-git-open\",\n \"submodules\": \"folder-git-open\",\n \".submodules\": \"folder-git-open\",\n \".github\": \"folder-github-open\",\n \"github\": \"folder-github-open\",\n \".gitlab\": \"folder-gitlab-open\",\n \".vscode\": \"folder-vscode-open\",\n \".vscode-test\": \"folder-vscode-open\",\n \"view\": \"folder-views-open\",\n \"views\": \"folder-views-open\",\n \"screen\": \"folder-views-open\",\n \"screens\": \"folder-views-open\",\n \"page\": \"folder-views-open\",\n \"pages\": \"folder-views-open\",\n \"html\": \"folder-views-open\",\n \"vue\": \"folder-vue-open\",\n \".vuepress\": \"folder-vuepress-open\",\n \".expo\": \"folder-expo-open\",\n \".expo-shared\": \"folder-expo-open\",\n \"cfg\": \"folder-config-open\",\n \"cfgs\": \"folder-config-open\",\n \"conf\": \"folder-config-open\",\n \"confs\": \"folder-config-open\",\n \"config\": \"folder-config-open\",\n \"configs\": \"folder-config-open\",\n \"configuration\": \"folder-config-open\",\n \"configurations\": \"folder-config-open\",\n \"setting\": \"folder-config-open\",\n \".setting\": \"folder-config-open\",\n \"settings\": \"folder-config-open\",\n \".settings\": \"folder-config-open\",\n \"META-INF\": \"folder-config-open\",\n \"i18n\": \"folder-i18n-open\",\n \"internationalization\": \"folder-i18n-open\",\n \"lang\": \"folder-i18n-open\",\n \"langs\": \"folder-i18n-open\",\n \"language\": \"folder-i18n-open\",\n \"languages\": \"folder-i18n-open\",\n \"locale\": \"folder-i18n-open\",\n \"locales\": \"folder-i18n-open\",\n \"l10n\": \"folder-i18n-open\",\n \"localization\": \"folder-i18n-open\",\n \"translation\": \"folder-i18n-open\",\n \"translate\": \"folder-i18n-open\",\n \"translations\": \"folder-i18n-open\",\n \".tx\": \"folder-i18n-open\",\n \"components\": \"folder-components-open\",\n \"widget\": \"folder-components-open\",\n \"widgets\": \"folder-components-open\",\n \"fragments\": \"folder-components-open\",\n \".verdaccio\": \"folder-verdaccio-open\",\n \"verdaccio\": \"folder-verdaccio-open\",\n \"aurelia_project\": \"folder-aurelia-open\",\n \"resource\": \"folder-resource-open\",\n \"resources\": \"folder-resource-open\",\n \"res\": \"folder-resource-open\",\n \"asset\": \"folder-resource-open\",\n \"assets\": \"folder-resource-open\",\n \"static\": \"folder-resource-open\",\n \"report\": \"folder-resource-open\",\n \"reports\": \"folder-resource-open\",\n \"lib\": \"folder-lib-open\",\n \"libs\": \"folder-lib-open\",\n \"library\": \"folder-lib-open\",\n \"libraries\": \"folder-lib-open\",\n \"vendor\": \"folder-lib-open\",\n \"vendors\": \"folder-lib-open\",\n \"third-party\": \"folder-lib-open\",\n \"themes\": \"folder-theme-open\",\n \"theme\": \"folder-theme-open\",\n \"color\": \"folder-theme-open\",\n \"colors\": \"folder-theme-open\",\n \"design\": \"folder-theme-open\",\n \"designs\": \"folder-theme-open\",\n \"webpack\": \"folder-webpack-open\",\n \".webpack\": \"folder-webpack-open\",\n \"global\": \"folder-global-open\",\n \"_site\": \"folder-public-open\",\n \"public\": \"folder-public-open\",\n \"www\": \"folder-public-open\",\n \"wwwroot\": \"folder-public-open\",\n \"web\": \"folder-public-open\",\n \"website\": \"folder-public-open\",\n \"site\": \"folder-public-open\",\n \"browser\": \"folder-public-open\",\n \"browsers\": \"folder-public-open\",\n \"include\": \"folder-include-open\",\n \"includes\": \"folder-include-open\",\n \"_includes\": \"folder-include-open\",\n \"inc\": \"folder-include-open\",\n \"partials\": \"folder-include-open\",\n \"_partials\": \"folder-include-open\",\n \"docker\": \"folder-docker-open\",\n \"dockerfiles\": \"folder-docker-open\",\n \".docker\": \"folder-docker-open\",\n \"db\": \"folder-database-open\",\n \"database\": \"folder-database-open\",\n \"databases\": \"folder-database-open\",\n \"sql\": \"folder-database-open\",\n \"data\": \"folder-database-open\",\n \"_data\": \"folder-database-open\",\n \"log\": \"folder-log-open\",\n \"logs\": \"folder-log-open\",\n \"target\": \"folder-target-open\",\n \"temp\": \"folder-temp-open\",\n \".temp\": \"folder-temp-open\",\n \"tmp\": \"folder-temp-open\",\n \".tmp\": \"folder-temp-open\",\n \"cached\": \"folder-temp-open\",\n \"cache\": \"folder-temp-open\",\n \".cache\": \"folder-temp-open\",\n \"aws\": \"folder-aws-open\",\n \".aws\": \"folder-aws-open\",\n \"aud\": \"folder-audio-open\",\n \"auds\": \"folder-audio-open\",\n \"audio\": \"folder-audio-open\",\n \"audios\": \"folder-audio-open\",\n \"music\": \"folder-audio-open\",\n \"sound\": \"folder-audio-open\",\n \"sounds\": \"folder-audio-open\",\n \"vid\": \"folder-video-open\",\n \"vids\": \"folder-video-open\",\n \"video\": \"folder-video-open\",\n \"videos\": \"folder-video-open\",\n \"movie\": \"folder-video-open\",\n \"movies\": \"folder-video-open\",\n \"kubernetes\": \"folder-kubernetes-open\",\n \".kubernetes\": \"folder-kubernetes-open\",\n \"k8s\": \"folder-kubernetes-open\",\n \".k8s\": \"folder-kubernetes-open\",\n \"import\": \"folder-import-open\",\n \"imports\": \"folder-import-open\",\n \"imported\": \"folder-import-open\",\n \"export\": \"folder-export-open\",\n \"exports\": \"folder-export-open\",\n \"exported\": \"folder-export-open\",\n \"wakatime\": \"folder-wakatime-open\",\n \".circleci\": \"folder-circleci-open\",\n \".wordpress-org\": \"folder-wordpress-open\",\n \"wp-content\": \"folder-wordpress-open\",\n \"gradle\": \"folder-gradle-open\",\n \".gradle\": \"folder-gradle-open\",\n \"coverage\": \"folder-coverage-open\",\n \".nyc-output\": \"folder-coverage-open\",\n \".nyc_output\": \"folder-coverage-open\",\n \"e2e\": \"folder-coverage-open\",\n \"it\": \"folder-coverage-open\",\n \"integration-test\": \"folder-coverage-open\",\n \"integration-tests\": \"folder-coverage-open\",\n \"__integration-test__\": \"folder-coverage-open\",\n \"__integration-tests__\": \"folder-coverage-open\",\n \"class\": \"folder-class-open\",\n \"classes\": \"folder-class-open\",\n \"model\": \"folder-class-open\",\n \"models\": \"folder-class-open\",\n \"schemas\": \"folder-class-open\",\n \"schema\": \"folder-class-open\",\n \"other\": \"folder-other-open\",\n \"others\": \"folder-other-open\",\n \"misc\": \"folder-other-open\",\n \"miscellaneous\": \"folder-other-open\",\n \"extra\": \"folder-other-open\",\n \"extras\": \"folder-other-open\",\n \"etc\": \"folder-other-open\",\n \"lua\": \"folder-lua-open\",\n \"typescript\": \"folder-typescript-open\",\n \"ts\": \"folder-typescript-open\",\n \"typings\": \"folder-typescript-open\",\n \"@types\": \"folder-typescript-open\",\n \"types\": \"folder-typescript-open\",\n \"graphql\": \"folder-graphql-open\",\n \"gql\": \"folder-graphql-open\",\n \"routes\": \"folder-routes-open\",\n \"router\": \"folder-routes-open\",\n \"routers\": \"folder-routes-open\",\n \".ci\": \"folder-ci-open\",\n \"ci\": \"folder-ci-open\",\n \"benchmark\": \"folder-benchmark-open\",\n \"benchmarks\": \"folder-benchmark-open\",\n \"performance\": \"folder-benchmark-open\",\n \"measure\": \"folder-benchmark-open\",\n \"measures\": \"folder-benchmark-open\",\n \"measurement\": \"folder-benchmark-open\",\n \"messages\": \"folder-messages-open\",\n \"messaging\": \"folder-messages-open\",\n \"forum\": \"folder-messages-open\",\n \"chat\": \"folder-messages-open\",\n \"chats\": \"folder-messages-open\",\n \"conversation\": \"folder-messages-open\",\n \"conversations\": \"folder-messages-open\",\n \"less\": \"folder-less-open\",\n \"gulp\": \"folder-gulp-open\",\n \"gulp-tasks\": \"folder-gulp-open\",\n \"gulpfile.js\": \"folder-gulp-open\",\n \"gulpfile.mjs\": \"folder-gulp-open\",\n \"gulpfile.ts\": \"folder-gulp-open\",\n \"gulpfile.babel.js\": \"folder-gulp-open\",\n \"python\": \"folder-python-open\",\n \"__pycache__\": \"folder-python-open\",\n \".pytest_cache\": \"folder-python-open\",\n \"debug\": \"folder-debug-open\",\n \"debugging\": \"folder-debug-open\",\n \"fastlane\": \"folder-fastlane-open\",\n \"plugin\": \"folder-plugin-open\",\n \"plugins\": \"folder-plugin-open\",\n \"_plugins\": \"folder-plugin-open\",\n \"extension\": \"folder-plugin-open\",\n \"extensions\": \"folder-plugin-open\",\n \"addon\": \"folder-plugin-open\",\n \"addons\": \"folder-plugin-open\",\n \"module\": \"folder-plugin-open\",\n \"modules\": \"folder-plugin-open\",\n \"middleware\": \"folder-middleware-open\",\n \"middlewares\": \"folder-middleware-open\",\n \"controller\": \"folder-controller-open\",\n \"controllers\": \"folder-controller-open\",\n \"service\": \"folder-controller-open\",\n \"services\": \"folder-controller-open\",\n \"provider\": \"folder-controller-open\",\n \"providers\": \"folder-controller-open\",\n \"handler\": \"folder-controller-open\",\n \"handlers\": \"folder-controller-open\",\n \"ansible\": \"folder-ansible-open\",\n \"server\": \"folder-server-open\",\n \"servers\": \"folder-server-open\",\n \"backend\": \"folder-server-open\",\n \"client\": \"folder-client-open\",\n \"clients\": \"folder-client-open\",\n \"frontend\": \"folder-client-open\",\n \"pwa\": \"folder-client-open\",\n \"tasks\": \"folder-tasks-open\",\n \"tickets\": \"folder-tasks-open\",\n \"android\": \"folder-android-open\",\n \"ios\": \"folder-ios-open\",\n \"uploads\": \"folder-upload-open\",\n \"upload\": \"folder-upload-open\",\n \"downloads\": \"folder-download-open\",\n \"download\": \"folder-download-open\",\n \"tools\": \"folder-tools-open\",\n \"toolkit\": \"folder-tools-open\",\n \"toolkits\": \"folder-tools-open\",\n \"toolbox\": \"folder-tools-open\",\n \"toolboxes\": \"folder-tools-open\",\n \"helpers\": \"folder-helper-open\",\n \"helper\": \"folder-helper-open\",\n \".serverless\": \"folder-serverless-open\",\n \"serverless\": \"folder-serverless-open\",\n \"api\": \"folder-api-open\",\n \"apis\": \"folder-api-open\",\n \"restapi\": \"folder-api-open\",\n \"app\": \"folder-app-open\",\n \"apps\": \"folder-app-open\",\n \"apollo\": \"folder-apollo-open\",\n \"apollo-client\": \"folder-apollo-open\",\n \"apollo-cache\": \"folder-apollo-open\",\n \"apollo-config\": \"folder-apollo-open\",\n \"arc\": \"folder-archive-open\",\n \"arcs\": \"folder-archive-open\",\n \"archive\": \"folder-archive-open\",\n \"archives\": \"folder-archive-open\",\n \"archival\": \"folder-archive-open\",\n \"bkp\": \"folder-archive-open\",\n \"bkps\": \"folder-archive-open\",\n \"bak\": \"folder-archive-open\",\n \"baks\": \"folder-archive-open\",\n \"backup\": \"folder-archive-open\",\n \"backups\": \"folder-archive-open\",\n \"back-up\": \"folder-archive-open\",\n \"back-ups\": \"folder-archive-open\",\n \"batch\": \"folder-batch-open\",\n \"batchs\": \"folder-batch-open\",\n \"batches\": \"folder-batch-open\",\n \"buildkite\": \"folder-buildkite-open\",\n \".buildkite\": \"folder-buildkite-open\",\n \"cluster\": \"folder-cluster-open\",\n \"clusters\": \"folder-cluster-open\",\n \"command\": \"folder-command-open\",\n \"commands\": \"folder-command-open\",\n \"cmd\": \"folder-command-open\",\n \"cli\": \"folder-command-open\",\n \"clis\": \"folder-command-open\",\n \"constant\": \"folder-constant-open\",\n \"constants\": \"folder-constant-open\",\n \"container\": \"folder-container-open\",\n \"containers\": \"folder-container-open\",\n \".devcontainer\": \"folder-container-open\",\n \"content\": \"folder-content-open\",\n \"contents\": \"folder-content-open\",\n \"context\": \"folder-context-open\",\n \"contexts\": \"folder-context-open\",\n \"core\": \"folder-core-open\",\n \"delta\": \"folder-delta-open\",\n \"deltas\": \"folder-delta-open\",\n \"changes\": \"folder-delta-open\",\n \"dump\": \"folder-dump-open\",\n \"dumps\": \"folder-dump-open\",\n \"demo\": \"folder-examples-open\",\n \"demos\": \"folder-examples-open\",\n \"example\": \"folder-examples-open\",\n \"examples\": \"folder-examples-open\",\n \"sample\": \"folder-examples-open\",\n \"samples\": \"folder-examples-open\",\n \"sample-data\": \"folder-examples-open\",\n \".env\": \"folder-environment-open\",\n \".environment\": \"folder-environment-open\",\n \"env\": \"folder-environment-open\",\n \"envs\": \"folder-environment-open\",\n \"environment\": \"folder-environment-open\",\n \"environments\": \"folder-environment-open\",\n \".venv\": \"folder-environment-open\",\n \"func\": \"folder-functions-open\",\n \"funcs\": \"folder-functions-open\",\n \"function\": \"folder-functions-open\",\n \"functions\": \"folder-functions-open\",\n \"lambda\": \"folder-functions-open\",\n \"lambdas\": \"folder-functions-open\",\n \"logic\": \"folder-functions-open\",\n \"math\": \"folder-functions-open\",\n \"maths\": \"folder-functions-open\",\n \"calc\": \"folder-functions-open\",\n \"calcs\": \"folder-functions-open\",\n \"calculation\": \"folder-functions-open\",\n \"calculations\": \"folder-functions-open\",\n \"generator\": \"folder-generator-open\",\n \"generators\": \"folder-generator-open\",\n \"generated\": \"folder-generator-open\",\n \"cfn-gen\": \"folder-generator-open\",\n \"gen\": \"folder-generator-open\",\n \"gens\": \"folder-generator-open\",\n \"auto\": \"folder-generator-open\",\n \"hook\": \"folder-hook-open\",\n \"hooks\": \"folder-hook-open\",\n \"trigger\": \"folder-hook-open\",\n \"triggers\": \"folder-hook-open\",\n \"job\": \"folder-job-open\",\n \"jobs\": \"folder-job-open\",\n \"keys\": \"folder-keys-open\",\n \"key\": \"folder-keys-open\",\n \"token\": \"folder-keys-open\",\n \"tokens\": \"folder-keys-open\",\n \"jwt\": \"folder-keys-open\",\n \"layout\": \"folder-layout-open\",\n \"layouts\": \"folder-layout-open\",\n \"_layouts\": \"folder-layout-open\",\n \"mail\": \"folder-mail-open\",\n \"mails\": \"folder-mail-open\",\n \"email\": \"folder-mail-open\",\n \"emails\": \"folder-mail-open\",\n \"smtp\": \"folder-mail-open\",\n \"mailers\": \"folder-mail-open\",\n \"mappings\": \"folder-mappings-open\",\n \"mapping\": \"folder-mappings-open\",\n \"meta\": \"folder-meta-open\",\n \".changesets\": \"folder-changesets-open\",\n \".changeset\": \"folder-changesets-open\",\n \"package\": \"folder-packages-open\",\n \"packages\": \"folder-packages-open\",\n \"pkg\": \"folder-packages-open\",\n \"pkgs\": \"folder-packages-open\",\n \"shared\": \"folder-shared-open\",\n \"common\": \"folder-shared-open\",\n \"glsl\": \"folder-shader-open\",\n \"hlsl\": \"folder-shader-open\",\n \"shader\": \"folder-shader-open\",\n \"shaders\": \"folder-shader-open\",\n \"stack\": \"folder-stack-open\",\n \"stacks\": \"folder-stack-open\",\n \"template\": \"folder-template-open\",\n \"templates\": \"folder-template-open\",\n \"util\": \"folder-utils-open\",\n \"utils\": \"folder-utils-open\",\n \"utility\": \"folder-utils-open\",\n \"utilities\": \"folder-utils-open\",\n \"supabase\": \"folder-supabase-open\",\n \".supabase\": \"folder-supabase-open\",\n \"private\": \"folder-private-open\",\n \".private\": \"folder-private-open\",\n \"error\": \"folder-error-open\",\n \"errors\": \"folder-error-open\",\n \"err\": \"folder-error-open\",\n \"event\": \"folder-event-open\",\n \"events\": \"folder-event-open\",\n \"auth\": \"folder-secure-open\",\n \"authentication\": \"folder-secure-open\",\n \"secure\": \"folder-secure-open\",\n \"security\": \"folder-secure-open\",\n \"cert\": \"folder-secure-open\",\n \"certs\": \"folder-secure-open\",\n \"certificate\": \"folder-secure-open\",\n \"certificates\": \"folder-secure-open\",\n \"ssl\": \"folder-secure-open\",\n \"custom\": \"folder-custom-open\",\n \"customs\": \"folder-custom-open\",\n \"_draft\": \"folder-mock-open\",\n \"_drafts\": \"folder-mock-open\",\n \"mock\": \"folder-mock-open\",\n \"mocks\": \"folder-mock-open\",\n \"fixture\": \"folder-mock-open\",\n \"fixtures\": \"folder-mock-open\",\n \"draft\": \"folder-mock-open\",\n \"drafts\": \"folder-mock-open\",\n \"concept\": \"folder-mock-open\",\n \"concepts\": \"folder-mock-open\",\n \"sketch\": \"folder-mock-open\",\n \"sketches\": \"folder-mock-open\",\n \"syntax\": \"folder-syntax-open\",\n \"syntaxes\": \"folder-syntax-open\",\n \"spellcheck\": \"folder-syntax-open\",\n \"vm\": \"folder-vm-open\",\n \"vms\": \"folder-vm-open\",\n \"stylus\": \"folder-stylus-open\",\n \"flow-typed\": \"folder-flow-open\",\n \"rule\": \"folder-rules-open\",\n \"rules\": \"folder-rules-open\",\n \"validation\": \"folder-rules-open\",\n \"validations\": \"folder-rules-open\",\n \"validator\": \"folder-rules-open\",\n \"validators\": \"folder-rules-open\",\n \"review\": \"folder-review-open\",\n \"reviews\": \"folder-review-open\",\n \"revisal\": \"folder-review-open\",\n \"revisals\": \"folder-review-open\",\n \"reviewed\": \"folder-review-open\",\n \"anim\": \"folder-animation-open\",\n \"anims\": \"folder-animation-open\",\n \"animation\": \"folder-animation-open\",\n \"animations\": \"folder-animation-open\",\n \"animated\": \"folder-animation-open\",\n \"guard\": \"folder-guard-open\",\n \"guards\": \"folder-guard-open\",\n \"prisma\": \"folder-prisma-open\",\n \"pipe\": \"folder-pipe-open\",\n \"pipes\": \"folder-pipe-open\",\n \"svg\": \"folder-svg-open\",\n \"svgs\": \"folder-svg-open\",\n \"terraform\": \"folder-terraform-open\",\n \".terraform\": \"folder-terraform-open\",\n \"mobile\": \"folder-mobile-open\",\n \"mobiles\": \"folder-mobile-open\",\n \"portable\": \"folder-mobile-open\",\n \"portability\": \"folder-mobile-open\",\n \".stencil\": \"folder-stencil-open\",\n \"firebase\": \"folder-firebase-open\",\n \".firebase\": \"folder-firebase-open\",\n \"svelte\": \"folder-svelte-open\",\n \".svelte-kit\": \"folder-svelte-open\",\n \"update\": \"folder-update-open\",\n \"updates\": \"folder-update-open\",\n \"upgrade\": \"folder-update-open\",\n \"upgrades\": \"folder-update-open\",\n \".idea\": \"folder-intellij-open\",\n \".azure-pipelines\": \"folder-azure-pipelines-open\",\n \".azure-pipelines-ci\": \"folder-azure-pipelines-open\",\n \"mjml\": \"folder-mjml-open\",\n \"admin\": \"folder-admin-open\",\n \"manager\": \"folder-admin-open\",\n \"moderator\": \"folder-admin-open\",\n \"scala\": \"folder-scala-open\",\n \"connection\": \"folder-connection-open\",\n \"connections\": \"folder-connection-open\",\n \"integration\": \"folder-connection-open\",\n \"integrations\": \"folder-connection-open\",\n \".quasar\": \"folder-quasar-open\",\n \".next\": \"folder-next-open\",\n \"cobol\": \"folder-cobol-open\",\n \"yarn\": \"folder-yarn-open\",\n \".yarn\": \"folder-yarn-open\",\n \"husky\": \"folder-husky-open\",\n \".husky\": \"folder-husky-open\",\n \".storybook\": \"folder-storybook-open\",\n \"storybook\": \"folder-storybook-open\",\n \"stories\": \"folder-storybook-open\",\n \"__stories__\": \"folder-storybook-open\",\n \"base\": \"folder-base-open\",\n \".base\": \"folder-base-open\",\n \"bases\": \"folder-base-open\",\n \"cart\": \"folder-cart-open\",\n \"shopping-cart\": \"folder-cart-open\",\n \"shopping\": \"folder-cart-open\",\n \"shop\": \"folder-cart-open\",\n \"home\": \"folder-home-open\",\n \".home\": \"folder-home-open\",\n \"start\": \"folder-home-open\",\n \".start\": \"folder-home-open\",\n \"project\": \"folder-project-open\",\n \"projects\": \"folder-project-open\",\n \".project\": \"folder-project-open\",\n \".projects\": \"folder-project-open\",\n \"interface\": \"folder-interface-open\",\n \"interfaces\": \"folder-interface-open\",\n \".netlify\": \"folder-netlify-open\",\n \"pact\": \"folder-contract-open\",\n \"pacts\": \"folder-contract-open\",\n \"contract\": \"folder-contract-open\",\n \".contract\": \"folder-contract-open\",\n \"contracts\": \"folder-contract-open\",\n \"contract-testing\": \"folder-contract-open\",\n \"contract-test\": \"folder-contract-open\",\n \"contract-tests\": \"folder-contract-open\",\n \"queue\": \"folder-queue-open\",\n \"queues\": \"folder-queue-open\",\n \"bull\": \"folder-queue-open\",\n \"mq\": \"folder-queue-open\",\n \"vercel\": \"folder-vercel-open\",\n \".vercel\": \"folder-vercel-open\",\n \"now\": \"folder-vercel-open\",\n \".now\": \"folder-vercel-open\",\n \"cypress\": \"folder-cypress-open\",\n \".cypress\": \"folder-cypress-open\",\n \"decorator\": \"folder-decorators-open\",\n \"decorators\": \"folder-decorators-open\",\n \"java\": \"folder-java-open\",\n \"resolver\": \"folder-resolver-open\",\n \"resolvers\": \"folder-resolver-open\",\n \"angular\": \"folder-angular-open\",\n \".angular\": \"folder-angular-open\",\n \"unity\": \"folder-unity-open\",\n \"pdf\": \"folder-pdf-open\",\n \"pdfs\": \"folder-pdf-open\",\n \"protobufs\": \"folder-proto-open\",\n \"proto\": \"folder-proto-open\",\n \"plastic\": \"folder-plastic-open\",\n \".plastic\": \"folder-plastic-open\",\n \"gamemaker\": \"folder-gamemaker-open\",\n \"gamemaker2\": \"folder-gamemaker-open\",\n \".hg\": \"folder-mercurial-open\",\n \"hghooks\": \"folder-mercurial-open\",\n \".hghooks\": \"folder-mercurial-open\",\n \".hgext\": \"folder-mercurial-open\",\n \"godot\": \"folder-godot-open\",\n \".godot\": \"folder-godot-open\",\n \"godot-cpp\": \"folder-godot-open\",\n \".godot-cpp\": \"folder-godot-open\"\n },\n \"fileExtensions\": {\n \"htm\": \"html\",\n \"xhtml\": \"html\",\n \"html_vm\": \"html\",\n \"asp\": \"html\",\n \"jade\": \"pug\",\n \"pug\": \"pug\",\n \"md\": \"markdown\",\n \"markdown\": \"markdown\",\n \"rst\": \"markdown\",\n \"blink\": \"blink\",\n \"css\": \"css\",\n \"scss\": \"sass\",\n \"sass\": \"sass\",\n \"less\": \"less\",\n \"json\": \"json\",\n \"jsonc\": \"json\",\n \"tsbuildinfo\": \"json\",\n \"json5\": \"json\",\n \"jsonl\": \"json\",\n \"ndjson\": \"json\",\n \"jinja\": \"jinja\",\n \"jinja2\": \"jinja\",\n \"j2\": \"jinja\",\n \"jinja-html\": \"jinja\",\n \"proto\": \"proto\",\n \"sublime-project\": \"sublime\",\n \"sublime-workspace\": \"sublime\",\n \"tw\": \"twine\",\n \"twee\": \"twine\",\n \"yml\": \"yaml\",\n \"yaml\": \"yaml\",\n \"yml.dist\": \"yaml\",\n \"yaml.dist\": \"yaml\",\n \"YAML-tmLanguage\": \"yaml\",\n \"xml\": \"xml\",\n \"plist\": \"xml\",\n \"xsd\": \"xml\",\n \"dtd\": \"xml\",\n \"xsl\": \"xml\",\n \"xslt\": \"xml\",\n \"resx\": \"xml\",\n \"iml\": \"xml\",\n \"xquery\": \"xml\",\n \"tmLanguage\": \"xml\",\n \"manifest\": \"xml\",\n \"project\": \"xml\",\n \"xml.dist\": \"xml\",\n \"xml.dist.sample\": \"xml\",\n \"dmn\": \"xml\",\n \"jrxml\": \"xml\",\n \"png\": \"image\",\n \"jpeg\": \"image\",\n \"jpg\": \"image\",\n \"gif\": \"image\",\n \"ico\": \"image\",\n \"tif\": \"image\",\n \"tiff\": \"image\",\n \"psd\": \"image\",\n \"psb\": \"image\",\n \"ami\": \"image\",\n \"apx\": \"image\",\n \"avif\": \"image\",\n \"bmp\": \"image\",\n \"bpg\": \"image\",\n \"brk\": \"image\",\n \"cur\": \"image\",\n \"dds\": \"image\",\n \"dng\": \"image\",\n \"exr\": \"image\",\n \"fpx\": \"image\",\n \"gbr\": \"image\",\n \"img\": \"image\",\n \"jbig2\": \"image\",\n \"jb2\": \"image\",\n \"jng\": \"image\",\n \"jxr\": \"image\",\n \"pgf\": \"image\",\n \"pic\": \"image\",\n \"raw\": \"image\",\n \"webp\": \"image\",\n \"eps\": \"image\",\n \"afphoto\": \"image\",\n \"ase\": \"image\",\n \"aseprite\": \"image\",\n \"clip\": \"image\",\n \"cpt\": \"image\",\n \"heif\": \"image\",\n \"heic\": \"image\",\n \"kra\": \"image\",\n \"mdp\": \"image\",\n \"ora\": \"image\",\n \"pdn\": \"image\",\n \"reb\": \"image\",\n \"sai\": \"image\",\n \"tga\": \"image\",\n \"xcf\": \"image\",\n \"jfif\": \"image\",\n \"ppm\": \"image\",\n \"pbm\": \"image\",\n \"pgm\": \"image\",\n \"pnm\": \"image\",\n \"icns\": \"image\",\n \"esx\": \"javascript\",\n \"mjs\": \"javascript\",\n \"jsx\": \"react\",\n \"tsx\": \"react_ts\",\n \"routing.ts\": \"routing\",\n \"routing.tsx\": \"routing\",\n \"routing.js\": \"routing\",\n \"routing.jsx\": \"routing\",\n \"routes.ts\": \"routing\",\n \"routes.tsx\": \"routing\",\n \"routes.js\": \"routing\",\n \"routes.jsx\": \"routing\",\n \"ini\": \"settings\",\n \"dlc\": \"settings\",\n \"dll\": \"settings\",\n \"config\": \"settings\",\n \"conf\": \"settings\",\n \"properties\": \"settings\",\n \"prop\": \"settings\",\n \"settings\": \"settings\",\n \"option\": \"settings\",\n \"props\": \"settings\",\n \"toml\": \"settings\",\n \"prefs\": \"settings\",\n \"sln.dotsettings\": \"settings\",\n \"sln.dotsettings.user\": \"settings\",\n \"cfg\": \"settings\",\n \"d.ts\": \"typescript-def\",\n \"d.cts\": \"typescript-def\",\n \"d.mts\": \"typescript-def\",\n \"marko\": \"markojs\",\n \"astro\": \"astro\",\n \"pdf\": \"pdf\",\n \"xlsx\": \"table\",\n \"xlsm\": \"table\",\n \"xls\": \"table\",\n \"csv\": \"table\",\n \"tsv\": \"table\",\n \"psv\": \"table\",\n \"ods\": \"table\",\n \"vscodeignore\": \"vscode\",\n \"vsixmanifest\": \"vscode\",\n \"vsix\": \"vscode\",\n \"code-workplace\": \"vscode\",\n \"code-workspace\": \"vscode\",\n \"code-profile\": \"vscode\",\n \"code-snippets\": \"vscode\",\n \"csproj\": \"visualstudio\",\n \"ruleset\": \"visualstudio\",\n \"sln\": \"visualstudio\",\n \"suo\": \"visualstudio\",\n \"vb\": \"visualstudio\",\n \"vbs\": \"visualstudio\",\n \"vcxitems\": \"visualstudio\",\n \"vcxitems.filters\": \"visualstudio\",\n \"vcxproj\": \"visualstudio\",\n \"vcxproj.filters\": \"visualstudio\",\n \"pdb\": \"database\",\n \"sql\": \"database\",\n \"pks\": \"database\",\n \"pkb\": \"database\",\n \"accdb\": \"database\",\n \"mdb\": \"database\",\n \"sqlite\": \"database\",\n \"sqlite3\": \"database\",\n \"pgsql\": \"database\",\n \"postgres\": \"database\",\n \"psql\": \"database\",\n \"db\": \"database\",\n \"db3\": \"database\",\n \"kql\": \"kusto\",\n \"cs\": \"csharp\",\n \"csx\": \"csharp\",\n \"qs\": \"qsharp\",\n \"zip\": \"zip\",\n \"tar\": \"zip\",\n \"gz\": \"zip\",\n \"xz\": \"zip\",\n \"lzma\": \"zip\",\n \"lz4\": \"zip\",\n \"br\": \"zip\",\n \"bz2\": \"zip\",\n \"bzip2\": \"zip\",\n \"gzip\": \"zip\",\n \"brotli\": \"zip\",\n \"7z\": \"zip\",\n \"rar\": \"zip\",\n \"tz\": \"zip\",\n \"txz\": \"zip\",\n \"tgz\": \"zip\",\n \"vala\": \"vala\",\n \"zig\": \"zig\",\n \"exe\": \"exe\",\n \"msi\": \"exe\",\n \"dat\": \"hex\",\n \"bin\": \"hex\",\n \"hex\": \"hex\",\n \"java\": \"java\",\n \"jsp\": \"java\",\n \"jar\": \"jar\",\n \"class\": \"javaclass\",\n \"c\": \"c\",\n \"i\": \"c\",\n \"mi\": \"c\",\n \"h\": \"h\",\n \"cc\": \"cpp\",\n \"cpp\": \"cpp\",\n \"cxx\": \"cpp\",\n \"c++\": \"cpp\",\n \"cp\": \"cpp\",\n \"mii\": \"cpp\",\n \"ii\": \"cpp\",\n \"hh\": \"hpp\",\n \"hpp\": \"hpp\",\n \"hxx\": \"hpp\",\n \"h++\": \"hpp\",\n \"hp\": \"hpp\",\n \"tcc\": \"hpp\",\n \"inl\": \"hpp\",\n \"m\": \"objective-c\",\n \"mm\": \"objective-cpp\",\n \"rc\": \"rc\",\n \"go\": \"go\",\n \"py\": \"python\",\n \"pyc\": \"python-misc\",\n \"whl\": \"python-misc\",\n \"url\": \"url\",\n \"sh\": \"console\",\n \"ksh\": \"console\",\n \"csh\": \"console\",\n \"tcsh\": \"console\",\n \"zsh\": \"console\",\n \"bash\": \"console\",\n \"bat\": \"console\",\n \"cmd\": \"console\",\n \"awk\": \"console\",\n \"fish\": \"console\",\n \"exp\": \"console\",\n \"nu\": \"console\",\n \"ps1\": \"powershell\",\n \"psm1\": \"powershell\",\n \"psd1\": \"powershell\",\n \"ps1xml\": \"powershell\",\n \"psc1\": \"powershell\",\n \"pssc\": \"powershell\",\n \"gradle\": \"gradle\",\n \"doc\": \"word\",\n \"docx\": \"word\",\n \"rtf\": \"word\",\n \"odt\": \"word\",\n \"cer\": \"certificate\",\n \"cert\": \"certificate\",\n \"crt\": \"certificate\",\n \"pub\": \"key\",\n \"key\": \"key\",\n \"pem\": \"key\",\n \"asc\": \"key\",\n \"gpg\": \"key\",\n \"passwd\": \"key\",\n \"woff\": \"font\",\n \"woff2\": \"font\",\n \"ttf\": \"font\",\n \"eot\": \"font\",\n \"suit\": \"font\",\n \"otf\": \"font\",\n \"bmap\": \"font\",\n \"fnt\": \"font\",\n \"odttf\": \"font\",\n \"ttc\": \"font\",\n \"font\": \"font\",\n \"fonts\": \"font\",\n \"sui\": \"font\",\n \"ntf\": \"font\",\n \"mrf\": \"font\",\n \"lib\": \"lib\",\n \"bib\": \"lib\",\n \"rb\": \"ruby\",\n \"erb\": \"ruby\",\n \"fs\": \"fsharp\",\n \"fsx\": \"fsharp\",\n \"fsi\": \"fsharp\",\n \"fsproj\": \"fsharp\",\n \"swift\": \"swift\",\n \"ino\": \"arduino\",\n \"dockerignore\": \"docker\",\n \"dockerfile\": \"docker\",\n \"docker-compose.yml\": \"docker\",\n \"docker-compose.yaml\": \"docker\",\n \"compose.yaml\": \"docker\",\n \"compose.yml\": \"docker\",\n \"tex\": \"tex\",\n \"sty\": \"tex\",\n \"dtx\": \"tex\",\n \"ltx\": \"tex\",\n \"pptx\": \"powerpoint\",\n \"ppt\": \"powerpoint\",\n \"pptm\": \"powerpoint\",\n \"potx\": \"powerpoint\",\n \"potm\": \"powerpoint\",\n \"ppsx\": \"powerpoint\",\n \"ppsm\": \"powerpoint\",\n \"pps\": \"powerpoint\",\n \"ppam\": \"powerpoint\",\n \"ppa\": \"powerpoint\",\n \"odp\": \"powerpoint\",\n \"webm\": \"video\",\n \"mkv\": \"video\",\n \"flv\": \"video\",\n \"vob\": \"video\",\n \"ogv\": \"video\",\n \"ogg\": \"video\",\n \"gifv\": \"video\",\n \"avi\": \"video\",\n \"mov\": \"video\",\n \"qt\": \"video\",\n \"wmv\": \"video\",\n \"yuv\": \"video\",\n \"rm\": \"video\",\n \"rmvb\": \"video\",\n \"mp4\": \"video\",\n \"m4v\": \"video\",\n \"mpg\": \"video\",\n \"mp2\": \"video\",\n \"mpeg\": \"video\",\n \"mpe\": \"video\",\n \"mpv\": \"video\",\n \"m2v\": \"video\",\n \"vdi\": \"virtual\",\n \"vbox\": \"virtual\",\n \"vbox-prev\": \"virtual\",\n \"ics\": \"email\",\n \"mp3\": \"audio\",\n \"flac\": \"audio\",\n \"m4a\": \"audio\",\n \"wma\": \"audio\",\n \"aiff\": \"audio\",\n \"wav\": \"audio\",\n \"coffee\": \"coffee\",\n \"cson\": \"coffee\",\n \"iced\": \"coffee\",\n \"txt\": \"document\",\n \"graphql\": \"graphql\",\n \"gql\": \"graphql\",\n \"rs\": \"rust\",\n \"ron\": \"rust\",\n \"raml\": \"raml\",\n \"xaml\": \"xaml\",\n \"hs\": \"haskell\",\n \"kt\": \"kotlin\",\n \"kts\": \"kotlin\",\n \"otne\": \"otne\",\n \"patch\": \"git\",\n \"lua\": \"lua\",\n \"clj\": \"clojure\",\n \"cljs\": \"clojure\",\n \"cljc\": \"clojure\",\n \"groovy\": \"groovy\",\n \"r\": \"r\",\n \"rmd\": \"r\",\n \"dart\": \"dart\",\n \"freezed.dart\": \"dart_generated\",\n \"g.dart\": \"dart_generated\",\n \"as\": \"actionscript\",\n \"mxml\": \"mxml\",\n \"ahk\": \"autohotkey\",\n \"swf\": \"flash\",\n \"swc\": \"swc\",\n \"cmake\": \"cmake\",\n \"asm\": \"assembly\",\n \"a51\": \"assembly\",\n \"inc\": \"assembly\",\n \"nasm\": \"assembly\",\n \"s\": \"assembly\",\n \"ms\": \"assembly\",\n \"agc\": \"assembly\",\n \"ags\": \"assembly\",\n \"aea\": \"assembly\",\n \"argus\": \"assembly\",\n \"mitigus\": \"assembly\",\n \"binsource\": \"assembly\",\n \"vue\": \"vue\",\n \"ml\": \"ocaml\",\n \"mli\": \"ocaml\",\n \"cmx\": \"ocaml\",\n \"odin\": \"odin\",\n \"js.map\": \"javascript-map\",\n \"mjs.map\": \"javascript-map\",\n \"cjs.map\": \"javascript-map\",\n \"css.map\": \"css-map\",\n \"lock\": \"lock\",\n \"hbs\": \"handlebars\",\n \"mustache\": \"handlebars\",\n \"pm\": \"perl\",\n \"raku\": \"perl\",\n \"hx\": \"haxe\",\n \"spec.ts\": \"test-ts\",\n \"spec.cts\": \"test-ts\",\n \"spec.mts\": \"test-ts\",\n \"cy.ts\": \"test-ts\",\n \"e2e-spec.ts\": \"test-ts\",\n \"e2e-spec.cts\": \"test-ts\",\n \"e2e-spec.mts\": \"test-ts\",\n \"test.ts\": \"test-ts\",\n \"test.cts\": \"test-ts\",\n \"test.mts\": \"test-ts\",\n \"ts.snap\": \"test-ts\",\n \"spec-d.ts\": \"test-ts\",\n \"test-d.ts\": \"test-ts\",\n \"spec.tsx\": \"test-jsx\",\n \"test.tsx\": \"test-jsx\",\n \"tsx.snap\": \"test-jsx\",\n \"spec.jsx\": \"test-jsx\",\n \"test.jsx\": \"test-jsx\",\n \"jsx.snap\": \"test-jsx\",\n \"cy.jsx\": \"test-jsx\",\n \"cy.tsx\": \"test-jsx\",\n \"spec-d.tsx\": \"test-jsx\",\n \"test-d.tsx\": \"test-jsx\",\n \"spec.js\": \"test-js\",\n \"spec.cjs\": \"test-js\",\n \"spec.mjs\": \"test-js\",\n \"e2e-spec.js\": \"test-js\",\n \"e2e-spec.cjs\": \"test-js\",\n \"e2e-spec.mjs\": \"test-js\",\n \"test.js\": \"test-js\",\n \"test.cjs\": \"test-js\",\n \"test.mjs\": \"test-js\",\n \"js.snap\": \"test-js\",\n \"cy.js\": \"test-js\",\n \"module.ts\": \"angular\",\n \"module.js\": \"angular\",\n \"ng-template\": \"angular\",\n \"component.ts\": \"angular-component\",\n \"component.js\": \"angular-component\",\n \"guard.ts\": \"angular-guard\",\n \"guard.js\": \"angular-guard\",\n \"service.ts\": \"angular-service\",\n \"service.js\": \"angular-service\",\n \"pipe.ts\": \"angular-pipe\",\n \"pipe.js\": \"angular-pipe\",\n \"filter.js\": \"angular-pipe\",\n \"directive.ts\": \"angular-directive\",\n \"directive.js\": \"angular-directive\",\n \"resolver.ts\": \"angular-resolver\",\n \"resolver.js\": \"angular-resolver\",\n \"pp\": \"puppet\",\n \"ex\": \"elixir\",\n \"exs\": \"elixir\",\n \"eex\": \"elixir\",\n \"leex\": \"elixir\",\n \"heex\": \"elixir\",\n \"ls\": \"livescript\",\n \"erl\": \"erlang\",\n \"twig\": \"twig\",\n \"jl\": \"julia\",\n \"elm\": \"elm\",\n \"pure\": \"purescript\",\n \"purs\": \"purescript\",\n \"tpl\": \"smarty\",\n \"styl\": \"stylus\",\n \"re\": \"reason\",\n \"rei\": \"reason\",\n \"cmj\": \"bucklescript\",\n \"merlin\": \"merlin\",\n \"vhd\": \"verilog\",\n \"sv\": \"verilog\",\n \"svh\": \"verilog\",\n \"nb\": \"mathematica\",\n \"wl\": \"wolframlanguage\",\n \"wls\": \"wolframlanguage\",\n \"njk\": \"nunjucks\",\n \"nunjucks\": \"nunjucks\",\n \"robot\": \"robot\",\n \"sol\": \"solidity\",\n \"au3\": \"autoit\",\n \"haml\": \"haml\",\n \"yang\": \"yang\",\n \"mjml\": \"mjml\",\n \"tf\": \"terraform\",\n \"tf.json\": \"terraform\",\n \"tfvars\": \"terraform\",\n \"tfstate\": \"terraform\",\n \"blade.php\": \"laravel\",\n \"inky.php\": \"laravel\",\n \"applescript\": \"applescript\",\n \"ipa\": \"applescript\",\n \"cake\": \"cake\",\n \"feature\": \"cucumber\",\n \"features\": \"cucumber\",\n \"nim\": \"nim\",\n \"nimble\": \"nim\",\n \"apib\": \"apiblueprint\",\n \"apiblueprint\": \"apiblueprint\",\n \"riot\": \"riot\",\n \"tag\": \"riot\",\n \"vfl\": \"vfl\",\n \"kl\": \"kl\",\n \"pcss\": \"postcss\",\n \"sss\": \"postcss\",\n \"todo\": \"todo\",\n \"cfml\": \"coldfusion\",\n \"cfc\": \"coldfusion\",\n \"lucee\": \"coldfusion\",\n \"cfm\": \"coldfusion\",\n \"cabal\": \"cabal\",\n \"nix\": \"nix\",\n \"slim\": \"slim\",\n \"http\": \"http\",\n \"rest\": \"http\",\n \"rql\": \"restql\",\n \"restql\": \"restql\",\n \"kv\": \"kivy\",\n \"graphcool\": \"graphcool\",\n \"sbt\": \"sbt\",\n \"apk\": \"android\",\n \"smali\": \"android\",\n \"dex\": \"android\",\n \"env\": \"tune\",\n \"gitlab-ci.yml\": \"gitlab\",\n \"jenkinsfile\": \"jenkins\",\n \"jenkins\": \"jenkins\",\n \"fig\": \"figma\",\n \"cr\": \"crystal\",\n \"ecr\": \"crystal\",\n \"drone.yml\": \"drone\",\n \"cu\": \"cuda\",\n \"cuh\": \"cuda\",\n \"log\": \"log\",\n \"def\": \"dotjs\",\n \"dot\": \"dotjs\",\n \"jst\": \"dotjs\",\n \"ejs\": \"ejs\",\n \".wakatime-project\": \"wakatime\",\n \"pde\": \"processing\",\n \"stories.js\": \"storybook\",\n \"stories.jsx\": \"storybook\",\n \"stories.mdx\": \"storybook\",\n \"story.js\": \"storybook\",\n \"story.jsx\": \"storybook\",\n \"stories.ts\": \"storybook\",\n \"stories.tsx\": \"storybook\",\n \"story.ts\": \"storybook\",\n \"story.tsx\": \"storybook\",\n \"stories.svelte\": \"storybook\",\n \"story.mdx\": \"storybook\",\n \"wpy\": \"wepy\",\n \"hcl\": \"hcl\",\n \"san\": \"san\",\n \"djt\": \"django\",\n \"red\": \"red\",\n \"mk\": \"makefile\",\n \"fxp\": \"foxpro\",\n \"prg\": \"foxpro\",\n \"pot\": \"i18n\",\n \"po\": \"i18n\",\n \"mo\": \"i18n\",\n \"lang\": \"i18n\",\n \"wat\": \"webassembly\",\n \"wasm\": \"webassembly\",\n \"ipynb\": \"jupyter\",\n \"d\": \"d\",\n \"mdx\": \"mdx\",\n \"svx\": \"mdsvex\",\n \"bal\": \"ballerina\",\n \"balx\": \"ballerina\",\n \"rkt\": \"racket\",\n \"bzl\": \"bazel\",\n \"bazel\": \"bazel\",\n \"mint\": \"mint\",\n \"vm\": \"velocity\",\n \"fhtml\": \"velocity\",\n \"vtl\": \"velocity\",\n \"gd\": \"godot\",\n \"godot\": \"godot-assets\",\n \"tres\": \"godot-assets\",\n \"tscn\": \"godot-assets\",\n \"gdns\": \"godot-assets\",\n \"gdnlib\": \"godot-assets\",\n \"gdshader\": \"godot-assets\",\n \"gdshaderinc\": \"godot-assets\",\n \"gdextension\": \"godot-assets\",\n \"azure-pipelines.yml\": \"azure-pipelines\",\n \"azure-pipelines.yaml\": \"azure-pipelines\",\n \"azcli\": \"azure\",\n \"vagrantfile\": \"vagrant\",\n \"prisma\": \"prisma\",\n \"cshtml\": \"razor\",\n \"vbhtml\": \"razor\",\n \"abc\": \"abc\",\n \"ad\": \"asciidoc\",\n \"adoc\": \"asciidoc\",\n \"asciidoc\": \"asciidoc\",\n \"edge\": \"edge\",\n \"ss\": \"scheme\",\n \"scm\": \"scheme\",\n \"lisp\": \"lisp\",\n \"lsp\": \"lisp\",\n \"cl\": \"lisp\",\n \"fast\": \"lisp\",\n \"stl\": \"3d\",\n \"stp\": \"3d\",\n \"obj\": \"3d\",\n \"ac\": \"3d\",\n \"blend\": \"3d\",\n \"fbx\": \"3d\",\n \"mesh\": \"3d\",\n \"mqo\": \"3d\",\n \"pmd\": \"3d\",\n \"pmx\": \"3d\",\n \"skp\": \"3d\",\n \"vac\": \"3d\",\n \"vdp\": \"3d\",\n \"vox\": \"3d\",\n \"svg\": \"svg\",\n \"svelte\": \"svelte\",\n \"vimrc\": \"vim\",\n \"gvimrc\": \"vim\",\n \"exrc\": \"vim\",\n \"vim\": \"vim\",\n \"viminfo\": \"vim\",\n \"moon\": \"moonscript\",\n \"prw\": \"advpl_prw\",\n \"prx\": \"advpl_prw\",\n \"ptm\": \"advpl_ptm\",\n \"tlpp\": \"advpl_tlpp\",\n \"ch\": \"advpl_include\",\n \"iso\": \"disc\",\n \"f\": \"fortran\",\n \"f77\": \"fortran\",\n \"f90\": \"fortran\",\n \"f95\": \"fortran\",\n \"f03\": \"fortran\",\n \"f08\": \"fortran\",\n \"tcl\": \"tcl\",\n \"liquid\": \"liquid\",\n \"p\": \"prolog\",\n \"pro\": \"prolog\",\n \"pl\": \"prolog\",\n \"coco\": \"coconut\",\n \"sketch\": \"sketch\",\n \"pwn\": \"pawn\",\n \"amx\": \"pawn\",\n \"4th\": \"forth\",\n \"fth\": \"forth\",\n \"frt\": \"forth\",\n \"iuml\": \"uml\",\n \"pu\": \"uml\",\n \"puml\": \"uml\",\n \"plantuml\": \"uml\",\n \"wsd\": \"uml\",\n \"wrap\": \"meson\",\n \"dhall\": \"dhall\",\n \"dhallb\": \"dhall\",\n \"sml\": \"sml\",\n \"mlton\": \"sml\",\n \"mlb\": \"sml\",\n \"sig\": \"sml\",\n \"fun\": \"sml\",\n \"cm\": \"sml\",\n \"lex\": \"sml\",\n \"use\": \"sml\",\n \"grm\": \"sml\",\n \"opam\": \"opam\",\n \"imba\": \"imba\",\n \"drawio\": \"drawio\",\n \"dio\": \"drawio\",\n \"pas\": \"pascal\",\n \"unity\": \"shaderlab\",\n \"sas\": \"sas\",\n \"sas7bdat\": \"sas\",\n \"sashdat\": \"sas\",\n \"astore\": \"sas\",\n \"ast\": \"sas\",\n \"sast\": \"sas\",\n \"nupkg\": \"nuget\",\n \"command\": \"command\",\n \"dsc\": \"denizenscript\",\n \"code-search\": \"search\",\n \"nginx\": \"nginx\",\n \"nginxconfig\": \"nginx\",\n \"mcfunction\": \"minecraft\",\n \"mcmeta\": \"minecraft\",\n \"mcr\": \"minecraft\",\n \"mca\": \"minecraft\",\n \"mcgame\": \"minecraft\",\n \"mclevel\": \"minecraft\",\n \"mcworld\": \"minecraft\",\n \"mine\": \"minecraft\",\n \"mus\": \"minecraft\",\n \"mcstructure\": \"minecraft\",\n \"mcpack\": \"minecraft\",\n \"mcaddon\": \"minecraft\",\n \"mctemplate\": \"minecraft\",\n \"mcproject\": \"minecraft\",\n \"res\": \"rescript\",\n \"resi\": \"rescript-interface\",\n \"b\": \"brainfuck\",\n \"bf\": \"brainfuck\",\n \"bicep\": \"bicep\",\n \"cob\": \"cobol\",\n \"cbl\": \"cobol\",\n \"gr\": \"grain\",\n \"lol\": \"lolcode\",\n \"idr\": \"idris\",\n \"ibc\": \"idris\",\n \"pipeline\": \"pipeline\",\n \"rego\": \"opa\",\n \"windi\": \"windicss\",\n \"scala\": \"scala\",\n \"sc\": \"scala\",\n \"ly\": \"lilypond\",\n \"v\": \"vlang\",\n \"pgn\": \"chess\",\n \"fen\": \"chess\",\n \"gmi\": \"gemini\",\n \"gemini\": \"gemini\",\n \"tsconfig.json\": \"tsconfig\",\n \"tauri\": \"tauri\",\n \"jsconfig.json\": \"jsconfig\",\n \"ada\": \"ada\",\n \"adb\": \"ada\",\n \"ads\": \"ada\",\n \"ali\": \"ada\",\n \"horusec-config.json\": \"horusec\",\n \"coarc\": \"coala\",\n \"coafile\": \"coala\",\n \"bubble\": \"dinophp\",\n \"html.bubble\": \"dinophp\",\n \"php.bubble\": \"dinophp\",\n \"tl\": \"teal\",\n \"template\": \"template\",\n \"glsl\": \"shader\",\n \"vert\": \"shader\",\n \"tesc\": \"shader\",\n \"tese\": \"shader\",\n \"geom\": \"shader\",\n \"frag\": \"shader\",\n \"comp\": \"shader\",\n \"vert.glsl\": \"shader\",\n \"tesc.glsl\": \"shader\",\n \"tese.glsl\": \"shader\",\n \"geom.glsl\": \"shader\",\n \"frag.glsl\": \"shader\",\n \"comp.glsl\": \"shader\",\n \"vertex.glsl\": \"shader\",\n \"geometry.glsl\": \"shader\",\n \"fragment.glsl\": \"shader\",\n \"compute.glsl\": \"shader\",\n \"ts.glsl\": \"shader\",\n \"gs.glsl\": \"shader\",\n \"vs.glsl\": \"shader\",\n \"fs.glsl\": \"shader\",\n \"shader\": \"shader\",\n \"vertexshader\": \"shader\",\n \"fragmentshader\": \"shader\",\n \"geometryshader\": \"shader\",\n \"computeshader\": \"shader\",\n \"hlsl\": \"shader\",\n \"pixel.hlsl\": \"shader\",\n \"geometry.hlsl\": \"shader\",\n \"compute.hlsl\": \"shader\",\n \"tessellation.hlsl\": \"shader\",\n \"px.hlsl\": \"shader\",\n \"geom.hlsl\": \"shader\",\n \"comp.hlsl\": \"shader\",\n \"tess.hlsl\": \"shader\",\n \"wgsl\": \"shader\",\n \"sy\": \"siyuan\",\n \"ndst.yml\": \"ndst\",\n \"ndst.yaml\": \"ndst\",\n \"ndst.json\": \"ndst\",\n \"tobi\": \"tobi\",\n \"gleam\": \"gleam\",\n \"steadybit.yml\": \"steadybit\",\n \"steadybit.yaml\": \"steadybit\",\n \"tree\": \"tree\",\n \"cdc\": \"cadence\",\n \"g4\": \"antlr\",\n \"st.css\": \"stylable\",\n \"pine\": \"pinejs\",\n \"gml\": \"gamemaker\",\n \"yy\": \"gamemaker\",\n \"yyp\": \"gamemaker\",\n \"yyz\": \"gamemaker\",\n \"tldr\": \"tldraw\",\n \"typ\": \"typst\",\n \"mmd\": \"mermaid\",\n \"mermaid\": \"mermaid\"\n },\n \"fileNames\": {\n \".pug-lintrc\": \"pug\",\n \".pug-lintrc.js\": \"pug\",\n \".pug-lintrc.json\": \"pug\",\n \".jscsrc\": \"json\",\n \".jshintrc\": \"json\",\n \"composer.lock\": \"json\",\n \".jsbeautifyrc\": \"json\",\n \".esformatter\": \"json\",\n \"cdp.pid\": \"json\",\n \".lintstagedrc\": \"json\",\n \"playwright.config.js\": \"playwright\",\n \"playwright.config.mjs\": \"playwright\",\n \"playwright.config.ts\": \"playwright\",\n \"playwright-ct.config.js\": \"playwright\",\n \"playwright-ct.config.mjs\": \"playwright\",\n \"playwright-ct.config.ts\": \"playwright\",\n \".htaccess\": \"xml\",\n \"router.js\": \"routing\",\n \"router.jsx\": \"routing\",\n \"router.ts\": \"routing\",\n \"router.tsx\": \"routing\",\n \"routes.js\": \"routing\",\n \"routes.jsx\": \"routing\",\n \"routes.ts\": \"routing\",\n \"routes.tsx\": \"routing\",\n \".jshintignore\": \"settings\",\n \".buildignore\": \"settings\",\n \".mrconfig\": \"settings\",\n \".yardopts\": \"settings\",\n \"manifest.mf\": \"settings\",\n \".clang-format\": \"settings\",\n \".clang-tidy\": \"settings\",\n \"astro.config.js\": \"astro\",\n \"astro.config.mjs\": \"astro\",\n \"astro.config.cjs\": \"astro\",\n \"astro.config.ts\": \"astro\",\n \"astro.config.cts\": \"astro\",\n \"astro.config.mts\": \"astro\",\n \"go.mod\": \"go-mod\",\n \"go.sum\": \"go-mod\",\n \"go.work\": \"go-mod\",\n \"go.work.sum\": \"go-mod\",\n \"requirements.txt\": \"python-misc\",\n \"pipfile\": \"python-misc\",\n \".python-version\": \"python-misc\",\n \"manifest.in\": \"python-misc\",\n \"pylintrc\": \"python-misc\",\n \".pylintrc\": \"python-misc\",\n \"pyproject.toml\": \"python-misc\",\n \"commit-msg\": \"console\",\n \"pre-commit\": \"console\",\n \"pre-push\": \"console\",\n \"post-merge\": \"console\",\n \"gradle.properties\": \"gradle\",\n \"gradlew\": \"gradle\",\n \"gradle-wrapper.properties\": \"gradle\",\n \"copying\": \"certificate\",\n \"copying.md\": \"certificate\",\n \"copying.rst\": \"certificate\",\n \"copying.txt\": \"certificate\",\n \"copyright\": \"certificate\",\n \"copyright.md\": \"certificate\",\n \"copyright.rst\": \"certificate\",\n \"copyright.txt\": \"certificate\",\n \"license\": \"certificate\",\n \"license-agpl\": \"certificate\",\n \"license-apache\": \"certificate\",\n \"license-bsd\": \"certificate\",\n \"license-mit\": \"certificate\",\n \"license-gpl\": \"certificate\",\n \"license-lgpl\": \"certificate\",\n \"license.md\": \"certificate\",\n \"license.rst\": \"certificate\",\n \"license.txt\": \"certificate\",\n \"licence\": \"certificate\",\n \"licence-agpl\": \"certificate\",\n \"licence-apache\": \"certificate\",\n \"licence-bsd\": \"certificate\",\n \"licence-mit\": \"certificate\",\n \"licence-gpl\": \"certificate\",\n \"licence-lgpl\": \"certificate\",\n \"licence.md\": \"certificate\",\n \"licence.rst\": \"certificate\",\n \"licence.txt\": \"certificate\",\n \".htpasswd\": \"key\",\n \"gemfile\": \"gemfile\",\n \".rubocop.yml\": \"rubocop\",\n \".rubocop-todo.yml\": \"rubocop\",\n \".rubocop_todo.yml\": \"rubocop\",\n \"dockerfile\": \"docker\",\n \"dockerfile.prod\": \"docker\",\n \"dockerfile.production\": \"docker\",\n \"dockerfile.alpha\": \"docker\",\n \"dockerfile.beta\": \"docker\",\n \"dockerfile.stage\": \"docker\",\n \"dockerfile.staging\": \"docker\",\n \"dockerfile.dev\": \"docker\",\n \"dockerfile.development\": \"docker\",\n \"dockerfile.local\": \"docker\",\n \"dockerfile.test\": \"docker\",\n \"dockerfile.testing\": \"docker\",\n \"dockerfile.ci\": \"docker\",\n \"dockerfile.web\": \"docker\",\n \"dockerfile.worker\": \"docker\",\n \"docker-compose.yml\": \"docker\",\n \"docker-compose.override.yml\": \"docker\",\n \"docker-compose.prod.yml\": \"docker\",\n \"docker-compose.production.yml\": \"docker\",\n \"docker-compose.alpha.yml\": \"docker\",\n \"docker-compose.beta.yml\": \"docker\",\n \"docker-compose.stage.yml\": \"docker\",\n \"docker-compose.staging.yml\": \"docker\",\n \"docker-compose.dev.yml\": \"docker\",\n \"docker-compose.development.yml\": \"docker\",\n \"docker-compose.local.yml\": \"docker\",\n \"docker-compose.test.yml\": \"docker\",\n \"docker-compose.testing.yml\": \"docker\",\n \"docker-compose.ci.yml\": \"docker\",\n \"docker-compose.web.yml\": \"docker\",\n \"docker-compose.worker.yml\": \"docker\",\n \"docker-compose.yaml\": \"docker\",\n \"docker-compose.override.yaml\": \"docker\",\n \"docker-compose.prod.yaml\": \"docker\",\n \"docker-compose.production.yaml\": \"docker\",\n \"docker-compose.alpha.yaml\": \"docker\",\n \"docker-compose.beta.yaml\": \"docker\",\n \"docker-compose.stage.yaml\": \"docker\",\n \"docker-compose.staging.yaml\": \"docker\",\n \"docker-compose.dev.yaml\": \"docker\",\n \"docker-compose.development.yaml\": \"docker\",\n \"docker-compose.local.yaml\": \"docker\",\n \"docker-compose.test.yaml\": \"docker\",\n \"docker-compose.testing.yaml\": \"docker\",\n \"docker-compose.ci.yaml\": \"docker\",\n \"docker-compose.web.yaml\": \"docker\",\n \"docker-compose.worker.yaml\": \"docker\",\n \"compose.yaml\": \"docker\",\n \"compose.override.yaml\": \"docker\",\n \"compose.prod.yaml\": \"docker\",\n \"compose.production.yaml\": \"docker\",\n \"compose.alpha.yaml\": \"docker\",\n \"compose.beta.yaml\": \"docker\",\n \"compose.stage.yaml\": \"docker\",\n \"compose.staging.yaml\": \"docker\",\n \"compose.dev.yaml\": \"docker\",\n \"compose.development.yaml\": \"docker\",\n \"compose.local.yaml\": \"docker\",\n \"compose.test.yaml\": \"docker\",\n \"compose.testing.yaml\": \"docker\",\n \"compose.ci.yaml\": \"docker\",\n \"compose.web.yaml\": \"docker\",\n \"compose.worker.yaml\": \"docker\",\n \"compose.yml\": \"docker\",\n \"compose.override.yml\": \"docker\",\n \"compose.prod.yml\": \"docker\",\n \"compose.production.yml\": \"docker\",\n \"compose.alpha.yml\": \"docker\",\n \"compose.beta.yml\": \"docker\",\n \"compose.stage.yml\": \"docker\",\n \"compose.staging.yml\": \"docker\",\n \"compose.dev.yml\": \"docker\",\n \"compose.development.yml\": \"docker\",\n \"compose.local.yml\": \"docker\",\n \"compose.test.yml\": \"docker\",\n \"compose.testing.yml\": \"docker\",\n \"compose.ci.yml\": \"docker\",\n \"compose.web.yml\": \"docker\",\n \"compose.worker.yml\": \"docker\",\n \".mailmap\": \"email\",\n \".graphqlconfig\": \"graphql\",\n \".graphqlrc\": \"graphql\",\n \".graphqlrc.json\": \"graphql\",\n \".graphqlrc.js\": \"graphql\",\n \".graphqlrc.cjs\": \"graphql\",\n \".graphqlrc.ts\": \"graphql\",\n \".graphqlrc.toml\": \"graphql\",\n \".graphqlrc.yaml\": \"graphql\",\n \".graphqlrc.yml\": \"graphql\",\n \"graphql.config.json\": \"graphql\",\n \"graphql.config.js\": \"graphql\",\n \"graphql.config.cjs\": \"graphql\",\n \"graphql.config.ts\": \"graphql\",\n \"graphql.config.toml\": \"graphql\",\n \"graphql.config.yaml\": \"graphql\",\n \"graphql.config.yml\": \"graphql\",\n \".git\": \"git\",\n \".gitignore\": \"git\",\n \".gitignore-global\": \"git\",\n \".gitignore_global\": \"git\",\n \".gitattributes\": \"git\",\n \".gitattributes-global\": \"git\",\n \".gitattributes_global\": \"git\",\n \".gitconfig\": \"git\",\n \".gitmodules\": \"git\",\n \".gitkeep\": \"git\",\n \".gitinclude\": \"git\",\n \".git-blame-ignore\": \"git\",\n \".git-blame-ignore-revs\": \"git\",\n \".git-for-windows-updater\": \"git\",\n \"git-history\": \"git\",\n \".luacheckrc\": \"lua\",\n \".Rhistory\": \"r\",\n \".pubignore\": \"dart\",\n \"cmakelists.txt\": \"cmake\",\n \"cmakecache.txt\": \"cmake\",\n \"vue.config.js\": \"vue-config\",\n \"vue.config.ts\": \"vue-config\",\n \"vetur.config.js\": \"vue-config\",\n \"vetur.config.ts\": \"vue-config\",\n \"volar.config.js\": \"vue-config\",\n \"nuxt.config.js\": \"nuxt\",\n \"nuxt.config.ts\": \"nuxt\",\n \".nuxtignore\": \"nuxt\",\n \"security.md\": \"lock\",\n \"security.txt\": \"lock\",\n \"security\": \"lock\",\n \"angular-cli.json\": \"angular\",\n \".angular-cli.json\": \"angular\",\n \"angular.json\": \"angular\",\n \"ng-package.json\": \"angular\",\n \".mjmlconfig\": \"mjml\",\n \"vercel.json\": \"vercel\",\n \".vercelignore\": \"vercel\",\n \"now.json\": \"vercel\",\n \".nowignore\": \"vercel\",\n \"verdaccio.yml\": \"verdaccio\",\n \"next.config.js\": \"next\",\n \"next.config.mjs\": \"next\",\n \"next.config.ts\": \"next\",\n \"next.config.mts\": \"next\",\n \"remix.config.js\": \"remix\",\n \"remix.config.ts\": \"remix\",\n \"artisan\": \"laravel\",\n \".vfl\": \"vfl\",\n \".kl\": \"kl\",\n \"postcss.config.js\": \"postcss\",\n \"postcss.config.cjs\": \"postcss\",\n \"postcss.config.ts\": \"postcss\",\n \"postcss.config.cts\": \"postcss\",\n \".postcssrc.js\": \"postcss\",\n \".postcssrc.cjs\": \"postcss\",\n \".postcssrc.ts\": \"postcss\",\n \".postcssrc.cts\": \"postcss\",\n \".postcssrc\": \"postcss\",\n \".postcssrc.json\": \"postcss\",\n \".postcssrc.yaml\": \"postcss\",\n \".postcssrc.yml\": \"postcss\",\n \"posthtml.config.js\": \"posthtml\",\n \".posthtmlrc.js\": \"posthtml\",\n \".posthtmlrc\": \"posthtml\",\n \".posthtmlrc.json\": \"posthtml\",\n \".posthtmlrc.yml\": \"posthtml\",\n \"todo.md\": \"todo\",\n \"todos.md\": \"todo\",\n \"cabal.project\": \"cabal\",\n \"cabal.project.freeze\": \"cabal\",\n \"cabal.project.local\": \"cabal\",\n \"CNAME\": \"http\",\n \"project.graphcool\": \"graphcool\",\n \"webpack.js\": \"webpack\",\n \"webpack.cjs\": \"webpack\",\n \"webpack.mjs\": \"webpack\",\n \"webpack.ts\": \"webpack\",\n \"webpack.cts\": \"webpack\",\n \"webpack.mts\": \"webpack\",\n \"webpack.base.js\": \"webpack\",\n \"webpack.base.cjs\": \"webpack\",\n \"webpack.base.mjs\": \"webpack\",\n \"webpack.base.ts\": \"webpack\",\n \"webpack.base.cts\": \"webpack\",\n \"webpack.base.mts\": \"webpack\",\n \"webpack.config.js\": \"webpack\",\n \"webpack.config.cjs\": \"webpack\",\n \"webpack.config.mjs\": \"webpack\",\n \"webpack.config.ts\": \"webpack\",\n \"webpack.config.cts\": \"webpack\",\n \"webpack.config.mts\": \"webpack\",\n \"webpack.common.js\": \"webpack\",\n \"webpack.common.cjs\": \"webpack\",\n \"webpack.common.mjs\": \"webpack\",\n \"webpack.common.ts\": \"webpack\",\n \"webpack.common.cts\": \"webpack\",\n \"webpack.common.mts\": \"webpack\",\n \"webpack.config.common.js\": \"webpack\",\n \"webpack.config.common.cjs\": \"webpack\",\n \"webpack.config.common.mjs\": \"webpack\",\n \"webpack.config.common.ts\": \"webpack\",\n \"webpack.config.common.cts\": \"webpack\",\n \"webpack.config.common.mts\": \"webpack\",\n \"webpack.config.common.babel.js\": \"webpack\",\n \"webpack.config.common.babel.ts\": \"webpack\",\n \"webpack.dev.js\": \"webpack\",\n \"webpack.dev.cjs\": \"webpack\",\n \"webpack.dev.mjs\": \"webpack\",\n \"webpack.dev.ts\": \"webpack\",\n \"webpack.dev.cts\": \"webpack\",\n \"webpack.dev.mts\": \"webpack\",\n \"webpack.development.js\": \"webpack\",\n \"webpack.development.cjs\": \"webpack\",\n \"webpack.development.mjs\": \"webpack\",\n \"webpack.development.ts\": \"webpack\",\n \"webpack.development.cts\": \"webpack\",\n \"webpack.development.mts\": \"webpack\",\n \"webpack.config.dev.js\": \"webpack\",\n \"webpack.config.dev.cjs\": \"webpack\",\n \"webpack.config.dev.mjs\": \"webpack\",\n \"webpack.config.dev.ts\": \"webpack\",\n \"webpack.config.dev.cts\": \"webpack\",\n \"webpack.config.dev.mts\": \"webpack\",\n \"webpack.config.dev.babel.js\": \"webpack\",\n \"webpack.config.dev.babel.ts\": \"webpack\",\n \"webpack.mix.js\": \"webpack\",\n \"webpack.mix.cjs\": \"webpack\",\n \"webpack.mix.mjs\": \"webpack\",\n \"webpack.mix.ts\": \"webpack\",\n \"webpack.mix.cts\": \"webpack\",\n \"webpack.mix.mts\": \"webpack\",\n \"webpack.prod.js\": \"webpack\",\n \"webpack.prod.cjs\": \"webpack\",\n \"webpack.prod.mjs\": \"webpack\",\n \"webpack.prod.ts\": \"webpack\",\n \"webpack.prod.cts\": \"webpack\",\n \"webpack.prod.mts\": \"webpack\",\n \"webpack.prod.config.js\": \"webpack\",\n \"webpack.prod.config.cjs\": \"webpack\",\n \"webpack.prod.config.mjs\": \"webpack\",\n \"webpack.prod.config.ts\": \"webpack\",\n \"webpack.prod.config.cts\": \"webpack\",\n \"webpack.prod.config.mts\": \"webpack\",\n \"webpack.production.js\": \"webpack\",\n \"webpack.production.cjs\": \"webpack\",\n \"webpack.production.mjs\": \"webpack\",\n \"webpack.production.ts\": \"webpack\",\n \"webpack.production.cts\": \"webpack\",\n \"webpack.production.mts\": \"webpack\",\n \"webpack.server.js\": \"webpack\",\n \"webpack.server.cjs\": \"webpack\",\n \"webpack.server.mjs\": \"webpack\",\n \"webpack.server.ts\": \"webpack\",\n \"webpack.server.cts\": \"webpack\",\n \"webpack.server.mts\": \"webpack\",\n \"webpack.client.js\": \"webpack\",\n \"webpack.client.cjs\": \"webpack\",\n \"webpack.client.mjs\": \"webpack\",\n \"webpack.client.ts\": \"webpack\",\n \"webpack.client.cts\": \"webpack\",\n \"webpack.client.mts\": \"webpack\",\n \"webpack.config.server.js\": \"webpack\",\n \"webpack.config.server.cjs\": \"webpack\",\n \"webpack.config.server.mjs\": \"webpack\",\n \"webpack.config.server.ts\": \"webpack\",\n \"webpack.config.server.cts\": \"webpack\",\n \"webpack.config.server.mts\": \"webpack\",\n \"webpack.config.client.js\": \"webpack\",\n \"webpack.config.client.cjs\": \"webpack\",\n \"webpack.config.client.mjs\": \"webpack\",\n \"webpack.config.client.ts\": \"webpack\",\n \"webpack.config.client.cts\": \"webpack\",\n \"webpack.config.client.mts\": \"webpack\",\n \"webpack.config.production.babel.js\": \"webpack\",\n \"webpack.config.production.babel.ts\": \"webpack\",\n \"webpack.config.prod.babel.js\": \"webpack\",\n \"webpack.config.prod.babel.cjs\": \"webpack\",\n \"webpack.config.prod.babel.mjs\": \"webpack\",\n \"webpack.config.prod.babel.ts\": \"webpack\",\n \"webpack.config.prod.babel.cts\": \"webpack\",\n \"webpack.config.prod.babel.mts\": \"webpack\",\n \"webpack.config.prod.js\": \"webpack\",\n \"webpack.config.prod.cjs\": \"webpack\",\n \"webpack.config.prod.mjs\": \"webpack\",\n \"webpack.config.prod.ts\": \"webpack\",\n \"webpack.config.prod.cts\": \"webpack\",\n \"webpack.config.prod.mts\": \"webpack\",\n \"webpack.config.production.js\": \"webpack\",\n \"webpack.config.production.cjs\": \"webpack\",\n \"webpack.config.production.mjs\": \"webpack\",\n \"webpack.config.production.ts\": \"webpack\",\n \"webpack.config.production.cts\": \"webpack\",\n \"webpack.config.production.mts\": \"webpack\",\n \"webpack.config.staging.js\": \"webpack\",\n \"webpack.config.staging.cjs\": \"webpack\",\n \"webpack.config.staging.mjs\": \"webpack\",\n \"webpack.config.staging.ts\": \"webpack\",\n \"webpack.config.staging.cts\": \"webpack\",\n \"webpack.config.staging.mts\": \"webpack\",\n \"webpack.config.babel.js\": \"webpack\",\n \"webpack.config.babel.ts\": \"webpack\",\n \"webpack.config.base.babel.js\": \"webpack\",\n \"webpack.config.base.babel.ts\": \"webpack\",\n \"webpack.config.base.js\": \"webpack\",\n \"webpack.config.base.cjs\": \"webpack\",\n \"webpack.config.base.mjs\": \"webpack\",\n \"webpack.config.base.ts\": \"webpack\",\n \"webpack.config.base.cts\": \"webpack\",\n \"webpack.config.base.mts\": \"webpack\",\n \"webpack.config.staging.babel.js\": \"webpack\",\n \"webpack.config.staging.babel.ts\": \"webpack\",\n \"webpack.config.coffee\": \"webpack\",\n \"webpack.config.test.js\": \"webpack\",\n \"webpack.config.test.cjs\": \"webpack\",\n \"webpack.config.test.mjs\": \"webpack\",\n \"webpack.config.test.ts\": \"webpack\",\n \"webpack.config.test.cts\": \"webpack\",\n \"webpack.config.test.mts\": \"webpack\",\n \"webpack.config.vendor.js\": \"webpack\",\n \"webpack.config.vendor.cjs\": \"webpack\",\n \"webpack.config.vendor.mjs\": \"webpack\",\n \"webpack.config.vendor.ts\": \"webpack\",\n \"webpack.config.vendor.cts\": \"webpack\",\n \"webpack.config.vendor.mts\": \"webpack\",\n \"webpack.config.vendor.production.js\": \"webpack\",\n \"webpack.config.vendor.production.cjs\": \"webpack\",\n \"webpack.config.vendor.production.mjs\": \"webpack\",\n \"webpack.config.vendor.production.ts\": \"webpack\",\n \"webpack.config.vendor.production.cts\": \"webpack\",\n \"webpack.config.vendor.production.mts\": \"webpack\",\n \"webpack.test.js\": \"webpack\",\n \"webpack.test.cjs\": \"webpack\",\n \"webpack.test.mjs\": \"webpack\",\n \"webpack.test.ts\": \"webpack\",\n \"webpack.test.cts\": \"webpack\",\n \"webpack.test.mts\": \"webpack\",\n \"webpack.dist.js\": \"webpack\",\n \"webpack.dist.cjs\": \"webpack\",\n \"webpack.dist.mjs\": \"webpack\",\n \"webpack.dist.ts\": \"webpack\",\n \"webpack.dist.cts\": \"webpack\",\n \"webpack.dist.mts\": \"webpack\",\n \"webpackfile.js\": \"webpack\",\n \"webpackfile.cjs\": \"webpack\",\n \"webpackfile.mjs\": \"webpack\",\n \"webpackfile.ts\": \"webpack\",\n \"webpackfile.cts\": \"webpack\",\n \"webpackfile.mts\": \"webpack\",\n \"ionic.config.json\": \"ionic\",\n \".io-config.json\": \"ionic\",\n \"gulpfile.js\": \"gulp\",\n \"gulpfile.mjs\": \"gulp\",\n \"gulpfile.ts\": \"gulp\",\n \"gulpfile.cts\": \"gulp\",\n \"gulpfile.mts\": \"gulp\",\n \"gulpfile.babel.js\": \"gulp\",\n \"package.json\": \"nodejs\",\n \"package-lock.json\": \"nodejs\",\n \".nvmrc\": \"nodejs\",\n \".esmrc\": \"nodejs\",\n \".node-version\": \"nodejs\",\n \".npmignore\": \"npm\",\n \".npmrc\": \"npm\",\n \".yarnrc\": \"yarn\",\n \"yarn.lock\": \"yarn\",\n \".yarnclean\": \"yarn\",\n \".yarn-integrity\": \"yarn\",\n \"yarn-error.log\": \"yarn\",\n \".yarnrc.yml\": \"yarn\",\n \".yarnrc.yaml\": \"yarn\",\n \"androidmanifest.xml\": \"android\",\n \".env.defaults\": \"tune\",\n \".env.example\": \"tune\",\n \".env.sample\": \"tune\",\n \".env.template\": \"tune\",\n \".env.schema\": \"tune\",\n \".env.local\": \"tune\",\n \".env.dev\": \"tune\",\n \".env.development\": \"tune\",\n \".env.alpha\": \"tune\",\n \".env.e2e\": \"tune\",\n \".env.qa\": \"tune\",\n \".env.dist\": \"tune\",\n \".env.prod\": \"tune\",\n \".env.production\": \"tune\",\n \".env.stage\": \"tune\",\n \".env.staging\": \"tune\",\n \".env.preview\": \"tune\",\n \".env.test\": \"tune\",\n \".env.testing\": \"tune\",\n \".env.development.local\": \"tune\",\n \".env.qa.local\": \"tune\",\n \".env.production.local\": \"tune\",\n \".env.staging.local\": \"tune\",\n \".env.test.local\": \"tune\",\n \".env.uat\": \"tune\",\n \"turbo.json\": \"turborepo\",\n \".babelrc\": \"babel\",\n \".babelrc.cjs\": \"babel\",\n \".babelrc.js\": \"babel\",\n \".babelrc.mjs\": \"babel\",\n \".babelrc.json\": \"babel\",\n \"babel.config.cjs\": \"babel\",\n \"babel.config.js\": \"babel\",\n \"babel.config.mjs\": \"babel\",\n \"babel.config.json\": \"babel\",\n \"babel-transform.js\": \"babel\",\n \".babel-plugin-macrosrc\": \"babel\",\n \".babel-plugin-macrosrc.json\": \"babel\",\n \".babel-plugin-macrosrc.yaml\": \"babel\",\n \".babel-plugin-macrosrc.yml\": \"babel\",\n \".babel-plugin-macrosrc.js\": \"babel\",\n \"babel-plugin-macros.config.js\": \"babel\",\n \"blitz.config.js\": \"blitz\",\n \"blitz.config.ts\": \"blitz\",\n \".blitz.config.compiled.js\": \"blitz\",\n \"contributing.md\": \"contributing\",\n \"contributing.rst\": \"contributing\",\n \"contributing.txt\": \"contributing\",\n \"contributing\": \"contributing\",\n \"readme.md\": \"readme\",\n \"readme.rst\": \"readme\",\n \"readme.txt\": \"readme\",\n \"readme\": \"readme\",\n \"changelog\": \"changelog\",\n \"changelog.md\": \"changelog\",\n \"changelog.rst\": \"changelog\",\n \"changelog.txt\": \"changelog\",\n \"changes\": \"changelog\",\n \"changes.md\": \"changelog\",\n \"changes.rst\": \"changelog\",\n \"changes.txt\": \"changelog\",\n \"architecture.md\": \"architecture\",\n \"architecture.rst\": \"architecture\",\n \"architecture.txt\": \"architecture\",\n \"architecture\": \"architecture\",\n \"credits.md\": \"credits\",\n \"credits.rst\": \"credits\",\n \"credits.txt\": \"credits\",\n \"credits\": \"credits\",\n \"authors.md\": \"authors\",\n \"authors.rst\": \"authors\",\n \"authors.txt\": \"authors\",\n \"authors\": \"authors\",\n \"contributors.md\": \"authors\",\n \"contributors.rst\": \"authors\",\n \"contributors.txt\": \"authors\",\n \"contributors\": \"authors\",\n \".flowconfig\": \"flow\",\n \"favicon.ico\": \"favicon\",\n \"karma.conf.js\": \"karma\",\n \"karma.conf.ts\": \"karma\",\n \"karma.conf.coffee\": \"karma\",\n \"karma.config.js\": \"karma\",\n \"karma.config.ts\": \"karma\",\n \"karma-main.js\": \"karma\",\n \"karma-main.ts\": \"karma\",\n \".bithoundrc\": \"bithound\",\n \"svgo.config.js\": \"svgo\",\n \"svgo.config.cjs\": \"svgo\",\n \"svgo.config.mjs\": \"svgo\",\n \".appveyor.yml\": \"appveyor\",\n \"appveyor.yml\": \"appveyor\",\n \".travis.yml\": \"travis\",\n \".codecov.yml\": \"codecov\",\n \"codecov.yml\": \"codecov\",\n \"sonar-project.properties\": \"sonarcloud\",\n \".sonarcloud.properties\": \"sonarcloud\",\n \"sonarcloud.yaml\": \"sonarcloud\",\n \"protractor.conf.js\": \"protractor\",\n \"protractor.conf.ts\": \"protractor\",\n \"protractor.conf.coffee\": \"protractor\",\n \"protractor.config.js\": \"protractor\",\n \"protractor.config.ts\": \"protractor\",\n \"fuse.js\": \"fusebox\",\n \"procfile\": \"heroku\",\n \"procfile.windows\": \"heroku\",\n \".editorconfig\": \"editorconfig\",\n \".bowerrc\": \"bower\",\n \"bower.json\": \"bower\",\n \".eslintrc.js\": \"eslint\",\n \".eslintrc.cjs\": \"eslint\",\n \".eslintrc.yaml\": \"eslint\",\n \".eslintrc.yml\": \"eslint\",\n \".eslintrc.json\": \"eslint\",\n \".eslintrc-md.js\": \"eslint\",\n \".eslintrc-jsdoc.js\": \"eslint\",\n \".eslintrc\": \"eslint\",\n \".eslintignore\": \"eslint\",\n \".eslintcache\": \"eslint\",\n \"eslint.config.js\": \"eslint\",\n \"eslint.config.mjs\": \"eslint\",\n \"code_of_conduct.md\": \"conduct\",\n \"code_of_conduct.txt\": \"conduct\",\n \"code_of_conduct\": \"conduct\",\n \".watchmanconfig\": \"watchman\",\n \"aurelia.json\": \"aurelia\",\n \".autorc\": \"auto\",\n \"auto.config.js\": \"auto\",\n \"auto.config.ts\": \"auto\",\n \"auto-config.json\": \"auto\",\n \"auto-config.yaml\": \"auto\",\n \"auto-config.yml\": \"auto\",\n \"auto-config.ts\": \"auto\",\n \"auto-config.js\": \"auto\",\n \"mocha.opts\": \"mocha\",\n \".mocharc.yml\": \"mocha\",\n \".mocharc.yaml\": \"mocha\",\n \".mocharc.js\": \"mocha\",\n \".mocharc.json\": \"mocha\",\n \".mocharc.jsonc\": \"mocha\",\n \"jenkinsfile\": \"jenkins\",\n \"firebase.json\": \"firebase\",\n \".firebaserc\": \"firebase\",\n \"firestore.rules\": \"firebase\",\n \"firestore.indexes.json\": \"firebase\",\n \"rollup.config.js\": \"rollup\",\n \"rollup.config.mjs\": \"rollup\",\n \"rollup.config.ts\": \"rollup\",\n \"rollup-config.js\": \"rollup\",\n \"rollup-config.mjs\": \"rollup\",\n \"rollup-config.ts\": \"rollup\",\n \"rollup.config.common.js\": \"rollup\",\n \"rollup.config.common.mjs\": \"rollup\",\n \"rollup.config.common.ts\": \"rollup\",\n \"rollup.config.base.js\": \"rollup\",\n \"rollup.config.base.mjs\": \"rollup\",\n \"rollup.config.base.ts\": \"rollup\",\n \"rollup.config.prod.js\": \"rollup\",\n \"rollup.config.prod.mjs\": \"rollup\",\n \"rollup.config.prod.ts\": \"rollup\",\n \"rollup.config.dev.js\": \"rollup\",\n \"rollup.config.dev.mjs\": \"rollup\",\n \"rollup.config.dev.ts\": \"rollup\",\n \"rollup.config.prod.vendor.js\": \"rollup\",\n \"rollup.config.prod.vendor.mjs\": \"rollup\",\n \"rollup.config.prod.vendor.ts\": \"rollup\",\n \".hhconfig\": \"hack\",\n \"hardhat.config.js\": \"hardhat\",\n \"hardhat.config.ts\": \"hardhat\",\n \".stylelintrc\": \"stylelint\",\n \"stylelint.config.js\": \"stylelint\",\n \"stylelint.config.cjs\": \"stylelint\",\n \".stylelintrc.json\": \"stylelint\",\n \".stylelintrc.yaml\": \"stylelint\",\n \".stylelintrc.yml\": \"stylelint\",\n \".stylelintrc.js\": \"stylelint\",\n \".stylelintrc.cjs\": \"stylelint\",\n \".stylelintignore\": \"stylelint\",\n \".stylelintcache\": \"stylelint\",\n \".codeclimate.yml\": \"code-climate\",\n \".prettierrc\": \"prettier\",\n \"prettier.config.js\": \"prettier\",\n \"prettier.config.cjs\": \"prettier\",\n \".prettierrc.js\": \"prettier\",\n \".prettierrc.cjs\": \"prettier\",\n \".prettierrc.json\": \"prettier\",\n \".prettierrc.json5\": \"prettier\",\n \".prettierrc.yaml\": \"prettier\",\n \".prettierrc.yml\": \"prettier\",\n \".prettierignore\": \"prettier\",\n \".prettierrc.toml\": \"prettier\",\n \".renovaterc\": \"renovate\",\n \".renovaterc.json\": \"renovate\",\n \"renovate-config.json\": \"renovate\",\n \"renovate.json\": \"renovate\",\n \"renovate.json5\": \"renovate\",\n \"apollo.config.js\": \"apollo\",\n \"nodemon.json\": \"nodemon\",\n \"nodemon-debug.json\": \"nodemon\",\n \".hintrc\": \"webhint\",\n \"browserslist\": \"browserlist\",\n \".browserslistrc\": \"browserlist\",\n \".snyk\": \"snyk\",\n \".drone.yml\": \"drone\",\n \".sequelizerc\": \"sequelize\",\n \"gatsby-config.js\": \"gatsby\",\n \"gatsby-config.mjs\": \"gatsby\",\n \"gatsby-config.ts\": \"gatsby\",\n \"gatsby-node.js\": \"gatsby\",\n \"gatsby-node.mjs\": \"gatsby\",\n \"gatsby-node.ts\": \"gatsby\",\n \"gatsby-browser.js\": \"gatsby\",\n \"gatsby-browser.tsx\": \"gatsby\",\n \"gatsby-ssr.js\": \"gatsby\",\n \"gatsby-ssr.tsx\": \"gatsby\",\n \".wakatime-project\": \"wakatime\",\n \"circle.yml\": \"circleci\",\n \".cfignore\": \"cloudfoundry\",\n \"gruntfile.js\": \"grunt\",\n \"gruntfile.ts\": \"grunt\",\n \"gruntfile.coffee\": \"grunt\",\n \"gruntfile.babel.js\": \"grunt\",\n \"gruntfile.babel.ts\": \"grunt\",\n \"gruntfile.babel.coffee\": \"grunt\",\n \"jest.config.js\": \"jest\",\n \"jest.config.cjs\": \"jest\",\n \"jest.config.mjs\": \"jest\",\n \"jest.config.ts\": \"jest\",\n \"jest.config.cts\": \"jest\",\n \"jest.config.mts\": \"jest\",\n \"jest.config.json\": \"jest\",\n \"jest.e2e.config.js\": \"jest\",\n \"jest.e2e.config.cjs\": \"jest\",\n \"jest.e2e.config.mjs\": \"jest\",\n \"jest.e2e.config.ts\": \"jest\",\n \"jest.e2e.config.cts\": \"jest\",\n \"jest.e2e.config.mts\": \"jest\",\n \"jest.e2e.config.json\": \"jest\",\n \"jest.e2e.json\": \"jest\",\n \"jest-unit.config.js\": \"jest\",\n \"jest-e2e.config.js\": \"jest\",\n \"jest-e2e.config.cjs\": \"jest\",\n \"jest-e2e.config.mjs\": \"jest\",\n \"jest-e2e.config.ts\": \"jest\",\n \"jest-e2e.config.cts\": \"jest\",\n \"jest-e2e.config.mts\": \"jest\",\n \"jest-e2e.config.json\": \"jest\",\n \"jest-e2e.json\": \"jest\",\n \"jest-github-actions-reporter.js\": \"jest\",\n \"jest.setup.js\": \"jest\",\n \"jest.setup.ts\": \"jest\",\n \"jest.json\": \"jest\",\n \".jestrc\": \"jest\",\n \".jestrc.js\": \"jest\",\n \".jestrc.json\": \"jest\",\n \"jest.teardown.js\": \"jest\",\n \"fastfile\": \"fastlane\",\n \"appfile\": \"fastlane\",\n \".helmignore\": \"helm\",\n \"wallaby.js\": \"wallaby\",\n \"wallaby.conf.js\": \"wallaby\",\n \"stencil.config.js\": \"stencil\",\n \"stencil.config.ts\": \"stencil\",\n \"makefile\": \"makefile\",\n \"gnumakefile\": \"makefile\",\n \"kbuild\": \"makefile\",\n \".releaserc\": \"semantic-release\",\n \".releaserc.yaml\": \"semantic-release\",\n \".releaserc.yml\": \"semantic-release\",\n \".releaserc.json\": \"semantic-release\",\n \".releaserc.js\": \"semantic-release\",\n \"release.config.js\": \"semantic-release\",\n \"release.config.cjs\": \"semantic-release\",\n \"bitbucket-pipelines.yaml\": \"bitbucket\",\n \"bitbucket-pipelines.yml\": \"bitbucket\",\n \".bazelignore\": \"bazel\",\n \".bazelrc\": \"bazel\",\n \".bazelversion\": \"bazel\",\n \".gdignore\": \"godot-assets\",\n \"._sc_\": \"godot-assets\",\n \"_sc_\": \"godot-assets\",\n \"azure-pipelines.yml\": \"azure-pipelines\",\n \"azure-pipelines.yaml\": \"azure-pipelines\",\n \"vagrantfile\": \"vagrant\",\n \"prisma.yml\": \"prisma\",\n \".nycrc\": \"istanbul\",\n \".nycrc.json\": \"istanbul\",\n \"tailwind.js\": \"tailwindcss\",\n \"tailwind.ts\": \"tailwindcss\",\n \"tailwind.config.js\": \"tailwindcss\",\n \"tailwind.config.cjs\": \"tailwindcss\",\n \"tailwind.config.ts\": \"tailwindcss\",\n \"tailwind.config.cts\": \"tailwindcss\",\n \"buildkite.yml\": \"buildkite\",\n \"buildkite.yaml\": \"buildkite\",\n \"netlify.json\": \"netlify\",\n \"netlify.yml\": \"netlify\",\n \"netlify.yaml\": \"netlify\",\n \"netlify.toml\": \"netlify\",\n \"svelte.config.js\": \"svelte\",\n \"svelte.config.cjs\": \"svelte\",\n \"nest-cli.json\": \"nest\",\n \".nest-cli.json\": \"nest\",\n \"nestconfig.json\": \"nest\",\n \".nestconfig.json\": \"nest\",\n \".percy.yml\": \"percy\",\n \".gitpod.yml\": \"gitpod\",\n \"codeowners\": \"codeowners\",\n \".gcloudignore\": \"gcp\",\n \".huskyrc\": \"husky\",\n \"husky.config.js\": \"husky\",\n \".huskyrc.json\": \"husky\",\n \".huskyrc.js\": \"husky\",\n \".huskyrc.yaml\": \"husky\",\n \".huskyrc.yml\": \"husky\",\n \"tiltfile\": \"tilt\",\n \"capacitor.config.json\": \"capacitor\",\n \"capacitor.config.ts\": \"capacitor\",\n \".adonisrc.json\": \"adonis\",\n \"ace\": \"adonis\",\n \"meson.build\": \"meson\",\n \"meson_options.txt\": \"meson\",\n \".commitlintrc\": \"commitlint\",\n \".commitlintrc.js\": \"commitlint\",\n \".commitlintrc.cjs\": \"commitlint\",\n \".commitlintrc.ts\": \"commitlint\",\n \".commitlintrc.cts\": \"commitlint\",\n \".commitlintrc.json\": \"commitlint\",\n \".commitlintrc.yaml\": \"commitlint\",\n \".commitlintrc.yml\": \"commitlint\",\n \".commitlint.yaml\": \"commitlint\",\n \".commitlint.yml\": \"commitlint\",\n \"commitlint.config.js\": \"commitlint\",\n \"commitlint.config.cjs\": \"commitlint\",\n \"commitlint.config.ts\": \"commitlint\",\n \"commitlint.config.cts\": \"commitlint\",\n \".buckconfig\": \"buck\",\n \"nx.json\": \"nrwl\",\n \".nxignore\": \"nrwl\",\n \"dune\": \"dune\",\n \"dune-project\": \"dune\",\n \"dune-workspace\": \"dune\",\n \"dune-workspace.dev\": \"dune\",\n \"roadmap.md\": \"roadmap\",\n \"roadmap.txt\": \"roadmap\",\n \"timeline.md\": \"roadmap\",\n \"timeline.txt\": \"roadmap\",\n \"milestones.md\": \"roadmap\",\n \"milestones.txt\": \"roadmap\",\n \"nuget.config\": \"nuget\",\n \".nuspec\": \"nuget\",\n \"nuget.exe\": \"nuget\",\n \"stryker.conf.json\": \"stryker\",\n \"stryker.conf.js\": \"stryker\",\n \"stryker.conf.cjs\": \"stryker\",\n \"stryker.conf.mjs\": \"stryker\",\n \".stryker.conf.json\": \"stryker\",\n \".stryker.conf.js\": \"stryker\",\n \".stryker.conf.cjs\": \"stryker\",\n \".stryker.conf.mjs\": \"stryker\",\n \".modernizrrc\": \"modernizr\",\n \".modernizrrc.js\": \"modernizr\",\n \".modernizrrc.json\": \"modernizr\",\n \".slugignore\": \"slug\",\n \"stitches.config.js\": \"stitches\",\n \"stitches.config.ts\": \"stitches\",\n \"nginx.conf\": \"nginx\",\n \".mcattributes\": \"minecraft\",\n \".mcdefinitions\": \"minecraft\",\n \".mcignore\": \"minecraft\",\n \".replit\": \"replit\",\n \"snowpack.config.js\": \"snowpack\",\n \"snowpack.config.cjs\": \"snowpack\",\n \"snowpack.config.mjs\": \"snowpack\",\n \"snowpack.config.ts\": \"snowpack\",\n \"snowpack.config.cts\": \"snowpack\",\n \"snowpack.config.mts\": \"snowpack\",\n \"snowpack.deps.json\": \"snowpack\",\n \"snowpack.config.json\": \"snowpack\",\n \"quasar.conf.js\": \"quasar\",\n \"quasar.config.js\": \"quasar\",\n \"dependabot.yml\": \"dependabot\",\n \"dependabot.yaml\": \"dependabot\",\n \"vite.config.js\": \"vite\",\n \"vite.config.mjs\": \"vite\",\n \"vite.config.cjs\": \"vite\",\n \"vite.config.ts\": \"vite\",\n \"vite.config.cts\": \"vite\",\n \"vite.config.mts\": \"vite\",\n \"vitest.config.ts\": \"vitest\",\n \"vitest.config.mts\": \"vitest\",\n \"vitest.config.cts\": \"vitest\",\n \"vitest.config.js\": \"vitest\",\n \"vitest.config.mjs\": \"vitest\",\n \"vitest.config.cjs\": \"vitest\",\n \"lerna.json\": \"lerna\",\n \"windi.config.js\": \"windicss\",\n \"windi.config.cjs\": \"windicss\",\n \"windi.config.ts\": \"windicss\",\n \"windi.config.cts\": \"windicss\",\n \"windi.config.json\": \"windicss\",\n \".textlintrc\": \"textlint\",\n \"vpkg.json\": \"vlang\",\n \"v.mod\": \"vlang\",\n \".sentryclirc\": \"sentry\",\n \".phpunit.result.cache\": \"phpunit\",\n \".phpunit-watcher.yml\": \"phpunit\",\n \"phpunit.xml\": \"phpunit\",\n \"phpunit.xml.dist\": \"phpunit\",\n \"phpunit-watcher.yml\": \"phpunit\",\n \"phpunit-watcher.yml.dist\": \"phpunit\",\n \".php_cs\": \"php-cs-fixer\",\n \".php_cs.dist\": \"php-cs-fixer\",\n \".php_cs.php\": \"php-cs-fixer\",\n \".php_cs.dist.php\": \"php-cs-fixer\",\n \".php-cs-fixer.php\": \"php-cs-fixer\",\n \".php-cs-fixer.dist.php\": \"php-cs-fixer\",\n \"robots.txt\": \"robots\",\n \"tsconfig.json\": \"tsconfig\",\n \"tsconfig.app.json\": \"tsconfig\",\n \"tsconfig.editor.json\": \"tsconfig\",\n \"tsconfig.spec.json\": \"tsconfig\",\n \"tsconfig.base.json\": \"tsconfig\",\n \"tsconfig.build.json\": \"tsconfig\",\n \"tsconfig.eslint.json\": \"tsconfig\",\n \"tsconfig.lib.json\": \"tsconfig\",\n \"tsconfig.lib.prod.json\": \"tsconfig\",\n \"tsconfig.node.json\": \"tsconfig\",\n \"tsconfig.test.json\": \"tsconfig\",\n \"tsconfig.e2e.json\": \"tsconfig\",\n \"tsconfig.web.json\": \"tsconfig\",\n \"tsconfig.webworker.json\": \"tsconfig\",\n \"tsconfig.worker.json\": \"tsconfig\",\n \"tsconfig.config.json\": \"tsconfig\",\n \"tsconfig.vitest.json\": \"tsconfig\",\n \"tsconfig.cjs.json\": \"tsconfig\",\n \"tsconfig.esm.json\": \"tsconfig\",\n \"tsconfig.mjs.json\": \"tsconfig\",\n \"tsconfig.doc.json\": \"tsconfig\",\n \"tsconfig.paths.json\": \"tsconfig\",\n \"tauri.conf.json\": \"tauri\",\n \"tauri.config.json\": \"tauri\",\n \"tauri.linux.conf.json\": \"tauri\",\n \"tauri.windows.conf.json\": \"tauri\",\n \"tauri.macos.conf.json\": \"tauri\",\n \"jsconfig.json\": \"jsconfig\",\n \"maven.config\": \"maven\",\n \"jvm.config\": \"maven\",\n \"pom.xml\": \"maven\",\n \"serverless.yml\": \"serverless\",\n \"serverless.yaml\": \"serverless\",\n \"serverless.json\": \"serverless\",\n \"serverless.js\": \"serverless\",\n \"serverless.ts\": \"serverless\",\n \"supabase.js\": \"supabase\",\n \"supabase.py\": \"supabase\",\n \".ember-cli\": \"ember\",\n \".ember-cli.js\": \"ember\",\n \"ember-cli-builds.js\": \"ember\",\n \"horusec-config.json\": \"horusec\",\n \"poetry.lock\": \"poetry\",\n \".parcelrc\": \"parcel\",\n \".astylerc\": \"astyle\",\n \".lighthouserc.js\": \"lighthouse\",\n \"lighthouserc.js\": \"lighthouse\",\n \".lighthouserc.json\": \"lighthouse\",\n \"lighthouserc.json\": \"lighthouse\",\n \".lighthouserc.yml\": \"lighthouse\",\n \"lighthouserc.yml\": \"lighthouse\",\n \".lighthouserc.yaml\": \"lighthouse\",\n \"lighthouserc.yaml\": \"lighthouse\",\n \".svgrrc\": \"svgr\",\n \"svgr.config.js\": \"svgr\",\n \".svgrrc.js\": \"svgr\",\n \".svgrrc.yaml\": \"svgr\",\n \".svgrrc.yml\": \"svgr\",\n \".svgrrc.json\": \"svgr\",\n \"rome.json\": \"rome\",\n \"cypress.json\": \"cypress\",\n \"cypress.env.json\": \"cypress\",\n \"cypress.config.ts\": \"cypress\",\n \"cypress.config.js\": \"cypress\",\n \"cypress.config.cjs\": \"cypress\",\n \"cypress.config.mjs\": \"cypress\",\n \"plopfile.js\": \"plop\",\n \"plopfile.cjs\": \"plop\",\n \"plopfile.mjs\": \"plop\",\n \"plopfile.ts\": \"plop\",\n \".tobimake\": \"tobimake\",\n \"gleam.toml\": \"gleam\",\n \"pnpm-lock.yaml\": \"pnpm\",\n \"pnpm-workspace.yaml\": \"pnpm\",\n \".pnpmfile.cjs\": \"pnpm\",\n \"gridsome.config.js\": \"gridsome\",\n \"gridsome.server.js\": \"gridsome\",\n \".steadybit.yml\": \"steadybit\",\n \"steadybit.yml\": \"steadybit\",\n \".steadybit.yaml\": \"steadybit\",\n \"steadybit.yaml\": \"steadybit\",\n \"Caddyfile\": \"caddy\",\n \"bun.lockb\": \"bun\",\n \".nano-staged.js\": \"nano-staged\",\n \"nano-staged.js\": \"nano-staged\",\n \".nano-staged.cjs\": \"nano-staged\",\n \"nano-staged.cjs\": \"nano-staged\",\n \".nano-staged.mjs\": \"nano-staged\",\n \"nano-staged.mjs\": \"nano-staged\",\n \".nano-staged.json\": \"nano-staged\",\n \"nano-staged.json\": \"nano-staged\",\n \".nanostagedrc\": \"nano-staged\",\n \"craco.config.ts\": \"craco\",\n \"craco.config.js\": \"craco\",\n \"craco.config.cjs\": \"craco\",\n \".cracorc.ts\": \"craco\",\n \".cracorc.js\": \"craco\",\n \".cracorc\": \"craco\",\n \".hg\": \"mercurial\",\n \".hgignore\": \"mercurial\",\n \".hgflow\": \"mercurial\",\n \".hgrc\": \"mercurial\",\n \"hgrc\": \"mercurial\",\n \"mercurial.ini\": \"mercurial\",\n \"deno.json\": \"deno\",\n \"deno.jsonc\": \"deno\",\n \"deno.lock\": \"deno\",\n \"plastic.branchexplorer\": \"plastic\",\n \"plastic.selector\": \"plastic\",\n \"plastic.wktree\": \"plastic\",\n \"plastic.workspace\": \"plastic\",\n \"plastic.workspaces\": \"plastic\",\n \".mincloudrc\": \"ifanr-cloud\"\n },\n \"languageIds\": {\n \"git\": \"git\",\n \"git-commit\": \"git\",\n \"git-rebase\": \"git\",\n \"ignore\": \"git\",\n \"yaml\": \"yaml\",\n \"xml\": \"xml\",\n \"xquery\": \"xml\",\n \"xsl\": \"xml\",\n \"matlab\": \"matlab\",\n \"makefile\": \"settings\",\n \"toml\": \"settings\",\n \"ini\": \"settings\",\n \"properties\": \"settings\",\n \"shaderlab\": \"shaderlab\",\n \"diff\": \"diff\",\n \"json\": \"json\",\n \"jsonc\": \"json\",\n \"json5\": \"json\",\n \"blink\": \"blink\",\n \"java\": \"java\",\n \"razor\": \"razor\",\n \"aspnetcorerazor\": \"razor\",\n \"python\": \"python\",\n \"javascript\": \"javascript\",\n \"typescript\": \"typescript\",\n \"scala\": \"scala\",\n \"handlebars\": \"handlebars\",\n \"perl\": \"perl\",\n \"perl6\": \"perl\",\n \"haxe\": \"haxe\",\n \"hxml\": \"haxe\",\n \"puppet\": \"puppet\",\n \"elixir\": \"elixir\",\n \"livescript\": \"livescript\",\n \"erlang\": \"erlang\",\n \"twig\": \"twig\",\n \"julia\": \"julia\",\n \"elm\": \"elm\",\n \"purescript\": \"purescript\",\n \"stylus\": \"stylus\",\n \"nunjucks\": \"nunjucks\",\n \"pug\": \"pug\",\n \"robotframework\": \"robot\",\n \"sass\": \"sass\",\n \"scss\": \"sass\",\n \"less\": \"less\",\n \"css\": \"css\",\n \"testOutput\": \"visualstudio\",\n \"vb\": \"visualstudio\",\n \"ng-template\": \"angular\",\n \"graphql\": \"graphql\",\n \"solidity\": \"solidity\",\n \"autoit\": \"autoit\",\n \"haml\": \"haml\",\n \"yang\": \"yang\",\n \"terraform\": \"terraform\",\n \"applescript\": \"applescript\",\n \"cake\": \"cake\",\n \"cucumber\": \"cucumber\",\n \"nim\": \"nim\",\n \"nimble\": \"nim\",\n \"apiblueprint\": \"apiblueprint\",\n \"riot\": \"riot\",\n \"postcss\": \"postcss\",\n \"lang-cfml\": \"coldfusion\",\n \"haskell\": \"haskell\",\n \"dhall\": \"dhall\",\n \"cabal\": \"cabal\",\n \"nix\": \"nix\",\n \"ruby\": \"ruby\",\n \"slim\": \"slim\",\n \"php\": \"php\",\n \"hack\": \"hack\",\n \"javascriptreact\": \"react\",\n \"mjml\": \"mjml\",\n \"processing\": \"processing\",\n \"hcl\": \"hcl\",\n \"go\": \"go\",\n \"django-html\": \"django\",\n \"django-txt\": \"django\",\n \"html\": \"html\",\n \"gdscript\": \"godot\",\n \"gdresource\": \"godot-assets\",\n \"gdshader\": \"godot-assets\",\n \"viml\": \"vim\",\n \"prolog\": \"prolog\",\n \"pawn\": \"pawn\",\n \"reason\": \"reason\",\n \"reason_lisp\": \"reason\",\n \"sml\": \"sml\",\n \"tex\": \"tex\",\n \"doctex\": \"tex\",\n \"latex\": \"tex\",\n \"latex-expl3\": \"tex\",\n \"apex\": \"salesforce\",\n \"sas\": \"sas\",\n \"dockerfile\": \"docker\",\n \"csv\": \"table\",\n \"tsv\": \"table\",\n \"psv\": \"table\",\n \"csharp\": \"csharp\",\n \"bat\": \"console\",\n \"awk\": \"console\",\n \"shellscript\": \"console\",\n \"c\": \"c\",\n \"cpp\": \"cpp\",\n \"objective-c\": \"objective-c\",\n \"objective-cpp\": \"objective-cpp\",\n \"coffeescript\": \"coffee\",\n \"fsharp\": \"fsharp\",\n \"editorconfig\": \"editorconfig\",\n \"clojure\": \"clojure\",\n \"groovy\": \"groovy\",\n \"markdown\": \"markdown\",\n \"jinja\": \"jinja\",\n \"proto\": \"proto\",\n \"pip-requirements\": \"python-misc\",\n \"vue\": \"vue\",\n \"vue-postcss\": \"vue\",\n \"vue-html\": \"vue\",\n \"lua\": \"lua\",\n \"bibtex\": \"lib\",\n \"bibtex-style\": \"lib\",\n \"log\": \"log\",\n \"jupyter\": \"jupyter\",\n \"plaintext\": \"document\",\n \"pdf\": \"pdf\",\n \"powershell\": \"powershell\",\n \"jade\": \"pug\",\n \"r\": \"r\",\n \"rsweave\": \"r\",\n \"rust\": \"rust\",\n \"sql\": \"database\",\n \"kql\": \"kusto\",\n \"ssh_config\": \"lock\",\n \"svg\": \"svg\",\n \"swift\": \"swift\",\n \"typescriptreact\": \"react_ts\",\n \"search-result\": \"search\",\n \"mcfunction\": \"minecraft\",\n \"rescript\": \"rescript\",\n \"otne\": \"otne\",\n \"twee3\": \"twine\",\n \"twee3-harlowe-3\": \"twine\",\n \"twee3-chapbook-1\": \"twine\",\n \"twee3-sugarcube-2\": \"twine\",\n \"grain\": \"grain\",\n \"lolcode\": \"lolcode\",\n \"idris\": \"idris\",\n \"pgn\": \"chess\",\n \"gemini\": \"gemini\",\n \"text-gemini\": \"gemini\",\n \"v\": \"vlang\",\n \"wolfram\": \"wolframlanguage\",\n \"hlsl\": \"shader\",\n \"glsl\": \"shader\",\n \"wgsl\": \"shader\",\n \"tree\": \"tree\",\n \"svelte\": \"svelte\",\n \"dart\": \"dart\",\n \"cadence\": \"cadence\",\n \"stylable\": \"stylable\"\n },\n \"light\": {\n \"fileExtensions\": {\n \"blink\": \"blink_light\",\n \"jinja\": \"jinja_light\",\n \"jinja2\": \"jinja_light\",\n \"j2\": \"jinja_light\",\n \"jinja-html\": \"jinja_light\",\n \"cr\": \"crystal_light\",\n \"ecr\": \"crystal_light\",\n \"drone.yml\": \"drone_light\",\n \".wakatime-project\": \"wakatime_light\",\n \"hcl\": \"hcl_light\",\n \"iuml\": \"uml_light\",\n \"pu\": \"uml_light\",\n \"puml\": \"uml_light\",\n \"plantuml\": \"uml_light\",\n \"wsd\": \"uml_light\",\n \"pgn\": \"chess_light\",\n \"fen\": \"chess_light\",\n \"tldr\": \"tldraw_light\"\n },\n \"fileNames\": {\n \".rubocop.yml\": \"rubocop_light\",\n \".rubocop-todo.yml\": \"rubocop_light\",\n \".rubocop_todo.yml\": \"rubocop_light\",\n \"vercel.json\": \"vercel_light\",\n \".vercelignore\": \"vercel_light\",\n \"now.json\": \"vercel_light\",\n \".nowignore\": \"vercel_light\",\n \"next.config.js\": \"next_light\",\n \"next.config.mjs\": \"next_light\",\n \"next.config.ts\": \"next_light\",\n \"next.config.mts\": \"next_light\",\n \"remix.config.js\": \"remix_light\",\n \"remix.config.ts\": \"remix_light\",\n \"turbo.json\": \"turborepo_light\",\n \".autorc\": \"auto_light\",\n \"auto.config.js\": \"auto_light\",\n \"auto.config.ts\": \"auto_light\",\n \"auto-config.json\": \"auto_light\",\n \"auto-config.yaml\": \"auto_light\",\n \"auto-config.yml\": \"auto_light\",\n \"auto-config.ts\": \"auto_light\",\n \"auto-config.js\": \"auto_light\",\n \".stylelintrc\": \"stylelint_light\",\n \"stylelint.config.js\": \"stylelint_light\",\n \"stylelint.config.cjs\": \"stylelint_light\",\n \".stylelintrc.json\": \"stylelint_light\",\n \".stylelintrc.yaml\": \"stylelint_light\",\n \".stylelintrc.yml\": \"stylelint_light\",\n \".stylelintrc.js\": \"stylelint_light\",\n \".stylelintrc.cjs\": \"stylelint_light\",\n \".stylelintignore\": \"stylelint_light\",\n \".stylelintcache\": \"stylelint_light\",\n \".codeclimate.yml\": \"code-climate_light\",\n \"browserslist\": \"browserlist_light\",\n \".browserslistrc\": \"browserlist_light\",\n \".drone.yml\": \"drone_light\",\n \".wakatime-project\": \"wakatime_light\",\n \"circle.yml\": \"circleci_light\",\n \".releaserc\": \"semantic-release_light\",\n \".releaserc.yaml\": \"semantic-release_light\",\n \".releaserc.yml\": \"semantic-release_light\",\n \".releaserc.json\": \"semantic-release_light\",\n \".releaserc.js\": \"semantic-release_light\",\n \"release.config.js\": \"semantic-release_light\",\n \"release.config.cjs\": \"semantic-release_light\",\n \"netlify.json\": \"netlify_light\",\n \"netlify.yml\": \"netlify_light\",\n \"netlify.yaml\": \"netlify_light\",\n \"netlify.toml\": \"netlify_light\",\n \"stitches.config.js\": \"stitches_light\",\n \"stitches.config.ts\": \"stitches_light\",\n \"snowpack.config.js\": \"snowpack_light\",\n \"snowpack.config.cjs\": \"snowpack_light\",\n \"snowpack.config.mjs\": \"snowpack_light\",\n \"snowpack.config.ts\": \"snowpack_light\",\n \"snowpack.config.cts\": \"snowpack_light\",\n \"snowpack.config.mts\": \"snowpack_light\",\n \"snowpack.deps.json\": \"snowpack_light\",\n \"snowpack.config.json\": \"snowpack_light\",\n \"pnpm-lock.yaml\": \"pnpm_light\",\n \"pnpm-workspace.yaml\": \"pnpm_light\",\n \".pnpmfile.cjs\": \"pnpm_light\",\n \"bun.lockb\": \"bun_light\",\n \".nano-staged.js\": \"nano-staged_light\",\n \"nano-staged.js\": \"nano-staged_light\",\n \".nano-staged.cjs\": \"nano-staged_light\",\n \"nano-staged.cjs\": \"nano-staged_light\",\n \".nano-staged.mjs\": \"nano-staged_light\",\n \"nano-staged.mjs\": \"nano-staged_light\",\n \".nano-staged.json\": \"nano-staged_light\",\n \"nano-staged.json\": \"nano-staged_light\",\n \".nanostagedrc\": \"nano-staged_light\",\n \"deno.json\": \"deno_light\",\n \"deno.jsonc\": \"deno_light\",\n \"deno.lock\": \"deno_light\"\n },\n \"folderNames\": {\n \"jinja\": \"folder-jinja_light\",\n \"jinja2\": \"folder-jinja_light\",\n \"j2\": \"folder-jinja_light\",\n \".idea\": \"folder-intellij_light\"\n },\n \"folderNamesExpanded\": {\n \"jinja\": \"folder-jinja-open_light\",\n \"jinja2\": \"folder-jinja-open_light\",\n \"j2\": \"folder-jinja-open_light\",\n \".idea\": \"folder-intellij-open_light\"\n }\n },\n \"highContrast\": {\n \"fileExtensions\": {},\n \"fileNames\": {}\n },\n \"options\": {\n \"folders\": {\n \"theme\": \"specific\",\n \"color\": \"#90a4ae\",\n \"associations\": {}\n },\n \"activeIconPack\": \"angular\",\n \"hidesExplorerArrows\": false,\n \"opacity\": 1,\n \"saturation\": 1,\n \"files\": {\n \"color\": \"#90a4ae\",\n \"associations\": {}\n },\n \"languages\": {\n \"associations\": {}\n }\n },\n \"file\": \"file\",\n \"hidesExplorerArrows\": false,\n \"folder\": \"folder\",\n \"folderExpanded\": \"folder-open\",\n \"rootFolder\": \"folder-root\",\n \"rootFolderExpanded\": \"folder-root-open\"\n}\n","import { FSDescriptor } from './filemanager.component';\nimport textExtensions from './textextensions';\nimport * as MIT from '../../assets/mat-icons';\n\n// Object.keys(MIT).forEach(k => {\n// console.log(k, MIT[k])\n// })\n\nconst symIcon = Symbol('icon');\n\nconst folderNames = MIT['default'].folderNames;\nconst fileNames = MIT['default'].fileNames;\nconst fileExtensions = MIT['default'].fileExtensions;\n\nlet folderIconNameList = [];\nlet fileIconNameList = [];\nlet fileIconExtensionList = [];\n\nObject.entries(fileNames).forEach(([name, icon]) => {\n fileIconNameList.push({\n val: name,\n iconName: icon\n });\n})\nObject.entries(fileExtensions).forEach(([name, icon]) => {\n fileIconExtensionList.push({\n val: name,\n iconName: icon\n });\n})\n\nObject.entries(folderNames).forEach(([name, icon]) => {\n folderIconNameList.push({\n val: name,\n iconName: icon,\n });\n})\n\n// const getMimeType = (name: string) =>\n// (/\\.(appimage)$/.test(name) && \"compressed\") ||\n// (/\\.(pot|potx|pps|ppsx|ppt|pptm|pptx)$/.test(name) && \"presentation\") ||\n// (/\\.(odt|rtf|doc|docm|docx|dot|dotm|dotx)$/.test(name) && \"richtext\") ||\n// (/\\.(ods|xls|xlsm|xlsx|xps|xlsx|csv)$/.test(name) && \"spreadsheet\");\n\n\n// Limited list of pop-icons that match before mat-icons\n// const builtinIcons = [\n// \"7z\",\n// \"apk\",\n// \"arc\",\n// \"bz\",\n// \"deb\",\n// \"gz\",\n// \"pdf\",\n// \"rar\",\n// \"rpm\",\n// \"tar\",\n// \"xar\",\n// \"xz\",\n// \"zip\"\n// ];\n\nexport class IconResolver {\n public path: string;\n\n constructor(assetPath = \"/assets/\") {\n let path = assetPath.trim();\n\n // Replace any duplicate slash occurences\n path = path.replace(/\\/{2,99}/g, '\\/');\n\n // Trim off trailing slashes\n if (path.endsWith('/'))\n path = path.replace(/\\/+$/, '');\n\n // Ensure it starts with a slash.\n if (!path.startsWith('/'))\n path = '/' + path;\n\n this.path = path;\n }\n\n private isText(path: string) {\n const ext = path.split('.').pop();\n return textExtensions.includes(ext);\n }\n\n private getBestMatch(data: { val: string, iconName: string; }[], filename) {\n return data\n .filter(d => filename.endsWith(d.val)) // filter to all match results\n .sort((a, b) => b.val.length - a.val.length) // sort longest string first\n [0]?.iconName; // Return the first result.\n }\n\n private resolveDirIcon (file: FSDescriptor) {\n if (!file.name && !file.path) {\n return {\n path: `${this.path}/material/folder.svg`,\n needsBackdrop: false\n }\n }\n\n const dirnameMatch = this.getBestMatch(folderIconNameList, file['vanityName'] || file.name || file.path);\n // VS Code Material Icon Theme pack\n\n // TODO: default to a clear icon that doesn't have decoration\n return {\n path: dirnameMatch ? `${this.path}/material/${dirnameMatch}.svg` : `${this.path}/material/folder.svg`,\n needsBackdrop: false\n };\n }\n\n private resolveFileIcon (file: FSDescriptor) {\n // Folders always use the material-icon-theme\n\n // const baseExt = builtinIcons.find(ext => (file['vanityName'] || file.name).endsWith('.' + ext));\n // if (baseExt) {\n // return {\n // path: `${this.path}/pop/exts/${baseExt}.svg`,\n // needsBackdrop: false\n // };\n // }\n\n // // Resolve a base MIME type via path extension\n // const base2Ext = getMimeType((file['vanityName'] || file.name));\n\n // // If we get a path extension, we can easily map the icon\n // if (base2Ext) {\n // return {\n // path: `${this.path}/pop/${base2Ext}.svg`,\n // needsBackdrop: false\n // };\n // }\n\n // Lookup a filename from material-icon-theme\n const filename = fileIconNameList\n .filter(d => (file['vanityName'] || file.name).toLowerCase() == d.val.toLowerCase())\n .sort((a, b) => b.val.length - a.val.length)\n [0]?.iconName;\n\n if (filename) {\n return {\n path: `${this.path}/material/${filename}.svg`,\n needsBackdrop: true\n };\n }\n\n // foo.log.1 foo.log.123 should be treated clearly as log files.\n if (/\\.log\\.\\d+$/.test(filename)) {\n return {\n path: `${this.path}/material/log.svg`,\n needsBackdrop: true\n };\n }\n\n // Check the file's extension -- we may\n const fileext = fileIconExtensionList\n .filter(d => (file['vanityName'] || file.name).toLowerCase().endsWith('.' + d.val.toLowerCase()))\n .sort((a, b) => b.val.length - a.val.length)\n [0]?.iconName;\n\n if (fileext) return {\n path: `${this.path}/material/${fileext}.svg`,\n needsBackdrop: true\n };\n\n // If the file doesn't have a text extension, we're going to assume it's binary data.\n const isFileBinary = !this.isText(file.path);\n\n\n return {\n path: isFileBinary ? `${this.path}/material/document.svg` : `${this.path}/material/assembly.svg`,\n // path: isFileBinary ? `${this.path}/pop/text.svg` : `${this.path}/pop/binary.svg`,\n needsBackdrop: false\n };\n }\n\n // TODO: resolve dynamic thumbnails for media documents\n resolveIcon(file: FSDescriptor): { path: string, needsBackdrop: boolean; } {\n if (!file) return null;\n if (file[symIcon]) return file[symIcon];\n\n if (file.kind == \"directory\") {\n return file[symIcon] = this.resolveDirIcon(file);\n }\n\n return file[symIcon] = this.resolveFileIcon(file);\n };\n}\n","import { Component, ElementRef, Input, SimpleChanges, ViewChild, ViewEncapsulation, EventEmitter, Output } from '@angular/core';\nimport { ColumnDefinition, Options, RowComponent, TabulatorFull as Tabulator } from 'tabulator-tables';\n\nexport type TabulatorEvent<T = any> = {\n event: any,\n row: RowComponent,\n data: T\n}\n\n@Component({\n selector: 'app-tabulator',\n templateUrl: './tabulator.component.html',\n styleUrls: [\n '../../../../../node_modules/tabulator-tables/dist/css/tabulator_simple.css',\n './tabulator.component.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n imports: [],\n standalone: true\n})\nexport class TabulatorComponent<T = any> {\n @ViewChild(\"table\") tableRef: ElementRef<any>;\n\n private _dataSource = [];\n @Input() set dataSource(data: Object[]) {\n this._dataSource = data;\n\n // TODO: this is performance hell for reasons I do not understand.\n if (this.table?.getDataCount() > 0) {\n (async () => {\n const container = this.table.element.querySelector(\".tabulator-tableholder\");\n const initialTop = container.scrollTop;\n const initialLeft = container.scrollLeft;\n\n await this.table.setData(data);\n // @ts-ignore\n container.scrollTo({ left: initialLeft, top: initialTop+1, behavior: \"instant\" });\n setTimeout(() => {\n // @ts-ignore\n container.scrollTo({ left: initialLeft, top: initialTop, behavior: \"instant\" });\n })\n })()\n }\n else\n this.table?.setData(this.dataSource);\n };\n get dataSource() { return this._dataSource };\n\n private _columns = [];\n @Input() set columns(data: ColumnDefinition[]) {\n this._columns = data;\n this.table?.setColumns(this.columns);\n };\n get columns() { return this._columns }\n\n @Input() key: string;\n\n @Input() options: Options = {};\n\n table: Tabulator;\n\n @Output() cellClick = new EventEmitter();\n @Output() cellDblClick = new EventEmitter();\n\n @Output() rowClick = new EventEmitter<TabulatorEvent<T>>();\n @Output() rowContext = new EventEmitter<TabulatorEvent<T>>();\n @Output() rowDblClick = new EventEmitter<TabulatorEvent<T>>();\n\n constructor() { }\n\n ngAfterViewInit() {\n\n const table = this.table = new Tabulator(this.tableRef.nativeElement, {\n index: this.key,\n data: this._dataSource,\n // reactiveData: true,\n columns: this._columns,\n layout: 'fitDataFill',\n height: \"100%\",\n maxHeight: window.innerHeight,\n ...this.options\n });\n\n table.on(\"rowClick\", (e, row) => this.rowClick.next({ event: e, row, data: row.getData() }));\n table.on(\"rowContext\", (e, row) => this.rowContext.next({ event: e, row, data: row.getData() }));\n table.on(\"rowDblClick\", (e, row) => this.rowDblClick.next({ event: e, row, data: row.getData() }));\n\n table.on(\"renderComplete\", () => {\n table.redraw()\n })\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n }\n\n}\n","<div #table></div>\n","import { Fetch } from '../../public-api';\nimport { NgxFileManagerConfiguration } from './filemanager.component';\n\nexport const uploadFile = (\n fetch: Fetch,\n config: NgxFileManagerConfiguration,\n currentDirectory: string,\n targetPath?: string,\n contextTags: {[key: string]: string} = {}\n ) => new Promise(r => {\n\n const inEl = document.createElement('input');\n inEl.setAttribute('type', 'file');\n inEl.setAttribute('multiple', '');\n inEl.click();\n\n let formData = new FormData();\n\n inEl.addEventListener('change', () => {\n Object.keys(inEl.files).forEach(k => {\n const file: {\n lastModified: number,\n lastModifiedDate: Date,\n name: string,\n size: number,\n type: string;\n } = inEl.files[k];\n\n const name = file.name;\n formData.append(name, file as any);\n });\n formData.append(\"data\", JSON.stringify({\n path: currentDirectory,\n ...contextTags\n }));\n\n const url = config.apiSettings.uploadEntryUrlTemplate\n ? config.apiSettings.uploadEntryUrlTemplate(targetPath ?? currentDirectory)\n : config.apiSettings.uploadEntryUrl;\n\n r(fetch.post(url, formData).then(res => {\n inEl.remove();\n return res;\n }));\n });\n});\n\n","import { Component, OnInit, EventEmitter, Output, Input, ViewChild, ElementRef, TemplateRef, ChangeDetectorRef, SecurityContext } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { DatePipe, NgForOf, NgIf } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CellComponent, EmptyCallback } from 'tabulator-tables';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { DirectoryDescriptor, FileDescriptor, FilemanagerComponent, FileViewTab, FSDescriptor, NgxFileManagerConfiguration } from '../filemanager.component';\nimport { FileSorting } from '../../types';\nimport { IconResolver } from '../icon-resolver';\nimport { TabulatorComponent } from '../../tabulator/tabulator.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { uploadFile } from '../helpers';\nimport { DialogService, Fetch, KeyboardService, MenuDirective, MenuItem, openMenu } from '../../../public-api';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nconst itemWidth = (80 + 20);\n\n@Component({\n selector: 'app-file-grid',\n templateUrl: './file-grid.component.html',\n styleUrls: ['./file-grid.component.scss'],\n imports: [\n NgIf,\n NgForOf,\n DatePipe,\n MatTabsModule,\n NgScrollbarModule,\n MatInputModule,\n MatCheckboxModule,\n MatProgressBarModule,\n MatIconModule,\n MatButtonModule,\n TabulatorComponent,\n MenuDirective,\n ScrollingModule\n ],\n standalone: true\n})\nexport class FileGridComponent implements OnInit {\n @ViewChild(\"fileViewport\") filesRef: ElementRef;\n @ViewChild(TabulatorComponent) tabulator: TabulatorComponent;\n\n @ViewChild('renameTemplate', { read: TemplateRef }) renameTemplate: TemplateRef<any>;\n\n\n private _path: string;\n @Input() set path(value: string) {\n if (!value) return;\n\n if (this._path && this.config.navigateOnlyToDescendants) {\n if (!value.startsWith('/'))\n value = '/' + value;\n if (!value.startsWith(this.config.path))\n return;\n }\n\n let prev = this._path;\n\n this._path = value;\n\n if (prev != value) {\n this.pathChange.next(this.path);\n if (this.config.apiSettings)\n this.loadFolder()\n }\n }\n get path() {return this._path}\n @Output() pathChange = new EventEmitter<string>();\n\n @Input() config: NgxFileManagerConfiguration = {};\n @Input() showHiddenFiles = false;\n @Input() viewMode: \"list\" | \"grid\" = \"grid\";\n @Input() gridSize: \"small\" | \"normal\" | \"large\" = \"normal\";\n @Input() tab: FileViewTab;\n\n @Output() fileSelect = new EventEmitter<FileDescriptor>();\n @Output() fileDblClick = new EventEmitter<FileDescriptor>();\n @Output() folderSelect = new EventEmitter<DirectoryDescriptor>();\n @Output() folderDblClick = new EventEmitter<DirectoryDescriptor>();\n @Output() newTab = new EventEmitter<{ path: string; }>();\n @Output() loadFiles = new EventEmitter<FSDescriptor[]>();\n\n directoryContents: FSDescriptor[] = [];\n @Input() selection: FSDescriptor[] = [];\n @Output() selectionChange = new EventEmitter<FSDescriptor[]>();\n\n @Input() value: FSDescriptor[] = [];\n @Output() valueChange = new EventEmitter<FSDescriptor[]>();\n\n selectionText: string;\n\n sortedFolders: any[][] = [];\n\n private readonly sorters = {\n \"a-z\": (a: FileDescriptor, b: FileDescriptor) => a.name > b.name ? 1 : -1,\n \"z-a\": (a: FileDescriptor, b: FileDescriptor) => b.name > a.name ? 1 : -1,\n \"lastmod\": (a: FileDescriptor, b: FileDescriptor) => b.stats.mtimeMs - a.stats.mtimeMs,\n \"firstmod\": (a: FileDescriptor, b: FileDescriptor) => a.stats.mtimeMs - b.stats.mtimeMs,\n \"size\": (a: FileDescriptor, b: FileDescriptor) => b.stats.size - a.stats.size,\n \"type\": (a: FileDescriptor, b: FileDescriptor) => a.path.split('.').splice(-1, 1)[0] > b.path.split('.').splice(-1, 1)[0] ? 1 : -1\n };\n @Input() sortOrder: FileSorting = \"a-z\";\n\n itemsPerRow = 6;\n\n // If the current directory is inside of an archive\n isArchive = true;\n\n userIsDraggingFile = false;\n draggingOver = false;\n\n showLoader = false;\n hideLoader = false;\n\n readonly columns = [\n { id: \"name\", label: \"Name\" },\n { id: \"size\", label: \"Size\"},\n { id: \"type\", label: \"Type\"},\n { id: \"owner\", label: \"Owner\"},\n { id: \"group\", label: \"Group\"},\n { id: \"permissions\", label: \"Permissions\"},\n { id: \"location\", label: \"Location\"},\n { id: \"modified\", label: \"Modified\"},\n { id: \"modified--time\", label: \"Modified - Time\"},\n { id: \"accessed\", label: \"Accessed\"},\n { id: \"created\", label: \"Created\"},\n { id: \"recency\", label: \"Recency\"},\n { id: \"star\", label: \"Star\"},\n { id: \"detailed-type\", label: \"Detailed Type\"},\n ];\n\n cols = [\n { id: \"name\", label: \"Name\" },\n { id: \"size\", label: \"Size\" },\n { id: \"modified\", label: \"Modified\" },\n { id: \"star\", label: \"Star\" }\n ];\n\n folderContextMenu: MenuItem<FSDescriptor>[] = [\n {\n label: \"New Folder\",\n // shortcutLabel: \"Shift+Ctrl+N\",\n icon: \"create_new_folder\",\n action: (data) => this.onCreateFolder(data)\n },\n {\n label: \"Upload file\",\n // shortcutLabel: \"Ctrl+D\",\n icon: \"file_upload\",\n action: (evt) => this.onUploadFile(evt)\n },\n \"separator\",\n // {\n // isDisabled: (data) => true,\n // label: \"_P_aste\",\n // icon: \"content_paste\",\n // action: (evt) => {\n // }\n // },\n {\n label: \"Select _A_ll\",\n shortcutLabel: \"Ctrl+A\",\n icon: \"select_all\",\n action: (evt) => {\n this.selection = this._sortFilter();\n this.selectionText = this.getSelectionText();\n this.selectionChange.next(this.selection);\n }\n },\n // \"separator\",\n // {\n // label: \"P_r_operties\",\n // icon: \"find_in_page\",\n // action: (evt) => {\n\n // }\n // }\n ];\n\n fileContextMenu: MenuItem<FSDescriptor>[] = [];\n\n performChecksum(path, digest) {\n // this.windowManager.openWindow({\n // appId: \"checksum\",\n // data: { digest, path },\n // workspace: this.windowRef.workspace,\n // width: 600,\n // height: 250\n // });\n }\n\n iconResolver: IconResolver;\n\n get libConfig() { return this.fileManager.libConfig }\n constructor(\n private readonly fetch: Fetch,\n private readonly keyboard: KeyboardService,\n private readonly dialog: DialogService,\n private readonly matDialog: MatDialog,\n private readonly fileManager: FilemanagerComponent,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly sanitizer: DomSanitizer\n ) {\n\n\n this.iconResolver = new IconResolver(this.libConfig.assetPath);\n\n // ctrl + a => select all\n keyboard.onKeyCommand({\n key: \"a\",\n ctrl: true,\n }).subscribe(evt => {\n this.selection = this._sortFilter();\n this.selectionText = this.getSelectionText();\n this.selectionChange.next(this.selection);\n });\n\n // ctrl + c => copy file names to clipboard\n keyboard.onKeyCommand({\n key: \"c\",\n ctrl: true,\n }).subscribe(evt => {\n\n });\n\n // ctrl + h => toggle hidden files\n keyboard.onKeyCommand({\n key: \"h\",\n ctrl: true,\n interrupt: true\n }).subscribe(evt => {\n this.showHiddenFiles = !this.showHiddenFiles;\n });\n\n // F2 => Rename selected files\n keyboard.onKeyCommand({\n key: \"f2\",\n }).subscribe(evt => {\n // Rename selected file(s)\n });\n\n // Enter => Open selected files\n keyboard.onKeyCommand({\n key: \"Enter\",\n }).subscribe(evt => {\n const files = this.directoryContents.filter(dc => this.selection.find(i => i.name == dc.name));\n // this.windowManager.openFiles(files as any);\n });\n\n // Delete => delete selected files\n keyboard.onKeyCommand({\n key: \"delete\",\n }).subscribe(evt => {\n const files = this.directoryContents.filter(dc => this.selection.find(i => i.name == dc.name));\n });\n }\n\n async ngOnInit() {\n // this.loadFolder();\n }\n\n ngAfterViewInit() {\n this.fileContextMenu = [\n {\n label: \"Download\",\n icon: \"download\",\n action: (file) => {\n let target = `${window.origin}${this.config.apiSettings.downloadEntryUrl}`;\n let path = file.path + file.name;\n\n if (file.kind == \"directory\" && !path.endsWith('/'))\n path += \"/\";\n\n target += `${target.includes('?') ? '&' : '?'}path=${path}&ngsw-bypass=true`;\n console.log(target);\n // window.open(target);\n var link = document.createElement(\"a\");\n link.download = file.name;\n link.href = target;\n link.click();\n link.remove();\n this.fileManager.fileDownload.next(file);\n }\n },\n {\n label: \"Open in new Tab\",\n icon: \"open_in_new\",\n isVisible: (data) => data.kind == \"directory\",\n action: (data) => {\n this.fileManager.initTab(data.path + data.name);\n }\n },\n // {\n // label: \"Open with Application...\",\n // isVisible: (data) => data.kind == \"file\",\n // shortcutLabel: \"Ctrl+D\",\n // action: (evt) => {\n\n // },\n // },\n \"separator\",\n // {\n // label: \"Cut\",\n // icon: \"content_cut\",\n // isDisabled: data => true,\n // action: (evt) => {\n // },\n // },\n // {\n // label: \"Copy\",\n // icon: \"file_copy\",\n // isDisabled: data => true,\n // childrenResolver: () => new Promise(r => setTimeout(r, 500000))\n // },\n // {\n // label: \"Move To...\",\n // icon: \"drive_file_move\",\n // shortcutLabel: \"Ctrl+A\",\n // action: (evt) => {\n\n // },\n // },\n // {\n // label: \"Copy To...\",\n // icon: \"folder_copy\",\n // shortcutLabel: \"Ctrl+A\",\n // action: (evt) => {\n\n // },\n // },\n {\n label: \"Delete\",\n icon: \"delete\",\n // shortcutLabel: \"Del\",\n isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n action: (evt) => {\n const path = evt.path + evt.name;\n\n const url = this.config.apiSettings.deleteEntryUrlTemplate\n ? this.config.apiSettings.deleteEntryUrlTemplate(path)\n : this.config.apiSettings.deleteEntryUrl;\n\n this.fetch.post(url, { path: evt.path + evt.name })\n .then(() => this.loadFolder())\n },\n },\n // {\n // label: \"Shred file\",\n // icon: \"delete_forever\",\n // isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n // action: (evt) => {\n // this.fetch.post(`/api/filesystem/delete?wipe=true`, { files: [evt.path + evt.name]})\n // .then(() => this.loadFolder())\n // },\n // },\n {\n label: \"Rename\",\n icon: \"drive_file_rename_outline\",\n isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n // shortcutLabel: \"F2\",\n action: (data) => {\n this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", {\n inputs: { path: data?.path || this.path, name: data?.name || '', config: this.config }\n }).then(r => this.loadFolder())\n }\n },\n\n // Extract Here\n // Extract To...\n // {\n // label: \"Extract Here\",\n // icon: \"folder_zip\",\n // shortcutLabel: \"Ctrl+A\",\n // isDisabled: (data) => !(data.kind == \"file\" && data.ext != \".zip\" && isArchive(data)),\n // action: (evt) => {\n // // TODO\n // },\n // },\n // {\n // label: \"Extract to...\",\n // icon: \"folder_zip\",\n // shortcutLabel: \"Ctrl+A\",\n // isDisabled: (data) => !(data.kind == \"file\" && data.ext != \".zip\" && isArchive(data)),\n // action: (evt) => {\n // // TODO\n // },\n // },\n // {\n // label: \"Compress...\",\n // icon: \"folder_zip\",\n // shortcutLabel: \"Ctrl+A\",\n // isDisabled: (data) => data.kind == \"file\",\n // action: (evt) => {\n // // TODO\n // },\n // },\n {\n label: \"Checksum\",\n icon: \"manage_search\",\n isDisabled: (data) => data.kind != \"file\",\n children: [\n {\n label: \"MD5\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"md5\"),\n },\n {\n label: \"SHA1\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"sha1\"),\n },\n {\n label: \"SHA256\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"sha256\"),\n },\n {\n label: \"SHA512\",\n action: (evt) => this.performChecksum(evt.path + evt.name, \"sha512\"),\n },\n ],\n isVisible: (data) => {\n return false;\n return !this.isArchive || data.kind == \"file\";\n },\n },\n // {\n // label: \"Star\",\n // icon: \"star\",\n // shortcutLabel: \"Ctrl+A\",\n // action: (evt) => {\n\n // },\n // },\n // \"separator\",\n // {\n // label: \"P_r_operties\",\n // icon: \"find_in_page\",\n // action: (evt) => {\n\n // },\n // }\n ];\n }\n\n async loadFolder() {\n this.showLoader = true;\n this.hideLoader = false;\n\n const url = this.config.apiSettings.listEntriesUrlTemplate\n ? this.config.apiSettings.listEntriesUrlTemplate(this.path)\n : this.config.apiSettings.listEntriesUrl\n\n this.fetch.post(url, { path: this.path, showHidden: this.showHiddenFiles })\n .then((data: any) => {\n const files: FileDescriptor[] = data?.files || [];\n const dirs: DirectoryDescriptor[] = data?.dirs || [];\n const descriptors = files.concat(dirs as any) as FSDescriptor[];\n\n descriptors.forEach(f => {\n f['_icon'] = this.iconResolver.resolveIcon(f);\n if (f.kind == \"file\") {\n f['_ctime'] = new Date(f.stats?.ctimeMs)?.toLocaleString();\n f['_mtime'] = new Date(f.stats?.mtimeMs)?.toLocaleString();\n f['_size'] = this.bytesToString(f.stats?.size);\n }\n });\n\n this.directoryContents = descriptors;\n\n this._sortFilter();\n this.resize();\n this.loadFiles.next(descriptors);\n\n if (this.sortedFolders.length > 0)\n this.flowRows();\n\n setTimeout(() => this.resize(), 250);\n setTimeout(() => this.resize(), 500);\n setTimeout(() => this.resize(), 1000);\n setTimeout(() => this.resize(), 2500);\n setTimeout(() => this.resize(), 5000);\n })\n .catch(e => console.error(e))\n .finally(() => {\n this.hideLoader = true;\n setTimeout(() => {\n this.showLoader = false;\n }, 200);\n })\n }\n\n flowRows() {\n let filtered = this._sortFilter();\n\n this.sortedFolders = [];\n const num = Math.ceil(filtered.length / this.itemsPerRow);\n const iterations = Math.min(num, 100);\n\n for (let row = 0; row < iterations; row++) {\n if (!this.sortedFolders[row])\n this.sortedFolders[row] = [];\n\n for (let i = row * this.itemsPerRow; i < (row + 1) * this.itemsPerRow && i < filtered.length; i++) {\n this.sortedFolders[row].push(filtered[i]);\n }\n }\n }\n\n onSelect(item: FSDescriptor, evt) {\n evt.stopPropagation();\n\n if (this.keyboard.isShiftPressed) {\n let start = this.directoryContents.findIndex(i => i.name == this.selection.slice(-1, 1)[0].name);\n let end = this.directoryContents.indexOf(item);\n\n if (start == -1)\n start = end;\n\n let items = start > end\n ? this.directoryContents.slice(end, start + 1)\n : this.directoryContents.slice(start, end + 1);\n\n this.selection = items;\n }\n else if (this.keyboard.isCtrlPressed) {\n if (!this.selection.includes(item))\n this.selection.push(item);\n else // Case that we selected the same item twice\n this.selection.splice(this.selection.indexOf(item), 1);\n }\n else\n this.selection = [item];\n\n if (this.selection.length == 1) {\n if (this.selection[0].kind == \"directory\")\n this.folderSelect.next(this.selection[0]);\n else\n this.fileSelect.next(this.selection[0]);\n }\n\n this.selectionChange.next(this.selection);\n this.selectionText = this.getSelectionText();\n }\n\n onItemClick(file: FSDescriptor) {\n console.log(file, this);\n if (file.kind == \"directory\") {\n this.folderDblClick.next(file);\n this.path = file.path + file.name;\n }\n // else if (file.ext == \"zip\") {\n // this.fileDblClick.next(file);\n // this.path = file.path + file.name;\n // }\n else {\n this.fileDblClick.next(file);\n this.fileSelect.next(file);\n }\n }\n\n onToggle(item, state: MatCheckboxChange) {\n item['_value'] = state.checked;\n\n // TODO: What causes this to be null when initialized with an array?\n if (!this.value) {\n this.value = [];\n }\n\n if (state.checked) {\n this.value.push(item);\n }\n else {\n const i = this.value.findIndex(v => v == item);\n if (i >= 0)\n this.value.splice(i, 1);\n }\n this.valueChange.next(this.value);\n }\n\n async clearSelection() {\n this.value = [];\n this.valueChange.next(this.value);\n\n this.tabulator?.table?.getRows().forEach(r => r.getElement().classList.remove('selected'));\n }\n\n private _sortFilter(): FileDescriptor[] {\n return this.directoryContents = this.directoryContents?.filter(d => d.kind == 'directory')\n .concat(this.directoryContents?.filter(d => d.kind == 'file')\n .sort(this.sorters[this.sortOrder])\n ) as FileDescriptor[];\n }\n\n private getSelectionText() {\n const dirCount = this.selection.filter(s => s.kind == \"directory\").length;\n const fileCount = this.selection.filter(s => s.kind == \"file\").length;\n\n if (dirCount + fileCount == 0) return \"\";\n\n const totalSize =\n this.directoryContents\n .filter(d => d.kind == \"file\")\n .filter(d => this.selection?.find(i => i.name == d.name))\n .map(d => d['stats'].size).reduce((a, b) => a + b, 0);\n\n if (dirCount + fileCount == 1)\n return `\"${this.selection[0].name}\" selected (${this.bytesToString(totalSize)})`;\n\n if (dirCount > 0 && fileCount == 0)\n return `\"${dirCount}\" folders selected`;\n if (fileCount > 0 && dirCount == 0)\n return `${fileCount} items selected (${this.bytesToString(totalSize)})`;\n\n return `${dirCount} folder${dirCount == 1 ? \"\" : \"s\"} selected, ${fileCount} other item${fileCount == 1 ? \"\" : \"s\"} selected (${this.bytesToString(totalSize)})`;\n }\n\n bytesToString(bytes: number, decimals = 2) {\n if (!+bytes) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n resize() {\n if (!this.filesRef) {\n setTimeout(() => this.resize(), 25);\n return;\n };\n\n const bounds = (this.filesRef.nativeElement as HTMLElement).getBoundingClientRect();\n\n const newColCount = Math.floor(bounds.width / itemWidth);\n if (newColCount != this.itemsPerRow) {\n this.itemsPerRow = Math.floor(bounds.width / itemWidth);\n if (this.itemsPerRow > 100)\n this.itemsPerRow = 1;\n\n this.flowRows();\n }\n\n if (this.sortedFolders?.length == 0)\n this.flowRows();\n }\n\n onDragStart(evt: DragEvent, item: FSDescriptor) {\n const target = `${window.origin}/api/filesystem/download?dir=${item.path}&file=${item.name}`;\n\n evt.dataTransfer.clearData();\n // evt.dataTransfer.setData('text/uri-list', target);\n // evt.dataTransfer.setData('DownloadURL', `text/uri-list:${target}`);\n evt.dataTransfer.setData('text/plain', item.name);\n }\n\n onDrop(ev) {\n ev.preventDefault();\n\n if (ev.dataTransfer.items) {\n // Use DataTransferItemList interface to access the file(s)\n [...ev.dataTransfer.items].forEach((item, i) => {\n // If dropped items aren't files, reject them\n if (item.kind === \"file\") {\n const file = item.getAsFile();\n console.log(`… file[${i}].name = ${file.name}`);\n }\n });\n } else {\n // Use DataTransfer interface to access the file(s)\n [...ev.dataTransfer.files].forEach((file, i) => {\n console.log(`… file[${i}].name = ${file.name}`);\n });\n }\n }\n\n nameCellFormatter = ((cell: CellComponent, formatterParams: {}, onRendered: EmptyCallback) => {\n // TODO: Sanitize?\n const item = cell.getData() as FSDescriptor;\n return `\n <span style=\"display: flex; align-items: center\">\n <img style=\"height: 24px; margin-right: 6px\" src=\"${item['_icon'].path}\"/>\n <p style=\"margin: 0\">${this.sanitizer.sanitize(SecurityContext.HTML, item['vanityName'] || item.name)}</p>\n </span>\n `;\n }).bind(this)\n\n onRowCtx({event, row}) {\n openMenu(this.matDialog, this.fileContextMenu, row.getData(), event);\n }\n\n onRowClick({event, row, data}) {\n // $event.data['_value'] = $event.data['_value'] == true ? false : true\n // console.log(event, row, data, this.value);\n\n const rowEl = row.getElement();\n let state = rowEl.classList.contains('selected');\n data['_value'] = !state;\n\n if (!this.value) {\n this.value = [];\n }\n\n if (!state) {\n rowEl.classList.add('selected');\n this.value.push(data);\n }\n else {\n rowEl.classList.remove('selected');\n const i = this.value.findIndex(v => v == data);\n if (i >= 0)\n this.value.splice(i, 1);\n }\n\n this.valueChange.next(this.value);\n }\n\n sort() {\n this._sortFilter();\n }\n\n onUploadFile(evt?: FSDescriptor) {\n uploadFile(\n this.fetch,\n this.config,\n this._path,\n evt ? (evt.path + evt.name) : null,\n this.fileManager.contextTags\n )\n .then(res => {\n // Refresh folder contents\n this.loadFolder();\n })\n }\n\n onCreateFolder(data?: FSDescriptor) {\n this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", {\n inputs: { path: data?.path || this.path, name: data?.name || '', config: this.config }\n }).then(r => this.loadFolder())\n }\n}\n\n","@if (showLoader) {\n <mat-progress-bar [class.hide]=\"hideLoader\" mode=\"query\"/>\n}\n\n<div\n style=\"display: contents\"\n [style.--filemanager-fileicon-backdrop]=\"'url(' + iconResolver.path + '/pop/generic.svg)'\"\n (dragstart)=\"userIsDraggingFile = true\"\n (dragend)=\"userIsDraggingFile = false\"\n (dragover)=\"draggingOver = true\"\n (dragleave)=\"draggingOver = false\"\n (ondrop)=\"onDrop($event)\"\n>\n <!-- <ng-container *ngIf=\"draggingOver\"></ng-container> -->\n <!-- Grid mode -->\n <ng-scrollbar\n *ngIf=\"viewMode == 'grid'\"\n class=\"grid {{gridSize}} {{config.imageSize || 'normal'}}\"\n [class.selectionMode]=\"config.mode == 'focusFiles'\"\n [class.showDropArea]=\"draggingOver\"\n style=\"height: 100%; width: 100%\"\n track=\"vertical\"\n pointerEventsMethod=\"scrollbar\"\n [ngx-contextmenu]=\"folderContextMenu\"\n >\n <div class=\"resize-observer\" #fileViewport></div>\n <cdk-virtual-scroll-viewport\n itemSize=\"134\"\n scrollViewport\n (click)=\"selection = []; selectionText = ''\"\n >\n <div class=\"row\" *cdkVirtualFor=\"let row of sortedFolders\">\n <div class=\"file\"\n *ngFor=\"let item of row\"\n [class.selected]=\"selection.includes(item)\"\n [class.generic]=\"item['_icon'].needsBackdrop\"\n [ngx-contextmenu]=\"fileContextMenu\"\n [ngx-menu-context]=\"item\"\n >\n <mat-checkbox\n #checkbox\n *ngIf=\"config.mode == 'focusFiles' && item.kind == 'file'\"\n [checked]=\"item['_value']\"\n (change)=\"onToggle(item, $event)\"\n />\n <div\n style=\"display: contents\"\n (click)=\"onSelect(item, $event)\"\n (dblclick)=\"onItemClick(item)\"\n (dragstart)=\"onDragStart($event, item)\"\n >\n <img [src]=\"item['_icon'].path\"/>\n <p>{{item['vanityName'] || item.name}}</p>\n </div>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-scrollbar>\n\n <!-- List mode -->\n <div\n *ngIf=\"viewMode == 'list'\"\n style=\"width: 100%; height: 100%\"\n [class.showDropArea]=\"draggingOver\"\n [ngx-contextmenu]=\"folderContextMenu\"\n >\n <app-tabulator\n [dataSource]=\"directoryContents\"\n [columns]=\"[\n { field: 'name', title: 'Name', formatter: nameCellFormatter },\n { field: '_size', title: 'Size' },\n { field: '_ctime', title: 'Created' },\n { field: '_mtime', title: 'Modified' },\n ]\"\n [options]=\"{\n rowHeight: 32\n }\"\n (rowClick)=\"onRowClick($event)\"\n (rowDblClick)=\"onItemClick($event.data)\"\n (rowContext)=\"onRowCtx($event)\"\n />\n </div>\n</div>\n\n<div class=\"select-hint\" *ngIf=\"selectionText\">\n {{selectionText}}\n</div>\n\n<div class=\"controls\">\n <button\n mat-flat-button\n class=\"upload-button\"\n (click)=\"onCreateFolder()\"\n >\n <mat-icon>create_new_folder</mat-icon>\n New Folder\n </button>\n <button\n mat-flat-button\n class=\"upload-button\"\n (click)=\"onUploadFile()\"\n >\n <mat-icon>upload_file</mat-icon>\n Upload\n </button>\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'gtk-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.scss'],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule\n ],\n standalone: true\n})\nexport class GtkIconButtonComponent {\n\n @Input() fontIcon: string;\n\n @Output() click = new EventEmitter();\n\n @Input() disabled = false;\n\n showDialog = false;\n\n onClick() {\n\n this.click.emit();\n }\n}\n","<button mat-flat-button [disabled]=\"disabled\">\n <mat-icon [fontIcon]=\"fontIcon\"></mat-icon>\n</button>\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { CommonModule, NgForOf, NgIf } from '@angular/common';\nimport { NgxFileManagerConfiguration } from '../../filemanager.component';\n\nexport type Breadcrumb = {\n label: string,\n id: string | number\n}\n\n@Component({\n selector: 'app-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n imports: [\n NgForOf,\n NgIf\n ],\n standalone: true\n})\nexport class GtkBreadcrumbComponent implements OnInit {\n\n // Could also do object array?\n @Input() crumbs: Breadcrumb[];\n @Output() crumbClick = new EventEmitter<Breadcrumb>();\n\n @Input() config: NgxFileManagerConfiguration;\n\n constructor() { }\n\n ngOnInit() {\n }\n}\n","<button (click)=\"crumbClick.next({ id: config.chrootPath || '/', label: ''})\">{{config.rootName || 'Storage'}}</button>\n<ng-container *ngFor=\"let crumb of crumbs\">\n <button *ngIf=\"crumb.label.trim()\" (click)=\"crumbClick.next(crumb)\">{{crumb.label}}</button>\n</ng-container>\n","import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GtkIconButtonComponent } from './icon-button/icon-button.component';\nimport { GtkBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { FilemanagerComponent, FileViewTab, FSDescriptor, NgxFileManagerConfiguration } from '../filemanager.component';\nimport { FileSorting } from '../../types';\nimport { uploadFile } from '../helpers';\nimport { DialogService, Fetch, MenuDirective, MenuItem } from '../../../public-api';\n\n@Component({\n selector: 'app-toolbar',\n templateUrl: './toolbar.component.html',\n styleUrls: ['./toolbar.component.scss'],\n imports: [\n NgIf,\n MatIconModule,\n MatButtonModule,\n GtkIconButtonComponent,\n GtkBreadcrumbComponent,\n MenuDirective\n ],\n standalone: true\n})\nexport class ToolbarComponent {\n @ViewChild('zoomTemplate') zoomTemplate: TemplateRef<any>;\n @ViewChild('actionTemplate') actionTemplate: TemplateRef<any>;\n\n @Input() config: NgxFileManagerConfiguration;\n\n\n @Output() onBreadcrumbClick = new EventEmitter();\n\n @Input() currentTab: FileViewTab = {} as any;\n\n @Input() showHiddenFiles: boolean;\n @Output() showHiddenFilesChange = new EventEmitter<boolean>();\n @Input() showSidebar: boolean;\n @Output() showSidebarChange = new EventEmitter<boolean>();\n\n @Input() drawerMode = false;\n @Input() showBareMinimum = false;\n\n constructor(\n public fileManager: FilemanagerComponent,\n private dialog: DialogService,\n private fetch: Fetch\n ) {\n\n }\n\n fileOptions: MenuItem<FSDescriptor>[] = [\n {\n label: \"New Folder\",\n action: (folder) => {\n this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", { inputs: { path: this.currentTab.path, name: '', config: this.config } })\n }\n },\n {\n label: \"Upload file\",\n icon: \"file_upload\",\n action: (evt) => uploadFile(this.fetch, this.config, this.fileManager.currentTab.path, null, this.fileManager.contextTags).then(res => {\n // Tell the current tab to reload it's data.\n const tab = this.fileManager.currentTab;\n const grid = this.fileManager.fileGrids.find(t => t.tab.id == tab.id);\n grid.loadFolder();\n })\n },\n // {\n // label: \"Add to Bookmarks (WIP)\",\n // action: (folder) => {\n // //\n // }\n // },\n // \"separator\",\n // {\n // label: \"Paste\",\n // action: (folder) => {\n // //\n // }\n // },\n // {\n // label: \"Select All\",\n // action: (folder) => {\n // //\n // }\n // },\n // \"separator\",\n // {\n // label: \"Properties\",\n // action: (folder) => {\n // //\n // }\n // },\n ]\n\n sortOptions: MenuItem<FSDescriptor>[] = [\n {\n label: \"Sort\",\n separator: true\n },\n {\n label: \"A-Z\",\n action: () => this.setSorter('a-z')\n },\n {\n label: \"Z-A\",\n action: () => this.setSorter('z-a')\n },\n {\n label: \"Last Modified\",\n action: () => this.setSorter('lastmod')\n },\n {\n label: \"First Modified\",\n action: () => this.setSorter('firstmod')\n },\n {\n label: \"Size\",\n action: () => this.setSorter('size')\n },\n {\n label: \"Type\",\n action: () => this.setSorter('type')\n },\n \"separator\",\n {\n label: \"Refresh\",\n action: () => this.fileManager.currentFileGrid.loadFolder()\n }\n ];\n\n historyBack(tab: FileViewTab) {\n console.log(\"history ->\", tab)\n tab.historyIndex--;\n tab.path = tab.history[tab.historyIndex - 1];\n }\n\n historyForward(tab: FileViewTab) {\n console.log(\"history <-\", tab)\n tab.historyIndex++;\n tab.path = tab.history[tab.historyIndex - 1];\n }\n\n toggleDrawer() {\n if ([...this.fileManager.drawer._drawers][0].opened)\n this.fileManager.drawer.close();\n else\n this.fileManager.drawer.open();\n }\n\n setSorter(mode: FileSorting) {\n this.fileManager.currentTab.sortOrder = mode;\n this.fileManager.refreshSorting();\n }\n\n onRefresh() {\n // console.log(this.fileManager);\n this.fileManager.fileGrids.forEach(g => g.loadFolder());\n }\n}\n","<button\n *ngIf=\"fileManager.sidebarOverlay && !drawerMode\"\n mat-icon-button\n (click)=\"toggleDrawer()\"\n>\n <mat-icon>list</mat-icon>\n</button>\n\n<ng-container *ngIf=\"!showBareMinimum\">\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n <div style=\"width: 40px\" *ngIf=\"!drawerMode\"></div>\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n</ng-container>\n\n\n<app-breadcrumb\n *ngIf=\"currentTab\"\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n/>\n\n<ng-container *ngIf=\"!drawerMode\">\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n <div style=\"width: 100px\" *ngIf=\"fileManager.width > 800\"></div>\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n</ng-container>\n\n","import { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, HostListener, Inject, Input, Optional, Output, TemplateRef, ElementRef, ViewContainerRef } from '@angular/core';\nimport { MatExpansionModule, MatExpansionPanel } from '@angular/material/expansion';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { IconResolver } from '../icon-resolver';\nimport { FilemanagerComponent } from '../filemanager.component';\n\n@Component({\n selector: 'app-tree-view',\n templateUrl: './tree-view.component.html',\n styleUrls: ['./tree-view.component.scss'],\n imports: [\n NgIf,\n NgForOf,\n NgTemplateOutlet,\n MatExpansionModule,\n MatProgressBarModule\n ],\n standalone: true\n})\nexport class TreeViewComponent {\n @ContentChild(\"rowTemplate\", { read: TemplateRef }) rowTemplate: TemplateRef<any>;\n @Input(\"rowTemplate\") rowTemplateIn: TemplateRef<any>;\n\n @Input() data: any[];\n\n @Output() click = new EventEmitter();\n @Output() loadChildren = new EventEmitter();\n\n iconResolver: IconResolver;\n get libConfig() { return this.fileManager.libConfig; }\n\n constructor(\n private readonly fileManager: FilemanagerComponent,\n ) {\n this.iconResolver = new IconResolver(this.libConfig.assetPath);\n }\n\n tryLoadChildren(item, panel: MatExpansionPanel) {\n this.loadChildren.next({\n item,\n cb: (children) => {\n item['_children'] = children;\n if (children.length == 0)\n panel.close();\n }\n })\n }\n}\n","<mat-accordion displayMode=\"flat\" [multi]=\"true\">\n <mat-expansion-panel\n #panel\n *ngFor=\"let item of data\"\n expanded=\"false\"\n togglePosition=\"before\"\n [class.isleaf]=\"item['_children']?.length == 0\"\n (afterExpand)=\"tryLoadChildren(item, panel)\"\n >\n <mat-expansion-panel-header>\n <div (click)=\"$event.stopPropagation(); click.next(item);\" style=\"display: flex; align-items: center;\">\n <ng-container *ngIf=\"!panel.expanded\">\n <img style=\"height: 20px; margin-right: 8px\" [src]=\"iconResolver.resolveIcon(item)?.path\"/>\n </ng-container>\n <ng-container *ngIf=\"panel.expanded\">\n <img style=\"height: 20px; margin-right: 8px\" [src]=\"iconResolver.resolveIcon(item)?.path.replace('.svg', '-open.svg')\"/>\n </ng-container>\n {{item.name}}\n </div>\n </mat-expansion-panel-header>\n\n <app-tree-view\n *ngIf=\"item['_children']; else loadingTemplate\"\n [data]=\"item['_children']\"\n (click)=\"click.next(item)\"\n (loadChildren)=\"loadChildren.next($event)\"\n />\n <ng-template #loadingTemplate>\n <mat-progress-bar color=\"primary\" mode=\"query\"/>\n </ng-template>\n </mat-expansion-panel>\n</mat-accordion>\n","import { InjectionToken } from '@angular/core';\n\nexport const NGX_WEB_COMPONENTS_CONFIG = new InjectionToken<NgxWebComponentsConfig>('webcomponents-config');\n\nexport type NgxWebComponentsConfig = Partial<{\n /**\n * The path that assets will ultimately be served from.\n * Default `/assets/`\n */\n assetPath: string\n}>;\n\n\nexport type FileSorting = \"a-z\" | \"z-a\" | \"lastmod\" | \"firstmod\" | \"size\" | \"type\";\n","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { MatTabGroup, MatTabsModule } from '@angular/material/tabs';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDrawerContainer, MatSidenavModule } from '@angular/material/sidenav';\nimport { AngularSplitModule } from 'angular-split';\n\nimport { FileGridComponent } from './file-grid/file-grid.component';\nimport { ToolbarComponent } from './toolbar/toolbar.component';\nimport { TreeViewComponent } from './tree-view/tree-view.component';\nimport { FileSorting, NGX_WEB_COMPONENTS_CONFIG, NgxWebComponentsConfig } from '../types';\nimport { IconResolver } from './icon-resolver';\nimport { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from '../lazy-loader/lazy-loader.service';\nimport { Fetch } from '../../public-api';\nimport { ulid } from 'ulidx';\n\n// TODO:\n/**\n * Multiple music / video / image files selected turns into a playlist\n * Dragging music / video / image queues the file(s)\n * Can save and edit a list of files as playlist\n * Can \"loop\" \"randomize\"\n */\n\nexport type DirectoryDescriptor = {\n kind: \"directory\",\n path: string,\n name: string\n contents: {\n dirs: DirectoryDescriptor[],\n files: FileDescriptor[]\n }\n}\n\nexport type FileDescriptor = {\n kind: \"file\",\n stats: {\n size: number;\n // Size for zipped file\n compressedSize?: number,\n atimeMs: number;\n mtimeMs: number;\n ctimeMs: number;\n birthtimeMs: number;\n },\n path: string\n name: string,\n ext: string,\n // Comment for entries in a zip file.\n comment?: string\n};\n\nexport type FSDescriptor = DirectoryDescriptor | FileDescriptor;\n\nexport type FileViewTab = {\n id: string,\n label: string,\n breadcrumb: {\n id: string,\n label: string\n }[],\n path: string,\n selection: FSDescriptor[],\n viewMode: \"grid\" | \"list\",\n historyIndex: number,\n history: string[],\n sidebarItems: FSDescriptor[],\n sortOrder: FileSorting\n}\n\n// TODO: replace http configs\ntype HttpConfiguration = (\n { url: string } |\n { urlTemplate: (path: string) => string }\n) & {\n method?: \"get\" | \"put\" | \"post\" | \"patch\" | \"delete\",\n headers?: { [key: string]: string }\n}\n\nexport type NgxFileManagerConfiguration = Partial<{\n /**\n * Initial path\n */\n path: string,\n\n /**\n * Custom root path (will appear as '/').\n * Defaults to '/'.\n *\n * User cannot view outside of this path.\n * (Not to be used as a security measure!)\n */\n chrootPath: string,\n\n /**\n * Restrict users to only navigate around to subpaths of the specified `path`\n */\n navigateOnlyToDescendants: boolean,\n showBreadcrumb: boolean,\n showTreeview: boolean,\n\n /**\n * Name of the \"root\" path `/`\n * Defaults to \"Storage\"\n */\n rootName: string,\n\n /**\n * Maximum number of items to be stored in history.\n */\n maxHistoryLength: number,\n\n apiSettings: {\n listEntriesUrl?: string,\n listEntriesUrlTemplate?: (path: string) => string,\n downloadEntryUrl?: string,\n downloadEntryUrlTemplate?: (path: string) => string,\n uploadEntryUrl?: string,\n uploadEntryUrlTemplate?: (path: string) => string,\n deleteEntryUrl?: string,\n deleteEntryUrlTemplate?: (path: string) => string,\n renameEntryUrl?: string,\n renameEntryUrlTemplate?: (path: string) => string,\n createDirectoryUrl?: string,\n createDirectoryUrlTemplate?: (path: string) => string\n },\n\n /**\n * The path that images are loaded from.\n * Default value `/assets/dotglitch/webcomponents/`\n */\n assetPath: string,\n sidebarLocationStrategy: \"known\" | \"currentDirectory\",\n\n iconResolver: (file: FSDescriptor) => string,\n\n imageSize: \"normal\" | \"small\" | \"huge\",\n\n /**\n *\n */\n selectionMode: \"single\" | \"multiple\",\n\n /**\n * This determines if the filemanager shows selected entries\n *\n * If set to `focusFiles`, file paths that match from the provided `focusedFiles`\n * will be highlighted, and can be selected / deselected.\n */\n mode: \"focusFiles\" | \"normal\",\n focusedFiles: string[]\n}>\n\n@Component({\n selector: 'app-filemanager',\n templateUrl: './filemanager.component.html',\n styleUrls: ['./filemanager.component.scss'],\n imports: [\n NgIf,\n NgForOf,\n AngularSplitModule,\n FileGridComponent,\n MatTabsModule,\n MatIconModule,\n MatSidenavModule,\n ToolbarComponent,\n TreeViewComponent\n ],\n standalone: true\n})\nexport class FilemanagerComponent implements OnInit {\n @ViewChild('tabGroup') tabGroup: MatTabGroup;\n @ViewChildren(FileGridComponent) fileGrids: QueryList<FileGridComponent>;\n @ViewChild(TreeViewComponent) treeView: TreeViewComponent;\n @ViewChild(ToolbarComponent) toolbar: ToolbarComponent;\n @ViewChild(MatDrawerContainer) drawer: MatDrawerContainer;\n\n @Input() config: NgxFileManagerConfiguration = {\n apiSettings: {\n listEntriesUrl: `/api/filesystem/`,\n uploadEntryUrl: `/api/filesystem/`,\n downloadEntryUrl: `/api/filesystem/`,\n deleteEntryUrl: `/api/filesystem/`,\n createDirectoryUrl: `/api/filesystem/folder`,\n renameEntryUrl: `/api/filesystem/rename`\n }\n };\n\n @Input() gridSize: \"small\" | \"normal\" | \"large\" = \"normal\";\n @Input() mode: \"grid\" | \"list\";\n @Input() contextTags: {[key: string]: string};\n\n\n @Input() value: FSDescriptor[] = [];\n @Output() valueChange = new EventEmitter<FSDescriptor[]>();\n\n gridValues: FSDescriptor[][] = [];\n\n /**\n * Emits when focused files change.\n * Only available in `focusFiles` mode.\n */\n @Output() focusedFilesChange = new EventEmitter();\n /**\n * Emits when a file is uploaded.\n */\n @Output() fileUpload = new EventEmitter();\n /**\n * Emits when a file is downloaded.\n */\n @Output() fileDownload = new EventEmitter();\n @Output() fileRename = new EventEmitter();\n @Output() fileDelete = new EventEmitter();\n @Output() fileCopy = new EventEmitter();\n @Output() filePaste = new EventEmitter();\n\n @Output() fileSelect = new EventEmitter<FileDescriptor>();\n @Output() fileDblClick = new EventEmitter<FileDescriptor>();\n @Output() folderSelect = new EventEmitter<DirectoryDescriptor>();\n @Output() folderDblClick = new EventEmitter<DirectoryDescriptor>();\n\n /**\n * Emits when multiple file selections change.\n */\n @Output() filesSelect = new EventEmitter<FSDescriptor[]>();\n /**\n * Emits when any selection changes, single or multiple files.\n */\n // @Output() selectionChange = new EventEmitter<FSDescriptor[]>();\n\n showHiddenFiles = false;\n showSidebar = true;\n sidebarOverlay = false;\n width = 0;\n\n isHomeAncestor = false;\n\n currentTab: FileViewTab = {} as any;\n get currentFileGrid() { return this.fileGrids.get(this.tabIndex) }\n tabIndex = 0;\n tabs: FileViewTab[] = [];\n\n iconResolver: IconResolver;\n\n constructor (\n @Optional() @Inject(NGX_WEB_COMPONENTS_CONFIG) readonly libConfig: NgxWebComponentsConfig = {},\n private readonly lazyLoader: LazyLoaderService,\n private viewContainer: ViewContainerRef,\n private fetch: Fetch\n ) {\n lazyLoader.registerComponent({\n id: \"folder-rename\",\n group: \"@dotglitch/ngx-web-components\",\n load: () => import('./folder-rename/folder-rename.component')\n })\n\n this.iconResolver = new IconResolver(libConfig.assetPath);\n }\n\n ngOnInit(): void {\n this.initTab(this.config.path);\n this.currentTab = this.tabs[0];\n }\n\n ngAfterViewInit() {\n this.onResize();\n\n setTimeout(() => this.onResize(), 250);\n }\n\n onTreeViewLoadChildren({item, cb}) {\n const url = this.config.apiSettings.listEntriesUrlTemplate\n ? this.config.apiSettings.listEntriesUrlTemplate(item.path + item.name)\n : this.config.apiSettings.listEntriesUrl\n\n this.fetch.post(url, { path: item.path + item.name, showHidden: this.showHiddenFiles })\n .then((data: any) => {\n const dirs: DirectoryDescriptor[] = data.dirs;\n cb(dirs);\n })\n }\n\n initTab(path: string) {\n this.tabs.push(this.currentTab = {\n id: ulid(),\n label: this.getTabLabel(path),\n breadcrumb: this.calcBreadcrumb(path),\n path,\n selection: [],\n viewMode: this.mode || 'grid',\n historyIndex: 0,\n history: [],\n sidebarItems: [],\n sortOrder: 'a-z'\n });\n this.tabIndex = this.tabs.length;\n }\n\n closeTab(tab: FileViewTab) {\n this.tabs.splice(this.tabs.findIndex(t => t.id == tab.id), 1);\n }\n\n calcBreadcrumb(path: string) {\n if (!path) return null;\n\n path = path.replace(\"#/\", '/');\n\n // If we're acting like we're in a changed root, we wipe out\n // breadcrumbs below the root\n if (this.config.chrootPath) {\n path = path.replace(this.config.chrootPath, '');\n const parts = path.split('/');\n\n path = path.replace(/^\\//, this.config.chrootPath);\n return parts.map((p, i) => {\n const path = parts.slice(0, i + 1).join('/');\n\n return {\n id: (this.config.chrootPath + (path || '/')).replace(/\\/+/g, '/'),\n label: p || \"\"\n };\n });\n }\n else {\n const parts = path.split('/');\n\n return parts.map((p, i) => {\n const path = parts.slice(0, i + 1).join('/');\n\n return {\n id: path || '/',\n label: p || \"\"\n };\n });\n }\n }\n\n onBreadcrumbClick(crumb) {\n if (crumb.id) {\n this.currentTab.path = crumb.id;\n this.currentTab.breadcrumb = this.calcBreadcrumb(crumb.id);\n }\n }\n\n onTabPathChange(tab: FileViewTab) {\n tab.label = this.getTabLabel(tab.path);\n tab.breadcrumb = this.calcBreadcrumb(tab.path);\n\n tab.historyIndex++;\n tab.history.push(tab.path);\n tab.history.splice(typeof this.config.maxHistoryLength == 'number' ? this.config.maxHistoryLength : 50);\n }\n\n onTreeViewSelect(item: FSDescriptor) {\n this.currentTab.path = item.path + item.name;\n }\n\n onTabLoadFiles(tab: FileViewTab, files: FSDescriptor[]) {\n if (tab.sidebarItems.length == 0) {\n tab.sidebarItems = files.filter(f => f.kind == \"directory\");\n return;\n }\n\n const currentItems = tab.sidebarItems;\n const dirItems = files.filter(f => f.kind == \"directory\");\n\n function recurse(items) {\n return items.find(i => tab.path?.startsWith(i.path));\n }\n const target = recurse(currentItems);\n\n if (target)\n target['_children'] = dirItems;\n\n tab.sidebarItems = currentItems;\n }\n\n onGridValueChange() {\n this.value = this.gridValues.flat(1);\n this.valueChange.emit(this.value)\n }\n\n getTabLabel(path: string) {\n return path?.split('/').filter(p => p).pop();\n }\n\n async onResize() {\n // Trigger re-calculation of the view\n this.fileGrids.forEach(g => g.resize());\n\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n const bounds = el.getBoundingClientRect();\n this.width = bounds.width;\n\n // If the view area is less than 650px wide, use overlay the sidebar panel\n this.sidebarOverlay = bounds.width < 650;\n if (this.sidebarOverlay == false && [...this.drawer._drawers][0].opened) {\n this.drawer.close();\n }\n }\n\n async onResizeEnd() {\n this.onResize();\n\n setTimeout(() => this.onResize(), 250);\n }\n\n getSelection() {\n if (this.currentTab.viewMode == \"grid\") {\n return this.currentTab.selection\n }\n else {\n return this.value;\n }\n }\n\n clearSelection() {\n this.fileGrids.forEach(g => g.clearSelection());\n }\n\n // Tell the child grid to refresh it's sorting\n refreshSorting() {\n this.fileGrids.forEach(g => g.sort());\n }\n\n refreshData() {\n this.fileGrids.forEach(g => g.loadFolder());\n }\n\n getFileData(file: FileDescriptor) {\n let url = this.config.apiSettings.renameEntryUrlTemplate\n ? this.config.apiSettings.renameEntryUrlTemplate(file.path + file.name)\n : this.config.apiSettings.renameEntryUrl;\n\n url = (url.includes('?') ? '&' : '?') + `dir=${file.path}&file=${file.name}`;\n\n return url;\n }\n}\n","<app-toolbar\n [currentTab]=\"currentTab\"\n [(showHiddenFiles)]=\"showHiddenFiles\"\n [(showSidebar)]=\"showSidebar\"\n [config]=\"config\"\n [showBareMinimum]=\"width < 500 && config.showBreadcrumb != false\"\n (onBreadcrumbClick)=\"onBreadcrumbClick($event)\"\n/>\n\n<mat-drawer-container>\n <mat-drawer #drawer mode=\"over\">\n <app-toolbar\n *ngIf=\"width < 500 && config.showBreadcrumb != false\"\n [currentTab]=\"currentTab\"\n [(showHiddenFiles)]=\"showHiddenFiles\"\n [(showSidebar)]=\"showSidebar\"\n [config]=\"config\"\n [drawerMode]=\"true\"\n (onBreadcrumbClick)=\"onBreadcrumbClick($event)\"\n />\n <app-tree-view\n [data]=\"currentTab.sidebarItems\"\n (loadChildren)=\"onTreeViewLoadChildren($event)\"\n (click)=\"onTreeViewSelect($event)\"\n />\n </mat-drawer>\n <mat-drawer-content>\n <as-split direction=\"horizontal\" [gutterSize]=\"sidebarOverlay ? 0 : 2\" [unit]=\"'pixel'\" (dragEnd)=\"onResizeEnd()\">\n <as-split-area\n style=\"background-color: var(--filemanager-sidebar-background-color, #2c2c2c)\"\n [size]=\"215\"\n [minSize]=\"215\"\n [maxSize]=\"width/4\"\n [visible]=\"!sidebarOverlay && config.showTreeview != false\"\n >\n <div class=\"sidebar\"\n *ngIf=\"!sidebarOverlay && config.showTreeview != false\"\n (click)=\"currentTab.selection = []\"\n >\n <app-tree-view\n [data]=\"currentTab.sidebarItems\"\n (loadChildren)=\"onTreeViewLoadChildren($event)\"\n (click)=\"onTreeViewSelect($event)\"\n />\n </div>\n </as-split-area>\n <as-split-area style=\"background-color: var(--filemanager-background-color, #272727);\">\n <div class=\"content\"\n [style.--tab-height]=\"tabs.length > 1 ? '36px' : '0'\"\n >\n <mat-tab-group #tabGroup (selectedTabChange)=\"currentTab = tabs[$event.index]\" [(selectedIndex)]=\"tabIndex\">\n <mat-tab *ngFor=\"let tab of tabs; let i = index\">\n <ng-template mat-tab-label>\n {{tab.label}}\n <mat-icon\n class=\"close\"\n (click)=\"closeTab(tab)\">\n close\n </mat-icon>\n </ng-template>\n\n <ng-template matTabContent>\n <app-file-grid\n [viewMode]=\"tab.viewMode\"\n [tab]=\"tab\"\n [config]=\"config\"\n [gridSize]=\"gridSize\"\n [sortOrder]=\"tab.sortOrder\"\n [(selection)]=\"tab.selection\"\n [(path)]=\"tab.path\"\n (pathChange)=\"onTabPathChange(tab)\"\n [(value)]=\"gridValues[i]\"\n (valueChange)=\"onGridValueChange()\"\n (loadFiles)=\"onTabLoadFiles(tab, $event)\"\n\n (fileSelect)=\"fileSelect.next($event)\"\n (fileDblClick)=\"fileDblClick.next($event)\"\n (folderSelect)=\"folderSelect.next($event)\"\n (folderDblClick)=\"folderDblClick.next($event)\"\n />\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </as-split-area>\n </as-split>\n </mat-drawer-content>\n</mat-drawer-container>\n\n","import * as path from 'path-browserify';\nimport { ImportResourcePath } from './types';\n\nexport class DependencyParser {\n private REGEX_NODE_MODULE = /^node:([\\w\\W\\/]+)$/;\n\n // https://github.com/lukasbach/monaco-editor-auto-typings/commit/fc046e7d9a2abbb5121ad8ab25195d8c1c277416\n public parseDependencies(source: string, parent: ImportResourcePath | string): ImportResourcePath[] {\n const importRegex = /import *.+ *from *['\"](?<importPath>.+?)['\"]/g;\n const dynamicImportRegex = /await import ?\\(['\"](?<importPath>.+?)['\"]\\)/g;\n const cjsRequireRegex = /require *\\(['\"](?<importPath>.+?)['\"]\\)/g;\n\n const matches = [\n ...source.matchAll(importRegex),\n ...source.matchAll(dynamicImportRegex),\n ...source.matchAll(cjsRequireRegex)\n ];\n const importPaths = matches.map(match => match.groups?.['importPath']);\n const result = importPaths.map(imp => this.resolvePath(imp, parent));\n\n return result\n }\n\n private resolvePath(importPath: string, parent: ImportResourcePath | string): ImportResourcePath {\n const nodeImport = importPath.match(this.REGEX_NODE_MODULE);\n if (nodeImport) {\n return {\n kind: 'relative-in-package',\n packageName: '@types/node',\n importPath: `${nodeImport[1]}.d.ts`,\n sourcePath: '',\n };\n }\n\n if (typeof parent === 'string') {\n if (importPath.startsWith('.')) {\n return {\n kind: 'relative',\n importPath,\n sourcePath: parent,\n };\n }\n else if (importPath.startsWith('@')) {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: `${segments[0]}/${segments[1]}`,\n importPath: segments.slice(2).join('/'),\n };\n }\n else {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: segments[0],\n importPath: segments.slice(1).join('/'),\n };\n }\n }\n else {\n switch (parent.kind) {\n case 'package':\n throw Error('TODO?');\n case 'relative':\n throw Error('TODO2?');\n case 'relative-in-package':\n if (importPath.startsWith('.')) {\n return {\n kind: 'relative-in-package',\n packageName: parent.packageName,\n sourcePath: path.join(parent.sourcePath, parent.importPath),\n importPath: importPath,\n };\n }\n else if (importPath.startsWith('@')) {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: `${segments[0]}/${segments[1]}`,\n importPath: segments.slice(2).join('/'),\n };\n }\n else {\n const segments = importPath.split('/');\n return {\n kind: 'package',\n packageName: segments[0],\n importPath: segments.slice(1).join('/'),\n };\n }\n }\n }\n return null;\n }\n}\n","import { ProgressUpdate, Options } from './types';\n\nexport const invokeUpdate = (progress: ProgressUpdate, options: Options) => {\n let textual = `${progress.type}: `;\n\n switch (progress.type) {\n case 'CodeChanged':\n textual += ``;\n break;\n case 'ResolveNewImports':\n textual += ``;\n break;\n // case 'DetectedImport':\n // textual += `at \"${progress.source}\" the import \"${progress.importPath}\" was detected`;\n // break;\n // case 'CompletedImport':\n // textual += `at \"${progress.source}\" the import \"${progress.importPath}\" was completed`;\n // break;\n case 'LookedUpTypeFile':\n textual += `\"${progress.path}\" was ${progress.success ? 'sucessfully' : 'not sucessfully'} looked up`;\n break;\n case 'AttemptedLookUpFile':\n textual += `\"${progress.path}\" was ${\n progress.success ? 'sucessfully' : 'not sucessfully'\n } attempted to looked up`; // What in the hell is this grammar?\n break;\n case 'LookedUpPackage':\n textual += `package.json for package \"${progress.package}\" was ${\n progress.success ? 'sucessfully' : 'not sucessfully'\n } looked up${progress.definitelyTyped ? ' (found in definitely typed repo)' : ''}`;\n break;\n case 'LoadedFromCache':\n textual += `\"${progress.importPath}\" was loaded from cache`;\n break;\n case 'StoredToCache':\n textual += `\"${progress.importPath}\" was stored to cache`;\n break;\n }\n\n if (textual.endsWith(': ')) {\n textual = textual.slice(undefined, -2);\n }\n\n options.onUpdate?.(progress, textual);\n};\n","import { Options } from './types';\n\nexport class RecursionDepth {\n constructor(private options: Options, private fileRecursionDepth = 0, private packageRecursionDepth = 0) {}\n\n public nextPackage() {\n return new RecursionDepth(this.options, this.fileRecursionDepth, this.packageRecursionDepth + 1);\n }\n\n public nextFile() {\n return new RecursionDepth(this.options, this.fileRecursionDepth + 1, this.packageRecursionDepth);\n }\n\n public same() {\n return new RecursionDepth(this.options, this.fileRecursionDepth, this.packageRecursionDepth);\n }\n\n public shouldStop() {\n return (\n (this.options.fileRecursionDepth > 0 && this.fileRecursionDepth >= this.options.fileRecursionDepth) ||\n (this.options.packageRecursionDepth > 0 && this.packageRecursionDepth >= this.options.packageRecursionDepth)\n );\n }\n}\n","import type * as monaco from 'monaco-editor';\nimport * as path from 'path-browserify';\n\nexport interface SourceCache {\n isFileAvailable?: (uri: string) => Promise<boolean>;\n storeFile: (uri: string, content: string) => Promise<void>;\n getFile: (uri: string) => Promise<string | undefined>;\n clear: () => Promise<void>;\n}\n\nexport type ProgressUpdate =\n | {\n type: 'CodeChanged';\n }\n | {\n type: 'ResolveNewImports';\n }\n | {\n type: 'LookedUpTypeFile';\n path: string;\n success: boolean;\n }\n | {\n type: 'AttemptedLookUpFile';\n path: string;\n success: boolean;\n }\n | {\n type: 'LookedUpPackage';\n package: string;\n definitelyTyped: boolean;\n success: boolean;\n }\n | {\n type: 'LoadedFromCache';\n importPath: string;\n }\n | {\n type: 'StoredToCache';\n importPath: string;\n };\n\n\n\nexport interface Options {\n /**\n * Share source cache between multiple editor instances by storing\n * the cache in a static property.\n *\n * Defaults to false.\n */\n shareCache: boolean;\n\n /**\n * Only use packages specified in the `versions` property.\n *\n * Defaults to false.\n */\n onlySpecifiedPackages: boolean;\n\n /**\n * Load typings from prespecified versions when initializing. Versions\n * need to be specified in the ``versions`` option.\n *\n * Defaults to false.\n */\n preloadPackages: boolean;\n\n /**\n * Updates compiler options to defaults suitable for auto-loaded\n * declarations, specifically by setting ``moduleResolution`` to\n * ``NodeJs`` and ``allowSyntheticDefaultImports`` to true.\n * Other options are not changed. Set this property to true to\n * disable this behaviour.\n *\n * Defaults to false.\n */\n dontAdaptEditorOptions: boolean;\n\n /**\n * After typings were resolved and injected into monaco, auto-typings\n * updates the value of the current model to trigger a refresh in\n * monaco's typing logic, so that it uses the injected typings.\n */\n dontRefreshModelValueAfterResolvement: boolean;\n\n /**\n * Prespecified package versions. If a package is loaded whose\n * name is specified in this object, it will load with the exact\n * version specified in the object.\n *\n * Example:\n *\n * ```json\n * {\n * \"@types/react\": \"17.0.0\",\n * \"csstype\": \"3.0.5\"\n * }\n * ```\n *\n * Setting the option ``onlySpecifiedPackages`` to true makes this\n * property act as a whitelist for packages.\n *\n * Setting the option ``preloadPackages`` makes the packages specified\n * in this property load directly after initializing the auto-loader.\n */\n versions?: { [packageName: string]: string; };\n\n /**\n * If a new package was loaded, its name and version is added to the\n * version object, and this method is called with the updated object.\n * @param versions updated versions object.\n */\n onUpdateVersions?: (versions: { [packageName: string]: string; }) => void;\n\n /**\n * Supply a cache where declaration files and package.json files are\n * cached to. Supply an instance of {@link LocalStorageCache} to cache\n * files to localStorage.\n */\n sourceCache: SourceCache;\n\n /**\n * The root directory where your edited files are. Must end with\n * a slash. The default is suitable unless you change the default\n * URI of files loaded in the editor.\n *\n * Defaults to \"inmemory://model/\"\n */\n fileRootPath: string;\n\n /**\n * Debounces code reanalyzing after user has changed the editor contents\n * by the specified amount. Set to zero to disable. Value provided in\n * milliseconds.\n *\n * Defaults to 4000, i.e. 4 seconds.\n */\n debounceDuration: number;\n\n /**\n * Maximum recursion depth for recursing packages. Determines how many\n * nested package declarations are loaded. For example, if ``packageRecursionDepth``\n * has the value 2, the code in the monaco editor references packages ``A1``, ``A2``\n * and ``A3``, package ``A1`` references package ``B1`` and ``B1`` references ``C1``,\n * then packages ``A1``, ``A2``, ``A3`` and ``B1`` are loaded. Set to zero to\n * disable.\n *\n * Defaults to 3.\n */\n packageRecursionDepth: number;\n\n /**\n * Maximum recursion depth for recursing files. Determines how many\n * nested file declarations are loaded. The same as ``packageRecursionDepth``,\n * but for individual files. Set to zero to disable.\n *\n * Defaults to 10.\n */\n fileRecursionDepth: number;\n\n /**\n * Called after progress updates like loaded declarations or events.\n * @param update detailed event object containing update infos.\n * @param textual a textual representation of the update for debugging.\n */\n onUpdate?: (update: ProgressUpdate, textual: string) => void;\n\n /**\n * Called if errors occur.\n * @param error a textual representation of the error.\n */\n onError?: (error: string) => void;\n /**\n * instance of monaco editor\n */\n monaco: typeof monaco;\n}\n\n\nexport interface ImportResourcePathPackage {\n kind: 'package';\n packageName: string;\n importPath?: string;\n}\n\nexport interface ImportResourcePathRelative {\n kind: 'relative';\n importPath: string;\n sourcePath: string;\n}\n\nexport interface ImportResourcePathRelativeInPackage {\n kind: 'relative-in-package';\n packageName: string;\n importPath: string;\n sourcePath: string;\n}\n\nexport interface ImportResourceBruteForce {\n kind: 'bruteforce';\n packageName: string;\n typingFiles: any[];\n}\n\nexport type ImportResourcePath =\n | ImportResourcePathPackage\n | ImportResourcePathRelative\n | ImportResourcePathRelativeInPackage\n | ImportResourceBruteForce;\n\nexport const importResourcePathToString = (p: ImportResourcePath) => {\n switch (p.kind) {\n case 'package':\n return path.join(p.packageName, p.importPath ?? '', 'package.json');\n case 'relative':\n return path.join(p.sourcePath, p.importPath);\n case 'relative-in-package':\n return path.join(p.packageName, p.sourcePath, p.importPath);\n case 'bruteforce':\n throw new Error(\"Not Implemented\");\n }\n};\n","\nexport class UnpkgSourceResolver {\n public static async resolvePackageJson(\n packageName: string,\n version: string | undefined,\n subPath: string | undefined\n ): Promise<string | undefined> {\n return await this.resolveFile(\n `https://unpkg.com/${packageName}${version ? `@${version}` : ''}${subPath ? `/${subPath}` : ''}/package.json`\n );\n }\n\n public static async resolveSourceFile(\n packageName: string,\n version: string | undefined,\n path: string\n ): Promise<string | undefined> {\n return await this.resolveFile(`https://unpkg.com/${packageName}${version ? `@${version}` : ''}/${path}`);\n }\n\n private static async resolveFile(url: string) {\n const res = await fetch(url, { method: 'GET' });\n\n if (res.ok) {\n return await res.text();\n }\n else if (res.status === 404) {\n return '';\n }\n else {\n throw Error(`Error other than 404 while fetching from Unpkg at ${url}`);\n }\n }\n}\n","import type * as monaco from 'monaco-editor';\nimport { DependencyParser } from './dependency-parser';\nimport * as path from 'path-browserify';\nimport { invokeUpdate } from './update-emitter';\nimport { RecursionDepth } from './recursion-depth';\nimport { ImportResourcePath, ImportResourcePathPackage, ImportResourcePathRelativeInPackage, Options, SourceCache, importResourcePathToString } from './types';\nimport { UnpkgSourceResolver } from './unpkg-source-resolver';\n\nexport class ImportResolver {\n private loadedFiles: string[];\n private dependencyParser: DependencyParser;\n private cache: SourceCache;\n private versions?: { [packageName: string]: string };\n private newImportsResolved: boolean;\n private monaco: typeof monaco;\n\n constructor(private options: Options) {\n this.loadedFiles = [];\n this.dependencyParser = new DependencyParser();\n this.cache = options.sourceCache;\n this.newImportsResolved = false;\n this.monaco = options.monaco!;\n\n if (options.preloadPackages && options.versions) {\n this.versions = options.versions;\n for (const [packageName, version] of Object.entries(options.versions)) {\n this.resolveImport(\n {\n kind: 'package',\n packageName: packageName,\n importPath: '',\n },\n new RecursionDepth(this.options)\n ).catch(e => {\n console.error(e);\n });\n }\n }\n }\n\n public wereNewImportsResolved() {\n return this.newImportsResolved;\n }\n\n public resetNewImportsResolved() {\n this.newImportsResolved = false;\n }\n\n public async resolveImportsInFile(source: string, parent: string | ImportResourcePath, depth: RecursionDepth) {\n if (depth.shouldStop()) {\n return;\n }\n\n const imports = this.dependencyParser.parseDependencies(source, parent);\n for (const importCall of imports) {\n try {\n await this.resolveImport(importCall, depth);\n }\n catch (e) {\n if (this.options.onError) {\n this.options.onError?.((e as Error).message ?? e);\n }\n else {\n console.error(e);\n }\n }\n }\n }\n\n private async resolveImport(importResource: ImportResourcePath, depth: RecursionDepth) {\n const hash = this.hashImportResourcePath(importResource);\n if (this.loadedFiles.includes(hash)) {\n return;\n }\n\n this.loadedFiles.push(hash);\n console.log(\"resolveImport\", importResource, depth);\n\n // Ignore these package imports as they are well-known to be pointless.\n if (importResource.kind == \"package\" && importResource.packageName == \"require\")\n return null;\n\n switch (importResource.kind) {\n case 'package':\n const packageRelativeImport = await this.resolveImportFromPackageRoot(importResource);\n if (packageRelativeImport) {\n return await this.resolveImportInPackage(packageRelativeImport, depth.nextPackage().nextFile());\n }\n break;\n case 'relative':\n throw Error('Not implemented yet');\n case 'relative-in-package':\n return await this.resolveImportInPackage(importResource, depth.nextFile());\n case 'bruteforce': {\n\n }\n }\n }\n\n private async resolveImportInPackage(importResource: ImportResourcePathRelativeInPackage, depth: RecursionDepth) {\n console.log(\"resolveImportInPackage\", importResource, depth);\n\n const contents = await this.loadSourceFileContents(importResource);\n\n if (contents) {\n const { source, at } = contents;\n this.createModel(\n source,\n this.monaco.Uri.parse(this.options.fileRootPath + path.join(`node_modules/${importResource.packageName}`, at))\n );\n\n await this.resolveImportsInFile(\n source,\n {\n kind: 'relative-in-package',\n packageName: importResource.packageName,\n sourcePath: path.dirname(at),\n importPath: '',\n },\n depth\n );\n }\n }\n\n private async resolveImportFromPackageRoot(\n importResource: ImportResourcePathPackage\n ): Promise<ImportResourcePathRelativeInPackage | void> {\n console.log(\"resolveImportFromPackageRoot\", importResource);\n\n const failedProgressUpdate = {\n type: 'LookedUpPackage',\n package: importResource.packageName,\n definitelyTyped: false,\n success: false,\n } as const;\n\n if (this.options.onlySpecifiedPackages) {\n if (!this.versions?.[importResource.packageName] && !this.versions?.['@types/' + importResource.packageName]) {\n invokeUpdate(failedProgressUpdate, this.options);\n return null;\n }\n }\n\n const doesPkgJsonHasSubpath = importResource.importPath?.length ?? 0 > 0;\n let pkgJsonSubpath = doesPkgJsonHasSubpath ? `/${importResource.importPath}` : '';\n let pkgJson = await this.resolvePackageJson(\n importResource.packageName,\n this.versions?.[importResource.packageName],\n doesPkgJsonHasSubpath ? importResource.importPath : undefined\n );\n\n if (!pkgJson && doesPkgJsonHasSubpath) {\n pkgJson = await this.resolvePackageJson(importResource.packageName, this.versions?.[importResource.packageName]);\n pkgJsonSubpath = '';\n }\n\n if (!pkgJson) return invokeUpdate(failedProgressUpdate, this.options);\n\n const pkg = JSON.parse(pkgJson);\n\n console.log(\"package meta\", pkg);\n\n if (pkg.typings || pkg.types) {\n const typings = pkg.typings || pkg.types;\n this.createModel(\n pkgJson,\n this.monaco.Uri.parse(\n `${this.options.fileRootPath}node_modules/${importResource.packageName}${pkgJsonSubpath}/package.json`\n )\n );\n\n invokeUpdate(\n {\n type: 'LookedUpPackage',\n package: importResource.packageName,\n definitelyTyped: false,\n success: true,\n },\n this.options\n );\n this.setVersion(importResource.packageName, pkg.version);\n\n return {\n kind: 'relative-in-package',\n packageName: importResource.packageName,\n sourcePath: '',\n importPath: path.join(importResource.importPath ?? '', typings.startsWith('./') ? typings.slice(2) : typings),\n };\n }\n else {\n\n const typingPackageName = `@types/${\n importResource.packageName.startsWith('@')\n ? importResource.packageName.slice(1).replace(/\\//, '__')\n : importResource.packageName\n }`;\n\n const pkgJsonTypings = await this.resolvePackageJson(typingPackageName, this.versions?.[typingPackageName]);\n\n if (!pkgJsonTypings)\n return invokeUpdate(failedProgressUpdate, this.options);\n\n const pkg = JSON.parse(pkgJsonTypings);\n\n if (!pkg.typings && !pkg.types) {\n const files: {\n fileCount: number,\n files: {\n [key: string]: {\n size: number,\n hex: string,\n type: \"File\",\n isBinary: \"true\" | \"false\",\n path: string,\n contentType: string\n }\n },\n integrity: string,\n shasum: string,\n totalSize: number\n } = await fetch(\"https://www.npmjs.com/package/@dt-esa/dynatrace-api-client/v/2.2.6/index\", {\n method: \"get\"\n }).then(e => e.json());\n\n const typingFiles = Object.entries(files.files).map(([key, val]) => val);\n\n invokeUpdate(\n {\n type: 'LookedUpPackage',\n package: typingPackageName,\n definitelyTyped: true,\n success: true,\n },\n this.options\n );\n\n return {\n kind: 'bruteforce',\n packageName: typingPackageName,\n typingFiles,\n } as any;\n\n return;\n // return invokeUpdate(failedProgressUpdate, this.options);\n }\n\n const typings = pkg.typings || pkg.types;\n this.createModel(\n pkgJsonTypings,\n this.monaco.Uri.parse(`${this.options.fileRootPath}node_modules/${typingPackageName}/package.json`)\n );\n\n invokeUpdate(\n {\n type: 'LookedUpPackage',\n package: typingPackageName,\n definitelyTyped: true,\n success: true,\n },\n this.options\n );\n this.setVersion(typingPackageName, pkg.version);\n\n return {\n kind: 'relative-in-package',\n packageName: typingPackageName,\n sourcePath: '',\n importPath: path.join(\n importResource.importPath ?? '',\n typings.startsWith('./') ? typings.slice(2) : typings\n ),\n };\n }\n }\n\n private async loadSourceFileContents(\n importResource: ImportResourcePathRelativeInPackage\n ): Promise<{ source: string; at: string } | null> {\n const progressUpdatePath = path.join(\n importResource.packageName,\n importResource.sourcePath,\n importResource.importPath\n );\n\n const failedProgressUpdate = {\n type: 'LookedUpTypeFile',\n path: progressUpdatePath,\n definitelyTyped: false,\n success: false,\n } as const;\n\n const pkgName = importResource.packageName;\n const version = this.getVersion(importResource.packageName);\n\n let appends = ['.d.ts', '/index.d.ts', '.ts', '.tsx', '/index.ts', '/index.tsx'];\n\n if (appends.map(append => importResource.importPath.endsWith(append)).reduce((a, b) => a || b, false)) {\n const source = await this.resolveSourceFile(\n pkgName,\n version,\n path.join(importResource.sourcePath, importResource.importPath)\n );\n if (source) {\n return { source, at: path.join(importResource.sourcePath, importResource.importPath) };\n }\n }\n else {\n for (const append of appends) {\n const fullPath = path.join(importResource.sourcePath, importResource.importPath) + append;\n const source = await this.resolveSourceFile(pkgName, version, fullPath);\n invokeUpdate(\n {\n type: 'AttemptedLookUpFile',\n path: path.join(pkgName, fullPath),\n success: !!source,\n },\n this.options\n );\n if (source) {\n invokeUpdate(\n {\n type: 'LookedUpTypeFile',\n path: path.join(pkgName, fullPath),\n success: true,\n },\n this.options\n );\n return { source, at: fullPath };\n }\n }\n }\n\n const pkgJson = await this.resolvePackageJson(\n pkgName,\n version,\n path.join(importResource.sourcePath, importResource.importPath)\n );\n\n if (pkgJson) {\n const { types } = JSON.parse(pkgJson);\n if (types) {\n const fullPath = path.join(importResource.sourcePath, importResource.importPath, types);\n const source = await this.resolveSourceFile(pkgName, version, fullPath);\n if (source) {\n invokeUpdate(\n {\n type: 'LookedUpTypeFile',\n path: path.join(pkgName, fullPath),\n success: true,\n },\n this.options\n );\n return { source, at: fullPath };\n }\n }\n }\n\n invokeUpdate(failedProgressUpdate, this.options);\n return null;\n }\n\n private getVersion(packageName: string) {\n return this.versions?.[packageName];\n }\n\n public setVersions(versions: { [packageName: string]: string }) {\n this.versions = versions;\n this.options.onUpdateVersions?.(versions);\n // TODO reload packages whose version has changed\n }\n\n private setVersion(packageName: string, version: string) {\n this.setVersions({\n ...this.versions,\n [packageName]: version,\n });\n }\n\n private createModel(source: string, uri: monaco.Uri) {\n uri = uri.with({ path: uri.path.replace('@types/', '') });\n if (!this.monaco.editor.getModel(uri)) {\n this.monaco.editor.createModel(source, 'typescript', uri);\n this.newImportsResolved = true;\n }\n }\n\n private hashImportResourcePath(p: ImportResourcePath) {\n return importResourcePathToString(p);\n }\n\n private async resolvePackageJson(\n packageName: string,\n version?: string,\n subPath?: string\n ): Promise<string | undefined> {\n\n const uri = path.join(packageName + (version ? `@${version}` : ''), subPath ?? '', 'package.json');\n let isAvailable = false;\n let content: string | undefined = undefined;\n\n if (this.cache.isFileAvailable) {\n isAvailable = await this.cache.isFileAvailable(uri);\n }\n else {\n content = await this.cache.getFile(uri);\n isAvailable = content !== undefined;\n }\n\n if (isAvailable) {\n return content ?? (await this.cache.getFile(uri));\n }\n else {\n console.log(\"recursing resolvePackageJson\", packageName, version, subPath)\n content = await UnpkgSourceResolver.resolvePackageJson(packageName, version, subPath);\n if (content) {\n this.cache.storeFile(uri, content);\n }\n return content;\n }\n }\n\n private async resolveSourceFile(\n packageName: string,\n version: string | undefined,\n filePath: string\n ): Promise<string | undefined> {\n\n const uri = path.join(packageName + (version ? `@${version}` : ''), filePath);\n let isAvailable = false;\n let content: string | undefined = undefined;\n\n if (this.cache.isFileAvailable) {\n isAvailable = await this.cache.isFileAvailable(uri);\n }\n else {\n content = await this.cache.getFile(uri);\n isAvailable = content !== undefined;\n }\n\n if (isAvailable) {\n invokeUpdate(\n {\n type: 'LoadedFromCache',\n importPath: uri,\n },\n this.options\n );\n return content ?? (await this.cache.getFile(uri));\n }\n else {\n content = await UnpkgSourceResolver.resolveSourceFile(packageName, version, filePath);\n if (content) {\n invokeUpdate(\n {\n type: 'StoredToCache',\n importPath: uri,\n },\n this.options\n );\n this.cache.storeFile(uri, content);\n }\n return content;\n }\n }\n}\n","import { SourceCache } from './types';\n\nexport class DummySourceCache implements SourceCache {\n public getFile(uri: string): Promise<string | undefined> {\n return undefined;\n }\n\n public async isFileAvailable(uri: string): Promise<boolean> {\n return false;\n }\n\n public storeFile(uri: string, content: string): Promise<void> {\n return undefined;\n }\n\n public clear(): Promise<void> {\n return undefined;\n }\n}\n","import { ImportResolver } from './import-resolver';\nimport * as path from 'path-browserify';\nimport type * as monaco from 'monaco-editor';\nimport { invokeUpdate } from './update-emitter';\nimport { RecursionDepth } from './recursion-depth';\nimport { Options, SourceCache } from './types';\nimport { DummySourceCache } from './dummy-source-cache';\n\ntype Editor = monaco.editor.ICodeEditor | monaco.editor.IStandaloneCodeEditor;\n\n// https://github.com/lukasbach/monaco-editor-auto-typings\nexport class MonacoAutoTypeImporter implements monaco.IDisposable {\n private static sharedCache?: SourceCache;\n private importResolver: ImportResolver;\n private debounceTimer?: number;\n private isResolving?: boolean;\n private disposables: monaco.IDisposable[] = [];\n\n public constructor(private editor: Editor, private options: Options) {\n this.importResolver = new ImportResolver(options);\n\n const changeModelDisposable = editor.onDidChangeModelContent(e => {\n this.debouncedResolveContents();\n });\n this.disposables.push(changeModelDisposable);\n this.resolveContents();\n\n if (!options.dontAdaptEditorOptions) {\n options.monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n ...options.monaco.languages.typescript.typescriptDefaults.getCompilerOptions(),\n moduleResolution: options.monaco.languages.typescript.ModuleResolutionKind.NodeJs,\n allowSyntheticDefaultImports: true,\n rootDir: options.fileRootPath,\n });\n }\n }\n\n public static async create(editor: Editor, options?: Partial<Options>): Promise<MonacoAutoTypeImporter> {\n if (options?.shareCache && options.sourceCache && !MonacoAutoTypeImporter.sharedCache) {\n MonacoAutoTypeImporter.sharedCache = options.sourceCache;\n }\n\n const monacoInstance = options?.monaco ?? window['monaco'];\n\n if (!monacoInstance) {\n throw new Error('monacoInstance not found, you can specify the monaco instance via options.monaco');\n }\n\n return new MonacoAutoTypeImporter(editor, {\n fileRootPath: 'inmemory://model/',\n onlySpecifiedPackages: false,\n preloadPackages: false,\n shareCache: false,\n dontAdaptEditorOptions: false,\n dontRefreshModelValueAfterResolvement: false,\n sourceCache: MonacoAutoTypeImporter.sharedCache ?? new DummySourceCache(),\n debounceDuration: 4000,\n fileRecursionDepth: 10,\n packageRecursionDepth: 3,\n ...options,\n monaco: monacoInstance,\n });\n }\n\n public dispose() {\n this.disposables.forEach(d => d.dispose())\n }\n\n public setVersions(versions: { [packageName: string]: string }) {\n this.importResolver.setVersions(versions);\n this.options.versions = versions;\n }\n\n public async clearCache() {\n await this.options.sourceCache.clear();\n }\n\n private debouncedResolveContents() {\n if (this.isResolving) {\n return;\n }\n\n invokeUpdate({ type: 'CodeChanged' }, this.options);\n\n if (this.options.debounceDuration <= 0) {\n this.resolveContents();\n }\n else {\n if (this.debounceTimer !== undefined) {\n clearTimeout(this.debounceTimer);\n }\n this.debounceTimer = setTimeout(async () => {\n await this.resolveContents();\n this.debounceTimer = undefined;\n }, this.options.debounceDuration) as any;\n }\n }\n\n private async resolveContents() {\n this.isResolving = true;\n invokeUpdate({ type: 'ResolveNewImports' }, this.options);\n\n const model = this.editor.getModel();\n // This can happen when the editor is disposed before all typings\n // are installed.\n if (!model) {\n throw Error('No model');\n }\n\n const content = model.getLinesContent();\n\n try {\n await this.importResolver.resolveImportsInFile(\n content.join('\\n'),\n path.dirname(model.uri.toString()),\n new RecursionDepth(this.options)\n );\n }\n catch (e) {\n if (this.options.onError) {\n this.options.onError((e as Error).message ?? e);\n }\n else {\n throw e;\n }\n }\n\n if (this.importResolver.wereNewImportsResolved()) {\n if (!this.options.dontRefreshModelValueAfterResolvement) {\n const currentPosition = this.editor.getPosition();\n model.setValue(model.getValue());\n if (currentPosition) {\n this.editor.setPosition(currentPosition);\n }\n }\n this.importResolver.resetNewImportsResolved();\n }\n\n this.isResolving = false;\n }\n}\n","import { AfterViewInit, Component, EventEmitter, HostListener, Input, OnDestroy, Output, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\nimport * as MonacoEditor from 'monaco-editor';\r\nimport { MonacoAutoTypeImporter } from './ts-type-resolver/main';\r\nimport { debounceTime } from 'rxjs';\r\n\r\nlet Monaco: typeof MonacoEditor;\r\n\r\n@Component({\r\n selector: 'app-vscode',\r\n template: '',\r\n styles: [`\r\n:host {\r\n display: block;\r\n height: 100%;\r\n max-height: 100vh;\r\n max-width: 100vw;\r\n}\r\n `],\r\n standalone: true\r\n})\r\nexport class VscodeComponent implements AfterViewInit, OnDestroy {\r\n isDirty = false;\r\n editor: MonacoEditor.editor.IStandaloneCodeEditor;\r\n filename: string;\r\n\r\n private _code: string;\r\n @Input() set code(value: string) {\r\n if (value == this._code)\r\n return;\r\n if (typeof value != \"string\")\r\n throw new TypeError(\"Value must be of type string\");\r\n\r\n this._code = value;\r\n this.editor?.setValue(this.code);\r\n };\r\n get code() { return this._code?.trim() }\r\n @Output() codeChange = new EventEmitter<string>();\r\n private onCodeType = new EventEmitter<string>();\r\n private typeDebounce = this.onCodeType.pipe(debounceTime(100));\r\n\r\n @Input() customLanguage: { init: Function; };\r\n\r\n\r\n private _language: string;\r\n @Input() set language(value: string) {\r\n this._language = {\r\n 'ts': \"typescript\",\r\n 'html': 'xml',\r\n 'scss': 'css'\r\n }[value] || value || \"auto\"\r\n }\r\n get language() { return this._language }\r\n\r\n @Input() installationLocation = \"/lib/monaco/vs\";\r\n\r\n\r\n @Input() tabSize = 2;\r\n @Input() readOnly = false;\r\n @Input() theme = \"vs-dark\";\r\n @Input() fontFamily = \"Droid Sans Mono\";\r\n @Input() fontSize = 14;\r\n\r\n @Input() automaticLayout = true;\r\n @Input() colorDecorators = true;\r\n @Input() folding = true;\r\n\r\n @Input() minimapEnabled = true;\r\n @Input() minimap: MonacoEditor.editor.IEditorMinimapOptions = {\r\n enabled: true\r\n };\r\n @Input() scrollbar: MonacoEditor.editor.IEditorScrollbarOptions = {\r\n alwaysConsumeMouseWheel: false,\r\n // scrollByPage: true\r\n };\r\n @Input() smoothScrolling = true;\r\n @Input() mouseWheelScrollSensitivity = 2;\r\n @Input() scrollBeyondLastLine = false;\r\n @Input() scrollBeyondLastColumn = 0;\r\n\r\n @Input() lineNumbers: MonacoEditor.editor.LineNumbersType = \"on\";\r\n\r\n @Input() restSettings: MonacoEditor.editor.IStandaloneEditorConstructionOptions = {};\r\n\r\n get settings() {\r\n return {\r\n ...this.restSettings,\r\n theme: this.theme,\r\n language: this.language,\r\n tabSize: this.tabSize,\r\n readOnly: this.readOnly,\r\n fontFamily: this.fontFamily,\r\n fontSize: this.fontSize,\r\n automaticLayout: this.automaticLayout,\r\n scrollBeyondLastLine: this.scrollBeyondLastLine,\r\n colorDecorators: this.colorDecorators,\r\n folding: this.folding,\r\n scrollBeyondLastColumn: this.scrollBeyondLastColumn,\r\n minimap: this.minimap,\r\n scrollbar: this.scrollbar,\r\n smoothScrolling: this.smoothScrolling,\r\n mouseWheelScrollSensitivity: this.mouseWheelScrollSensitivity,\r\n lineNumbers: this.lineNumbers\r\n } as MonacoEditor.editor.IStandaloneEditorConstructionOptions;\r\n }\r\n\r\n private _sub;\r\n constructor(private viewContainer: ViewContainerRef) {\r\n InstallMonacoUMD(this.installationLocation);\r\n\r\n this._sub = this.typeDebounce.subscribe(t => {\r\n this.codeChange.next(this._code = this.editor.getValue());\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // If we changed anything OTHER than code, reload the editor\r\n if (Object.keys(changes).length > 1 || !changes['code']) {\r\n if (this.editor) {\r\n this.editor?.dispose();\r\n this.createEditor();\r\n }\r\n }\r\n if (changes['theme'])\r\n window['monaco']?.editor.setTheme(this.theme);\r\n }\r\n\r\n async ngAfterViewInit() {\r\n await InstallMonacoUMD();\r\n\r\n this.createEditor();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.editor?.dispose();\r\n this._sub?.unsubscribe();\r\n }\r\n\r\n private createEditor() {\r\n if (this.customLanguage) {\r\n this.customLanguage.init(window['monaco']);\r\n }\r\n\r\n let editor = this.editor = window['monaco'].editor.create(\r\n this.viewContainer?.element?.nativeElement,\r\n this.settings as any\r\n );\r\n\r\n // const autoTypings = await\r\n MonacoAutoTypeImporter.create(editor, {\r\n monaco: Monaco,\r\n });\r\n\r\n this.configureLanguageSupport();\r\n\r\n if (this.code) {\r\n editor.setValue(this.code);\r\n }\r\n\r\n editor.getModel().onDidChangeContent(() => this.onCodeType.emit());\r\n }\r\n\r\n private configureLanguageSupport() {\r\n\r\n }\r\n\r\n download() {\r\n const code = this.editor.getValue();\r\n\r\n let blob = new Blob([code], { type: 'text/log' });\r\n let elm = document.createElement('a');\r\n let blobURL = URL.createObjectURL(blob);\r\n\r\n // Set the data values.\r\n elm.href = blobURL;\r\n elm.download = this.filename;\r\n\r\n document.body.appendChild(elm);\r\n elm.click();\r\n\r\n document.body.removeChild(elm);\r\n elm.remove();\r\n\r\n URL.revokeObjectURL(blobURL);\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n resize = (): void => {\r\n this.editor?.layout();\r\n };\r\n}\r\n\r\nexport const InstallMonacoUMD = async (path?: string) => {\r\n if (window['monaco']) return window['monaco'];\r\n\r\n // Prevent duplicate injection\r\n const scriptEls = document.querySelectorAll('body>script[monaco][defer][src]');\r\n\r\n // Only perform installation if a path is specified.\r\n if (path && scriptEls.length == 0) {\r\n // Monaco has a UMD loader that requires this\r\n // Merge with any pre-existing global require objects.\r\n if (!window['require']) window['require'] = {} as any;\r\n if (!window['require']['paths']) window['require']['paths'] = {};\r\n\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n\r\n window['require']['paths'].vs = path;\r\n\r\n const monacoFiles = [\r\n 'loader.js',\r\n 'editor/editor.main.nls.js',\r\n 'editor/editor.main.js',\r\n ];\r\n\r\n for (let i = 0; i < monacoFiles.length; i++) {\r\n const script = document.createElement(\"script\");\r\n script.setAttribute(\"monaco\", \"\");\r\n script.setAttribute(\"defer\", \"\");\r\n script.setAttribute(\"src\", path + '/' + monacoFiles[i]);\r\n document.body.append(script);\r\n }\r\n }\r\n\r\n // Return a promise that will resolve when monaco finishes loading\r\n return await new Promise((res, rej) => {\r\n let count = 0;\r\n let i = window.setInterval(() => {\r\n count++;\r\n\r\n if (window['monaco'] != undefined) {\r\n window.clearInterval(i);\r\n res(true);\r\n }\r\n else if (count >= 100) {\r\n window.clearInterval(i);\r\n res(false);\r\n }\r\n }, 100);\r\n });\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\n\ntype CSSUnitString = 'px' | '%' | 'em' | 'in' | '';\ntype CSSUnit = `${number}${CSSUnitString}` | `var(--${string})`;\ntype CSSString = CSSUnit |\n `calc(${CSSUnit|''}${''|' '}${'+'|'-'|'/'|'*'}${''|' '}${CSSUnit|''})`\n\n@Component({\n selector: 'ngx-parallax-card',\n templateUrl: './parallax-card.component.html',\n styleUrls: ['./parallax-card.component.scss'],\n imports: [\n NgTemplateOutlet\n ],\n host: {\n '[style.width]': 'width',\n '[style.height]': 'height',\n '[style.--card-bg-inset]': '-bgInset+\"px\"',\n '[style.--flip-animation-duration]': 'flipAnimationDuration+\"ms\"',\n '[class.flip]': 'showBackOfCard'\n },\n standalone: true\n})\nexport class ParallaxCardComponent {\n\n // Front of card\n @ContentChild('content', { read: TemplateRef }) content: TemplateRef<ElementRef>;\n @ContentChild('background', { read: TemplateRef }) background: TemplateRef<ElementRef>;\n\n // Back of card\n @ContentChild('backContent', { read: TemplateRef }) backContent: TemplateRef<ElementRef>;\n @ContentChild('backBackground', { read: TemplateRef }) backBackground: TemplateRef<ElementRef>;\n\n /**\n *\n */\n @Output() loaded = new EventEmitter();\n\n /**\n * Width of the card\n * @default `240px`\n */\n @Input() width: CSSString = '240px';\n /**\n * Height of the card\n * @default `320px`\n */\n @Input() height: CSSString = '320px';\n /**\n * Inset padding of the parallax\n * @default 80\n */\n @Input() bgInset: number = 80;\n /**\n * Duration for the flip animation in ms\n * @default 80\n */\n @Input() flipAnimationDuration: number = 1600;\n\n renderCardFront = true;\n renderCardBack = true;\n showBackOfCard = false;\n\n private get wrapper() { return this.element.nativeElement as HTMLElement; }\n private get cardFront() { return this.wrapper.querySelector('.card.front') as HTMLElement; }\n private get cardBack() { return this.wrapper.querySelector('.card.backface') as HTMLElement; }\n private get backgroundElement() { return this.cardFront.querySelector('.card-bg') as HTMLDivElement; }\n private get backfaceBackgroundElement() { return this.cardBack.querySelector('.card-bg') as HTMLDivElement; }\n\n private pointerX = 0;\n private pointerY = 0;\n private pointerLeave = 0;\n\n constructor(\n private readonly element: ElementRef\n ) { }\n\n ngAfterViewInit() {\n const el = this.wrapper;\n\n // Directly attach events to the wrapper\n el.onpointermove = (e) => this.onPointerMove(e);\n el.onpointerenter = () => this.onPointerEnter();\n el.onpointerleave = () => this.onPointerLeave();\n el.onclick = () => this.onClick();\n\n this.loaded.emit();\n }\n\n onPointerMove(e: PointerEvent) {\n const { width, height, left, top } = this.wrapper.getBoundingClientRect();\n this.pointerX = e.pageX - left - (width / 2);\n this.pointerY = e.pageY - top - (height / 2);\n\n this.render();\n }\n\n onPointerEnter() {\n clearTimeout(this.pointerLeave);\n }\n\n onPointerLeave() {\n this.pointerLeave = setTimeout(() => {\n this.pointerX = 0;\n this.pointerY = 0;\n this.render();\n }, 600) as any;\n }\n\n // TODO: This can get intercepted in some states\n onClick() {\n this.showBackOfCard = !this.showBackOfCard;\n this.render()\n }\n\n render = () => {\n const { width, height } = this.wrapper.getBoundingClientRect();\n const mousePX = this.pointerX / width;\n const mousePY = this.pointerY / height;\n\n // Rotation factors\n const rX = mousePX * this.bgInset / 1.75;\n const rY = mousePY * -this.bgInset / 1.75;\n\n // Translation factors\n const tX = mousePX * -this.bgInset * 2;\n const tY = mousePY * -this.bgInset * 2;\n\n if (this.renderCardFront) {\n this.backgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n }\n if (this.renderCardBack) {\n this.backfaceBackgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n }\n\n if (this.showBackOfCard) {\n this.cardFront.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n this.cardBack.style.transform = `rotateY(${-rX}deg) rotateX(${-rY}deg)`;\n }\n else {\n this.cardFront.style.transform = `rotateY(${rX}deg) rotateX(${rY}deg)`;\n this.cardBack.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n }\n }\n}\n","@if (renderCardBack) {\n <div class=\"card backface\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"backBackground\" />\n </div>\n <div class=\"card-content\">\n <ng-template [ngTemplateOutlet]=\"backContent\" />\n </div>\n </div>\n}\n\n@if (renderCardFront) {\n <div class=\"card front\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"background\" />\n </div>\n <div class=\"card-content\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"/>\n }\n @else {\n <ng-content/>\n }\n </div>\n </div>\n}\n\n\n","import { AfterViewInit, Component, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport * as React from 'react';\nimport { createRoot, Root } from 'react-dom/client';\n\nimport { ThemeService } from '../../services/theme.service';\n\n/**\n * Extend this component to automatically generate\n * bindings to a React component.\n *\n * ! You _must_ override the property `ngReactComponent`\n * Failure to do so will result in errors\n * `override readonly ngReactComponent = ReactFlowWrappableComponent;`\n */\n@Component({\n selector: 'app-react-magic-wrapper',\n template: ``,\n standalone: true\n})\nexport class ReactMagicWrapperComponent implements OnChanges, OnDestroy, AfterViewInit {\n\n /**\n * The react component to be wrapped.\n * ! Must be overridden for this wrapper to work\n */\n ngReactComponent: React.FunctionComponent<any> | React.ComponentClass<any> | string;\n\n private _root: Root;\n public theme: string;\n private ngSubscriptions = [\n this.ngTheme.subscribe(t => {\n this.theme = t;\n this.ngOnChanges();\n })\n ];\n\n constructor(\n private ngContainer: ViewContainerRef,\n private ngTheme: ThemeService\n ) {\n }\n\n ngOnInit() {\n if (!this.ngReactComponent)\n throw new Error(\"ReactMagicWrapperComponent cannot start without a provided ngReactComponent!\");\n }\n\n ngOnChanges(changes?: SimpleChanges): void {\n this._render();\n }\n\n ngAfterViewInit() {\n this._render();\n }\n\n ngOnDestroy() {\n this._root.unmount();\n this.ngSubscriptions.forEach(s => s.unsubscribe());\n }\n\n private _render() {\n if (!this.ngReactComponent) return;\n if (!this._root) {\n this._root = createRoot(this.ngContainer.element.nativeElement);\n }\n\n // List all keys that do not start with `_` nor `ng`\n const keys = Object.keys(this).filter(k => !/^(?:_|ng)/.test(k));\n\n // Get all property keys from the class\n const propKeys = keys.filter(k => !k.startsWith(\"on\"));\n // Get all event handler keys from the class\n const evtKeys = keys.filter(k => k.startsWith(\"on\"));\n\n const props = {};\n // Project all key properties onto `props`\n propKeys.forEach(k => props[k] = this[k]);\n\n // Bind all event handlers.\n // ! important Angular uses EventEmitter, React uses\n // a different method of event binding\n evtKeys.forEach(k => props[k] = (...args) => this[k].next(args));\n\n this._root.render(React.createElement(this.ngReactComponent, { props: props as any }));\n }\n}\n","/*\n * Public API Surface of package\n */\n\n/**\n ** Types\n */\nexport * from './types/menu';\nexport * from './types/popup';\n\n/**\n ** Directives\n */\nexport * from './directives/tooltip.directive';\nexport * from './directives/menu.directive';\nexport * from './directives/image-cache.directive';\n\n/**\n ** Pipes\n */\nexport * from './pipes/html-bypass.pipe';\nexport * from './pipes/resource-bypass.pipe';\nexport * from './pipes/script-bypass.pipe';\nexport * from './pipes/style-bypass.pipe';\nexport * from './pipes/url-bypass.pipe';\n\n/**\n** Services\n*/\nexport * from './services/dependency.service';\nexport * from './services/dialog.service';\nexport * from './services/fetch.service';\nexport * from './services/keyboard.service';\nexport * from './services/file.service';\nexport * from './services/theme.service';\nexport * from './services/navigation.service';\nexport * from './services/command-palette.service';\n// export * from './services/serviceworker.service';\n\n/**\n** Lazy loader component & service\n*/\nexport * from './components/lazy-loader/lazy-loader.service';\nexport * from './components/lazy-loader/lazy-loader.module';\nexport * from './components/lazy-loader/lazy-loader.component';\nexport * from './components/lazy-loader/types';\n\n/**\n** Dynamic HTML (WIP)\n*/\nexport * from './components/dynamic-html/dynamic-html.service';\nexport * from './components/dynamic-html/dynamic-html.module';\nexport * from './components/dynamic-html/dynamic-html.component';\nexport * from './components/dynamic-html/types';\n\n/**\n ** Components\n */\nexport * from './components/filemanager/filemanager.component';\n// export * from './components/music-library/music-library.component';\nexport * from './components/tabulator/tabulator.component';\nexport * from './components/vscode/vscode.component';\nexport * from './components/parallax-card/parallax-card.component';\nexport * from './components/react-magic-wrapper/react-magic-wrapper.component';\nexport * from './components/types';\n\n\nexport { ConsoleLogger, LogIcon } from './utils/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["zone","i2","i4","i1","log","warn","err","i2.LazyLoaderService","i1.Fetch","i1.LazyLoaderService","i1.CommandPaletteComponent","i3","i5","i1.DynamicHTMLRenderer","MIT['default']","Tabulator","i1.KeyboardService","i1.DialogService","i3.FilemanagerComponent","i6","i7","i8","i10","i1.FilemanagerComponent","i2.DialogService","i2.Fetch","i1.ThemeService"],"mappings":"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"}
|