@volo/ngx-lepton-x.core 4.0.5 → 4.1.0-rc.2
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/fesm2022/volo-ngx-lepton-x.core.mjs +264 -334
- package/fesm2022/volo-ngx-lepton-x.core.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/lib/components/breadcrumb/breadcrumb.module.d.ts +2 -2
- package/lib/directives/index.d.ts +0 -1
- package/lib/models/common.d.ts +0 -5
- package/lib/providers/direction.provider.d.ts +2 -5
- package/lib/providers/styles.provider.d.ts +5 -6
- package/lib/services/index.d.ts +0 -1
- package/lib/tokens/index.d.ts +0 -1
- package/package.json +2 -5
- package/esm2022/index.mjs +0 -15
- package/esm2022/lib/abstracts/index.mjs +0 -2
- package/esm2022/lib/abstracts/perfect-scrollbar.mjs +0 -8
- package/esm2022/lib/animations/collapse.animations.mjs +0 -54
- package/esm2022/lib/components/avatar/avatar.component.mjs +0 -14
- package/esm2022/lib/components/avatar/avatar.module.mjs +0 -19
- package/esm2022/lib/components/avatar/index.mjs +0 -3
- package/esm2022/lib/components/brand-logo/brand-logo.component.mjs +0 -12
- package/esm2022/lib/components/brand-logo/brand-logo.module.mjs +0 -20
- package/esm2022/lib/components/brand-logo/index.mjs +0 -3
- package/esm2022/lib/components/breadcrumb/breadcrumb-route-listener.service.mjs +0 -84
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -28
- package/esm2022/lib/components/breadcrumb/breadcrumb.module.mjs +0 -58
- package/esm2022/lib/components/breadcrumb/breadcrumb.service.mjs +0 -33
- package/esm2022/lib/components/breadcrumb/index.mjs +0 -5
- package/esm2022/lib/components/footer/footer-links.service.mjs +0 -21
- package/esm2022/lib/components/footer/footer.component.mjs +0 -19
- package/esm2022/lib/components/footer/footer.module.mjs +0 -25
- package/esm2022/lib/components/footer/index.mjs +0 -4
- package/esm2022/lib/components/icon/icon.component.mjs +0 -28
- package/esm2022/lib/components/icon/icon.module.mjs +0 -30
- package/esm2022/lib/components/icon/icon.token.mjs +0 -22
- package/esm2022/lib/components/icon/index.mjs +0 -4
- package/esm2022/lib/components/index.mjs +0 -7
- package/esm2022/lib/components/navbar/index.mjs +0 -8
- package/esm2022/lib/components/navbar/models.mjs +0 -2
- package/esm2022/lib/components/navbar/navbar-routes/index.mjs +0 -3
- package/esm2022/lib/components/navbar/navbar-routes/navbar-routes.component.mjs +0 -114
- package/esm2022/lib/components/navbar/navbar-routes/navbar-routes.directive.mjs +0 -14
- package/esm2022/lib/components/navbar/navbar.component.mjs +0 -68
- package/esm2022/lib/components/navbar/navbar.module.mjs +0 -101
- package/esm2022/lib/components/navbar/navbar.service.mjs +0 -154
- package/esm2022/lib/components/navbar/navbar.token.mjs +0 -5
- package/esm2022/lib/components/navbar/sub-navbar/sub-navbar.component.mjs +0 -65
- package/esm2022/lib/consts/index.mjs +0 -2
- package/esm2022/lib/consts/others-group.mjs +0 -2
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -31
- package/esm2022/lib/directives/click-outside/click-outside.module.mjs +0 -18
- package/esm2022/lib/directives/click-outside/index.mjs +0 -3
- package/esm2022/lib/directives/index.mjs +0 -5
- package/esm2022/lib/directives/perfect-scrollbar.directive.mjs +0 -34
- package/esm2022/lib/directives/responsive/defaults.mjs +0 -7
- package/esm2022/lib/directives/responsive/index.mjs +0 -6
- package/esm2022/lib/directives/responsive/responsive-breakpoints.token.mjs +0 -3
- package/esm2022/lib/directives/responsive/responsive.directive.mjs +0 -51
- package/esm2022/lib/directives/responsive/responsive.module.mjs +0 -18
- package/esm2022/lib/directives/responsive/responsive.service.mjs +0 -77
- package/esm2022/lib/directives/visible.directive.mjs +0 -64
- package/esm2022/lib/lepton-x-core.module.mjs +0 -48
- package/esm2022/lib/models/common.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -4
- package/esm2022/lib/models/toolbar-item.model.mjs +0 -2
- package/esm2022/lib/models/user.mjs +0 -2
- package/esm2022/lib/panels/breadcrumb-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/content-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/current-user-image-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/current-user-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/footer-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/index.mjs +0 -17
- package/esm2022/lib/panels/language-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/logo-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/mobile-navbar-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/mobile-navbar-profile-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/mobile-navbar-settings-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/navbar-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/navitem-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/panels.module.mjs +0 -77
- package/esm2022/lib/panels/settings-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/toolbar-panel.directive.mjs +0 -16
- package/esm2022/lib/panels/top-navbar-panel.directive.mjs +0 -16
- package/esm2022/lib/pipes/index.mjs +0 -4
- package/esm2022/lib/pipes/safe-html/index.mjs +0 -2
- package/esm2022/lib/pipes/safe-html/safe-html.pipe.mjs +0 -20
- package/esm2022/lib/pipes/to-observable/index.mjs +0 -3
- package/esm2022/lib/pipes/to-observable/to-observable.module.mjs +0 -18
- package/esm2022/lib/pipes/to-observable/to-observable.pipe.mjs +0 -18
- package/esm2022/lib/pipes/translate/index.mjs +0 -3
- package/esm2022/lib/pipes/translate/translate.module.mjs +0 -18
- package/esm2022/lib/pipes/translate/translate.pipe.mjs +0 -21
- package/esm2022/lib/providers/direction.provider.mjs +0 -31
- package/esm2022/lib/providers/index.mjs +0 -5
- package/esm2022/lib/providers/responsive.provider.mjs +0 -8
- package/esm2022/lib/providers/styles.provider.mjs +0 -23
- package/esm2022/lib/providers/window.provider.mjs +0 -5
- package/esm2022/lib/services/auth/default-auth.service.mjs +0 -20
- package/esm2022/lib/services/auth/index.mjs +0 -5
- package/esm2022/lib/services/auth/models.mjs +0 -2
- package/esm2022/lib/services/auth/providers.mjs +0 -7
- package/esm2022/lib/services/auth/tokens.mjs +0 -3
- package/esm2022/lib/services/body/body.service.mjs +0 -25
- package/esm2022/lib/services/body/index.mjs +0 -2
- package/esm2022/lib/services/index.mjs +0 -10
- package/esm2022/lib/services/language/index.mjs +0 -6
- package/esm2022/lib/services/language/language-translate-keys.enum.mjs +0 -8
- package/esm2022/lib/services/language/language.module.mjs +0 -37
- package/esm2022/lib/services/language/language.service.mjs +0 -68
- package/esm2022/lib/services/language/models.mjs +0 -2
- package/esm2022/lib/services/language/tokens.mjs +0 -3
- package/esm2022/lib/services/layout/index.mjs +0 -2
- package/esm2022/lib/services/layout/layout.service.mjs +0 -59
- package/esm2022/lib/services/local-storage/index.mjs +0 -2
- package/esm2022/lib/services/local-storage/local-storage.service.mjs +0 -32
- package/esm2022/lib/services/perfect-scrollbar.service.mjs +0 -47
- package/esm2022/lib/services/route/index.mjs +0 -2
- package/esm2022/lib/services/route/routes.service.mjs +0 -22
- package/esm2022/lib/services/toolbar/index.mjs +0 -2
- package/esm2022/lib/services/toolbar/toolbar.service.mjs +0 -41
- package/esm2022/lib/services/translate/default-translate.service.mjs +0 -17
- package/esm2022/lib/services/translate/index.mjs +0 -5
- package/esm2022/lib/services/translate/models.mjs +0 -2
- package/esm2022/lib/services/translate/providers.mjs +0 -10
- package/esm2022/lib/services/translate/tokens.mjs +0 -4
- package/esm2022/lib/services/translate/translate.service.mjs +0 -32
- package/esm2022/lib/services/user-profile/index.mjs +0 -2
- package/esm2022/lib/services/user-profile/user-profile.service.mjs +0 -24
- package/esm2022/lib/style/index.mjs +0 -6
- package/esm2022/lib/style/models.mjs +0 -2
- package/esm2022/lib/style/style-load.factory.mjs +0 -10
- package/esm2022/lib/style/style.service.mjs +0 -76
- package/esm2022/lib/style/tokens.mjs +0 -5
- package/esm2022/lib/style/utils.mjs +0 -4
- package/esm2022/lib/tokens/index.mjs +0 -3
- package/esm2022/lib/tokens/perfect-scrollbar.token.mjs +0 -3
- package/esm2022/lib/tokens/window.token.mjs +0 -3
- package/esm2022/lib/utils/common.mjs +0 -30
- package/esm2022/lib/utils/data-store.mjs +0 -30
- package/esm2022/lib/utils/index.mjs +0 -4
- package/esm2022/lib/utils/tree-utils.mjs +0 -21
- package/esm2022/volo-ngx-lepton-x.core.mjs +0 -5
- package/lib/abstracts/index.d.ts +0 -1
- package/lib/abstracts/perfect-scrollbar.d.ts +0 -15
- package/lib/directives/perfect-scrollbar.directive.d.ts +0 -12
- package/lib/services/perfect-scrollbar.service.d.ts +0 -15
- package/lib/tokens/perfect-scrollbar.token.d.ts +0 -3
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { NavigationEnd, Router } from '@angular/router';
|
|
3
|
-
import { filter, map, take, tap } from 'rxjs/operators';
|
|
4
|
-
import { DataStore } from '../../utils/data-store';
|
|
5
|
-
import { LPX_MENU_ITEMS } from './navbar.token';
|
|
6
|
-
import { createGroupMap } from '../../utils';
|
|
7
|
-
import { OTHERS_GROUP_KEY } from '../../consts';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class NavbarService {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.router = inject(Router);
|
|
12
|
-
this.menuItems = inject(LPX_MENU_ITEMS);
|
|
13
|
-
this.store = new DataStore(this.addContainerLinks(this.menuItems));
|
|
14
|
-
this.navbarItems$ = this.store.sliceState((state) => state);
|
|
15
|
-
this.groupedNavbarItems$ = this.store
|
|
16
|
-
.sliceState((state) => state)
|
|
17
|
-
.pipe(map((items) => {
|
|
18
|
-
if (!items.some((f) => !!f.group)) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const map = createGroupMap(items, OTHERS_GROUP_KEY) || [];
|
|
22
|
-
return Array.from(map, ([group, items]) => ({
|
|
23
|
-
group,
|
|
24
|
-
items,
|
|
25
|
-
}));
|
|
26
|
-
}));
|
|
27
|
-
this.expandItemByLink$().pipe(take(1)).subscribe();
|
|
28
|
-
}
|
|
29
|
-
addNavbarItems(...menuItems) {
|
|
30
|
-
this.store.set([...this.store.state, ...this.addContainerLinks(menuItems)]);
|
|
31
|
-
}
|
|
32
|
-
setNavbarItems(...menuItems) {
|
|
33
|
-
this.store.set([...this.addContainerLinks(menuItems)]);
|
|
34
|
-
}
|
|
35
|
-
// TODO: muhammed: refactor this method to be readable
|
|
36
|
-
addChildren(id, ...menuItems) {
|
|
37
|
-
const parent = this.findById(id, this.store.state);
|
|
38
|
-
const update = (items, location, link = '') => {
|
|
39
|
-
const i = location.shift();
|
|
40
|
-
return items.reduce((acc, item, index) => {
|
|
41
|
-
return [
|
|
42
|
-
...acc,
|
|
43
|
-
...(index === i
|
|
44
|
-
? [
|
|
45
|
-
{
|
|
46
|
-
...item,
|
|
47
|
-
children: !location.length
|
|
48
|
-
? [
|
|
49
|
-
...(item.children || []),
|
|
50
|
-
...this.addContainerLinks(menuItems, `${link}/${item.containerLink}`),
|
|
51
|
-
]
|
|
52
|
-
: update(item.children || [], location, `${link}/${item.containerLink}`),
|
|
53
|
-
},
|
|
54
|
-
]
|
|
55
|
-
: [item]),
|
|
56
|
-
];
|
|
57
|
-
}, []);
|
|
58
|
-
};
|
|
59
|
-
const updated = update(this.store.state, parent.location);
|
|
60
|
-
this.store.patch(updated);
|
|
61
|
-
}
|
|
62
|
-
findByLink(link, items) {
|
|
63
|
-
return this.findByProp('link', link, items);
|
|
64
|
-
}
|
|
65
|
-
expandItemByLink$() {
|
|
66
|
-
return this.router.events.pipe(filter((e) => e instanceof NavigationEnd), tap(() => this.expandItems()));
|
|
67
|
-
}
|
|
68
|
-
expandItems() {
|
|
69
|
-
const route = this.getRouteItem();
|
|
70
|
-
if (route?.item) {
|
|
71
|
-
const expanded = this.calculateExpandState(this.store.state, route.location);
|
|
72
|
-
this.store.patch(expanded);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
getRouteItem() {
|
|
76
|
-
return this.findByLink(this.router.url);
|
|
77
|
-
}
|
|
78
|
-
calculateExpandState(items, indexes) {
|
|
79
|
-
const matchIndex = indexes.shift();
|
|
80
|
-
return items.reduce((acc, item, index) => {
|
|
81
|
-
if (index === matchIndex) {
|
|
82
|
-
return [
|
|
83
|
-
...acc,
|
|
84
|
-
{
|
|
85
|
-
...item,
|
|
86
|
-
expanded: true,
|
|
87
|
-
selected: true,
|
|
88
|
-
children: this.calculateExpandState(item.children || [], indexes),
|
|
89
|
-
},
|
|
90
|
-
];
|
|
91
|
-
}
|
|
92
|
-
const newItem = {
|
|
93
|
-
...item,
|
|
94
|
-
...(item.children
|
|
95
|
-
? { children: this.collapseChildren(item.children) }
|
|
96
|
-
: {}),
|
|
97
|
-
};
|
|
98
|
-
return [...acc, { ...newItem, expanded: false, selected: false }];
|
|
99
|
-
}, []);
|
|
100
|
-
}
|
|
101
|
-
collapseChildren(children) {
|
|
102
|
-
return [
|
|
103
|
-
...children.map((child) => ({
|
|
104
|
-
...child,
|
|
105
|
-
expanded: false,
|
|
106
|
-
selected: false,
|
|
107
|
-
children: child.children ? this.collapseChildren(child.children) : [],
|
|
108
|
-
})),
|
|
109
|
-
];
|
|
110
|
-
}
|
|
111
|
-
findById(id, items) {
|
|
112
|
-
return this.findByProp('id', id, items);
|
|
113
|
-
}
|
|
114
|
-
findByProp(prop, value, items, location = []) {
|
|
115
|
-
const navbarItems = items || this.store.state;
|
|
116
|
-
const itemIndex = navbarItems.findIndex((i) => i[prop] === value);
|
|
117
|
-
let item;
|
|
118
|
-
if (itemIndex === -1) {
|
|
119
|
-
navbarItems.forEach((i, index) => {
|
|
120
|
-
if (i.children) {
|
|
121
|
-
const child = this.findByProp(prop, value, i.children, [
|
|
122
|
-
...location,
|
|
123
|
-
index,
|
|
124
|
-
]);
|
|
125
|
-
if (child?.item) {
|
|
126
|
-
item = child.item;
|
|
127
|
-
location = child.location;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
item = navbarItems[itemIndex];
|
|
134
|
-
location.push(itemIndex);
|
|
135
|
-
}
|
|
136
|
-
return { item, location };
|
|
137
|
-
}
|
|
138
|
-
addContainerLinks(items, link = '') {
|
|
139
|
-
return items.map((item) => ({
|
|
140
|
-
...item,
|
|
141
|
-
...(item.link && link ? { link: `${link}/${item.link}` } : {}),
|
|
142
|
-
children: this.addContainerLinks(item.children || [], `${link ? link + '/' : ''}${item.containerLink || ''}`),
|
|
143
|
-
}));
|
|
144
|
-
}
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: NavbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
146
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: NavbarService, providedIn: 'root' }); }
|
|
147
|
-
}
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: NavbarService, decorators: [{
|
|
149
|
-
type: Injectable,
|
|
150
|
-
args: [{
|
|
151
|
-
providedIn: 'root',
|
|
152
|
-
}]
|
|
153
|
-
}], ctorParameters: () => [] });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUtoRCxNQUFNLE9BQU8sYUFBYTtJQTBCeEI7UUF6Qm1CLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsY0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUzQixVQUFLLEdBQUcsSUFBSSxTQUFTLENBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQ3ZDLENBQUM7UUFFRixpQkFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RCx3QkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSzthQUM3QixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQzthQUM1QixJQUFJ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SUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlELFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQzlCLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxFQUNuQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLENBQ3ZEO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzhHQTVMVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEYXRhU3RvcmUgfSBmcm9tICcuLi8uLi91dGlscy9kYXRhLXN0b3JlJztcclxuaW1wb3J0IHsgTHB4TmF2YmFySXRlbSB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgTFBYX01FTlVfSVRFTVMgfSBmcm9tICcuL25hdmJhci50b2tlbic7XHJcbmltcG9ydCB7IGNyZWF0ZUdyb3VwTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBPVEhFUlNfR1JPVVBfS0VZIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZiYXJTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgbWVudUl0ZW1zID0gaW5qZWN0KExQWF9NRU5VX0lURU1TKTtcclxuXHJcbiAgcHJpdmF0ZSBzdG9yZSA9IG5ldyBEYXRhU3RvcmU8THB4TmF2YmFySXRlbVtdPihcclxuICAgIHRoaXMuYWRkQ29udGFpbmVyTGlua3ModGhpcy5tZW51SXRlbXMpLFxyXG4gICk7XHJcblxyXG4gIG5hdmJhckl0ZW1zJCA9IHRoaXMuc3RvcmUuc2xpY2VTdGF0ZSgoc3RhdGUpID0+IHN0YXRlKTtcclxuXHJcbiAgZ3JvdXBlZE5hdmJhckl0ZW1zJCA9IHRoaXMuc3RvcmVcclxuICAgIC5zbGljZVN0YXRlKChzdGF0ZSkgPT4gc3RhdGUpXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChpdGVtcykgPT4ge1xyXG4gICAgICAgIGlmICghaXRlbXMuc29tZSgoZikgPT4gISFmLmdyb3VwKSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWFwID0gY3JlYXRlR3JvdXBNYXAoaXRlbXMsIE9USEVSU19HUk9VUF9LRVkpIHx8IFtdO1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKG1hcCwgKFtncm91cCwgaXRlbXNdKSA9PiAoe1xyXG4gICAgICAgICAgZ3JvdXAsXHJcbiAgICAgICAgICBpdGVtcyxcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmV4cGFuZEl0ZW1CeUxpbmskKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGFkZE5hdmJhckl0ZW1zKC4uLm1lbnVJdGVtczogTHB4TmF2YmFySXRlbVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLnNldChbLi4udGhpcy5zdG9yZS5zdGF0ZSwgLi4udGhpcy5hZGRDb250YWluZXJMaW5rcyhtZW51SXRlbXMpXSk7XHJcbiAgfVxyXG5cclxuICBzZXROYXZiYXJJdGVtcyguLi5tZW51SXRlbXM6IExweE5hdmJhckl0ZW1bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5zZXQoWy4uLnRoaXMuYWRkQ29udGFpbmVyTGlua3MobWVudUl0ZW1zKV0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogbXVoYW1tZWQ6IHJlZmFjdG9yIHRoaXMgbWV0aG9kIHRvIGJlIHJlYWRhYmxlXHJcbiAgYWRkQ2hpbGRyZW4oaWQ6IHN0cmluZywgLi4ubWVudUl0ZW1zOiBMcHhOYXZiYXJJdGVtW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZEJ5SWQoaWQsIHRoaXMuc3RvcmUuc3RhdGUpO1xyXG4gICAgY29uc3QgdXBkYXRlID0gKFxyXG4gICAgICBpdGVtczogTHB4TmF2YmFySXRlbVtdLFxyXG4gICAgICBsb2NhdGlvbjogQXJyYXk8bnVtYmVyPixcclxuICAgICAgbGluayA9ICcnLFxyXG4gICAgKTogTHB4TmF2YmFySXRlbVtdID0+IHtcclxuICAgICAgY29uc3QgaSA9IGxvY2F0aW9uLnNoaWZ0KCk7XHJcbiAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgLi4uYWNjLFxyXG4gICAgICAgICAgLi4uKGluZGV4ID09PSBpXHJcbiAgICAgICAgICAgID8gW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogIWxvY2F0aW9uLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4oaXRlbS5jaGlsZHJlbiB8fCBbXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuYWRkQ29udGFpbmVyTGlua3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGAke2xpbmt9LyR7aXRlbS5jb250YWluZXJMaW5rfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgOiB1cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gfHwgW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtsaW5rfS8ke2l0ZW0uY29udGFpbmVyTGlua31gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICA6IFtpdGVtXSksXHJcbiAgICAgICAgXTtcclxuICAgICAgfSwgW10gYXMgTHB4TmF2YmFySXRlbVtdKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdXBkYXRlZCA9IHVwZGF0ZSh0aGlzLnN0b3JlLnN0YXRlLCBwYXJlbnQubG9jYXRpb24pO1xyXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh1cGRhdGVkKTtcclxuICB9XHJcblxyXG4gIGZpbmRCeUxpbmsobGluazogc3RyaW5nLCBpdGVtcz86IExweE5hdmJhckl0ZW1bXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmluZEJ5UHJvcCgnbGluaycsIGxpbmssIGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIGV4cGFuZEl0ZW1CeUxpbmskKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxyXG4gICAgICBmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgdGFwKCgpID0+IHRoaXMuZXhwYW5kSXRlbXMoKSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kSXRlbXMoKSB7XHJcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0Um91dGVJdGVtKCk7XHJcbiAgICBpZiAocm91dGU/Lml0ZW0pIHtcclxuICAgICAgY29uc3QgZXhwYW5kZWQgPSB0aGlzLmNhbGN1bGF0ZUV4cGFuZFN0YXRlKFxyXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUsXHJcbiAgICAgICAgcm91dGUubG9jYXRpb24sXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc3RvcmUucGF0Y2goZXhwYW5kZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Um91dGVJdGVtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmluZEJ5TGluayh0aGlzLnJvdXRlci51cmwpO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlRXhwYW5kU3RhdGUoXHJcbiAgICBpdGVtczogTHB4TmF2YmFySXRlbVtdLFxyXG4gICAgaW5kZXhlczogQXJyYXk8bnVtYmVyPixcclxuICApOiBMcHhOYXZiYXJJdGVtW10ge1xyXG4gICAgY29uc3QgbWF0Y2hJbmRleCA9IGluZGV4ZXMuc2hpZnQoKTtcclxuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGluZGV4ID09PSBtYXRjaEluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIC4uLmFjYyxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5jYWxjdWxhdGVFeHBhbmRTdGF0ZShpdGVtLmNoaWxkcmVuIHx8IFtdLCBpbmRleGVzKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBuZXdJdGVtID0ge1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgLi4uKGl0ZW0uY2hpbGRyZW5cclxuICAgICAgICAgID8geyBjaGlsZHJlbjogdGhpcy5jb2xsYXBzZUNoaWxkcmVuKGl0ZW0uY2hpbGRyZW4pIH1cclxuICAgICAgICAgIDoge30pLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gWy4uLmFjYywgeyAuLi5uZXdJdGVtLCBleHBhbmRlZDogZmFsc2UsIHNlbGVjdGVkOiBmYWxzZSB9XTtcclxuICAgIH0sIFtdIGFzIExweE5hdmJhckl0ZW1bXSk7XHJcbiAgfVxyXG5cclxuICBjb2xsYXBzZUNoaWxkcmVuKGNoaWxkcmVuOiBBcnJheTxMcHhOYXZiYXJJdGVtPik6IEFycmF5PExweE5hdmJhckl0ZW0+IHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIC4uLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+ICh7XHJcbiAgICAgICAgLi4uY2hpbGQsXHJcbiAgICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGQuY2hpbGRyZW4gPyB0aGlzLmNvbGxhcHNlQ2hpbGRyZW4oY2hpbGQuY2hpbGRyZW4pIDogW10sXHJcbiAgICAgIH0pKSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRCeUlkKGlkOiBzdHJpbmcsIGl0ZW1zPzogTHB4TmF2YmFySXRlbVtdKSB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kQnlQcm9wKCdpZCcsIGlkLCBpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRCeVByb3AoXHJcbiAgICBwcm9wOiBrZXlvZiBMcHhOYXZiYXJJdGVtLFxyXG4gICAgdmFsdWU6IHN0cmluZyxcclxuICAgIGl0ZW1zPzogTHB4TmF2YmFySXRlbVtdLFxyXG4gICAgbG9jYXRpb246IEFycmF5PG51bWJlcj4gPSBbXSxcclxuICApIHtcclxuICAgIGNvbnN0IG5hdmJhckl0ZW1zID0gaXRlbXMgfHwgdGhpcy5zdG9yZS5zdGF0ZTtcclxuICAgIGNvbnN0IGl0ZW1JbmRleCA9IG5hdmJhckl0ZW1zLmZpbmRJbmRleCgoaSkgPT4gaVtwcm9wXSA9PT0gdmFsdWUpO1xyXG4gICAgbGV0IGl0ZW07XHJcbiAgICBpZiAoaXRlbUluZGV4ID09PSAtMSkge1xyXG4gICAgICBuYXZiYXJJdGVtcy5mb3JFYWNoKChpLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZCA9IHRoaXMuZmluZEJ5UHJvcChwcm9wLCB2YWx1ZSwgaS5jaGlsZHJlbiwgW1xyXG4gICAgICAgICAgICAuLi5sb2NhdGlvbixcclxuICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICAgIGlmIChjaGlsZD8uaXRlbSkge1xyXG4gICAgICAgICAgICBpdGVtID0gY2hpbGQuaXRlbTtcclxuICAgICAgICAgICAgbG9jYXRpb24gPSBjaGlsZC5sb2NhdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbSA9IG5hdmJhckl0ZW1zW2l0ZW1JbmRleF07XHJcbiAgICAgIGxvY2F0aW9uLnB1c2goaXRlbUluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyBpdGVtLCBsb2NhdGlvbiB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRDb250YWluZXJMaW5rcyhcclxuICAgIGl0ZW1zOiBMcHhOYXZiYXJJdGVtW10sXHJcbiAgICBsaW5rID0gJycsXHJcbiAgKTogTHB4TmF2YmFySXRlbVtdIHtcclxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+ICh7XHJcbiAgICAgIC4uLml0ZW0sXHJcbiAgICAgIC4uLihpdGVtLmxpbmsgJiYgbGluayA/IHsgbGluazogYCR7bGlua30vJHtpdGVtLmxpbmt9YCB9IDoge30pLFxyXG4gICAgICBjaGlsZHJlbjogdGhpcy5hZGRDb250YWluZXJMaW5rcyhcclxuICAgICAgICBpdGVtLmNoaWxkcmVuIHx8IFtdLFxyXG4gICAgICAgIGAke2xpbmsgPyBsaW5rICsgJy8nIDogJyd9JHtpdGVtLmNvbnRhaW5lckxpbmsgfHwgJyd9YCxcclxuICAgICAgKSxcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const CONTENT_BEFORE_ROUTES = new InjectionToken('CONTENT_BEFORE_ROUTES');
|
|
3
|
-
export const CONTENT_AFTER_ROUTES = new InjectionToken('CONTENT_AFTER_ROUTES');
|
|
4
|
-
export const LPX_MENU_ITEMS = new InjectionToken('LPX_MENU_ITEMS');
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sZXB0b24teC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ3BELHNCQUFzQixDQUN2QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUM5QyxnQkFBZ0IsQ0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExweE5hdmJhckl0ZW0gfSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5leHBvcnQgY29uc3QgQ09OVEVOVF9CRUZPUkVfUk9VVEVTID0gbmV3IEluamVjdGlvblRva2VuPFR5cGU8YW55PltdW10+KFxyXG4gICdDT05URU5UX0JFRk9SRV9ST1VURVMnXHJcbik7XHJcbmV4cG9ydCBjb25zdCBDT05URU5UX0FGVEVSX1JPVVRFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUeXBlPGFueT5bXVtdPihcclxuICAnQ09OVEVOVF9BRlRFUl9ST1VURVMnXHJcbik7XHJcbmV4cG9ydCBjb25zdCBMUFhfTUVOVV9JVEVNUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMcHhOYXZiYXJJdGVtW10+KFxyXG4gICdMUFhfTUVOVV9JVEVNUydcclxuKTtcclxuIl19
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Injector, input, Input, Output, ViewEncapsulation, inject, } from '@angular/core';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
import { take } from 'rxjs/operators';
|
|
4
|
-
import { getStream$ } from '../../../utils/common';
|
|
5
|
-
import { collapse } from '../../../animations/collapse.animations';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@angular/router";
|
|
9
|
-
import * as i3 from "../../icon/icon.component";
|
|
10
|
-
import * as i4 from "../../../directives/visible.directive";
|
|
11
|
-
import * as i5 from "../../../pipes/translate/translate.pipe";
|
|
12
|
-
export class SubNavbarComponent {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.injector = inject(Injector);
|
|
15
|
-
this.routerItem = input();
|
|
16
|
-
this.routeClick = new EventEmitter();
|
|
17
|
-
this.expand = new EventEmitter();
|
|
18
|
-
}
|
|
19
|
-
onItemClick(menuItem) {
|
|
20
|
-
let action$ = of(true);
|
|
21
|
-
if (menuItem.action) {
|
|
22
|
-
const result = menuItem.action();
|
|
23
|
-
action$ = getStream$(result);
|
|
24
|
-
}
|
|
25
|
-
action$.pipe(take(1)).subscribe((result) => {
|
|
26
|
-
if (result) {
|
|
27
|
-
this.processItemClick(menuItem);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
onChildExpand(child) {
|
|
32
|
-
if (child.expanded) {
|
|
33
|
-
this.item?.children
|
|
34
|
-
?.filter((otherChild) => otherChild !== child)
|
|
35
|
-
.forEach((otherChild) => {
|
|
36
|
-
otherChild.expanded = false;
|
|
37
|
-
otherChild.selected = false;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
processItemClick(menuItem) {
|
|
42
|
-
if (menuItem.children?.length) {
|
|
43
|
-
menuItem.expanded = !menuItem.expanded;
|
|
44
|
-
this.expand.emit(menuItem);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
this.routeClick.emit(menuItem);
|
|
48
|
-
if (!this.routerItem()) {
|
|
49
|
-
menuItem.selected = true;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SubNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: SubNavbarComponent, selector: "lpx-sub-navbar", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: false, isRequired: false, transformFunction: null }, routerItem: { classPropertyName: "routerItem", publicName: "routerItem", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { routeClick: "routeClick", expand: "expand" }, ngImport: i0, template: "@if (item.component) {\r\n <ng-container\r\n *ngComponentOutlet=\"item.component; injector: injector\"\r\n ></ng-container>\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"defaultTemplate\"></ng-container>\r\n}\r\n\r\n<ng-template #defaultTemplate>\r\n <a\r\n class=\"lpx-menu-item-link\"\r\n [routerLink]=\"item.link\"\r\n [class.selected]=\"item.selected\"\r\n [class.expanded]=\"item.children?.length && item.expanded\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <lpx-icon\r\n class=\"lpx-menu-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.template || textTmpl;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n <ng-template #textTmpl>\r\n @if (item.text) {\r\n <span class=\"lpx-menu-item-text hidden-in-hover-trigger\">{{\r\n item.text | lpxTranslate | async\r\n }}</span>\r\n }\r\n </ng-template>\r\n\r\n @if (item.children?.length) {\r\n <lpx-icon\r\n [iconClass]=\"item.expanded ? 'chevronUp' : 'chevronDown'\"\r\n class=\"dd-icon hidden-in-hover-trigger\"\r\n >\r\n </lpx-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <ul\r\n class=\"lpx-inner-menu hidden-in-hover-trigger\"\r\n [class.collapsed]=\"!item.expanded\"\r\n >\r\n @for (child of item.children; track $index) {\r\n <li\r\n class=\"lpx-inner-menu-item\"\r\n *lpxVisible=\"!child.visible || child.visible(child, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"child\"\r\n (routeClick)=\"this.routeClick.emit($event)\"\r\n (expand)=\"onChildExpand($event)\"\r\n ></lpx-sub-navbar>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { 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: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.IconComponent, selector: "lpx-icon", inputs: ["iconClass"] }, { kind: "directive", type: i4.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: i5.TranslatePipe, name: "lpxTranslate" }], animations: [collapse], encapsulation: i0.ViewEncapsulation.None }); }
|
|
54
|
-
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SubNavbarComponent, decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{ selector: 'lpx-sub-navbar', encapsulation: ViewEncapsulation.None, animations: [collapse], template: "@if (item.component) {\r\n <ng-container\r\n *ngComponentOutlet=\"item.component; injector: injector\"\r\n ></ng-container>\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"defaultTemplate\"></ng-container>\r\n}\r\n\r\n<ng-template #defaultTemplate>\r\n <a\r\n class=\"lpx-menu-item-link\"\r\n [routerLink]=\"item.link\"\r\n [class.selected]=\"item.selected\"\r\n [class.expanded]=\"item.children?.length && item.expanded\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <lpx-icon\r\n class=\"lpx-menu-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.template || textTmpl;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n <ng-template #textTmpl>\r\n @if (item.text) {\r\n <span class=\"lpx-menu-item-text hidden-in-hover-trigger\">{{\r\n item.text | lpxTranslate | async\r\n }}</span>\r\n }\r\n </ng-template>\r\n\r\n @if (item.children?.length) {\r\n <lpx-icon\r\n [iconClass]=\"item.expanded ? 'chevronUp' : 'chevronDown'\"\r\n class=\"dd-icon hidden-in-hover-trigger\"\r\n >\r\n </lpx-icon>\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <ul\r\n class=\"lpx-inner-menu hidden-in-hover-trigger\"\r\n [class.collapsed]=\"!item.expanded\"\r\n >\r\n @for (child of item.children; track $index) {\r\n <li\r\n class=\"lpx-inner-menu-item\"\r\n *lpxVisible=\"!child.visible || child.visible(child, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"child\"\r\n (routeClick)=\"this.routeClick.emit($event)\"\r\n (expand)=\"onChildExpand($event)\"\r\n ></lpx-sub-navbar>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</ng-template>\r\n" }]
|
|
58
|
-
}], propDecorators: { item: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], routeClick: [{
|
|
61
|
-
type: Output
|
|
62
|
-
}], expand: [{
|
|
63
|
-
type: Output
|
|
64
|
-
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW5hdmJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9zdWItbmF2YmFyL3N1Yi1uYXZiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sZXB0b24teC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9uYXZiYXIvc3ViLW5hdmJhci9zdWItbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7QUFRbkUsTUFBTSxPQUFPLGtCQUFrQjtJQU4vQjtRQU9xQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSS9DLGVBQVUsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUVwQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDL0MsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0tBdUN0RDtJQXJDQyxXQUFXLENBQUMsUUFBdUI7UUFDakMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3pDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBb0I7UUFDaEMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRO2dCQUNqQixFQUFFLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQztpQkFDN0MsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBdUI7UUFDdEMsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzlCLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDOzhHQTlDVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix3WEN0Qi9CLDYyREFnRUEsbS9CRDFDYSxrQkFBa0IscU9BRmpCLENBQUMsUUFBUSxDQUFDOzsyRkFFWCxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUVYLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxRQUFRLENBQUM7OEJBS2IsSUFBSTtzQkFBWixLQUFLO2dCQUlJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIGlucHV0LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBpbmplY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGdldFN0cmVhbSQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb21tb24nO1xyXG5pbXBvcnQgeyBMcHhOYXZiYXJJdGVtIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgY29sbGFwc2UgfSBmcm9tICcuLi8uLi8uLi9hbmltYXRpb25zL2NvbGxhcHNlLmFuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdscHgtc3ViLW5hdmJhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Yi1uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgYW5pbWF0aW9uczogW2NvbGxhcHNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN1Yk5hdmJhckNvbXBvbmVudCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgQElucHV0KCkgaXRlbSE6IExweE5hdmJhckl0ZW07XHJcblxyXG4gIHJvdXRlckl0ZW0gPSBpbnB1dDxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KCkgcm91dGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8THB4TmF2YmFySXRlbT4oKTtcclxuICBAT3V0cHV0KCkgZXhwYW5kID0gbmV3IEV2ZW50RW1pdHRlcjxMcHhOYXZiYXJJdGVtPigpO1xyXG5cclxuICBvbkl0ZW1DbGljayhtZW51SXRlbTogTHB4TmF2YmFySXRlbSk6IHZvaWQge1xyXG4gICAgbGV0IGFjdGlvbiQgPSBvZih0cnVlKTtcclxuICAgIGlmIChtZW51SXRlbS5hY3Rpb24pIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gbWVudUl0ZW0uYWN0aW9uKCk7XHJcbiAgICAgIGFjdGlvbiQgPSBnZXRTdHJlYW0kKHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgICBhY3Rpb24kLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc0l0ZW1DbGljayhtZW51SXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DaGlsZEV4cGFuZChjaGlsZDogTHB4TmF2YmFySXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKGNoaWxkLmV4cGFuZGVkKSB7XHJcbiAgICAgIHRoaXMuaXRlbT8uY2hpbGRyZW5cclxuICAgICAgICA/LmZpbHRlcigob3RoZXJDaGlsZCkgPT4gb3RoZXJDaGlsZCAhPT0gY2hpbGQpXHJcbiAgICAgICAgLmZvckVhY2goKG90aGVyQ2hpbGQpID0+IHtcclxuICAgICAgICAgIG90aGVyQ2hpbGQuZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICAgIG90aGVyQ2hpbGQuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb2Nlc3NJdGVtQ2xpY2sobWVudUl0ZW06IExweE5hdmJhckl0ZW0pOiB2b2lkIHtcclxuICAgIGlmIChtZW51SXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgIG1lbnVJdGVtLmV4cGFuZGVkID0gIW1lbnVJdGVtLmV4cGFuZGVkO1xyXG4gICAgICB0aGlzLmV4cGFuZC5lbWl0KG1lbnVJdGVtKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLnJvdXRlQ2xpY2suZW1pdChtZW51SXRlbSk7XHJcbiAgICBcclxuICAgIGlmICghdGhpcy5yb3V0ZXJJdGVtKCkpIHtcclxuICAgICAgbWVudUl0ZW0uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAaWYgKGl0ZW0uY29tcG9uZW50KSB7XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiaXRlbS5jb21wb25lbnQ7IGluamVjdG9yOiBpbmplY3RvclwiXHJcbiAgPjwvbmctY29udGFpbmVyPlxyXG59IEBlbHNlIHtcclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVmYXVsdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxyXG4gIDxhXHJcbiAgICBjbGFzcz1cImxweC1tZW51LWl0ZW0tbGlua1wiXHJcbiAgICBbcm91dGVyTGlua109XCJpdGVtLmxpbmtcIlxyXG4gICAgW2NsYXNzLnNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWRcIlxyXG4gICAgW2NsYXNzLmV4cGFuZGVkXT1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aCAmJiBpdGVtLmV4cGFuZGVkXCJcclxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXHJcbiAgPlxyXG4gICAgPGxweC1pY29uXHJcbiAgICAgIGNsYXNzPVwibHB4LW1lbnUtaXRlbS1pY29uXCJcclxuICAgICAgKm5nSWY9XCJpdGVtLmljb25cIlxyXG4gICAgICBbaWNvbkNsYXNzXT1cIml0ZW0uaWNvblwiXHJcbiAgICA+PC9scHgtaWNvbj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICBpdGVtLnRlbXBsYXRlIHx8IHRleHRUbXBsO1xyXG4gICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cclxuICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dFRtcGw+XHJcbiAgICAgIEBpZiAoaXRlbS50ZXh0KSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJscHgtbWVudS1pdGVtLXRleHQgaGlkZGVuLWluLWhvdmVyLXRyaWdnZXJcIj57e1xyXG4gICAgICAgICAgaXRlbS50ZXh0IHwgbHB4VHJhbnNsYXRlIHwgYXN5bmNcclxuICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICBAaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICA8bHB4LWljb25cclxuICAgICAgICBbaWNvbkNsYXNzXT1cIml0ZW0uZXhwYW5kZWQgPyAnY2hldnJvblVwJyA6ICdjaGV2cm9uRG93bidcIlxyXG4gICAgICAgIGNsYXNzPVwiZGQtaWNvbiBoaWRkZW4taW4taG92ZXItdHJpZ2dlclwiXHJcbiAgICAgID5cclxuICAgICAgPC9scHgtaWNvbj5cclxuICAgIH1cclxuICA8L2E+XHJcblxyXG4gIEBpZiAoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICA8dWxcclxuICAgICAgY2xhc3M9XCJscHgtaW5uZXItbWVudSBoaWRkZW4taW4taG92ZXItdHJpZ2dlclwiXHJcbiAgICAgIFtjbGFzcy5jb2xsYXBzZWRdPVwiIWl0ZW0uZXhwYW5kZWRcIlxyXG4gICAgPlxyXG4gICAgICBAZm9yIChjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8bGlcclxuICAgICAgICAgIGNsYXNzPVwibHB4LWlubmVyLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAqbHB4VmlzaWJsZT1cIiFjaGlsZC52aXNpYmxlIHx8IGNoaWxkLnZpc2libGUoY2hpbGQsIGluamVjdG9yKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGxweC1zdWItbmF2YmFyXHJcbiAgICAgICAgICAgIFtpdGVtXT1cImNoaWxkXCJcclxuICAgICAgICAgICAgKHJvdXRlQ2xpY2spPVwidGhpcy5yb3V0ZUNsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChleHBhbmQpPVwib25DaGlsZEV4cGFuZCgkZXZlbnQpXCJcclxuICAgICAgICAgID48L2xweC1zdWItbmF2YmFyPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIH1cclxuICAgIDwvdWw+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './others-group';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9jb25zdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3RoZXJzLWdyb3VwJztcclxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const OTHERS_GROUP_KEY = 'AbpUi::OthersGroup';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RoZXJzLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sZXB0b24teC1jb3JlL3NyYy9saWIvY29uc3RzL290aGVycy1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBPVEhFUlNfR1JPVVBfS0VZID0gJ0FicFVpOjpPdGhlcnNHcm91cCc7XHJcbiJdfQ==
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Directive, Output, EventEmitter, HostListener, ElementRef, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ClickOutsideDirective {
|
|
4
|
-
constructor(elementRef) {
|
|
5
|
-
this.elementRef = elementRef;
|
|
6
|
-
this.lpxClickOutside = new EventEmitter();
|
|
7
|
-
this.exceptedRefs = [];
|
|
8
|
-
}
|
|
9
|
-
onDocumentClick(event) {
|
|
10
|
-
if (!(this.elementRef.nativeElement.contains(event.target) ||
|
|
11
|
-
this.exceptedRefs.some(ref => ref.nativeElement.contains(event.target)))) {
|
|
12
|
-
this.lpxClickOutside.emit();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
16
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: ClickOutsideDirective, selector: "[lpxClickOutside]", inputs: { exceptedRefs: "exceptedRefs" }, outputs: { lpxClickOutside: "lpxClickOutside" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0 }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
19
|
-
type: Directive,
|
|
20
|
-
args: [{
|
|
21
|
-
selector: '[lpxClickOutside]',
|
|
22
|
-
}]
|
|
23
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { lpxClickOutside: [{
|
|
24
|
-
type: Output
|
|
25
|
-
}], exceptedRefs: [{
|
|
26
|
-
type: Input
|
|
27
|
-
}], onDocumentClick: [{
|
|
28
|
-
type: HostListener,
|
|
29
|
-
args: ['document:click', ['$event']]
|
|
30
|
-
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtqRyxNQUFNLE9BQU8scUJBQXFCO0lBS2hDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKaEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9DLGlCQUFZLEdBQXNCLEVBQUUsQ0FBQztJQUVRLENBQUM7SUFHOUMsZUFBZSxDQUFDLEtBQWlCO1FBQy9CLElBQ0UsQ0FBQyxDQUNDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3hFLEVBQ0QsQ0FBQztZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7OEdBakJVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOytFQUVXLGVBQWU7c0JBQXhCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxLQUFLO2dCQU1OLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2xweENsaWNrT3V0c2lkZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIHtcclxuICBAT3V0cHV0KCkgbHB4Q2xpY2tPdXRzaWRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgZXhjZXB0ZWRSZWZzOiBBcnJheTxFbGVtZW50UmVmPiA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmIChcclxuICAgICAgIShcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpIHx8XHJcbiAgICAgICAgdGhpcy5leGNlcHRlZFJlZnMuc29tZShyZWYgPT4gcmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSlcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubHB4Q2xpY2tPdXRzaWRlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ClickOutsideDirective } from './click-outside.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class LpxClickOutsideModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LpxClickOutsideModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: LpxClickOutsideModule, declarations: [ClickOutsideDirective], imports: [CommonModule], exports: [ClickOutsideDirective] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LpxClickOutsideModule, imports: [CommonModule] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LpxClickOutsideModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [ClickOutsideDirective],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
-
exports: [ClickOutsideDirective],
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjsrR0FBckIscUJBQXFCLGlCQUpqQixxQkFBcUIsYUFDMUIsWUFBWSxhQUNaLHFCQUFxQjsrR0FFcEIscUJBQXFCLFlBSHRCLFlBQVk7OzJGQUdYLHFCQUFxQjtrQkFMakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbQ2xpY2tPdXRzaWRlRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbQ2xpY2tPdXRzaWRlRGlyZWN0aXZlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExweENsaWNrT3V0c2lkZU1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './click-outside.directive';
|
|
2
|
-
export * from './click-outside.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2xpY2stb3V0c2lkZS5tb2R1bGUnO1xyXG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './click-outside';
|
|
2
|
-
export * from './responsive';
|
|
3
|
-
export * from './perfect-scrollbar.directive';
|
|
4
|
-
export * from './visible.directive';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGljay1vdXRzaWRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXNwb25zaXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wZXJmZWN0LXNjcm9sbGJhci5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Zpc2libGUuZGlyZWN0aXZlJztcclxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, Input, inject, } from '@angular/core';
|
|
2
|
-
import { LPX_PERFECT_SCROLLBAR } from '../tokens';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class PerfectScrollbarDirective {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.elementRef = inject(ElementRef);
|
|
7
|
-
this.lpxPerfectService = inject(LPX_PERFECT_SCROLLBAR);
|
|
8
|
-
}
|
|
9
|
-
set lpxPerfectScrollbarOptions(value) {
|
|
10
|
-
this.lpxPerfectService.setOptions(value);
|
|
11
|
-
}
|
|
12
|
-
onResize() {
|
|
13
|
-
this.lpxPerfectService.onResize();
|
|
14
|
-
}
|
|
15
|
-
ngAfterViewInit() {
|
|
16
|
-
this.lpxPerfectService.setElement(this.elementRef);
|
|
17
|
-
this.lpxPerfectService.afterViewInit();
|
|
18
|
-
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PerfectScrollbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: PerfectScrollbarDirective, isStandalone: true, selector: "[lpxPerfectScrollbar]", inputs: { lpxPerfectScrollbarOptions: "lpxPerfectScrollbarOptions" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PerfectScrollbarDirective, decorators: [{
|
|
23
|
-
type: Directive,
|
|
24
|
-
args: [{
|
|
25
|
-
selector: '[lpxPerfectScrollbar]',
|
|
26
|
-
standalone: true,
|
|
27
|
-
}]
|
|
28
|
-
}], propDecorators: { lpxPerfectScrollbarOptions: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}], onResize: [{
|
|
31
|
-
type: HostListener,
|
|
32
|
-
args: ['window:resize']
|
|
33
|
-
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZmVjdC1zY3JvbGxiYXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sZXB0b24teC1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9wZXJmZWN0LXNjcm9sbGJhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU1sRCxNQUFNLE9BQU8seUJBQXlCO0lBSnRDO1FBS3FCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsc0JBQWlCLEdBQUcsTUFBTSxDQUMzQyxxQkFBcUIsQ0FDdEIsQ0FBQztLQWdCSDtJQWRDLElBQ0ksMEJBQTBCLENBQUMsS0FBVTtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7OEdBbkJVLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFRSywwQkFBMEI7c0JBRDdCLEtBQUs7Z0JBTU4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIGluamVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTHB4UGVyZmVjdFNjcm9sbGJhciB9IGZyb20gJy4uL2Fic3RyYWN0cyc7XHJcbmltcG9ydCB7IExQWF9QRVJGRUNUX1NDUk9MTEJBUiB9IGZyb20gJy4uL3Rva2Vucyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tscHhQZXJmZWN0U2Nyb2xsYmFyXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcmZlY3RTY3JvbGxiYXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbHB4UGVyZmVjdFNlcnZpY2UgPSBpbmplY3Q8THB4UGVyZmVjdFNjcm9sbGJhcj4oXHJcbiAgICBMUFhfUEVSRkVDVF9TQ1JPTExCQVJcclxuICApO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBscHhQZXJmZWN0U2Nyb2xsYmFyT3B0aW9ucyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmxweFBlcmZlY3RTZXJ2aWNlLnNldE9wdGlvbnModmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgb25SZXNpemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxweFBlcmZlY3RTZXJ2aWNlLm9uUmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxweFBlcmZlY3RTZXJ2aWNlLnNldEVsZW1lbnQodGhpcy5lbGVtZW50UmVmKTtcclxuICAgIHRoaXMubHB4UGVyZmVjdFNlcnZpY2UuYWZ0ZXJWaWV3SW5pdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export const LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS = {
|
|
2
|
-
sm: 480,
|
|
3
|
-
md: 768,
|
|
4
|
-
lg: 992,
|
|
5
|
-
xl: 1200,
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Jlc3BvbnNpdmUvZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQTBCO0lBQ3hFLEVBQUUsRUFBRSxHQUFHO0lBQ1AsRUFBRSxFQUFFLEdBQUc7SUFDUCxFQUFFLEVBQUUsR0FBRztJQUNQLEVBQUUsRUFBRSxJQUFJO0NBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNpdmVCcmVha3BvaW50cyB9IGZyb20gJy4vcmVzcG9uc2l2ZS1icmVha3BvaW50cy50b2tlbic7XHJcblxyXG5leHBvcnQgY29uc3QgTFBYX1JFU1BPTlNJVkVfQlJFQUtQT0lOVFNfREVGQVVMVFM6IFJlc3BvbnNpdmVCcmVha3BvaW50cyA9IHtcclxuICBzbTogNDgwLFxyXG4gIG1kOiA3NjgsXHJcbiAgbGc6IDk5MixcclxuICB4bDogMTIwMCxcclxufTtcclxuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './responsive.directive';
|
|
2
|
-
export * from './responsive.module';
|
|
3
|
-
export * from './defaults';
|
|
4
|
-
export * from './responsive.service';
|
|
5
|
-
export * from './responsive-breakpoints.token';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Jlc3BvbnNpdmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jlc3BvbnNpdmUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVzcG9uc2l2ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXNwb25zaXZlLWJyZWFrcG9pbnRzLnRva2VuJztcclxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const RESPONSIVE_BREAKPOINTS = new InjectionToken('RESPONSIVE_BREAKPOINTS');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS1icmVha3BvaW50cy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGVwdG9uLXgtY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcmVzcG9uc2l2ZS9yZXNwb25zaXZlLWJyZWFrcG9pbnRzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHdCQUF3QixDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2l2ZUJyZWFrcG9pbnRzIHtcclxuICBba2V5OiBzdHJpbmddOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBSRVNQT05TSVZFX0JSRUFLUE9JTlRTID0gbmV3IEluamVjdGlvblRva2VuPFJlc3BvbnNpdmVCcmVha3BvaW50cz4oXHJcbiAgJ1JFU1BPTlNJVkVfQlJFQUtQT0lOVFMnLFxyXG4pO1xyXG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, Input, Optional, SkipSelf, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import { Subscription } from 'rxjs';
|
|
4
|
-
import { ResponsiveService } from './responsive.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./responsive.service";
|
|
7
|
-
export class ResponsiveDirective {
|
|
8
|
-
constructor(templateRef, viewContainer, service, parentCdr) {
|
|
9
|
-
this.templateRef = templateRef;
|
|
10
|
-
this.viewContainer = viewContainer;
|
|
11
|
-
this.service = service;
|
|
12
|
-
this.parentCdr = parentCdr;
|
|
13
|
-
this.hasRendered = false;
|
|
14
|
-
this.sub = new Subscription();
|
|
15
|
-
this.render = (shouldRender) => {
|
|
16
|
-
if (shouldRender && !this.hasRendered) {
|
|
17
|
-
this.viewContainer.createEmbeddedView(this.templateRef);
|
|
18
|
-
this.hasRendered = true;
|
|
19
|
-
}
|
|
20
|
-
else if (!shouldRender && this.hasRendered) {
|
|
21
|
-
this.viewContainer.clear();
|
|
22
|
-
this.hasRendered = false;
|
|
23
|
-
}
|
|
24
|
-
this.parentCdr.detectChanges();
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this.sub.add(this.service.currentSize$
|
|
29
|
-
.pipe(map(_ => this.service.shouldRenderWithCurrentSize(this.query)))
|
|
30
|
-
.subscribe(this.render));
|
|
31
|
-
}
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
this.sub.unsubscribe();
|
|
34
|
-
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ResponsiveDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.ResponsiveService }, { token: i0.ChangeDetectorRef, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: ResponsiveDirective, selector: "[lpxResponsive]", inputs: { query: ["lpxResponsive", "query"] }, ngImport: i0 }); }
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ResponsiveDirective, decorators: [{
|
|
39
|
-
type: Directive,
|
|
40
|
-
args: [{
|
|
41
|
-
selector: '[lpxResponsive]',
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.ResponsiveService }, { type: i0.ChangeDetectorRef, decorators: [{
|
|
44
|
-
type: Optional
|
|
45
|
-
}, {
|
|
46
|
-
type: SkipSelf
|
|
47
|
-
}] }], propDecorators: { query: [{
|
|
48
|
-
type: Input,
|
|
49
|
-
args: ['lpxResponsive']
|
|
50
|
-
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Jlc3BvbnNpdmUvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFDUixRQUFRLEVBQ1IsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBS3pELE1BQU0sT0FBTyxtQkFBbUI7SUFpQjlCLFlBQ1UsV0FBNkIsRUFDN0IsYUFBK0IsRUFDL0IsT0FBMEIsRUFDRixTQUE0QjtRQUhwRCxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQ0YsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFwQjlELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSXpCLFdBQU0sR0FBRyxDQUFDLFlBQXFCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQztJQU9DLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3BFLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQzs4R0FsQ1UsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQXNCSSxRQUFROzswQkFBSSxRQUFRO3lDQWpCQyxLQUFLO3NCQUE1QixLQUFLO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNraXBTZWxmLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJlc3BvbnNpdmVTZXJ2aWNlIH0gZnJvbSAnLi9yZXNwb25zaXZlLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbHB4UmVzcG9uc2l2ZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBoYXNSZW5kZXJlZCA9IGZhbHNlO1xyXG4gIHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgQElucHV0KCdscHhSZXNwb25zaXZlJykgcXVlcnkhOiBzdHJpbmc7XHJcblxyXG4gIHJlbmRlciA9IChzaG91bGRSZW5kZXI6IGJvb2xlYW4pID0+IHtcclxuICAgIGlmIChzaG91bGRSZW5kZXIgJiYgIXRoaXMuaGFzUmVuZGVyZWQpIHtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgdGhpcy5oYXNSZW5kZXJlZCA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKCFzaG91bGRSZW5kZXIgJiYgdGhpcy5oYXNSZW5kZXJlZCkge1xyXG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgdGhpcy5oYXNSZW5kZXJlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wYXJlbnRDZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgc2VydmljZTogUmVzcG9uc2l2ZVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudENkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3ViLmFkZChcclxuICAgICAgdGhpcy5zZXJ2aWNlLmN1cnJlbnRTaXplJFxyXG4gICAgICAgIC5waXBlKG1hcChfID0+IHRoaXMuc2VydmljZS5zaG91bGRSZW5kZXJXaXRoQ3VycmVudFNpemUodGhpcy5xdWVyeSkpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUodGhpcy5yZW5kZXIpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ResponsiveDirective } from './responsive.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class LpxResponsiveModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LpxResponsiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: LpxResponsiveModule, declarations: [ResponsiveDirective], imports: [CommonModule], exports: [ResponsiveDirective] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LpxResponsiveModule, imports: [CommonModule] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LpxResponsiveModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [ResponsiveDirective],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
-
exports: [ResponsiveDirective],
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Jlc3BvbnNpdmUvcmVzcG9uc2l2ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdELE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQUpmLG1CQUFtQixhQUN4QixZQUFZLGFBQ1osbUJBQW1COytHQUVsQixtQkFBbUIsWUFIcEIsWUFBWTs7MkZBR1gsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJlc3BvbnNpdmVEaXJlY3RpdmUgfSBmcm9tICcuL3Jlc3BvbnNpdmUuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUmVzcG9uc2l2ZURpcmVjdGl2ZV0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1Jlc3BvbnNpdmVEaXJlY3RpdmVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTHB4UmVzcG9uc2l2ZU1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, fromEvent } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
|
|
4
|
-
import { RESPONSIVE_BREAKPOINTS, } from './responsive-breakpoints.token';
|
|
5
|
-
import { WINDOW } from '../../tokens/window.token';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class ResponsiveService {
|
|
8
|
-
constructor(providedBreakpoints, window) {
|
|
9
|
-
this.providedBreakpoints = providedBreakpoints;
|
|
10
|
-
this.window = window;
|
|
11
|
-
this.defaultBreakpoint = {
|
|
12
|
-
name: "all" /* ResponsiveTokens.all */,
|
|
13
|
-
width: 0,
|
|
14
|
-
};
|
|
15
|
-
this.breakpoints = this.buildBreakpoints(this.providedBreakpoints);
|
|
16
|
-
this.getCurrentSize = () => ({
|
|
17
|
-
height: this.window.innerHeight,
|
|
18
|
-
width: this.window.innerWidth,
|
|
19
|
-
});
|
|
20
|
-
this.mapSizeToBreakpoint = ({ width } = this.getCurrentSize()) => {
|
|
21
|
-
return this.breakpoints.find((s) => width >= s.width);
|
|
22
|
-
};
|
|
23
|
-
this.currentSize$ = new BehaviorSubject(this.mapSizeToBreakpoint());
|
|
24
|
-
this.shouldRenderWithCurrentSize = (query) => {
|
|
25
|
-
return this.matchQuery(query);
|
|
26
|
-
};
|
|
27
|
-
this.setupListener();
|
|
28
|
-
}
|
|
29
|
-
setupListener() {
|
|
30
|
-
this.currentResolution$ = fromEvent(this.window, 'resize')
|
|
31
|
-
.pipe(map(this.getCurrentSize))
|
|
32
|
-
.pipe(startWith(this.getCurrentSize()));
|
|
33
|
-
this.currentResolution$
|
|
34
|
-
.pipe(map(this.mapSizeToBreakpoint), distinctUntilChanged())
|
|
35
|
-
.subscribe((current) => {
|
|
36
|
-
this.currentSize$.next(current);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
buildBreakpoints(breakpoints) {
|
|
40
|
-
return [
|
|
41
|
-
...Object.keys(breakpoints)
|
|
42
|
-
.map((key) => ({
|
|
43
|
-
name: key,
|
|
44
|
-
width: breakpoints[key],
|
|
45
|
-
}))
|
|
46
|
-
.sort((a, b) => b.width - a.width),
|
|
47
|
-
this.defaultBreakpoint,
|
|
48
|
-
];
|
|
49
|
-
}
|
|
50
|
-
matchQuery(query) {
|
|
51
|
-
const { width } = this.getCurrentSize();
|
|
52
|
-
const tokens = query.split(' ');
|
|
53
|
-
const findInTokens = (size) => tokens.find((token) => token.split("-" /* ResponsiveTokens.separator */)[0] === size);
|
|
54
|
-
const matchedBreakpoint = this.breakpoints.find((breakpoint) => width >= breakpoint.width && findInTokens(breakpoint.name));
|
|
55
|
-
if (matchedBreakpoint) {
|
|
56
|
-
const token = findInTokens(matchedBreakpoint.name);
|
|
57
|
-
const shouldBeBigger = !token?.includes("none" /* ResponsiveTokens.none */);
|
|
58
|
-
return shouldBeBigger === width >= matchedBreakpoint.width;
|
|
59
|
-
}
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ResponsiveService, deps: [{ token: RESPONSIVE_BREAKPOINTS }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ResponsiveService, providedIn: 'root' }); }
|
|
64
|
-
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ResponsiveService, decorators: [{
|
|
66
|
-
type: Injectable,
|
|
67
|
-
args: [{
|
|
68
|
-
providedIn: 'root',
|
|
69
|
-
}]
|
|
70
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
71
|
-
type: Inject,
|
|
72
|
-
args: [RESPONSIVE_BREAKPOINTS]
|
|
73
|
-
}] }, { type: undefined, decorators: [{
|
|
74
|
-
type: Inject,
|
|
75
|
-
args: [WINDOW]
|
|
76
|
-
}] }] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sZXB0b24teC1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9yZXNwb25zaXZlL3Jlc3BvbnNpdmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxzQkFBc0IsR0FFdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBZ0JuRCxNQUFNLE9BQU8saUJBQWlCO0lBK0I1QixZQUVZLG1CQUEwQyxFQUMxQixNQUFXO1FBRDNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBdUI7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBSztRQS9CdkMsc0JBQWlCLEdBQUc7WUFDbEIsSUFBSSxrQ0FBc0I7WUFDMUIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBRUYsZ0JBQVcsR0FBc0MsSUFBSSxDQUFDLGdCQUFnQixDQUNwRSxJQUFJLENBQUMsbUJBQW1CLENBQ3pCLENBQUM7UUFFUSxtQkFBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDaEMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVztZQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1NBQzlCLENBQUMsQ0FBQztRQUVPLHdCQUFtQixHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRTtZ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LFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFpQ0ksTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUU3QixNQUFNOzJCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIFJFU1BPTlNJVkVfQlJFQUtQT0lOVFMsXHJcbiAgUmVzcG9uc2l2ZUJyZWFrcG9pbnRzLFxyXG59IGZyb20gJy4vcmVzcG9uc2l2ZS1icmVha3BvaW50cy50b2tlbic7XHJcbmltcG9ydCB7IFdJTkRPVyB9IGZyb20gJy4uLy4uL3Rva2Vucy93aW5kb3cudG9rZW4nO1xyXG5cclxuZXhwb3J0IGNvbnN0IGVudW0gUmVzcG9uc2l2ZVRva2VucyB7XHJcbiAgbm9uZSA9ICdub25lJyxcclxuICBhbGwgPSAnYWxsJyxcclxuICBzZXBhcmF0b3IgPSAnLScsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2l2ZUJyZWFrcG9pbnQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB3aWR0aDogbnVtYmVyO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZVNlcnZpY2Uge1xyXG4gIGN1cnJlbnRSZXNvbHV0aW9uJCE6IE9ic2VydmFibGU8eyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9PjtcclxuXHJcbiAgZGVmYXVsdEJyZWFrcG9pbnQgPSB7XHJcbiAgICBuYW1lOiBSZXNwb25zaXZlVG9rZW5zLmFsbCxcclxuICAgIHdpZHRoOiAwLFxyXG4gIH07XHJcblxyXG4gIGJyZWFrcG9pbnRzOiB7IG5hbWU6IHN0cmluZzsgd2lkdGg6IG51bWJlciB9W10gPSB0aGlzLmJ1aWxkQnJlYWtwb2ludHMoXHJcbiAgICB0aGlzLnByb3ZpZGVkQnJlYWtwb2ludHMsXHJcbiAgKTtcclxuXHJcbiAgcHJvdGVjdGVkIGdldEN1cnJlbnRTaXplID0gKCkgPT4gKHtcclxuICAgIGhlaWdodDogdGhpcy53aW5kb3cuaW5uZXJIZWlnaHQsXHJcbiAgICB3aWR0aDogdGhpcy53aW5kb3cuaW5uZXJXaWR0aCxcclxuICB9KTtcclxuXHJcbiAgcHJvdGVjdGVkIG1hcFNpemVUb0JyZWFrcG9pbnQgPSAoeyB3aWR0aCB9ID0gdGhpcy5nZXRDdXJyZW50U2l6ZSgpKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50cy5maW5kKFxyXG4gICAgICAocykgPT4gd2lkdGggPj0gcy53aWR0aCxcclxuICAgICkgYXMgUmVzcG9uc2l2ZUJyZWFrcG9pbnQ7XHJcbiAgfTtcclxuXHJcbiAgY3VycmVudFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZXNwb25zaXZlQnJlYWtwb2ludD4oXHJcbiAgICB0aGlzLm1hcFNpemVUb0JyZWFrcG9pbnQoKSxcclxuICApO1xyXG5cclxuICBzaG91bGRSZW5kZXJXaXRoQ3VycmVudFNpemUgPSAocXVlcnk6IHN0cmluZykgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWF0Y2hRdWVyeShxdWVyeSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KFJFU1BPTlNJVkVfQlJFQUtQT0lOVFMpXHJcbiAgICBwcm90ZWN0ZWQgcHJvdmlkZWRCcmVha3BvaW50czogUmVzcG9uc2l2ZUJyZWFrcG9pbnRzLFxyXG4gICAgQEluamVjdChXSU5ET1cpIHByb3RlY3RlZCB3aW5kb3c6IGFueSxcclxuICApIHtcclxuICAgIHRoaXMuc2V0dXBMaXN0ZW5lcigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNldHVwTGlzdGVuZXIoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRSZXNvbHV0aW9uJCA9IGZyb21FdmVudCh0aGlzLndpbmRvdywgJ3Jlc2l6ZScpXHJcbiAgICAgIC5waXBlKG1hcCh0aGlzLmdldEN1cnJlbnRTaXplKSlcclxuICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMuZ2V0Q3VycmVudFNpemUoKSkpO1xyXG5cclxuICAgIHRoaXMuY3VycmVudFJlc29sdXRpb24kXHJcbiAgICAgIC5waXBlKG1hcCh0aGlzLm1hcFNpemVUb0JyZWFrcG9pbnQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjdXJyZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50U2l6ZSQubmV4dChjdXJyZW50KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYnVpbGRCcmVha3BvaW50cyhicmVha3BvaW50czogUmVzcG9uc2l2ZUJyZWFrcG9pbnRzKSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAuLi5PYmplY3Qua2V5cyhicmVha3BvaW50cylcclxuICAgICAgICAubWFwKChrZXkpID0+ICh7XHJcbiAgICAgICAgICBuYW1lOiBrZXksXHJcbiAgICAgICAgICB3aWR0aDogYnJlYWtwb2ludHNba2V5XSxcclxuICAgICAgICB9KSlcclxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYi53aWR0aCAtIGEud2lkdGgpLFxyXG4gICAgICB0aGlzLmRlZmF1bHRCcmVha3BvaW50LFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBtYXRjaFF1ZXJ5KHF1ZXJ5OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHsgd2lkdGggfSA9IHRoaXMuZ2V0Q3VycmVudFNpemUoKTtcclxuICAgIGNvbnN0IHRva2VucyA9IHF1ZXJ5LnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaW5kSW5Ub2tlbnMgPSAoc2l6ZTogc3RyaW5nKSA9PlxyXG4gICAgICB0b2tlbnMuZmluZChcclxuICAgICAgICAodG9rZW4pID0+IHRva2VuLnNwbGl0KFJlc3BvbnNpdmVUb2tlbnMuc2VwYXJhdG9yKVswXSA9PT0gc2l6ZSxcclxuICAgICAgKTtcclxuXHJcbiAgICBjb25zdCBtYXRjaGVkQnJlYWtwb2ludCA9IHRoaXMuYnJlYWtwb2ludHMuZmluZChcclxuICAgICAgKGJyZWFrcG9pbnQpID0+XHJcbiAgICAgICAgd2lkdGggPj0gYnJlYWtwb2ludC53aWR0aCAmJiBmaW5kSW5Ub2tlbnMoYnJlYWtwb2ludC5uYW1lKSxcclxuICAgICk7XHJcbiAgICBpZiAobWF0Y2hlZEJyZWFrcG9pbnQpIHtcclxuICAgICAgY29uc3QgdG9rZW4gPSBmaW5kSW5Ub2tlbnMobWF0Y2hlZEJyZWFrcG9pbnQubmFtZSk7XHJcbiAgICAgIGNvbnN0IHNob3VsZEJlQmlnZ2VyID0gIXRva2VuPy5pbmNsdWRlcyhSZXNwb25zaXZlVG9rZW5zLm5vbmUpO1xyXG4gICAgICByZXR1cm4gc2hvdWxkQmVCaWdnZXIgPT09IHdpZHRoID49IG1hdGNoZWRCcmVha3BvaW50LndpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
|