@evotor-dev/ui-kit 6.17.1 → 6.17.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/bundles/evotor-dev-ui-kit.umd.js +379 -0
- package/bundles/evotor-dev-ui-kit.umd.js.map +1 -1
- package/esm2015/lib/components/evo-navigation-tabs/evo-navigation-tab.directive.js +52 -0
- package/esm2015/lib/components/evo-navigation-tabs/evo-navigation-tabs.component.js +112 -0
- package/esm2015/lib/components/evo-navigation-tabs/evo-navigation-tabs.module.js +20 -0
- package/esm2015/lib/components/evo-navigation-tabs/index.js +2 -0
- package/esm2015/lib/components/evo-navigation-tabs/public-api.js +5 -0
- package/esm2015/lib/components/evo-navigation-tabs/types/evo-navigation-tabs-size.js +2 -0
- package/esm2015/lib/services/mutation-observer.service.js +59 -0
- package/esm2015/lib/services/router-link-active.service.js +41 -0
- package/esm2015/lib/utils/observables/zone-free.js +64 -0
- package/esm2015/lib/utils/tokens/animation-frame.js +27 -0
- package/esm2015/public_api.js +2 -1
- package/fesm2015/evotor-dev-ui-kit.js +341 -5
- package/fesm2015/evotor-dev-ui-kit.js.map +1 -1
- package/lib/components/evo-navigation-tabs/evo-navigation-tab.directive.d.ts +19 -0
- package/lib/components/evo-navigation-tabs/evo-navigation-tabs.component.d.ts +32 -0
- package/lib/components/evo-navigation-tabs/evo-navigation-tabs.module.d.ts +10 -0
- package/lib/components/evo-navigation-tabs/index.d.ts +1 -0
- package/lib/components/evo-navigation-tabs/public-api.d.ts +4 -0
- package/lib/components/evo-navigation-tabs/types/evo-navigation-tabs-size.d.ts +1 -0
- package/lib/services/mutation-observer.service.d.ts +34 -0
- package/lib/services/router-link-active.service.d.ts +16 -0
- package/lib/utils/observables/zone-free.d.ts +54 -0
- package/lib/utils/tokens/animation-frame.d.ts +10 -0
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Directive, HostBinding, Optional } from '@angular/core';
|
|
2
|
+
import { EMPTY, fromEvent, merge, Subject } from 'rxjs';
|
|
3
|
+
import { filter, switchMap, take, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
+
import { RouterLinkActiveService } from '../../services/router-link-active.service';
|
|
5
|
+
import { MutationObserverService } from '../../services/mutation-observer.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../services/router-link-active.service";
|
|
8
|
+
import * as i2 from "@angular/router";
|
|
9
|
+
import * as i3 from "../../services/mutation-observer.service";
|
|
10
|
+
export const EVO_TAB_ACTIVATE = 'evo-tab-activate';
|
|
11
|
+
export class EvoNavigationTabDirective {
|
|
12
|
+
constructor(el, routerLinkActiveService, rla, mutation) {
|
|
13
|
+
this.el = el;
|
|
14
|
+
this.routerLinkActiveService = routerLinkActiveService;
|
|
15
|
+
this.rla = rla;
|
|
16
|
+
this.mutation = mutation;
|
|
17
|
+
this.tabClass = true;
|
|
18
|
+
this.destroy$ = new Subject();
|
|
19
|
+
this.initSubscriptions();
|
|
20
|
+
}
|
|
21
|
+
ngOnDestroy() {
|
|
22
|
+
this.destroy$.next();
|
|
23
|
+
this.destroy$.complete();
|
|
24
|
+
}
|
|
25
|
+
initSubscriptions() {
|
|
26
|
+
const mutationObserver = this.rla && this.mutation ? this.mutation.pipe(filter(() => this.rla.isActive)) : EMPTY;
|
|
27
|
+
merge(mutationObserver, this.routerLinkActiveService.pipe(filter((r) => r)), fromEvent(this.el.nativeElement, 'click').pipe(
|
|
28
|
+
// Delaying execution until after all other click callbacks
|
|
29
|
+
switchMap(() => fromEvent(this.el.nativeElement.parentElement, 'click').pipe(take(1)))))
|
|
30
|
+
.pipe(tap(() => {
|
|
31
|
+
this.el.nativeElement.dispatchEvent(new CustomEvent(EVO_TAB_ACTIVATE, { bubbles: true }));
|
|
32
|
+
}), takeUntil(this.destroy$))
|
|
33
|
+
.subscribe();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
EvoNavigationTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabDirective, deps: [{ token: i0.ElementRef }, { token: i1.RouterLinkActiveService }, { token: i2.RouterLinkActive, optional: true }, { token: i3.MutationObserverService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
37
|
+
EvoNavigationTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: EvoNavigationTabDirective, selector: "button[evoNavigationTab]:not([routerLink]), button[evoNavigationTab][routerLink][routerLinkActive]", host: { properties: { "class.evo-navigation-tab": "this.tabClass" } }, providers: [MutationObserverService, RouterLinkActiveService], ngImport: i0 });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabDirective, decorators: [{
|
|
39
|
+
type: Directive,
|
|
40
|
+
args: [{
|
|
41
|
+
selector: 'button[evoNavigationTab]:not([routerLink]), button[evoNavigationTab][routerLink][routerLinkActive]',
|
|
42
|
+
providers: [MutationObserverService, RouterLinkActiveService],
|
|
43
|
+
}]
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RouterLinkActiveService }, { type: i2.RouterLinkActive, decorators: [{
|
|
45
|
+
type: Optional
|
|
46
|
+
}] }, { type: i3.MutationObserverService, decorators: [{
|
|
47
|
+
type: Optional
|
|
48
|
+
}] }]; }, propDecorators: { tabClass: [{
|
|
49
|
+
type: HostBinding,
|
|
50
|
+
args: ['class.evo-navigation-tab']
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW5hdmlnYXRpb24tdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1uYXZpZ2F0aW9uLXRhYnMvZXZvLW5hdmlnYXRpb24tdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFdBQVcsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7OztBQUVqRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQU1uRCxNQUFNLE9BQU8seUJBQXlCO0lBS2xDLFlBQ3FCLEVBQWMsRUFDZCx1QkFBZ0QsRUFDcEMsR0FBcUIsRUFDckIsUUFBaUM7UUFIN0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDcEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUFSekIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUV4QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVE1QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLE1BQU0sZ0JBQWdCLEdBQ2xCLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTVGLEtBQUssQ0FDRCxnQkFBZ0IsRUFDaEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25ELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJO1FBQzFDLDJEQUEyRDtRQUMzRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUYsQ0FDSjthQUNJLElBQUksQ0FDRCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUMzQjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7O3VIQXRDUSx5QkFBeUI7MkdBQXpCLHlCQUF5QixvTUFGdkIsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQzs0RkFFcEQseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvR0FBb0c7b0JBQzlHLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO2lCQUNoRTs7MEJBU1EsUUFBUTs7MEJBQ1IsUUFBUTs0Q0FSNEIsUUFBUTtzQkFBaEQsV0FBVzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJMaW5rQWN0aXZlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFTVBUWSwgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtSb3V0ZXJMaW5rQWN0aXZlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGVyLWxpbmstYWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHtNdXRhdGlvbk9ic2VydmVyU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbXV0YXRpb24tb2JzZXJ2ZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBFVk9fVEFCX0FDVElWQVRFID0gJ2V2by10YWItYWN0aXZhdGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2J1dHRvbltldm9OYXZpZ2F0aW9uVGFiXTpub3QoW3JvdXRlckxpbmtdKSwgYnV0dG9uW2V2b05hdmlnYXRpb25UYWJdW3JvdXRlckxpbmtdW3JvdXRlckxpbmtBY3RpdmVdJyxcbiAgICBwcm92aWRlcnM6IFtNdXRhdGlvbk9ic2VydmVyU2VydmljZSwgUm91dGVyTGlua0FjdGl2ZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBFdm9OYXZpZ2F0aW9uVGFiRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV2by1uYXZpZ2F0aW9uLXRhYicpIHRhYkNsYXNzID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyTGlua0FjdGl2ZVNlcnZpY2U6IFJvdXRlckxpbmtBY3RpdmVTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IHJsYTogUm91dGVyTGlua0FjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlclNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtdXRhdGlvbk9ic2VydmVyID1cbiAgICAgICAgICAgIHRoaXMucmxhICYmIHRoaXMubXV0YXRpb24gPyB0aGlzLm11dGF0aW9uLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMucmxhLmlzQWN0aXZlKSkgOiBFTVBUWTtcblxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIG11dGF0aW9uT2JzZXJ2ZXIsXG4gICAgICAgICAgICB0aGlzLnJvdXRlckxpbmtBY3RpdmVTZXJ2aWNlLnBpcGUoZmlsdGVyKChyKSA9PiByKSksXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKFxuICAgICAgICAgICAgICAgIC8vIERlbGF5aW5nIGV4ZWN1dGlvbiB1bnRpbCBhZnRlciBhbGwgb3RoZXIgY2xpY2sgY2FsbGJhY2tzXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCEsICdjbGljaycpLnBpcGUodGFrZSgxKSkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KEVWT19UQUJfQUNUSVZBVEUsIHtidWJibGVzOiB0cnVlfSkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { switchMap, take, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
+
import { EVO_TAB_ACTIVATE } from './evo-navigation-tab.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "./evo-navigation-tab.directive";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
export class EvoNavigationTabsComponent {
|
|
10
|
+
constructor(el) {
|
|
11
|
+
this.el = el;
|
|
12
|
+
this.tabs = [];
|
|
13
|
+
this.size = 'normal';
|
|
14
|
+
this.activeItemIndexChange = new EventEmitter();
|
|
15
|
+
this.disabled = false;
|
|
16
|
+
this.activeIndex = 0;
|
|
17
|
+
this.disabledSubject$ = new Subject();
|
|
18
|
+
this.nextRenderSubject$ = new Subject();
|
|
19
|
+
this.destroy$ = new Subject();
|
|
20
|
+
this.initSubscriptions();
|
|
21
|
+
}
|
|
22
|
+
set setActiveIndex(index) {
|
|
23
|
+
this.activeIndex = index;
|
|
24
|
+
this.markTabAsActive();
|
|
25
|
+
}
|
|
26
|
+
set setDisabled(disabled) {
|
|
27
|
+
this.disabled = disabled;
|
|
28
|
+
this.disabledSubject$.next(disabled);
|
|
29
|
+
}
|
|
30
|
+
ngAfterViewInit() {
|
|
31
|
+
this.markTabAsActive();
|
|
32
|
+
}
|
|
33
|
+
ngAfterViewChecked() {
|
|
34
|
+
this.nextRenderSubject$.next();
|
|
35
|
+
}
|
|
36
|
+
ngOnDestroy() {
|
|
37
|
+
this.destroy$.next();
|
|
38
|
+
this.destroy$.complete();
|
|
39
|
+
}
|
|
40
|
+
onActivate(event, element) {
|
|
41
|
+
const index = this.tabsList.findIndex((tab) => tab === element);
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
if (index === this.activeIndex) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.activeItemIndexChange.emit(index);
|
|
47
|
+
this.activeIndex = index;
|
|
48
|
+
this.markTabAsActive();
|
|
49
|
+
}
|
|
50
|
+
get tabsList() {
|
|
51
|
+
return Array.from(this.el.nativeElement.querySelectorAll('[evoNavigationTab]'));
|
|
52
|
+
}
|
|
53
|
+
get activeElement() {
|
|
54
|
+
return this.tabsList[this.activeIndex] || undefined;
|
|
55
|
+
}
|
|
56
|
+
markTabAsActive() {
|
|
57
|
+
const { tabsList, activeElement } = this;
|
|
58
|
+
tabsList.forEach((nativeElement) => {
|
|
59
|
+
const active = nativeElement === activeElement;
|
|
60
|
+
nativeElement.classList.toggle('_active', active);
|
|
61
|
+
nativeElement.setAttribute('tabIndex', active ? '0' : '-1');
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
markTabAsDisabled() {
|
|
65
|
+
this.tabsList.forEach((nativeElement) => {
|
|
66
|
+
const allDisabledClassName = '_all_disabled';
|
|
67
|
+
if (this.disabled && !nativeElement.disabled) {
|
|
68
|
+
nativeElement.classList.add(allDisabledClassName);
|
|
69
|
+
nativeElement.setAttribute('disabled', '');
|
|
70
|
+
}
|
|
71
|
+
if (!this.disabled && nativeElement.classList.contains(allDisabledClassName)) {
|
|
72
|
+
nativeElement.classList.remove(allDisabledClassName);
|
|
73
|
+
nativeElement.removeAttribute('disabled');
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
initSubscriptions() {
|
|
78
|
+
this.disabledSubject$
|
|
79
|
+
.pipe(switchMap(() => this.nextRenderSubject$.pipe(take(1))), tap(() => {
|
|
80
|
+
this.markTabAsDisabled();
|
|
81
|
+
}), takeUntil(this.destroy$))
|
|
82
|
+
.subscribe();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
EvoNavigationTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabsComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
EvoNavigationTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoNavigationTabsComponent, selector: "evo-navigation-tabs", inputs: { tabs: "tabs", size: "size", setActiveIndex: ["activeIndex", "setActiveIndex"], setDisabled: ["disabled", "setDisabled"] }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { listeners: { "evo-tab-activate": "onActivate($event,$event.target)" } }, ngImport: i0, template: "<div class=\"evo-navigation-tabs\" [class]=\"{ 'evo-navigation-tabs_size_small': size === 'small' }\">\n <ng-content select=\"[position=start]\"></ng-content>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <button\n *ngIf=\"tab.link\"\n evoNavigationTab\n routerLinkActive=\"active\"\n queryParamsHandling=\"merge\"\n [routerLink]=\"tab.link\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n [disabled]=\"tab.disabled || disabled\"\n >\n {{ tab.label }}\n </button>\n <button *ngIf=\"!tab.link\" evoNavigationTab [disabled]=\"tab.disabled || disabled\">{{ tab.label }}</button>\n </ng-container>\n\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:block}.evo-navigation-tabs{display:flex;box-shadow:inset 0 -1px #c6c6c6;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.evo-navigation-tabs::-webkit-scrollbar{display:none}.evo-navigation-tab{display:flex;align-items:center;box-sizing:border-box;padding:12px 16px;border:none;background:none;color:#212121;white-space:nowrap;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:box-shadow .3s,color .3s;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600}.evo-navigation-tabs_size_small .evo-navigation-tab{padding:7px 8px;text-transform:none;font-family:var(--evo-font);font-style:normal;font-size:12px;line-height:18px;font-weight:400}.evo-navigation-tab:hover{color:#f05023}.evo-navigation-tab:focus-visible{outline:none}.evo-navigation-tab._active:not(:disabled){color:#f05023;box-shadow:inset 0 -2px #f05023;cursor:default}.evo-navigation-tabs_size_small .evo-navigation-tab._active:not(:disabled){box-shadow:inset 0 -1px #f05023}.evo-navigation-tab:disabled{color:#b0b0b0;pointer-events:none;cursor:default}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.EvoNavigationTabDirective, selector: "button[evoNavigationTab]:not([routerLink]), button[evoNavigationTab][routerLink][routerLinkActive]" }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i3.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["routerLink", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabsComponent, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
args: [{
|
|
90
|
+
selector: 'evo-navigation-tabs',
|
|
91
|
+
templateUrl: './evo-navigation-tabs.component.html',
|
|
92
|
+
styleUrls: ['./evo-navigation-tabs.component.scss'],
|
|
93
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
94
|
+
encapsulation: ViewEncapsulation.None,
|
|
95
|
+
}]
|
|
96
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { tabs: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], size: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], setActiveIndex: [{
|
|
101
|
+
type: Input,
|
|
102
|
+
args: ['activeIndex']
|
|
103
|
+
}], setDisabled: [{
|
|
104
|
+
type: Input,
|
|
105
|
+
args: ['disabled']
|
|
106
|
+
}], activeItemIndexChange: [{
|
|
107
|
+
type: Output
|
|
108
|
+
}], onActivate: [{
|
|
109
|
+
type: HostListener,
|
|
110
|
+
args: [EVO_TAB_ACTIVATE, ['$event', '$event.target']]
|
|
111
|
+
}] } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW5hdmlnYXRpb24tdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9ldm8tbmF2aWdhdGlvbi10YWJzL2V2by1uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLW5hdmlnYXRpb24tdGFicy9ldm8tbmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBVWhFLE1BQU0sT0FBTywwQkFBMEI7SUFzQm5DLFlBQTZCLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBckJsQyxTQUFJLEdBQXlELEVBQUUsQ0FBQztRQUNoRSxTQUFJLEdBQTBCLFFBQVEsQ0FBQztRQVV0QywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTdELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFVCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVQLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDMUMsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN6QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUc1QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBckJELElBQTBCLGNBQWMsQ0FBQyxLQUFhO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBdUIsV0FBVyxDQUFDLFFBQWlCO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQWdCRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUdELFVBQVUsQ0FBQyxLQUFZLEVBQUUsT0FBMEI7UUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsQ0FBQztRQUVoRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQVksYUFBYTtRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sZUFBZTtRQUNuQixNQUFNLEVBQUMsUUFBUSxFQUFFLGFBQWEsRUFBQyxHQUFHLElBQUksQ0FBQztRQUV2QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDL0IsTUFBTSxNQUFNLEdBQUcsYUFBYSxLQUFLLGFBQWEsQ0FBQztZQUUvQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEQsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDO1lBRTdDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Z0JBQzFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ2xELGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzlDO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRTtnQkFDMUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDckQsYUFBYSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM3QztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsZ0JBQWdCO2FBQ2hCLElBQUksQ0FDRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN0RCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0I7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDOzt3SEFuR1EsMEJBQTBCOzRHQUExQiwwQkFBMEIsOFVDeEJ2Qyw2d0JBb0JBOzRGRElhLDBCQUEwQjtrQkFQdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsc0NBQXNDO29CQUNuRCxTQUFTLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQztvQkFDbkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN4QztpR0FFWSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNvQixjQUFjO3NCQUF2QyxLQUFLO3VCQUFDLGFBQWE7Z0JBSUcsV0FBVztzQkFBakMsS0FBSzt1QkFBQyxVQUFVO2dCQUtQLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkE0QlAsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VWT19UQUJfQUNUSVZBVEV9IGZyb20gJy4vZXZvLW5hdmlnYXRpb24tdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0V2b05hdmlnYXRpb25UYWJzU2l6ZX0gZnJvbSAnLi90eXBlcy9ldm8tbmF2aWdhdGlvbi10YWJzLXNpemUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V2by1uYXZpZ2F0aW9uLXRhYnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldm8tbmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ldm8tbmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXZvTmF2aWdhdGlvblRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHRhYnM6IHtsYWJlbDogc3RyaW5nOyBsaW5rPzogc3RyaW5nOyBkaXNhYmxlZD86IGJvb2xlYW59W10gPSBbXTtcbiAgICBASW5wdXQoKSBzaXplOiBFdm9OYXZpZ2F0aW9uVGFic1NpemUgPSAnbm9ybWFsJztcbiAgICBASW5wdXQoJ2FjdGl2ZUluZGV4Jykgc2V0IHNldEFjdGl2ZUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLm1hcmtUYWJBc0FjdGl2ZSgpO1xuICAgIH1cbiAgICBASW5wdXQoJ2Rpc2FibGVkJykgc2V0IHNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgdGhpcy5kaXNhYmxlZFN1YmplY3QkLm5leHQoZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBhY3RpdmVJdGVtSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGFjdGl2ZUluZGV4ID0gMDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzYWJsZWRTdWJqZWN0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0UmVuZGVyU3ViamVjdCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLmluaXRTdWJzY3JpcHRpb25zKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1hcmtUYWJBc0FjdGl2ZSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXh0UmVuZGVyU3ViamVjdCQubmV4dCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoRVZPX1RBQl9BQ1RJVkFURSwgWyckZXZlbnQnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIG9uQWN0aXZhdGUoZXZlbnQ6IEV2ZW50LCBlbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudGFic0xpc3QuZmluZEluZGV4KCh0YWIpID0+IHRhYiA9PT0gZWxlbWVudCk7XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1JbmRleENoYW5nZS5lbWl0KGluZGV4KTtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLm1hcmtUYWJBc0FjdGl2ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRhYnNMaXN0KCk6IHJlYWRvbmx5IEhUTUxCdXR0b25FbGVtZW50W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2V2b05hdmlnYXRpb25UYWJdJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGFjdGl2ZUVsZW1lbnQoKTogSFRNTEJ1dHRvbkVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJzTGlzdFt0aGlzLmFjdGl2ZUluZGV4XSB8fCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXJrVGFiQXNBY3RpdmUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHt0YWJzTGlzdCwgYWN0aXZlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIHRhYnNMaXN0LmZvckVhY2goKG5hdGl2ZUVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IG5hdGl2ZUVsZW1lbnQgPT09IGFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnX2FjdGl2ZScsIGFjdGl2ZSk7XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiSW5kZXgnLCBhY3RpdmUgPyAnMCcgOiAnLTEnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXJrVGFiQXNEaXNhYmxlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJzTGlzdC5mb3JFYWNoKChuYXRpdmVFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhbGxEaXNhYmxlZENsYXNzTmFtZSA9ICdfYWxsX2Rpc2FibGVkJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgJiYgIW5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYWxsRGlzYWJsZWRDbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICcnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIG5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGFsbERpc2FibGVkQ2xhc3NOYW1lKSkge1xuICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShhbGxEaXNhYmxlZENsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgbmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWRTdWJqZWN0JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubmV4dFJlbmRlclN1YmplY3QkLnBpcGUodGFrZSgxKSkpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya1RhYkFzRGlzYWJsZWQoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZXZvLW5hdmlnYXRpb24tdGFic1wiIFtjbGFzc109XCJ7ICdldm8tbmF2aWdhdGlvbi10YWJzX3NpemVfc21hbGwnOiBzaXplID09PSAnc21hbGwnIH1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcG9zaXRpb249c3RhcnRdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0YWIubGlua1wiXG4gICAgICAgICAgICBldm9OYXZpZ2F0aW9uVGFiXG4gICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJtZXJnZVwiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJ0YWIubGlua1wiXG4gICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwie2V4YWN0OiB0cnVlfVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkIHx8IGRpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXRhYi5saW5rXCIgZXZvTmF2aWdhdGlvblRhYiBbZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkIHx8IGRpc2FibGVkXCI+e3sgdGFiLmxhYmVsIH19PC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { EvoNavigationTabsComponent } from './evo-navigation-tabs.component';
|
|
5
|
+
import { EvoNavigationTabDirective } from './evo-navigation-tab.directive';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class EvoNavigationTabsModule {
|
|
8
|
+
}
|
|
9
|
+
EvoNavigationTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
EvoNavigationTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabsModule, declarations: [EvoNavigationTabsComponent, EvoNavigationTabDirective], imports: [CommonModule, RouterModule], exports: [EvoNavigationTabsComponent, EvoNavigationTabDirective] });
|
|
11
|
+
EvoNavigationTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabsModule, imports: [[CommonModule, RouterModule]] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoNavigationTabsModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [EvoNavigationTabsComponent, EvoNavigationTabDirective],
|
|
16
|
+
imports: [CommonModule, RouterModule],
|
|
17
|
+
exports: [EvoNavigationTabsComponent, EvoNavigationTabDirective],
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW5hdmlnYXRpb24tdGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9ldm8tbmF2aWdhdGlvbi10YWJzL2V2by1uYXZpZ2F0aW9uLXRhYnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLHVCQUF1Qjs7cUhBQXZCLHVCQUF1QjtzSEFBdkIsdUJBQXVCLGlCQUpqQiwwQkFBMEIsRUFBRSx5QkFBeUIsYUFDMUQsWUFBWSxFQUFFLFlBQVksYUFDMUIsMEJBQTBCLEVBQUUseUJBQXlCO3NIQUV0RCx1QkFBdUIsWUFIdkIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDOzRGQUc1Qix1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsMEJBQTBCLEVBQUUseUJBQXlCLENBQUM7b0JBQ3JFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLHlCQUF5QixDQUFDO2lCQUNuRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RXZvTmF2aWdhdGlvblRhYnNDb21wb25lbnR9IGZyb20gJy4vZXZvLW5hdmlnYXRpb24tdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHtFdm9OYXZpZ2F0aW9uVGFiRGlyZWN0aXZlfSBmcm9tICcuL2V2by1uYXZpZ2F0aW9uLXRhYi5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0V2b05hdmlnYXRpb25UYWJzQ29tcG9uZW50LCBFdm9OYXZpZ2F0aW9uVGFiRGlyZWN0aXZlXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdm9OYXZpZ2F0aW9uVGFic0NvbXBvbmVudCwgRXZvTmF2aWdhdGlvblRhYkRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEV2b05hdmlnYXRpb25UYWJzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9ldm8tbmF2aWdhdGlvbi10YWJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './evo-navigation-tabs.module';
|
|
2
|
+
export * from './evo-navigation-tabs.component';
|
|
3
|
+
export * from './evo-navigation-tab.directive';
|
|
4
|
+
export * from "./types/evo-navigation-tabs-size";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1uYXZpZ2F0aW9uLXRhYnMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldm8tbmF2aWdhdGlvbi10YWJzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2V2by1uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXZvLW5hdmlnYXRpb24tdGFiLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy9ldm8tbmF2aWdhdGlvbi10YWJzLXNpemVcIjtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW5hdmlnYXRpb24tdGFicy1zaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLW5hdmlnYXRpb24tdGFicy90eXBlcy9ldm8tbmF2aWdhdGlvbi10YWJzLXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEV2b05hdmlnYXRpb25UYWJzU2l6ZSA9ICdzbWFsbCcgfCAnbm9ybWFsJztcbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ElementRef, inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Безопасная обёртка над `MutationObserver`, которая гарантирует,
|
|
6
|
+
* что код не упадёт в средах, где `MutationObserver` недоступен
|
|
7
|
+
* (например, серверный рендеринг или тесты без DOM).
|
|
8
|
+
*
|
|
9
|
+
* Если `MutationObserver` существует — используется он.
|
|
10
|
+
* Если нет — используется заглушка с пустыми методами.
|
|
11
|
+
*/
|
|
12
|
+
export const SafeObserver = typeof MutationObserver !== 'undefined'
|
|
13
|
+
? MutationObserver
|
|
14
|
+
: class {
|
|
15
|
+
observe() { }
|
|
16
|
+
disconnect() { }
|
|
17
|
+
takeRecords() {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Сервис `MutationObserverService` предоставляет поток `Observable<MutationRecord[]>`,
|
|
23
|
+
* который эмитит записи изменений DOM для текущего элемента (`ElementRef`).
|
|
24
|
+
*
|
|
25
|
+
* Наблюдает за изменениями потомков, текстового содержимого и вложенных структур (`subtree: true`).
|
|
26
|
+
*
|
|
27
|
+
* Используется `SafeObserver`, чтобы гарантировать совместимость с SSR и тестовой средой.
|
|
28
|
+
*
|
|
29
|
+
* ⚠️ Важно: требует, чтобы `ElementRef` был доступен через DI-контекст (т.е. работает в компонентах/директивах).
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* this.mutationObserverService.subscribe(records => {
|
|
33
|
+
* console.log('Mutation detected!', records);
|
|
34
|
+
* });
|
|
35
|
+
*/
|
|
36
|
+
export class MutationObserverService extends Observable {
|
|
37
|
+
constructor() {
|
|
38
|
+
const nativeElement = inject(ElementRef).nativeElement;
|
|
39
|
+
super((subscriber) => {
|
|
40
|
+
const observer = new SafeObserver((records) => {
|
|
41
|
+
subscriber.next(records);
|
|
42
|
+
});
|
|
43
|
+
observer.observe(nativeElement, {
|
|
44
|
+
childList: true,
|
|
45
|
+
characterData: true,
|
|
46
|
+
subtree: true,
|
|
47
|
+
});
|
|
48
|
+
return () => {
|
|
49
|
+
observer.disconnect();
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
MutationObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MutationObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
MutationObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MutationObserverService });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MutationObserverService, decorators: [{
|
|
57
|
+
type: Injectable
|
|
58
|
+
}], ctorParameters: function () { return []; } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb24tb2JzZXJ2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9zZXJ2aWNlcy9tdXRhdGlvbi1vYnNlcnZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUVoQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUNyQixPQUFPLGdCQUFnQixLQUFLLFdBQVc7SUFDbkMsQ0FBQyxDQUFDLGdCQUFnQjtJQUNsQixDQUFDLENBQUM7UUFDSSxPQUFPLEtBQVUsQ0FBQztRQUNsQixVQUFVLEtBQVUsQ0FBQztRQUNyQixXQUFXO1lBQ1AsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0tBQ0osQ0FBQztBQUVaOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFVBQXFDO0lBQzlFO1FBQ0ksTUFBTSxhQUFhLEdBQVMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUU3RCxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMxQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQzVCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixPQUFPLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7WUFFSCxPQUFPLEdBQUcsRUFBRTtnQkFDUixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztxSEFuQlEsdUJBQXVCO3lIQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JHQtdC30L7Qv9Cw0YHQvdCw0Y8g0L7QsdGR0YDRgtC60LAg0L3QsNC0IGBNdXRhdGlvbk9ic2VydmVyYCwg0LrQvtGC0L7RgNCw0Y8g0LPQsNGA0LDQvdGC0LjRgNGD0LXRgixcbiAqINGH0YLQviDQutC+0LQg0L3QtSDRg9C/0LDQtNGR0YIg0LIg0YHRgNC10LTQsNGFLCDQs9C00LUgYE11dGF0aW9uT2JzZXJ2ZXJgINC90LXQtNC+0YHRgtGD0L/QtdC9XG4gKiAo0L3QsNC/0YDQuNC80LXRgCwg0YHQtdGA0LLQtdGA0L3Ri9C5INGA0LXQvdC00LXRgNC40L3QsyDQuNC70Lgg0YLQtdGB0YLRiyDQsdC10LcgRE9NKS5cbiAqXG4gKiDQldGB0LvQuCBgTXV0YXRpb25PYnNlcnZlcmAg0YHRg9GJ0LXRgdGC0LLRg9C10YIg4oCUINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQvtC9LlxuICog0JXRgdC70Lgg0L3QtdGCIOKAlCDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LfQsNCz0LvRg9GI0LrQsCDRgSDQv9GD0YHRgtGL0LzQuCDQvNC10YLQvtC00LDQvNC4LlxuICovXG5leHBvcnQgY29uc3QgU2FmZU9ic2VydmVyID1cbiAgICB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyBNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgIDogY2xhc3MgaW1wbGVtZW50cyBNdXRhdGlvbk9ic2VydmVyIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZSgpOiB2b2lkIHt9XG4gICAgICAgICAgICAgIGRpc2Nvbm5lY3QoKTogdm9pZCB7fVxuICAgICAgICAgICAgICB0YWtlUmVjb3JkcygpOiBNdXRhdGlvblJlY29yZFtdIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBIGBNdXRhdGlvbk9ic2VydmVyU2VydmljZWAg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9C10YIg0L/QvtGC0L7QuiBgT2JzZXJ2YWJsZTxNdXRhdGlvblJlY29yZFtdPmAsXG4gKiDQutC+0YLQvtGA0YvQuSDRjdC80LjRgtC40YIg0LfQsNC/0LjRgdC4INC40LfQvNC10L3QtdC90LjQuSBET00g0LTQu9GPINGC0LXQutGD0YnQtdCz0L4g0Y3Qu9C10LzQtdC90YLQsCAoYEVsZW1lbnRSZWZgKS5cbiAqXG4gKiDQndCw0LHQu9GO0LTQsNC10YIg0LfQsCDQuNC30LzQtdC90LXQvdC40Y/QvNC4INC/0L7RgtC+0LzQutC+0LIsINGC0LXQutGB0YLQvtCy0L7Qs9C+INGB0L7QtNC10YDQttC40LzQvtCz0L4g0Lgg0LLQu9C+0LbQtdC90L3Ri9GFINGB0YLRgNGD0LrRgtGD0YAgKGBzdWJ0cmVlOiB0cnVlYCkuXG4gKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPIGBTYWZlT2JzZXJ2ZXJgLCDRh9GC0L7QsdGLINCz0LDRgNCw0L3RgtC40YDQvtCy0LDRgtGMINGB0L7QstC80LXRgdGC0LjQvNC+0YHRgtGMINGBIFNTUiDQuCDRgtC10YHRgtC+0LLQvtC5INGB0YDQtdC00L7QuS5cbiAqXG4gKiDimqDvuI8g0JLQsNC20L3Qvjog0YLRgNC10LHRg9C10YIsINGH0YLQvtCx0YsgYEVsZW1lbnRSZWZgINCx0YvQuyDQtNC+0YHRgtGD0L/QtdC9INGH0LXRgNC10LcgREkt0LrQvtC90YLQtdC60YHRgiAo0YIu0LUuINGA0LDQsdC+0YLQsNC10YIg0LIg0LrQvtC80L/QvtC90LXQvdGC0LDRhS/QtNC40YDQtdC60YLQuNCy0LDRhSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIHRoaXMubXV0YXRpb25PYnNlcnZlclNlcnZpY2Uuc3Vic2NyaWJlKHJlY29yZHMgPT4ge1xuICogICBjb25zb2xlLmxvZygnTXV0YXRpb24gZGV0ZWN0ZWQhJywgcmVjb3Jkcyk7XG4gKiB9KTtcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlIGV4dGVuZHMgT2JzZXJ2YWJsZTxyZWFkb25seSBNdXRhdGlvblJlY29yZFtdPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQ6IE5vZGUgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBzdXBlcigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgU2FmZU9ic2VydmVyKChyZWNvcmRzKSA9PiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHJlY29yZHMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUobmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Inject, Injectable, NgZone, Optional } from '@angular/core';
|
|
2
|
+
import { RouterLinkActive } from '@angular/router';
|
|
3
|
+
import { EMPTY, merge, Observable, timer } from 'rxjs';
|
|
4
|
+
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
5
|
+
import { ANIMATION_FRAME } from '../utils/tokens/animation-frame';
|
|
6
|
+
import { evoZoneOptimized } from '../utils/observables/zone-free';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
import * as i2 from "rxjs";
|
|
10
|
+
/**
|
|
11
|
+
* Сервис создает поток, отслеживающий состояние активности
|
|
12
|
+
* `RouterLinkActive` в реальном времени с использованием `requestAnimationFrame`.
|
|
13
|
+
*
|
|
14
|
+
* Наследуется от `Observable<boolean>` и эмитит `true` или `false`, когда состояние `isActive`
|
|
15
|
+
* меняется. Если `RouterLinkActive` не передан — поток будет пустым (`EMPTY`).
|
|
16
|
+
*/
|
|
17
|
+
export class RouterLinkActiveService extends Observable {
|
|
18
|
+
constructor(routerLinkActive, ngZone, animationFrame$) {
|
|
19
|
+
const stream$ = routerLinkActive
|
|
20
|
+
? merge(timer(0), animationFrame$).pipe(map(() => routerLinkActive.isActive), distinctUntilChanged(), evoZoneOptimized(ngZone))
|
|
21
|
+
: EMPTY;
|
|
22
|
+
super((subscriber) => stream$.subscribe(subscriber));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
RouterLinkActiveService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RouterLinkActiveService, deps: [{ token: RouterLinkActive, optional: true }, { token: NgZone }, { token: ANIMATION_FRAME }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
+
RouterLinkActiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RouterLinkActiveService });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RouterLinkActiveService, decorators: [{
|
|
28
|
+
type: Injectable
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i1.RouterLinkActive, decorators: [{
|
|
30
|
+
type: Optional
|
|
31
|
+
}, {
|
|
32
|
+
type: Inject,
|
|
33
|
+
args: [RouterLinkActive]
|
|
34
|
+
}] }, { type: i0.NgZone, decorators: [{
|
|
35
|
+
type: Inject,
|
|
36
|
+
args: [NgZone]
|
|
37
|
+
}] }, { type: i2.Observable, decorators: [{
|
|
38
|
+
type: Inject,
|
|
39
|
+
args: [ANIMATION_FRAME]
|
|
40
|
+
}] }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWxpbmstYWN0aXZlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvc2VydmljZXMvcm91dGVyLWxpbmstYWN0aXZlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFaEU7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFVBQW1CO0lBQzVELFlBR0ksZ0JBQXlDLEVBQ3pCLE1BQWMsRUFDTCxlQUFtQztRQUU1RCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0I7WUFDNUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQ3BDLG9CQUFvQixFQUFFLEVBQ3RCLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUMzQjtZQUNILENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFWixLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDOztxSEFqQlEsdUJBQXVCLGtCQUdwQixnQkFBZ0IsNkJBRWhCLE1BQU0sYUFDTixlQUFlO3lIQU5sQix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVTs7MEJBR0YsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLE1BQU07OzBCQUNiLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyTGlua0FjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RU1QVFksIG1lcmdlLCBPYnNlcnZhYmxlLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICcuLi91dGlscy90b2tlbnMvYW5pbWF0aW9uLWZyYW1lJztcbmltcG9ydCB7ZXZvWm9uZU9wdGltaXplZH0gZnJvbSAnLi4vdXRpbHMvb2JzZXJ2YWJsZXMvem9uZS1mcmVlJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0YHQvtC30LTQsNC10YIg0L/QvtGC0L7Quiwg0L7RgtGB0LvQtdC20LjQstCw0Y7RidC40Lkg0YHQvtGB0YLQvtGP0L3QuNC1INCw0LrRgtC40LLQvdC+0YHRgtC4XG4gKiBgUm91dGVyTGlua0FjdGl2ZWAg0LIg0YDQtdCw0LvRjNC90L7QvCDQstGA0LXQvNC10L3QuCDRgSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC8IGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgLlxuICpcbiAqINCd0LDRgdC70LXQtNGD0LXRgtGB0Y8g0L7RgiBgT2JzZXJ2YWJsZTxib29sZWFuPmAg0Lgg0Y3QvNC40YLQuNGCIGB0cnVlYCDQuNC70LggYGZhbHNlYCwg0LrQvtCz0LTQsCDRgdC+0YHRgtC+0Y/QvdC40LUgYGlzQWN0aXZlYFxuICog0LzQtdC90Y/QtdGC0YHRjy4g0JXRgdC70LggYFJvdXRlckxpbmtBY3RpdmVgINC90LUg0L/QtdGA0LXQtNCw0L0g4oCUINC/0L7RgtC+0Log0LHRg9C00LXRgiDQv9GD0YHRgtGL0LwgKGBFTVBUWWApLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUm91dGVyTGlua0FjdGl2ZVNlcnZpY2UgZXh0ZW5kcyBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChSb3V0ZXJMaW5rQWN0aXZlKVxuICAgICAgICByb3V0ZXJMaW5rQWN0aXZlOiBSb3V0ZXJMaW5rQWN0aXZlIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9GUkFNRSkgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHN0cmVhbSQgPSByb3V0ZXJMaW5rQWN0aXZlXG4gICAgICAgICAgICA/IG1lcmdlKHRpbWVyKDApLCBhbmltYXRpb25GcmFtZSQpLnBpcGUoXG4gICAgICAgICAgICAgICAgICBtYXAoKCkgPT4gcm91dGVyTGlua0FjdGl2ZS5pc0FjdGl2ZSksXG4gICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgICAgZXZvWm9uZU9wdGltaXplZChuZ1pvbmUpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IEVNUFRZO1xuXG4gICAgICAgIHN1cGVyKChzdWJzY3JpYmVyKSA9PiBzdHJlYW0kLnN1YnNjcmliZShzdWJzY3JpYmVyKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Observable, pipe } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* Кратко:
|
|
4
|
+
* 🔥 evoZonefull — тащит всё в Angular-зону.
|
|
5
|
+
* 🧊 evoZonefree — игнорирует Angular-зону, экономит CD.
|
|
6
|
+
* ⚖️ evoZoneOptimized — как утро с кофе: просыпаешься вовремя и не дергаешь лишний раз change detection.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Оператор `evoZonefull` обеспечивает полное выполнение потока внутри зоны Angular.
|
|
10
|
+
*
|
|
11
|
+
* Все `next`, `error` и `complete` вызовы оборачиваются в `NgZone.run`, чтобы гарантировать
|
|
12
|
+
* корректный запуск change detection.
|
|
13
|
+
*
|
|
14
|
+
* Используй, если поток формируется вне зоны или ты не уверен, что Angular узнает об изменениях.
|
|
15
|
+
*
|
|
16
|
+
* @param zone Сервис `NgZone` из Angular DI.
|
|
17
|
+
* @returns Оператор, оборачивающий поток в `NgZone.run()`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* source$.pipe(evoZonefull(this.ngZone)).subscribe(...);
|
|
21
|
+
*/
|
|
22
|
+
export function evoZonefull(zone) {
|
|
23
|
+
return (source) => new Observable((subscriber) => source.subscribe({
|
|
24
|
+
next: (value) => zone.run(() => subscriber.next(value)),
|
|
25
|
+
error: (error) => zone.run(() => subscriber.error(error)),
|
|
26
|
+
complete: () => zone.run(() => subscriber.complete()),
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Оператор `evoZonefree` исполняет весь поток вне зоны Angular.
|
|
31
|
+
*
|
|
32
|
+
* Это помогает избежать лишних срабатываний change detection и повысить производительность,
|
|
33
|
+
* особенно для часто испускаемых потоков (например, `scroll`, `animationFrame`, таймеры).
|
|
34
|
+
*
|
|
35
|
+
* Используй, если тебе не нужно обновлять Angular view внутри этого потока.
|
|
36
|
+
*
|
|
37
|
+
* @param zone Сервис `NgZone` из Angular DI.
|
|
38
|
+
* @returns Оператор, исполняющий подписку вне Angular-зоны.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* source$.pipe(evoZonefree(this.ngZone)).subscribe(...);
|
|
42
|
+
*/
|
|
43
|
+
export function evoZonefree(zone) {
|
|
44
|
+
return (source) => new Observable((subscriber) => zone.runOutsideAngular(() => source.subscribe(subscriber)));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Оператор `evoZoneOptimized` — комбо из `evoZonefree` и `evoZonefull`.
|
|
48
|
+
*
|
|
49
|
+
* Сначала поток исполняется вне Angular-зоны (`runOutsideAngular`), чтобы избежать лишнего
|
|
50
|
+
* change detection. Но события `next`, `error` и `complete` всё равно возвращаются в Angular-зону.
|
|
51
|
+
*
|
|
52
|
+
* Это идеальный баланс, если тебе нужен быстрый поток без лишнего CD, но ты всё равно хочешь,
|
|
53
|
+
* чтобы Angular знал о результатах.
|
|
54
|
+
*
|
|
55
|
+
* @param zone Сервис `NgZone` из Angular DI.
|
|
56
|
+
* @returns Оператор, оптимизированный по производительности.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* source$.pipe(evoZoneOptimized(this.ngZone)).subscribe(...);
|
|
60
|
+
*/
|
|
61
|
+
export function evoZoneOptimized(zone) {
|
|
62
|
+
return pipe(evoZonefree(zone), evoZonefull(zone));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS1mcmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL3V0aWxzL29ic2VydmFibGVzL3pvbmUtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQTJCLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEU7Ozs7O0dBS0c7QUFFSDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBSSxJQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNiLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELEtBQUssRUFBRSxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN4RCxDQUFDLENBQ0wsQ0FBQztBQUNWLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBSSxJQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEgsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFJLElBQVk7SUFDNUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgcGlwZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JrRgNCw0YLQutC+OlxuICog8J+UpSBldm9ab25lZnVsbCDigJQg0YLQsNGJ0LjRgiDQstGB0ZEg0LIgQW5ndWxhci3Qt9C+0L3Rgy5cbiAqIPCfp4ogZXZvWm9uZWZyZWUg4oCUINC40LPQvdC+0YDQuNGA0YPQtdGCIEFuZ3VsYXIt0LfQvtC90YMsINGN0LrQvtC90L7QvNC40YIgQ0QuXG4gKiDimpbvuI8gZXZvWm9uZU9wdGltaXplZCDigJQg0LrQsNC6INGD0YLRgNC+INGBINC60L7RhNC1OiDQv9GA0L7RgdGL0L/QsNC10YjRjNGB0Y8g0LLQvtCy0YDQtdC80Y8g0Lgg0L3QtSDQtNC10YDQs9Cw0LXRiNGMINC70LjRiNC90LjQuSDRgNCw0LcgY2hhbmdlIGRldGVjdGlvbi5cbiAqL1xuXG4vKipcbiAqINCe0L/QtdGA0LDRgtC+0YAgYGV2b1pvbmVmdWxsYCDQvtCx0LXRgdC/0LXRh9C40LLQsNC10YIg0L/QvtC70L3QvtC1INCy0YvQv9C+0LvQvdC10L3QuNC1INC/0L7RgtC+0LrQsCDQstC90YPRgtGA0Lgg0LfQvtC90YsgQW5ndWxhci5cbiAqXG4gKiDQktGB0LUgYG5leHRgLCBgZXJyb3JgINC4IGBjb21wbGV0ZWAg0LLRi9C30L7QstGLINC+0LHQvtGA0LDRh9C40LLQsNGO0YLRgdGPINCyIGBOZ1pvbmUucnVuYCwg0YfRgtC+0LHRiyDQs9Cw0YDQsNC90YLQuNGA0L7QstCw0YLRjFxuICog0LrQvtGA0YDQtdC60YLQvdGL0Lkg0LfQsNC/0YPRgdC6IGNoYW5nZSBkZXRlY3Rpb24uXG4gKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C5LCDQtdGB0LvQuCDQv9C+0YLQvtC6INGE0L7RgNC80LjRgNGD0LXRgtGB0Y8g0LLQvdC1INC30L7QvdGLINC40LvQuCDRgtGLINC90LUg0YPQstC10YDQtdC9LCDRh9GC0L4gQW5ndWxhciDRg9C30L3QsNC10YIg0L7QsSDQuNC30LzQtdC90LXQvdC40Y/RhS5cbiAqXG4gKiBAcGFyYW0gem9uZSDQodC10YDQstC40YEgYE5nWm9uZWAg0LjQtyBBbmd1bGFyIERJLlxuICogQHJldHVybnMg0J7Qv9C10YDQsNGC0L7RgCwg0L7QsdC+0YDQsNGH0LjQstCw0Y7RidC40Lkg0L/QvtGC0L7QuiDQsiBgTmdab25lLnJ1bigpYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogc291cmNlJC5waXBlKGV2b1pvbmVmdWxsKHRoaXMubmdab25lKSkuc3Vic2NyaWJlKC4uLik7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldm9ab25lZnVsbDxUPih6b25lOiBOZ1pvbmUpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICAgIHJldHVybiAoc291cmNlKSA9PlxuICAgICAgICBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT5cbiAgICAgICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4gem9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5uZXh0KHZhbHVlKSksXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcjogdW5rbm93bikgPT4gem9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5lcnJvcihlcnJvcikpLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB6b25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLmNvbXBsZXRlKCkpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG59XG5cbi8qKlxuICog0J7Qv9C10YDQsNGC0L7RgCBgZXZvWm9uZWZyZWVgINC40YHQv9C+0LvQvdGP0LXRgiDQstC10YHRjCDQv9C+0YLQvtC6INCy0L3QtSDQt9C+0L3RiyBBbmd1bGFyLlxuICpcbiAqINCt0YLQviDQv9C+0LzQvtCz0LDQtdGCINC40LfQsdC10LbQsNGC0Ywg0LvQuNGI0L3QuNGFINGB0YDQsNCx0LDRgtGL0LLQsNC90LjQuSBjaGFuZ2UgZGV0ZWN0aW9uINC4INC/0L7QstGL0YHQuNGC0Ywg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtGMLFxuICog0L7RgdC+0LHQtdC90L3QviDQtNC70Y8g0YfQsNGB0YLQviDQuNGB0L/Rg9GB0LrQsNC10LzRi9GFINC/0L7RgtC+0LrQvtCyICjQvdCw0L/RgNC40LzQtdGALCBgc2Nyb2xsYCwgYGFuaW1hdGlvbkZyYW1lYCwg0YLQsNC50LzQtdGA0YspLlxuICpcbiAqINCY0YHQv9C+0LvRjNC30YPQuSwg0LXRgdC70Lgg0YLQtdCx0LUg0L3QtSDQvdGD0LbQvdC+INC+0LHQvdC+0LLQu9GP0YLRjCBBbmd1bGFyIHZpZXcg0LLQvdGD0YLRgNC4INGN0YLQvtCz0L4g0L/QvtGC0L7QutCwLlxuICpcbiAqIEBwYXJhbSB6b25lINCh0LXRgNCy0LjRgSBgTmdab25lYCDQuNC3IEFuZ3VsYXIgREkuXG4gKiBAcmV0dXJucyDQntC/0LXRgNCw0YLQvtGALCDQuNGB0L/QvtC70L3Rj9GO0YnQuNC5INC/0L7QtNC/0LjRgdC60YMg0LLQvdC1IEFuZ3VsYXIt0LfQvtC90YsuXG4gKlxuICogQGV4YW1wbGVcbiAqIHNvdXJjZSQucGlwZShldm9ab25lZnJlZSh0aGlzLm5nWm9uZSkpLnN1YnNjcmliZSguLi4pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gZXZvWm9uZWZyZWU8VD4oem9uZTogTmdab25lKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgICByZXR1cm4gKHNvdXJjZSkgPT4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKSkpO1xufVxuXG4vKipcbiAqINCe0L/QtdGA0LDRgtC+0YAgYGV2b1pvbmVPcHRpbWl6ZWRgIOKAlCDQutC+0LzQsdC+INC40LcgYGV2b1pvbmVmcmVlYCDQuCBgZXZvWm9uZWZ1bGxgLlxuICpcbiAqINCh0L3QsNGH0LDQu9CwINC/0L7RgtC+0Log0LjRgdC/0L7Qu9C90Y/QtdGC0YHRjyDQstC90LUgQW5ndWxhci3Qt9C+0L3RiyAoYHJ1bk91dHNpZGVBbmd1bGFyYCksINGH0YLQvtCx0Ysg0LjQt9Cx0LXQttCw0YLRjCDQu9C40YjQvdC10LPQvlxuICogY2hhbmdlIGRldGVjdGlvbi4g0J3QviDRgdC+0LHRi9GC0LjRjyBgbmV4dGAsIGBlcnJvcmAg0LggYGNvbXBsZXRlYCDQstGB0ZEg0YDQsNCy0L3QviDQstC+0LfQstGA0LDRidCw0Y7RgtGB0Y8g0LIgQW5ndWxhci3Qt9C+0L3Rgy5cbiAqXG4gKiDQrdGC0L4g0LjQtNC10LDQu9GM0L3Ri9C5INCx0LDQu9Cw0L3RgSwg0LXRgdC70Lgg0YLQtdCx0LUg0L3Rg9C20LXQvSDQsdGL0YHRgtGA0YvQuSDQv9C+0YLQvtC6INCx0LXQtyDQu9C40YjQvdC10LPQviBDRCwg0L3QviDRgtGLINCy0YHRkSDRgNCw0LLQvdC+INGF0L7Rh9C10YjRjCxcbiAqINGH0YLQvtCx0YsgQW5ndWxhciDQt9C90LDQuyDQviDRgNC10LfRg9C70YzRgtCw0YLQsNGFLlxuICpcbiAqIEBwYXJhbSB6b25lINCh0LXRgNCy0LjRgSBgTmdab25lYCDQuNC3IEFuZ3VsYXIgREkuXG4gKiBAcmV0dXJucyDQntC/0LXRgNCw0YLQvtGALCDQvtC/0YLQuNC80LjQt9C40YDQvtCy0LDQvdC90YvQuSDQv9C+INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLQuC5cbiAqXG4gKiBAZXhhbXBsZVxuICogc291cmNlJC5waXBlKGV2b1pvbmVPcHRpbWl6ZWQodGhpcy5uZ1pvbmUpKS5zdWJzY3JpYmUoLi4uKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV2b1pvbmVPcHRpbWl6ZWQ8VD4oem9uZTogTmdab25lKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgICByZXR1cm4gcGlwZShldm9ab25lZnJlZSh6b25lKSwgZXZvWm9uZWZ1bGwoem9uZSkpO1xufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { share } from 'rxjs/operators';
|
|
4
|
+
/**
|
|
5
|
+
* Токен `ANIMATION_FRAME` предоставляет поток значений времени из `requestAnimationFrame`,
|
|
6
|
+
* испускаемый каждый кадр анимации.
|
|
7
|
+
*
|
|
8
|
+
* Может быть полезен для задач, которые требуют частого обновления, например, отслеживания
|
|
9
|
+
* активности или плавной анимации в UI.
|
|
10
|
+
*/
|
|
11
|
+
export const ANIMATION_FRAME = new InjectionToken('[ANIMATION_FRAME]', {
|
|
12
|
+
factory: () => {
|
|
13
|
+
const animationFrame$ = new Observable((subscriber) => {
|
|
14
|
+
let id = NaN;
|
|
15
|
+
const callback = (timestamp) => {
|
|
16
|
+
subscriber.next(timestamp);
|
|
17
|
+
id = requestAnimationFrame(callback);
|
|
18
|
+
};
|
|
19
|
+
id = requestAnimationFrame(callback);
|
|
20
|
+
return () => {
|
|
21
|
+
cancelAnimationFrame(id);
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
return animationFrame$.pipe(share());
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWZyYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL3V0aWxzL3Rva2Vucy9hbmltYXRpb24tZnJhbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQWtDLG1CQUFtQixFQUFFO0lBQ3BHLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDVixNQUFNLGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBc0IsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN2RSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDYixNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQThCLEVBQVEsRUFBRTtnQkFDdEQsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0IsRUFBRSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQztZQUVGLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVyQyxPQUFPLEdBQUcsRUFBRTtnQkFDUixvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3NoYXJlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICog0KLQvtC60LXQvSBgQU5JTUFUSU9OX0ZSQU1FYCDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0LXRgiDQv9C+0YLQvtC6INC30L3QsNGH0LXQvdC40Lkg0LLRgNC10LzQtdC90Lgg0LjQtyBgcmVxdWVzdEFuaW1hdGlvbkZyYW1lYCxcbiAqINC40YHQv9GD0YHQutCw0LXQvNGL0Lkg0LrQsNC20LTRi9C5INC60LDQtNGAINCw0L3QuNC80LDRhtC40LguXG4gKlxuICog0JzQvtC20LXRgiDQsdGL0YLRjCDQv9C+0LvQtdC30LXQvSDQtNC70Y8g0LfQsNC00LDRhywg0LrQvtGC0L7RgNGL0LUg0YLRgNC10LHRg9GO0YIg0YfQsNGB0YLQvtCz0L4g0L7QsdC90L7QstC70LXQvdC40Y8sINC90LDQv9GA0LjQvNC10YAsINC+0YLRgdC70LXQttC40LLQsNC90LjRj1xuICog0LDQutGC0LjQstC90L7RgdGC0Lgg0LjQu9C4INC/0LvQsNCy0L3QvtC5INCw0L3QuNC80LDRhtC40Lgg0LIgVUkuXG4gKi9cbmV4cG9ydCBjb25zdCBBTklNQVRJT05fRlJBTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxET01IaWdoUmVzVGltZVN0YW1wPj4oJ1tBTklNQVRJT05fRlJBTUVdJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uRnJhbWUkID0gbmV3IE9ic2VydmFibGU8RE9NSGlnaFJlc1RpbWVTdGFtcD4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAgICAgICAgIGxldCBpZCA9IE5hTjtcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKHRpbWVzdGFtcDogRE9NSGlnaFJlc1RpbWVTdGFtcCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgICAgIGlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShpZCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYW5pbWF0aW9uRnJhbWUkLnBpcGUoc2hhcmUoKSk7XG4gICAgfSxcbn0pO1xuIl19
|
package/esm2015/public_api.js
CHANGED
|
@@ -61,6 +61,7 @@ export * from './lib/components/evo-dropdown/index';
|
|
|
61
61
|
export * from './lib/components/evo-navbar/index';
|
|
62
62
|
export * from './lib/components/evo-navigation-button/index';
|
|
63
63
|
export * from './lib/components/evo-tooltip/index';
|
|
64
|
+
export * from './lib/components/evo-navigation-tabs/index';
|
|
64
65
|
export * from './lib/pipes/index';
|
|
65
66
|
// Services
|
|
66
67
|
export * from './lib/services/index';
|
|
@@ -72,4 +73,4 @@ export * from './lib/common/constants/view-breakpoint-streams';
|
|
|
72
73
|
export * from './lib/common/types/index';
|
|
73
74
|
export * from './lib/common/evo-base-control';
|
|
74
75
|
export * from './lib/common/Serializable';
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxhQUFhO0FBQ2IsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxhQUFhO0FBQ2IsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxZQUFZO0FBQ1osY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxhQUFhO0FBQ2IsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsV0FBVztBQUNYLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBldm8tdWkta2l0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXZvLXVpLWtpdC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZm9ybS1oZWxwZXIvZm9ybS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2V2by1jb250cm9sLXN0YXRlLW1hbmFnZXIvZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlci9ldm8tY29udHJvbC1zdGF0ZXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlci9ldm8tY29udHJvbC1zdGF0ZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2V2by1iYXNlLWNvbnRyb2wnO1xuXG4vLyBBbmltYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vYW5pbWF0aW9ucy9pbmRleCc7XG5cbi8vIENvbGxlY3Rpb25cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9jb2xsZWN0aW9uL2luZGV4JztcblxuLy8gRGVjb3JhdG9yc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVjb3JhdG9ycy9pbmRleCc7XG5cbi8vIERpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvaW5kZXgnO1xuXG4vLyBPcGVyYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZXJhdG9ycy9pbmRleCc7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLWFjY29yZGlvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1hbGVydC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1hdXRvY29tcGxldGUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tYmFkZ2UvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tYmFubmVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLWJ1dHRvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1jaGVja2JveC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1jaGlwL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLWNvbnRyb2wtZXJyb3IvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tY29udHJvbC1sYWJlbC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1jb3VudGVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLWRhdGVwaWNrZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8taWNvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1pY29uLWJ1dHRvbi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1pY29uLW51bWJlci9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLWlucHV0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLWlucHV0LWNvbnRlbnRlZGl0YWJsZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1sb2FkZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tbW9kYWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tbm90ZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1wYWdpbmF0b3IvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tcGx1cy1taW51cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1wb3BvdmVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLXBvcnRhbC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1yYWRpby9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1yYWRpby1ncm91cC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1yYWRpb3NoYXBlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLXNlZ21lbnRlZC1iYXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tc2VsZWN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLXNpZGViYXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tc3RlcHBlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1zdWJtZW51L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLXN3aXRjaGVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLXRhYmxlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLXRhYnMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tdGV4dGFyZWEvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tdG9hc3QvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tdG9nZ2xlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXZvLXVwbG9hZC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1kcm9wZG93bi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1uYXZiYXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tbmF2aWdhdGlvbi1idXR0b24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ldm8tdG9vbHRpcC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1uYXZpZ2F0aW9uLXRhYnMvaW5kZXgnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9pbmRleCc7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V2by1wb3J0YWwvaW5kZXgnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlci9ldm8tY29udHJvbC1zdGF0ZS1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mb3JtLWhlbHBlci9mb3JtLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vY29uc3RhbnRzL2Nzcy1icmVha3BvaW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vY29uc3RhbnRzL3ZpZXctYnJlYWtwb2ludC1zdHJlYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi90eXBlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZXZvLWJhc2UtY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vU2VyaWFsaXphYmxlJztcbiJdfQ==
|