@volo/ngx-lepton-x.core 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +3 -1
- package/esm2020/lib/abstracts/index.mjs +2 -0
- package/esm2020/lib/abstracts/perfect-scrollbar.mjs +8 -0
- package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/lib/components/navbar/models.mjs +1 -1
- package/esm2020/lib/components/navbar/navbar-routes/navbar-routes.component.mjs +26 -9
- package/esm2020/lib/components/navbar/navbar.component.mjs +3 -3
- package/esm2020/lib/components/navbar/navbar.service.mjs +13 -2
- package/esm2020/lib/consts/index.mjs +2 -0
- package/esm2020/lib/consts/others-group.mjs +2 -0
- package/esm2020/lib/directives/index.mjs +2 -1
- package/esm2020/lib/directives/perfect-scrollbar.directive.mjs +34 -0
- package/esm2020/lib/lepton-x-core.module.mjs +10 -3
- package/esm2020/lib/models/common.mjs +1 -1
- package/esm2020/lib/models/index.mjs +2 -1
- package/esm2020/lib/models/user.mjs +2 -0
- package/esm2020/lib/services/index.mjs +2 -1
- package/esm2020/lib/services/perfect-scrollbar.service.mjs +47 -0
- package/esm2020/lib/services/user-profile/user-profile.service.mjs +1 -1
- package/esm2020/lib/tokens/index.mjs +2 -1
- package/esm2020/lib/tokens/perfect-scrollbar.token.mjs +3 -0
- package/esm2020/lib/utils/common.mjs +7 -1
- package/esm2020/lib/utils/index.mjs +2 -1
- package/esm2020/lib/utils/tree-utils.mjs +21 -0
- package/fesm2015/volo-ngx-lepton-x.core.mjs +181 -39
- package/fesm2015/volo-ngx-lepton-x.core.mjs.map +1 -1
- package/fesm2020/volo-ngx-lepton-x.core.mjs +179 -41
- package/fesm2020/volo-ngx-lepton-x.core.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/abstracts/index.d.ts +1 -0
- package/lib/abstracts/perfect-scrollbar.d.ts +15 -0
- package/lib/components/navbar/models.d.ts +5 -0
- package/lib/components/navbar/navbar-routes/navbar-routes.component.d.ts +6 -2
- package/lib/components/navbar/navbar.service.d.ts +7 -2
- package/lib/consts/index.d.ts +1 -0
- package/lib/consts/others-group.d.ts +1 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/directives/perfect-scrollbar.directive.d.ts +12 -0
- package/lib/models/common.d.ts +5 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/models/user.d.ts +16 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/perfect-scrollbar.service.d.ts +15 -0
- package/lib/services/user-profile/user-profile.service.d.ts +1 -10
- package/lib/tokens/index.d.ts +1 -0
- package/lib/tokens/perfect-scrollbar.token.d.ts +3 -0
- package/lib/utils/common.d.ts +2 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/tree-utils.d.ts +8 -0
- package/package.json +3 -2
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, Inject, NgModule, Component, ViewEncapsulation, Input, Directive, Optional, Pipe, EventEmitter, Output, TemplateRef, ContentChild,
|
|
2
|
+
import { inject, InjectionToken, Injectable, Inject, NgModule, Component, ViewEncapsulation, Input, Directive, Optional, Pipe, EventEmitter, Output, TemplateRef, ContentChild, SecurityContext, HostListener, APP_INITIALIZER, Injector, SkipSelf, ElementRef } from '@angular/core';
|
|
3
|
+
import * as i1$1 from '@angular/router';
|
|
4
|
+
import { Router, NavigationEnd, NavigationError, NavigationCancel, RouterModule } from '@angular/router';
|
|
3
5
|
import * as i1 from '@angular/common';
|
|
4
6
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
5
7
|
import { map, distinctUntilChanged, filter, take, tap, switchMap, startWith, distinctUntilKeyChanged } from 'rxjs/operators';
|
|
6
|
-
import { BehaviorSubject, Subject,
|
|
8
|
+
import { BehaviorSubject, Subject, Observable, from, of, EMPTY, filter as filter$1, combineLatest, fromEvent, Subscription } from 'rxjs';
|
|
7
9
|
import { FormsModule } from '@angular/forms';
|
|
8
|
-
import
|
|
9
|
-
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
10
|
+
import PerfectScrollbar from 'perfect-scrollbar';
|
|
10
11
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
11
12
|
|
|
13
|
+
class LpxPerfectScrollbar {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.router = inject(Router);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
12
19
|
const LPX_LANGUAGE = new InjectionToken('LPX_LANGUAGE');
|
|
13
20
|
|
|
14
21
|
class DataStore {
|
|
@@ -294,6 +301,57 @@ const CONTENT_BEFORE_ROUTES = new InjectionToken('CONTENT_BEFORE_ROUTES');
|
|
|
294
301
|
const CONTENT_AFTER_ROUTES = new InjectionToken('CONTENT_AFTER_ROUTES');
|
|
295
302
|
const LPX_MENU_ITEMS = new InjectionToken('LPX_MENU_ITEMS');
|
|
296
303
|
|
|
304
|
+
function sortItems(a, b) {
|
|
305
|
+
if (!a.order) {
|
|
306
|
+
return 1;
|
|
307
|
+
}
|
|
308
|
+
if (!b.order) {
|
|
309
|
+
return -1;
|
|
310
|
+
}
|
|
311
|
+
return a.order - b.order;
|
|
312
|
+
}
|
|
313
|
+
function flatArrayDeepToObject(arr) {
|
|
314
|
+
return arr.reduce((acc, curr) => ({
|
|
315
|
+
...acc,
|
|
316
|
+
...(Array.isArray(curr) ? flatArrayDeepToObject(curr) : curr),
|
|
317
|
+
}), {});
|
|
318
|
+
}
|
|
319
|
+
function getStream$(source) {
|
|
320
|
+
return source instanceof Observable
|
|
321
|
+
? source
|
|
322
|
+
: source instanceof Promise
|
|
323
|
+
? from(source)
|
|
324
|
+
: of(source);
|
|
325
|
+
}
|
|
326
|
+
function isNullOrUndefined(obj) {
|
|
327
|
+
return obj === null || obj === undefined;
|
|
328
|
+
}
|
|
329
|
+
function isArray(obj) {
|
|
330
|
+
return Array.isArray(obj);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
function createGroupMap(list, othersGroupKey, skipGroupCheck = false) {
|
|
334
|
+
if (!skipGroupCheck &&
|
|
335
|
+
(!isArray(list) || !list.some((node) => Boolean(node.group))))
|
|
336
|
+
return undefined;
|
|
337
|
+
const mapGroup = new Map();
|
|
338
|
+
for (const node of list) {
|
|
339
|
+
const group = node?.group || othersGroupKey;
|
|
340
|
+
if (typeof group !== 'string') {
|
|
341
|
+
throw new Error(`Invalid group: ${group}`);
|
|
342
|
+
}
|
|
343
|
+
const items = mapGroup.get(group) || [];
|
|
344
|
+
items.push(node);
|
|
345
|
+
mapGroup.set(group, items);
|
|
346
|
+
}
|
|
347
|
+
return mapGroup;
|
|
348
|
+
}
|
|
349
|
+
function getItemsFromGroup(list, pred) {
|
|
350
|
+
return list?.reduce((acc, { items }) => [...acc, ...(pred ? items.filter(pred) : items)], []);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
const OTHERS_GROUP_KEY = 'AbpUi::OthersGroup';
|
|
354
|
+
|
|
297
355
|
class NavbarService {
|
|
298
356
|
constructor(menuItems, route, router) {
|
|
299
357
|
this.menuItems = menuItems;
|
|
@@ -301,6 +359,15 @@ class NavbarService {
|
|
|
301
359
|
this.router = router;
|
|
302
360
|
this.store = new DataStore(this.addContainerLinks(this.menuItems));
|
|
303
361
|
this.navbarItems$ = this.store.sliceState((state) => state);
|
|
362
|
+
this.groupedNavbarItems$ = this.store
|
|
363
|
+
.sliceState((state) => state)
|
|
364
|
+
.pipe(filter((navItems) => navItems.some((f) => !!f.group)), map((items) => {
|
|
365
|
+
const map = createGroupMap(items, OTHERS_GROUP_KEY) || [];
|
|
366
|
+
return Array.from(map, ([group, items]) => ({
|
|
367
|
+
group,
|
|
368
|
+
items,
|
|
369
|
+
}));
|
|
370
|
+
}));
|
|
304
371
|
this.expandItemByLink$().pipe(take(1)).subscribe();
|
|
305
372
|
}
|
|
306
373
|
addNavbarItems(...menuItems) {
|
|
@@ -519,29 +586,6 @@ function checkType(value) {
|
|
|
519
586
|
}
|
|
520
587
|
}
|
|
521
588
|
|
|
522
|
-
function sortItems(a, b) {
|
|
523
|
-
if (!a.order) {
|
|
524
|
-
return 1;
|
|
525
|
-
}
|
|
526
|
-
if (!b.order) {
|
|
527
|
-
return -1;
|
|
528
|
-
}
|
|
529
|
-
return a.order - b.order;
|
|
530
|
-
}
|
|
531
|
-
function flatArrayDeepToObject(arr) {
|
|
532
|
-
return arr.reduce((acc, curr) => ({
|
|
533
|
-
...acc,
|
|
534
|
-
...(Array.isArray(curr) ? flatArrayDeepToObject(curr) : curr),
|
|
535
|
-
}), {});
|
|
536
|
-
}
|
|
537
|
-
function getStream$(source) {
|
|
538
|
-
return source instanceof Observable
|
|
539
|
-
? source
|
|
540
|
-
: source instanceof Promise
|
|
541
|
-
? from(source)
|
|
542
|
-
: of(source);
|
|
543
|
-
}
|
|
544
|
-
|
|
545
589
|
class UserProfileService {
|
|
546
590
|
constructor() {
|
|
547
591
|
this.store = new DataStore({});
|
|
@@ -680,6 +724,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
680
724
|
}]
|
|
681
725
|
}], ctorParameters: function () { return []; } });
|
|
682
726
|
|
|
727
|
+
class LpxPerfectScrollbarService extends LpxPerfectScrollbar {
|
|
728
|
+
setElement(value) {
|
|
729
|
+
if (value) {
|
|
730
|
+
this.elementRef = value;
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
setOptions(value) {
|
|
734
|
+
if (value) {
|
|
735
|
+
this.options = value;
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
createScrollbar() {
|
|
739
|
+
this.perfectScrollbar = new PerfectScrollbar(this.elementRef.nativeElement, this.options);
|
|
740
|
+
}
|
|
741
|
+
onResize() {
|
|
742
|
+
this.perfectScrollbar.update();
|
|
743
|
+
}
|
|
744
|
+
afterViewInit() {
|
|
745
|
+
this.createScrollbar();
|
|
746
|
+
this.subscription?.unsubscribe();
|
|
747
|
+
this.subscription = this.router.events
|
|
748
|
+
.pipe(filter$1((event) => event instanceof NavigationEnd ||
|
|
749
|
+
event instanceof NavigationError ||
|
|
750
|
+
event instanceof NavigationCancel))
|
|
751
|
+
.subscribe(() => {
|
|
752
|
+
const { element } = this.perfectScrollbar;
|
|
753
|
+
const { topAfterNavigate, leftAfterNavigate } = this.options || {};
|
|
754
|
+
element.scrollTop = topAfterNavigate || 0;
|
|
755
|
+
element.scrollLeft = leftAfterNavigate || 0;
|
|
756
|
+
});
|
|
757
|
+
}
|
|
758
|
+
ngOnDestroy() {
|
|
759
|
+
this.subscription?.unsubscribe();
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
LpxPerfectScrollbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LpxPerfectScrollbarService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
763
|
+
LpxPerfectScrollbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LpxPerfectScrollbarService });
|
|
764
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LpxPerfectScrollbarService, decorators: [{
|
|
765
|
+
type: Injectable
|
|
766
|
+
}] });
|
|
767
|
+
|
|
683
768
|
class TranslatePipe {
|
|
684
769
|
constructor(lpxThemeTranslateService) {
|
|
685
770
|
this.lpxThemeTranslateService = lpxThemeTranslateService;
|
|
@@ -756,18 +841,31 @@ class NavbarRoutesComponent {
|
|
|
756
841
|
constructor(injector) {
|
|
757
842
|
this.injector = injector;
|
|
758
843
|
this.routeClick = new EventEmitter();
|
|
844
|
+
this.isExpandedOrSelected = (item) => !!(item.expanded || item.selected);
|
|
845
|
+
}
|
|
846
|
+
get itemsFromGroup() {
|
|
847
|
+
if (!this.groupedItems) {
|
|
848
|
+
return undefined;
|
|
849
|
+
}
|
|
850
|
+
return getItemsFromGroup(this.groupedItems);
|
|
759
851
|
}
|
|
760
852
|
onSubnavbarExpand(menuItem, menuItems) {
|
|
761
853
|
if (menuItem.expanded) {
|
|
762
|
-
menuItems
|
|
763
|
-
|
|
854
|
+
const items = this.itemsFromGroup || menuItems;
|
|
855
|
+
if (!items) {
|
|
856
|
+
return;
|
|
857
|
+
}
|
|
858
|
+
items
|
|
859
|
+
.filter((item) => item !== menuItem)
|
|
764
860
|
.forEach((item) => (item.expanded = false));
|
|
765
861
|
}
|
|
766
862
|
}
|
|
767
863
|
onRouteClick(menuItem, menuItems) {
|
|
768
|
-
const expandedItems = menuItems?.filter(
|
|
769
|
-
|
|
770
|
-
|
|
864
|
+
const expandedItems = menuItems?.filter(this.isExpandedOrSelected);
|
|
865
|
+
const expandedGroupItems = this.itemsFromGroup?.filter(this.isExpandedOrSelected);
|
|
866
|
+
const items = expandedGroupItems || expandedItems;
|
|
867
|
+
if (items) {
|
|
868
|
+
items
|
|
771
869
|
.filter((item) => item !== menuItem)
|
|
772
870
|
.reduce((acc, item) => {
|
|
773
871
|
return [...acc, item, ...this.flatChildren(item.children || [])];
|
|
@@ -792,11 +890,13 @@ class NavbarRoutesComponent {
|
|
|
792
890
|
}
|
|
793
891
|
}
|
|
794
892
|
NavbarRoutesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavbarRoutesComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
795
|
-
NavbarRoutesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavbarRoutesComponent, selector: "lpx-navbar-routes", inputs: { navbarItems: "navbarItems", routerItem: "routerItem" }, outputs: { routeClick: "routeClick" }, ngImport: i0, template: "<ul class=\"lpx-nav-menu\">\r\n <ng-container *ngFor=\"let item of navbarItems\">\r\n <li class=\"outer-menu-item\"
|
|
893
|
+
NavbarRoutesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavbarRoutesComponent, selector: "lpx-navbar-routes", inputs: { groupedItems: "groupedItems", navbarItems: "navbarItems", routerItem: "routerItem" }, outputs: { routeClick: "routeClick" }, ngImport: i0, template: "<ul class=\"lpx-nav-menu\">\r\n <ng-container *ngIf=\"groupedItems; else defaultRoute\">\r\n <ng-container *ngFor=\"let item of groupedItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"groupText; context: { $implicit: item }\"\r\n ></ng-container>\r\n\r\n <ng-container *ngFor=\"let navbarItem of item.items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: navbarItem }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ul>\r\n\r\n<ng-template #defaultRoute>\r\n <ng-container *ngFor=\"let item of navbarItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #groupText let-item>\r\n <li\r\n *ngIf=\"item.items.length > 0\"\r\n class=\"group-menu-item hidden-in-hover-trigger\"\r\n >\r\n {{ item.group | lpxTranslate | async }}\r\n </li>\r\n</ng-template>\r\n<ng-template #itemTemplate let-item>\r\n <li\r\n class=\"outer-menu-item\"\r\n *lpxVisible=\"!item.visible || item.visible(item, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"item\"\r\n (expand)=\"onSubnavbarExpand($event, navbarItems)\"\r\n (routeClick)=\"onRouteClick($event, navbarItems)\"\r\n [routerItem]=\"routerItem\"\r\n ></lpx-sub-navbar>\r\n </li>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: LpxVisibleDirective, selector: "[lpxVisible]", inputs: ["lpxVisible"] }, { kind: "component", type: SubNavbarComponent, selector: "lpx-sub-navbar", inputs: ["item", "routerItem"], outputs: ["routeClick", "expand"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "lpxTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
796
894
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavbarRoutesComponent, decorators: [{
|
|
797
895
|
type: Component,
|
|
798
|
-
args: [{ selector: 'lpx-navbar-routes', encapsulation: ViewEncapsulation.None, template: "<ul class=\"lpx-nav-menu\">\r\n <ng-container *ngFor=\"let item of navbarItems\">\r\n <li class=\"outer-menu-item\"
|
|
799
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: {
|
|
896
|
+
args: [{ selector: 'lpx-navbar-routes', encapsulation: ViewEncapsulation.None, template: "<ul class=\"lpx-nav-menu\">\r\n <ng-container *ngIf=\"groupedItems; else defaultRoute\">\r\n <ng-container *ngFor=\"let item of groupedItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"groupText; context: { $implicit: item }\"\r\n ></ng-container>\r\n\r\n <ng-container *ngFor=\"let navbarItem of item.items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: navbarItem }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ul>\r\n\r\n<ng-template #defaultRoute>\r\n <ng-container *ngFor=\"let item of navbarItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #groupText let-item>\r\n <li\r\n *ngIf=\"item.items.length > 0\"\r\n class=\"group-menu-item hidden-in-hover-trigger\"\r\n >\r\n {{ item.group | lpxTranslate | async }}\r\n </li>\r\n</ng-template>\r\n<ng-template #itemTemplate let-item>\r\n <li\r\n class=\"outer-menu-item\"\r\n *lpxVisible=\"!item.visible || item.visible(item, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"item\"\r\n (expand)=\"onSubnavbarExpand($event, navbarItems)\"\r\n (routeClick)=\"onRouteClick($event, navbarItems)\"\r\n [routerItem]=\"routerItem\"\r\n ></lpx-sub-navbar>\r\n </li>\r\n</ng-template>\r\n" }]
|
|
897
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { groupedItems: [{
|
|
898
|
+
type: Input
|
|
899
|
+
}], navbarItems: [{
|
|
800
900
|
type: Input
|
|
801
901
|
}], routerItem: [{
|
|
802
902
|
type: Input
|
|
@@ -821,10 +921,10 @@ class NavbarComponent {
|
|
|
821
921
|
}
|
|
822
922
|
}
|
|
823
923
|
NavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavbarComponent, deps: [{ token: NavbarService }, { token: i0.Injector }, { token: LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
824
|
-
NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavbarComponent, selector: "lpx-navbar", queries: [{ propertyName: "routesTemplate", first: true, predicate: NavbarRoutesDirective, descendants: true, read: TemplateRef }, { propertyName: "logoPanel", first: true, predicate: LogoPanelDirective, descendants: true }], ngImport: i0, template: "<nav class=\"lpx-nav\">\r\n <div class=\"lpx-logo-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"logoPanel?.template || defaultLogo\"\r\n ></ng-container>\r\n <lpx-icon\r\n class=\"menu-collapse-icon hidden-in-hover-trigger\"\r\n iconClass=\"bi bi-filter-left\"\r\n (click)=\"toggleSidebarHover()\"\r\n ></lpx-icon>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentBefore }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n routesTemplate || defaultRouteTemplate;\r\n context: {
|
|
924
|
+
NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavbarComponent, selector: "lpx-navbar", queries: [{ propertyName: "routesTemplate", first: true, predicate: NavbarRoutesDirective, descendants: true, read: TemplateRef }, { propertyName: "logoPanel", first: true, predicate: LogoPanelDirective, descendants: true }], ngImport: i0, template: "<nav class=\"lpx-nav\">\r\n <div class=\"lpx-logo-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"logoPanel?.template || defaultLogo\"\r\n ></ng-container>\r\n <lpx-icon\r\n class=\"menu-collapse-icon hidden-in-hover-trigger\"\r\n iconClass=\"bi bi-filter-left\"\r\n (click)=\"toggleSidebarHover()\"\r\n ></lpx-icon>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentBefore }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n routesTemplate || defaultRouteTemplate;\r\n context: {\r\n $implicit: service.navbarItems$ | async,\r\n groupItems: service.groupedNavbarItems$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentAfter }\r\n \"\r\n ></ng-container>\r\n</nav>\r\n\r\n<ng-template #defaultRouteTemplate let-items let-groupItems=\"groupItems\">\r\n <lpx-navbar-routes\r\n [navbarItems]=\"items\"\r\n [groupedItems]=\"groupItems\"\r\n [routerItem]=\"true\"\r\n ></lpx-navbar-routes>\r\n</ng-template>\r\n\r\n<ng-template #customContentTemplate let-contents>\r\n <ng-container *ngFor=\"let component of contents\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: injector\"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultLogo>\r\n <lpx-brand-logo></lpx-brand-logo>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BrandLogoComponent, selector: "lpx-brand-logo" }, { kind: "component", type: IconComponent, selector: "lpx-icon", inputs: ["iconClass"] }, { kind: "component", type: NavbarRoutesComponent, selector: "lpx-navbar-routes", inputs: ["groupedItems", "navbarItems", "routerItem"], outputs: ["routeClick"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
|
|
825
925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavbarComponent, decorators: [{
|
|
826
926
|
type: Component,
|
|
827
|
-
args: [{ selector: 'lpx-navbar', encapsulation: ViewEncapsulation.None, template: "<nav class=\"lpx-nav\">\r\n <div class=\"lpx-logo-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"logoPanel?.template || defaultLogo\"\r\n ></ng-container>\r\n <lpx-icon\r\n class=\"menu-collapse-icon hidden-in-hover-trigger\"\r\n iconClass=\"bi bi-filter-left\"\r\n (click)=\"toggleSidebarHover()\"\r\n ></lpx-icon>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentBefore }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n routesTemplate || defaultRouteTemplate;\r\n context: {
|
|
927
|
+
args: [{ selector: 'lpx-navbar', encapsulation: ViewEncapsulation.None, template: "<nav class=\"lpx-nav\">\r\n <div class=\"lpx-logo-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"logoPanel?.template || defaultLogo\"\r\n ></ng-container>\r\n <lpx-icon\r\n class=\"menu-collapse-icon hidden-in-hover-trigger\"\r\n iconClass=\"bi bi-filter-left\"\r\n (click)=\"toggleSidebarHover()\"\r\n ></lpx-icon>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentBefore }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n routesTemplate || defaultRouteTemplate;\r\n context: {\r\n $implicit: service.navbarItems$ | async,\r\n groupItems: service.groupedNavbarItems$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentAfter }\r\n \"\r\n ></ng-container>\r\n</nav>\r\n\r\n<ng-template #defaultRouteTemplate let-items let-groupItems=\"groupItems\">\r\n <lpx-navbar-routes\r\n [navbarItems]=\"items\"\r\n [groupedItems]=\"groupItems\"\r\n [routerItem]=\"true\"\r\n ></lpx-navbar-routes>\r\n</ng-template>\r\n\r\n<ng-template #customContentTemplate let-contents>\r\n <ng-container *ngFor=\"let component of contents\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: injector\"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultLogo>\r\n <lpx-brand-logo></lpx-brand-logo>\r\n</ng-template>\r\n" }]
|
|
828
928
|
}], ctorParameters: function () { return [{ type: NavbarService }, { type: i0.Injector }, { type: LayoutService }]; }, propDecorators: { routesTemplate: [{
|
|
829
929
|
type: ContentChild,
|
|
830
930
|
args: [NavbarRoutesDirective, { read: TemplateRef }]
|
|
@@ -1049,10 +1149,10 @@ class BreadcrumbComponent {
|
|
|
1049
1149
|
}
|
|
1050
1150
|
}
|
|
1051
1151
|
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1052
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BreadcrumbComponent, selector: "lpx-breadcrumb", ngImport: i0, template: "<nav aria-label=\"breadcrumb\">\r\n <ol class=\"lpx-breadcrumb\">\r\n <ng-container *ngFor=\"let item of service.items$ | async; last as last\">\r\n <li\r\n class=\"lpx-breadcrumb-item\"\r\n (click)=\"onClick(item)\"\r\n [class.expanded]=\"item.expanded\"\r\n (lpxClickOutside)=\"item.expanded = false\"\r\n >\r\n <lpx-icon\r\n class=\"lpx-breadcrumb-item-icon\"\r\n *ngIf=\"item.icon\"\r\n [iconClass]=\"item.icon\"\r\n ></lpx-icon>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.children?.length ? textTemplate : linkTemplate;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n
|
|
1152
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BreadcrumbComponent, selector: "lpx-breadcrumb", ngImport: i0, template: "<nav aria-label=\"breadcrumb\">\r\n <ol class=\"lpx-breadcrumb\">\r\n <ng-container *ngFor=\"let item of service.items$ | async; last as last\">\r\n <li\r\n class=\"lpx-breadcrumb-item\"\r\n (click)=\"onClick(item)\"\r\n [class.expanded]=\"item.expanded\"\r\n (lpxClickOutside)=\"item.expanded = false\"\r\n >\r\n <lpx-icon\r\n class=\"lpx-breadcrumb-item-icon\"\r\n *ngIf=\"item.icon\"\r\n [iconClass]=\"item.icon\"\r\n ></lpx-icon>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.children?.length ? textTemplate : linkTemplate;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n </li>\r\n <li *ngIf=\"!last\" class=\"lpx-breadcrumb-separator\">\r\n <lpx-icon iconClass=\"bi bi-chevron-right\"></lpx-icon>\r\n </li>\r\n </ng-container>\r\n </ol>\r\n</nav>\r\n\r\n<ng-template #linkTemplate let-item>\r\n <a [routerLink]=\"item.link\"> {{ item.text | toObservable | async }} </a>\r\n</ng-template>\r\n<ng-template #textTemplate let-item>\r\n <span class=\"lpx-breadcrumb-item-text\">\r\n {{ item.text | toObservable | async }}\r\n </span>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "lpx-icon", inputs: ["iconClass"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[lpxClickOutside]", inputs: ["exceptedRefs"], outputs: ["lpxClickOutside"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: ToObservablePipe, name: "toObservable" }], encapsulation: i0.ViewEncapsulation.None });
|
|
1053
1153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
1054
1154
|
type: Component,
|
|
1055
|
-
args: [{ selector: 'lpx-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<nav aria-label=\"breadcrumb\">\r\n <ol class=\"lpx-breadcrumb\">\r\n <ng-container *ngFor=\"let item of service.items$ | async; last as last\">\r\n <li\r\n class=\"lpx-breadcrumb-item\"\r\n (click)=\"onClick(item)\"\r\n [class.expanded]=\"item.expanded\"\r\n (lpxClickOutside)=\"item.expanded = false\"\r\n >\r\n <lpx-icon\r\n class=\"lpx-breadcrumb-item-icon\"\r\n *ngIf=\"item.icon\"\r\n [iconClass]=\"item.icon\"\r\n ></lpx-icon>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.children?.length ? textTemplate : linkTemplate;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n
|
|
1155
|
+
args: [{ selector: 'lpx-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<nav aria-label=\"breadcrumb\">\r\n <ol class=\"lpx-breadcrumb\">\r\n <ng-container *ngFor=\"let item of service.items$ | async; last as last\">\r\n <li\r\n class=\"lpx-breadcrumb-item\"\r\n (click)=\"onClick(item)\"\r\n [class.expanded]=\"item.expanded\"\r\n (lpxClickOutside)=\"item.expanded = false\"\r\n >\r\n <lpx-icon\r\n class=\"lpx-breadcrumb-item-icon\"\r\n *ngIf=\"item.icon\"\r\n [iconClass]=\"item.icon\"\r\n ></lpx-icon>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.children?.length ? textTemplate : linkTemplate;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n </li>\r\n <li *ngIf=\"!last\" class=\"lpx-breadcrumb-separator\">\r\n <lpx-icon iconClass=\"bi bi-chevron-right\"></lpx-icon>\r\n </li>\r\n </ng-container>\r\n </ol>\r\n</nav>\r\n\r\n<ng-template #linkTemplate let-item>\r\n <a [routerLink]=\"item.link\"> {{ item.text | toObservable | async }} </a>\r\n</ng-template>\r\n<ng-template #textTemplate let-item>\r\n <span class=\"lpx-breadcrumb-item-text\">\r\n {{ item.text | toObservable | async }}\r\n </span>\r\n</ng-template>\r\n" }]
|
|
1056
1156
|
}], ctorParameters: function () { return [{ type: BreadcrumbService }]; } });
|
|
1057
1157
|
|
|
1058
1158
|
class LpxClickOutsideModule {
|
|
@@ -1456,15 +1556,22 @@ function listenDirectionChange(languageService, styleService) {
|
|
|
1456
1556
|
};
|
|
1457
1557
|
}
|
|
1458
1558
|
|
|
1559
|
+
const LPX_PERFECT_SCROLLBAR = new InjectionToken('LPX_PERFECT_SCROLLBAR');
|
|
1560
|
+
|
|
1459
1561
|
class LpxCoreModule {
|
|
1460
1562
|
static forRoot(options) {
|
|
1461
1563
|
return {
|
|
1462
1564
|
ngModule: LpxCoreModule,
|
|
1463
1565
|
providers: [
|
|
1566
|
+
{
|
|
1567
|
+
provide: LPX_PERFECT_SCROLLBAR,
|
|
1568
|
+
useClass: LpxPerfectScrollbarService,
|
|
1569
|
+
},
|
|
1464
1570
|
createResponsiveProvider(options?.responsiveSettings),
|
|
1465
1571
|
createWindowProvider(options?.window),
|
|
1466
1572
|
LpxIconModule.forRoot(options?.iconSettings).providers,
|
|
1467
|
-
LpxLanguageModule.forRoot(options?.languageSettings)
|
|
1573
|
+
LpxLanguageModule.forRoot(options?.languageSettings)
|
|
1574
|
+
.providers,
|
|
1468
1575
|
LpxNavbarModule.forRoot(options?.navbarSettings).providers,
|
|
1469
1576
|
LpxBreadcrumbModule.forRoot().providers,
|
|
1470
1577
|
LPX_TRANSLATE_PROVIDERS,
|
|
@@ -1561,6 +1668,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
1561
1668
|
}]
|
|
1562
1669
|
}] });
|
|
1563
1670
|
|
|
1671
|
+
class PerfectScrollbarDirective {
|
|
1672
|
+
constructor() {
|
|
1673
|
+
this.elementRef = inject(ElementRef);
|
|
1674
|
+
this.lpxPerfectService = inject(LPX_PERFECT_SCROLLBAR);
|
|
1675
|
+
}
|
|
1676
|
+
set lpxPerfectScrollbarOptions(value) {
|
|
1677
|
+
this.lpxPerfectService.setOptions(value);
|
|
1678
|
+
}
|
|
1679
|
+
onResize() {
|
|
1680
|
+
this.lpxPerfectService.onResize();
|
|
1681
|
+
}
|
|
1682
|
+
ngAfterViewInit() {
|
|
1683
|
+
this.lpxPerfectService.setElement(this.elementRef);
|
|
1684
|
+
this.lpxPerfectService.afterViewInit();
|
|
1685
|
+
}
|
|
1686
|
+
}
|
|
1687
|
+
PerfectScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PerfectScrollbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1688
|
+
PerfectScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: PerfectScrollbarDirective, isStandalone: true, selector: "[lpxPerfectScrollbar]", inputs: { lpxPerfectScrollbarOptions: "lpxPerfectScrollbarOptions" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 });
|
|
1689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PerfectScrollbarDirective, decorators: [{
|
|
1690
|
+
type: Directive,
|
|
1691
|
+
args: [{
|
|
1692
|
+
selector: '[lpxPerfectScrollbar]',
|
|
1693
|
+
standalone: true,
|
|
1694
|
+
}]
|
|
1695
|
+
}], propDecorators: { lpxPerfectScrollbarOptions: [{
|
|
1696
|
+
type: Input
|
|
1697
|
+
}], onResize: [{
|
|
1698
|
+
type: HostListener,
|
|
1699
|
+
args: ['window:resize']
|
|
1700
|
+
}] } });
|
|
1701
|
+
|
|
1564
1702
|
class BreadcrumbPanelDirective {
|
|
1565
1703
|
constructor(template) {
|
|
1566
1704
|
this.template = template;
|
|
@@ -1786,5 +1924,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
1786
1924
|
* Generated bundle index. Do not edit.
|
|
1787
1925
|
*/
|
|
1788
1926
|
|
|
1789
|
-
export { AvatarComponent, BodyService, BrandLogoComponent, BreadcrumbComponent, BreadcrumbPanelDirective, BreadcrumbRouteListenerService, BreadcrumbService, CONTENT_AFTER_ROUTES, CONTENT_BEFORE_ROUTES, ClickOutsideDirective, ContentPanelDirective, CurrentUserImagePanelDirective, CurrentUserPanelDirective, DataStore, DefaultAuthService, DefaultTranslateService, FooterComponent, FooterLinksService, FooterPanelDirective, ICON_MAP, IconComponent, LEPTON_X_ICON_SET, LPX_AUTH_SERVICE_PROVIDER, LPX_AUTH_SERVICE_TOKEN, LPX_INITIAL_STYLES, LPX_LANGUAGE, LPX_LAYOUT_STYLE_FINAL, LPX_MENU_ITEMS, LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS, LPX_STYLE_FINAL, LPX_STYLE_PROVIDERS, LPX_TRANSLATE_SERVICE_TOKEN, LPX_TRANSLATE_TOKEN, LanguagePanelDirective, LanguageService, LanguageTranslateDefaults, LanguageTranslateKeys, LayoutService, LogoPanelDirective, LpxAvatarModule, LpxBrandLogoModule, LpxBreadcrumbModule, LpxClickOutsideModule, LpxCoreModule, LpxFooterModule, LpxIconModule, LpxLanguageModule, LpxLocalStorageService, LpxNavbarModule, LpxResponsiveModule, LpxThemeTranslateService, LpxTranslateModule, LpxVisibleDirective, MobileNavbarPanelDirective, NavbarComponent, NavbarPanelDirective, NavbarRoutesComponent, NavbarRoutesDirective, NavbarService, NavitemPanelDirective, PanelsModule, RESPONSIVE_BREAKPOINTS, ResponsiveDirective, ResponsiveService, SafeHtmlPipe, SettingsPanelDirective, StyleService, SubNavbarComponent, ToObservableModule, ToObservablePipe, ToolbarPanelDirective, TopNavbarPanelDirective, TranslatePipe, UserProfileService, WINDOW, breadCrumbInit, createDirectionProvider, createResponsiveProvider, createStyleFactory, createWindowProvider, exportedDeclarations, flatArrayDeepToObject, getStream$, listenDirectionChange, loadInitialStyles, sortItems, styleLoadFactory };
|
|
1927
|
+
export { AvatarComponent, BodyService, BrandLogoComponent, BreadcrumbComponent, BreadcrumbPanelDirective, BreadcrumbRouteListenerService, BreadcrumbService, CONTENT_AFTER_ROUTES, CONTENT_BEFORE_ROUTES, ClickOutsideDirective, ContentPanelDirective, CurrentUserImagePanelDirective, CurrentUserPanelDirective, DataStore, DefaultAuthService, DefaultTranslateService, FooterComponent, FooterLinksService, FooterPanelDirective, ICON_MAP, IconComponent, LEPTON_X_ICON_SET, LPX_AUTH_SERVICE_PROVIDER, LPX_AUTH_SERVICE_TOKEN, LPX_INITIAL_STYLES, LPX_LANGUAGE, LPX_LAYOUT_STYLE_FINAL, LPX_MENU_ITEMS, LPX_PERFECT_SCROLLBAR, LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS, LPX_STYLE_FINAL, LPX_STYLE_PROVIDERS, LPX_TRANSLATE_SERVICE_TOKEN, LPX_TRANSLATE_TOKEN, LanguagePanelDirective, LanguageService, LanguageTranslateDefaults, LanguageTranslateKeys, LayoutService, LogoPanelDirective, LpxAvatarModule, LpxBrandLogoModule, LpxBreadcrumbModule, LpxClickOutsideModule, LpxCoreModule, LpxFooterModule, LpxIconModule, LpxLanguageModule, LpxLocalStorageService, LpxNavbarModule, LpxPerfectScrollbar, LpxPerfectScrollbarService, LpxResponsiveModule, LpxThemeTranslateService, LpxTranslateModule, LpxVisibleDirective, MobileNavbarPanelDirective, NavbarComponent, NavbarPanelDirective, NavbarRoutesComponent, NavbarRoutesDirective, NavbarService, NavitemPanelDirective, OTHERS_GROUP_KEY, PanelsModule, PerfectScrollbarDirective, RESPONSIVE_BREAKPOINTS, ResponsiveDirective, ResponsiveService, SafeHtmlPipe, SettingsPanelDirective, StyleService, SubNavbarComponent, ToObservableModule, ToObservablePipe, ToolbarPanelDirective, TopNavbarPanelDirective, TranslatePipe, UserProfileService, WINDOW, breadCrumbInit, createDirectionProvider, createGroupMap, createResponsiveProvider, createStyleFactory, createWindowProvider, exportedDeclarations, flatArrayDeepToObject, getItemsFromGroup, getStream$, isArray, isNullOrUndefined, listenDirectionChange, loadInitialStyles, sortItems, styleLoadFactory };
|
|
1790
1928
|
//# sourceMappingURL=volo-ngx-lepton-x.core.mjs.map
|