@design-factory/design-factory 18.1.1 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/design-factory-initial-branding.css +1 -1
- package/design-factory.css +1 -1
- package/fesm2022/design-factory.mjs +748 -921
- package/fesm2022/design-factory.mjs.map +1 -1
- package/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.d.ts +3 -9
- package/lib/angular/accessibility/directives/skip-link.directive.d.ts +3 -9
- package/lib/angular/card/manage-card-selection.directive.d.ts +5 -5
- package/lib/angular/datepicker/datepicker-range.directive.d.ts +5 -6
- package/lib/angular/datepicker/datepicker.module.d.ts +3 -5
- package/lib/angular/inputs/icon/inputicon.directive.d.ts +5 -6
- package/lib/angular/mediaqueries/ifMedia.directive.d.ts +8 -9
- package/lib/angular/modal/modal.service.d.ts +4 -0
- package/lib/angular/progressbar/progressbar.component.d.ts +18 -28
- package/lib/angular/progressindicator/default/default-spinner.component.d.ts +4 -4
- package/lib/angular/progressindicator/progressindicator-backdrop.component.d.ts +4 -4
- package/lib/angular/progressindicator/progressindicator-container.component.d.ts +5 -7
- package/lib/angular/progressindicator/progressindicator.directive.d.ts +9 -11
- package/lib/angular/selects/events/manage-badge-events.directive.d.ts +4 -5
- package/lib/angular/selects/option-highlight.directive.d.ts +7 -12
- package/lib/angular/sidenav/dfSideNavCollapse.d.ts +16 -18
- package/lib/angular/sidenav/excludeTrap.directive.d.ts +9 -10
- package/lib/angular/sidenav/sidenav.component.d.ts +7 -8
- package/lib/angular/sidenav/sidenavlist.component.d.ts +8 -8
- package/lib/angular/slider/direction/sliderdirection.directive.d.ts +5 -7
- package/lib/angular/slider/lib/slider-element.directive.d.ts +2 -1
- package/lib/angular/slider/lib/slider-handle.directive.d.ts +1 -1
- package/lib/angular/slider/lib/slider-label.directive.d.ts +1 -1
- package/lib/angular/slider/lib/slider.component.d.ts +1 -1
- package/lib/angular/slider/lib/tooltip-wrapper.component.d.ts +1 -1
- package/lib/angular/slider/slider.module.d.ts +1 -1
- package/lib/angular/stepper/stepper.component.d.ts +7 -8
- package/lib/angular/utils/titleTruncate.directive.d.ts +2 -3
- package/lib/angular/waves-of-progress/waves.directive.d.ts +4 -3
- package/lib/index.d.ts +0 -1
- package/package.json +14 -16
- package/schematics/ng-add/index.js +1 -1
- package/styles/scss/agnosui/_variables.scss +9 -3
- package/styles/scss/bootstrap/_variables.scss +54 -12
- package/styles/scss/components/accordion/_accordion.scss +67 -6
- package/styles/scss/components/accordion/_accordion.variables.scss +2 -0
- package/styles/scss/components/alert/_alert.scss +3 -2
- package/styles/scss/components/badge/_badge.scss +13 -3
- package/styles/scss/components/badge/_badge.variables.scss +1 -0
- package/styles/scss/components/button/_button.scss +5 -0
- package/styles/scss/components/form/_form.scss +4 -0
- package/styles/scss/components/sidenav/_sidenav.scss +5 -2
- package/styles/scss/df-styles-namespace.scss +3 -1
- package/styles/scss/df-styles.scss +3 -1
- package/styles/scss/themes/brand2023/_variables.scss +80 -28
- package/esm2022/design-factory.mjs +0 -5
- package/esm2022/environment.mjs +0 -5
- package/esm2022/index.mjs +0 -5
- package/esm2022/lib/angular/accessibility/accessibility.module.mjs +0 -19
- package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +0 -32
- package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +0 -64
- package/esm2022/lib/angular/alert/alert.module.mjs +0 -17
- package/esm2022/lib/angular/animation/ngbTransition.mjs +0 -76
- package/esm2022/lib/angular/animation/util.mjs +0 -30
- package/esm2022/lib/angular/card/card-advanced.module.mjs +0 -17
- package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +0 -47
- package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +0 -38
- package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +0 -39
- package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +0 -101
- package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +0 -97
- package/esm2022/lib/angular/datepicker/datepicker.module.mjs +0 -42
- package/esm2022/lib/angular/df.module.mjs +0 -102
- package/esm2022/lib/angular/footer/footer.module.mjs +0 -17
- package/esm2022/lib/angular/icon/amadeus-icon.mjs +0 -79
- package/esm2022/lib/angular/icon/icon.module.mjs +0 -17
- package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +0 -47
- package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +0 -17
- package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +0 -28
- package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +0 -95
- package/esm2022/lib/angular/inputs/input-advanced.module.mjs +0 -19
- package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +0 -52
- package/esm2022/lib/angular/mediaqueries/media.module.mjs +0 -17
- package/esm2022/lib/angular/mediaqueries/media.service.mjs +0 -46
- package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +0 -185
- package/esm2022/lib/angular/modal/modal.service.mjs +0 -36
- package/esm2022/lib/angular/popover/config/popover.config.mjs +0 -15
- package/esm2022/lib/angular/popover/popover.module.mjs +0 -17
- package/esm2022/lib/angular/progressbar/progressbar.component.mjs +0 -156
- package/esm2022/lib/angular/progressbar/progressbar.module.mjs +0 -18
- package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +0 -23
- package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +0 -29
- package/esm2022/lib/angular/progressindicator/progressindicator-config.mjs +0 -25
- package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +0 -52
- package/esm2022/lib/angular/progressindicator/progressindicator-ref.mjs +0 -8
- package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +0 -39
- package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +0 -45
- package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +0 -170
- package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +0 -32
- package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +0 -65
- package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +0 -108
- package/esm2022/lib/angular/selects/option-highlight.directive.mjs +0 -59
- package/esm2022/lib/angular/selects/select.model.mjs +0 -2
- package/esm2022/lib/angular/selects/select.module.mjs +0 -22
- package/esm2022/lib/angular/sidenav/dfSideNavAnimation.mjs +0 -73
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +0 -94
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +0 -18
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +0 -37
- package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +0 -27
- package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +0 -55
- package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +0 -26
- package/esm2022/lib/angular/sidenav/sidenav-config.mjs +0 -25
- package/esm2022/lib/angular/sidenav/sidenav.component.mjs +0 -86
- package/esm2022/lib/angular/sidenav/sidenav.module.mjs +0 -52
- package/esm2022/lib/angular/sidenav/sidenav.service.mjs +0 -316
- package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +0 -59
- package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +0 -36
- package/esm2022/lib/angular/slider/lib/change-context.mjs +0 -3
- package/esm2022/lib/angular/slider/lib/compatibility-helper.mjs +0 -15
- package/esm2022/lib/angular/slider/lib/event-listener-helper.mjs +0 -77
- package/esm2022/lib/angular/slider/lib/event-listener.mjs +0 -3
- package/esm2022/lib/angular/slider/lib/math-helper.mjs +0 -15
- package/esm2022/lib/angular/slider/lib/options.mjs +0 -123
- package/esm2022/lib/angular/slider/lib/pointer-type.mjs +0 -9
- package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +0 -190
- package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +0 -65
- package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +0 -41
- package/esm2022/lib/angular/slider/lib/slider.component.mjs +0 -1998
- package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +0 -23
- package/esm2022/lib/angular/slider/lib/value-helper.mjs +0 -50
- package/esm2022/lib/angular/slider/slider.module.mjs +0 -37
- package/esm2022/lib/angular/stepper/stepper.component.mjs +0 -65
- package/esm2022/lib/angular/stepper/stepper.directive.mjs +0 -174
- package/esm2022/lib/angular/stepper/stepper.module.mjs +0 -17
- package/esm2022/lib/angular/stepper/stepper.service.mjs +0 -213
- package/esm2022/lib/angular/toast/toast.module.mjs +0 -17
- package/esm2022/lib/angular/tooltip/tooltip.module.mjs +0 -18
- package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +0 -31
- package/esm2022/lib/angular/utils/html-element-helper.mjs +0 -8
- package/esm2022/lib/angular/utils/scrollbar.service.mjs +0 -79
- package/esm2022/lib/angular/utils/titleTruncate.directive.mjs +0 -39
- package/esm2022/lib/angular/waves-of-progress/waves.directive.mjs +0 -86
- package/esm2022/lib/angular/waves-of-progress/waves.module.mjs +0 -16
- package/esm2022/lib/index.mjs +0 -93
- package/lib/angular/datepicker/closedatepicker.directive.d.ts +0 -10
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { DfSideNavComponent, DfSideNavHeaderDirective, DfSideNavIconDirective, DfSideNavItemDirective } from './sidenav.component';
|
|
3
|
-
import { DfManageSideNavDirective } from './manage-sidenav.directive';
|
|
4
|
-
import { DfMediaModule } from '../mediaqueries/media.module';
|
|
5
|
-
import { DfSideNavCollapseModule } from './dfSideNavCollapse.module';
|
|
6
|
-
import { DfExcludeTrapDirective } from '../sidenav/excludeTrap.directive';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export { DfSideNavComponent, DfSideNavHeaderDirective, DfSideNavIconDirective, DfSideNavItemDirective } from './sidenav.component';
|
|
9
|
-
export { DfManageSideNavDirective } from './manage-sidenav.directive';
|
|
10
|
-
export { DfExcludeTrapDirective } from '../sidenav/excludeTrap.directive';
|
|
11
|
-
export class DfSideNavModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, imports: [DfManageSideNavDirective,
|
|
14
|
-
DfSideNavComponent,
|
|
15
|
-
DfSideNavHeaderDirective,
|
|
16
|
-
DfExcludeTrapDirective,
|
|
17
|
-
DfSideNavIconDirective,
|
|
18
|
-
DfSideNavItemDirective], exports: [DfManageSideNavDirective,
|
|
19
|
-
DfSideNavComponent,
|
|
20
|
-
DfSideNavHeaderDirective,
|
|
21
|
-
DfExcludeTrapDirective,
|
|
22
|
-
DfSideNavIconDirective,
|
|
23
|
-
DfSideNavItemDirective,
|
|
24
|
-
DfSideNavCollapseModule,
|
|
25
|
-
DfMediaModule] }); }
|
|
26
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, imports: [DfSideNavComponent, DfSideNavCollapseModule,
|
|
27
|
-
DfMediaModule] }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, decorators: [{
|
|
30
|
-
type: NgModule,
|
|
31
|
-
args: [{
|
|
32
|
-
imports: [
|
|
33
|
-
DfManageSideNavDirective,
|
|
34
|
-
DfSideNavComponent,
|
|
35
|
-
DfSideNavHeaderDirective,
|
|
36
|
-
DfExcludeTrapDirective,
|
|
37
|
-
DfSideNavIconDirective,
|
|
38
|
-
DfSideNavItemDirective
|
|
39
|
-
],
|
|
40
|
-
exports: [
|
|
41
|
-
DfManageSideNavDirective,
|
|
42
|
-
DfSideNavComponent,
|
|
43
|
-
DfSideNavHeaderDirective,
|
|
44
|
-
DfExcludeTrapDirective,
|
|
45
|
-
DfSideNavIconDirective,
|
|
46
|
-
DfSideNavItemDirective,
|
|
47
|
-
DfSideNavCollapseModule,
|
|
48
|
-
DfMediaModule
|
|
49
|
-
]
|
|
50
|
-
}]
|
|
51
|
-
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2lkZW5hdi9zaWRlbmF2Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRTFFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQXNCMUUsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBbEJ4Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHNCQUFzQixhQUd0Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsYUFBYTsrR0FHSixlQUFlLFlBakJ4QixrQkFBa0IsRUFhbEIsdUJBQXVCO1lBQ3ZCLGFBQWE7OzJGQUdKLGVBQWU7a0JBcEIzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCx3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERmU2lkZU5hdkNvbXBvbmVudCxcbiAgRGZTaWRlTmF2SGVhZGVyRGlyZWN0aXZlLFxuICBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLFxuICBEZlNpZGVOYXZJdGVtRGlyZWN0aXZlXG59IGZyb20gJy4vc2lkZW5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZNYW5hZ2VTaWRlTmF2RGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2Utc2lkZW5hdi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGZNZWRpYU1vZHVsZSB9IGZyb20gJy4uL21lZGlhcXVlcmllcy9tZWRpYS5tb2R1bGUnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUgfSBmcm9tICcuL2RmU2lkZU5hdkNvbGxhcHNlLm1vZHVsZSc7XG5pbXBvcnQgeyBEZkV4Y2x1ZGVUcmFwRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2lkZW5hdi9leGNsdWRlVHJhcC5kaXJlY3RpdmUnO1xuXG5leHBvcnQge1xuICBEZlNpZGVOYXZDb21wb25lbnQsXG4gIERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZSxcbiAgRGZTaWRlTmF2SWNvbkRpcmVjdGl2ZSxcbiAgRGZTaWRlTmF2SXRlbURpcmVjdGl2ZVxufSBmcm9tICcuL3NpZGVuYXYuY29tcG9uZW50JztcbmV4cG9ydCB7IERmTWFuYWdlU2lkZU5hdkRpcmVjdGl2ZSB9IGZyb20gJy4vbWFuYWdlLXNpZGVuYXYuZGlyZWN0aXZlJztcbmV4cG9ydCB7IERmRXhjbHVkZVRyYXBEaXJlY3RpdmUgfSBmcm9tICcuLi9zaWRlbmF2L2V4Y2x1ZGVUcmFwLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBEZk1hbmFnZVNpZGVOYXZEaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2Q29tcG9uZW50LFxuICAgIERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZSxcbiAgICBEZkV4Y2x1ZGVUcmFwRGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkljb25EaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2SXRlbURpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRGZNYW5hZ2VTaWRlTmF2RGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkNvbXBvbmVudCxcbiAgICBEZlNpZGVOYXZIZWFkZXJEaXJlY3RpdmUsXG4gICAgRGZFeGNsdWRlVHJhcERpcmVjdGl2ZSxcbiAgICBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkl0ZW1EaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUsXG4gICAgRGZNZWRpYU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERmU2lkZU5hdk1vZHVsZSB7fVxuIl19
|
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./sidenav-config";
|
|
5
|
-
export var DfNavItemType;
|
|
6
|
-
(function (DfNavItemType) {
|
|
7
|
-
DfNavItemType[DfNavItemType["subMenus"] = 0] = "subMenus";
|
|
8
|
-
DfNavItemType[DfNavItemType["actionButton"] = 1] = "actionButton";
|
|
9
|
-
DfNavItemType[DfNavItemType["routerLink"] = 2] = "routerLink";
|
|
10
|
-
DfNavItemType[DfNavItemType["link"] = 3] = "link";
|
|
11
|
-
DfNavItemType[DfNavItemType["externalLink"] = 4] = "externalLink";
|
|
12
|
-
DfNavItemType[DfNavItemType["separator"] = 5] = "separator";
|
|
13
|
-
DfNavItemType[DfNavItemType["template"] = 6] = "template";
|
|
14
|
-
DfNavItemType[DfNavItemType["title"] = 7] = "title";
|
|
15
|
-
})(DfNavItemType || (DfNavItemType = {}));
|
|
16
|
-
/**
|
|
17
|
-
* A service for managing the sidenav panel.
|
|
18
|
-
* This service is included at root level
|
|
19
|
-
*
|
|
20
|
-
* Creating a sidenav is straightforward: use [DfSideNavComponent](#/components/sidenav/api#DfSideNavComponent) component
|
|
21
|
-
*/
|
|
22
|
-
export class DfSideNavService {
|
|
23
|
-
constructor(config) {
|
|
24
|
-
this.config = config;
|
|
25
|
-
this.type = DfNavItemType;
|
|
26
|
-
this._items = [];
|
|
27
|
-
this.subscription = new Subscription();
|
|
28
|
-
this._sideNavItems$ = new BehaviorSubject([]);
|
|
29
|
-
this._isMinmized$ = new BehaviorSubject(config.isMinmized);
|
|
30
|
-
this._isCollapsed$ = new BehaviorSubject(config.isCollapsed);
|
|
31
|
-
this._isPresent$ = new BehaviorSubject(config.isPresent);
|
|
32
|
-
this._isInMenuOverlay$ = new BehaviorSubject(config.isInMenuOverlay);
|
|
33
|
-
this._isAppOverlay$ = new BehaviorSubject(config.isAppOverlay);
|
|
34
|
-
this._activeItem$ = new BehaviorSubject(null);
|
|
35
|
-
this._isAppOverlayMode = config.isAppOverlayMode;
|
|
36
|
-
this.subscription.add(this._isCollapsed$.subscribe(() => {
|
|
37
|
-
this.updateOverLay();
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
ngOnDestroy() {
|
|
41
|
-
this.subscription.unsubscribe();
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Use this to init the list of Elements from your sidenav
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* Second option withRouter is to be set to false if you are not passing link string for the angular Router
|
|
48
|
-
* Here we are not deep copying the array --> the function will change it
|
|
49
|
-
*/
|
|
50
|
-
initItems(items, withRouter = true) {
|
|
51
|
-
this._items = items;
|
|
52
|
-
this.addNavItemType(withRouter);
|
|
53
|
-
this.setActiveItem(this._items);
|
|
54
|
-
this.dispatchSideNavItems();
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Use this to inactivate the list of Elements from your sidenav
|
|
58
|
-
* isActive properties of all items will be set to false recursively
|
|
59
|
-
*
|
|
60
|
-
*/
|
|
61
|
-
inactiveItems(list) {
|
|
62
|
-
list.forEach((item) => {
|
|
63
|
-
item.isActive = false;
|
|
64
|
-
if (item.subMenus) {
|
|
65
|
-
this.inactiveItems(item.subMenus);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
this.dispatchSideNavItems();
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Use this to active the item pass as input
|
|
72
|
-
* This function inactivate all the other items of the service
|
|
73
|
-
* It will then dispatch the list of items of the sideNav to activeItem$
|
|
74
|
-
*
|
|
75
|
-
*/
|
|
76
|
-
activeItem(item) {
|
|
77
|
-
this.inactiveItems(this._items);
|
|
78
|
-
item.isActive = true;
|
|
79
|
-
this._activeItem$.next(item);
|
|
80
|
-
this.dispatchSideNavItems();
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Getter to know when to put/remove the overlay.
|
|
84
|
-
* `True` in case of overlay needed
|
|
85
|
-
*
|
|
86
|
-
*/
|
|
87
|
-
get isAppOverlay$() {
|
|
88
|
-
return this._isAppOverlay$.asObservable();
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Getter to know if the sidenav is in an overlay panel or not
|
|
92
|
-
* `True` in case of overlay panel
|
|
93
|
-
*
|
|
94
|
-
*/
|
|
95
|
-
get isInMenuOverlay$() {
|
|
96
|
-
return this._isInMenuOverlay$.asObservable();
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Getter to know the current activeItem a user clicked on
|
|
100
|
-
*
|
|
101
|
-
*/
|
|
102
|
-
get activeItem$() {
|
|
103
|
-
return this._activeItem$.asObservable();
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Getter to know if the sideNav is present in the page
|
|
107
|
-
* SideNav may be collapsed here or not
|
|
108
|
-
*
|
|
109
|
-
*/
|
|
110
|
-
get isPresent$() {
|
|
111
|
-
return this._isPresent$.asObservable();
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Future Options
|
|
115
|
-
*/
|
|
116
|
-
get isMinimized$() {
|
|
117
|
-
return this._isMinmized$.asObservable();
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Getter to know if the SideNav is collapsed or not
|
|
121
|
-
* If `true` the SideNav is collapsed
|
|
122
|
-
*
|
|
123
|
-
*/
|
|
124
|
-
get isCollapsed$() {
|
|
125
|
-
return this._isCollapsed$.asObservable();
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Getter of the SideNav Items after they have beens changed
|
|
129
|
-
*
|
|
130
|
-
*/
|
|
131
|
-
get sideNavItems$() {
|
|
132
|
-
return this._sideNavItems$.asObservable();
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Getter to know the mode Apply for the SideNav
|
|
136
|
-
* If `true` the SideNav can be in overlay (but not necessary is).
|
|
137
|
-
*
|
|
138
|
-
*/
|
|
139
|
-
get isAppOverlayMode() {
|
|
140
|
-
return this._isAppOverlayMode;
|
|
141
|
-
}
|
|
142
|
-
// initItems must be used to push new items to the service
|
|
143
|
-
get items() {
|
|
144
|
-
return this._items;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Use this to toggle a SideNav Item (either from expand to collapse or the other way around).
|
|
148
|
-
* isCollapsed attribute of the input item is changed.
|
|
149
|
-
* All items are push again to the stream of items.
|
|
150
|
-
* This is used internally by the SideNav in case of click and Enter on an Item with subMenus
|
|
151
|
-
*/
|
|
152
|
-
toggle(itemInput) {
|
|
153
|
-
itemInput.isCollapsed = !itemInput.isCollapsed;
|
|
154
|
-
this.dispatchSideNavItems();
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
*
|
|
158
|
-
* @param itemInput
|
|
159
|
-
*/
|
|
160
|
-
collapseItem(itemInput) {
|
|
161
|
-
this.collapse(itemInput, this._items);
|
|
162
|
-
this.dispatchSideNavItems();
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Use this to collapseAll items
|
|
166
|
-
*/
|
|
167
|
-
collapseAllItems() {
|
|
168
|
-
this.collapseAll(this._items);
|
|
169
|
-
this.dispatchSideNavItems();
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Use this to set/unset the SideNav in an Overlay Menu
|
|
173
|
-
* If input is `True` then the SideNav will be in an Overlay Menu
|
|
174
|
-
* (when not collapsed)
|
|
175
|
-
*
|
|
176
|
-
*/
|
|
177
|
-
setInMenuSideNav(on) {
|
|
178
|
-
this._isInMenuOverlay$.next(on);
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Use this to collapse the SideNav
|
|
182
|
-
*
|
|
183
|
-
*/
|
|
184
|
-
hideSideNav() {
|
|
185
|
-
this._isCollapsed$.next(true);
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Use this to make the SideNav visible (uncollapse)
|
|
189
|
-
*
|
|
190
|
-
*/
|
|
191
|
-
showSideNav() {
|
|
192
|
-
this._isCollapsed$.next(false);
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Use this to toggle the SideNav status collapse/visible
|
|
196
|
-
*
|
|
197
|
-
*/
|
|
198
|
-
toggleSideNav() {
|
|
199
|
-
this._isCollapsed$.next(!this._isCollapsed$.value);
|
|
200
|
-
}
|
|
201
|
-
// internal usage from the SideNav. Call when component is destroy
|
|
202
|
-
removeSideBar() {
|
|
203
|
-
this._isCollapsed$.next(this.config.isCollapsed);
|
|
204
|
-
this._isPresent$.next(false);
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Use this to set the App Overlay Mode
|
|
208
|
-
* Input `True` if you want to set the AppOverlay
|
|
209
|
-
* An event is send to isAppOverlay$ depending on your status
|
|
210
|
-
* if Input = `True` and isCollapsed = `False` then isAppOverlay$
|
|
211
|
-
* will be `True`
|
|
212
|
-
*
|
|
213
|
-
*/
|
|
214
|
-
setAppOverlayMode(on) {
|
|
215
|
-
this._isAppOverlayMode = on;
|
|
216
|
-
this.updateOverLay();
|
|
217
|
-
}
|
|
218
|
-
// Internal usage to the sidenav component
|
|
219
|
-
// Do not use
|
|
220
|
-
setSideNav() {
|
|
221
|
-
this._isPresent$.next(true);
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
*
|
|
225
|
-
* @param itemInput
|
|
226
|
-
* @param itemsList
|
|
227
|
-
*/
|
|
228
|
-
collapse(itemInput, itemsList) {
|
|
229
|
-
for (const item of itemsList) {
|
|
230
|
-
if (item === itemInput && item.subMenus) {
|
|
231
|
-
item.isCollapsed = true;
|
|
232
|
-
return true; // propagate the collapse up
|
|
233
|
-
}
|
|
234
|
-
else if (item === itemInput) {
|
|
235
|
-
return true;
|
|
236
|
-
}
|
|
237
|
-
else if (item.subMenus) {
|
|
238
|
-
const needcol = this.collapse(itemInput, item.subMenus);
|
|
239
|
-
if (needcol) {
|
|
240
|
-
item.isCollapsed = true; // collapse it
|
|
241
|
-
return true; // propagate the collapse up
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return false;
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
*
|
|
249
|
-
* @param itemsList
|
|
250
|
-
*/
|
|
251
|
-
collapseAll(itemsList) {
|
|
252
|
-
itemsList.forEach((item) => {
|
|
253
|
-
if (item.subMenus) {
|
|
254
|
-
item.isCollapsed = true;
|
|
255
|
-
this.collapseAll(item.subMenus);
|
|
256
|
-
}
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
// Only one item at the time must be active
|
|
260
|
-
// Active flag in item is only valid for action button and link
|
|
261
|
-
// Router link does not use this active flag to work
|
|
262
|
-
// It is up to you to inactivateItems when needed when you mix actionButton and router link
|
|
263
|
-
// To avoid more than one active state visible
|
|
264
|
-
setActiveItem(items, foundAnActive = false) {
|
|
265
|
-
let foundActive = foundAnActive;
|
|
266
|
-
items.forEach((item) => {
|
|
267
|
-
if (item.isActive && foundAnActive) {
|
|
268
|
-
throw Error('DfSideNavService must be init with only one isActive item');
|
|
269
|
-
}
|
|
270
|
-
else if (item.isActive) {
|
|
271
|
-
this._activeItem$.next(item);
|
|
272
|
-
foundActive = true;
|
|
273
|
-
}
|
|
274
|
-
if (item.subMenus) {
|
|
275
|
-
foundActive = this.setActiveItem(item.subMenus, foundActive);
|
|
276
|
-
}
|
|
277
|
-
});
|
|
278
|
-
return foundActive;
|
|
279
|
-
}
|
|
280
|
-
addNavItemType(withRouter, items = this._items) {
|
|
281
|
-
items.forEach((item) => {
|
|
282
|
-
if (!item.type) {
|
|
283
|
-
if (item.subMenus) {
|
|
284
|
-
item.type = DfNavItemType.subMenus;
|
|
285
|
-
}
|
|
286
|
-
else if (item.isExternal) {
|
|
287
|
-
item.type = DfNavItemType.externalLink;
|
|
288
|
-
}
|
|
289
|
-
else if (withRouter) {
|
|
290
|
-
item.type = DfNavItemType.routerLink;
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
item.type = DfNavItemType.actionButton;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
if (item.subMenus) {
|
|
297
|
-
this.addNavItemType(withRouter, item.subMenus);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
dispatchSideNavItems() {
|
|
302
|
-
this._sideNavItems$.next(this._items);
|
|
303
|
-
}
|
|
304
|
-
updateOverLay() {
|
|
305
|
-
this._isAppOverlay$.next(this.isAppOverlayMode && this._isCollapsed$.value === false);
|
|
306
|
-
}
|
|
307
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavService, deps: [{ token: i1.DfSideNavConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
308
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavService, providedIn: 'root' }); }
|
|
309
|
-
}
|
|
310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavService, decorators: [{
|
|
311
|
-
type: Injectable,
|
|
312
|
-
args: [{
|
|
313
|
-
providedIn: 'root'
|
|
314
|
-
}]
|
|
315
|
-
}], ctorParameters: () => [{ type: i1.DfSideNavConfig }] });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFlakUsTUFBTSxDQUFOLElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUN2Qix5REFBUSxDQUFBO0lBQ1IsaUVBQVksQ0FBQTtJQUNaLDZEQUFVLENBQUE7SUFDVixpREFBSSxDQUFBO0lBQ0osaUVBQVksQ0FBQTtJQUNaLDJEQUFTLENBQUE7SUFDVCx5REFBUSxDQUFBO0lBQ1IsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFUVyxhQUFhLEtBQWIsYUFBYSxRQVN4QjtBQUVEOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQWEzQixZQUE2QixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQVo3QyxTQUFJLEdBQUcsYUFBYSxDQUFDO1FBU3BCLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBQ3BCLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsU0FBUyxDQUFD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bkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29uZmlnIH0gZnJvbSAnLi9zaWRlbmF2LWNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGZTaWRlTmF2SXRlbSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgaXNFeHRlcm5hbD86IGJvb2xlYW47XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xuICBicmVha3BvaW50cz86IHN0cmluZ1tdO1xuICBzdWJNZW51cz86IERmU2lkZU5hdkl0ZW1bXTtcbiAgdHlwZT86IERmTmF2SXRlbVR5cGU7XG59XG5cbmV4cG9ydCBlbnVtIERmTmF2SXRlbVR5cGUge1xuICBzdWJNZW51cyxcbiAgYWN0aW9uQnV0dG9uLFxuICByb3V0ZXJMaW5rLFxuICBsaW5rLFxuICBleHRlcm5hbExpbmssXG4gIHNlcGFyYXRvcixcbiAgdGVtcGxhdGUsXG4gIHRpdGxlXG59XG5cbi8qKlxuICogQSBzZXJ2aWNlIGZvciBtYW5hZ2luZyB0aGUgc2lkZW5hdiBwYW5lbC5cbiAqIFRoaXMgc2VydmljZSBpcyBpbmNsdWRlZCBhdCByb290IGxldmVsXG4gKlxuICogQ3JlYXRpbmcgYSBzaWRlbmF2IGlzIHN0cmFpZ2h0Zm9yd2FyZDogdXNlIFtEZlNpZGVOYXZDb21wb25lbnRdKCMvY29tcG9uZW50cy9zaWRlbmF2L2FwaSNEZlNpZGVOYXZDb21wb25lbnQpIGNvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHR5cGUgPSBEZk5hdkl0ZW1UeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaWRlTmF2SXRlbXMkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc01pbm1pemVkJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNDb2xsYXBzZWQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc1ByZXNlbnQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVJdGVtJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNJbk1lbnVPdmVybGF5JDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNBcHBPdmVybGF5JDtcbiAgcHJpdmF0ZSBfaXNBcHBPdmVybGF5TW9kZTtcbiAgcHJpdmF0ZSBfaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBEZlNpZGVOYXZDb25maWcpIHtcbiAgICB0aGlzLl9zaWRlTmF2SXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEZlNpZGVOYXZJdGVtW10+KFtdKTtcbiAgICB0aGlzLl9pc01pbm1pemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzTWlubWl6ZWQpO1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzQ29sbGFwc2VkKTtcbiAgICB0aGlzLl9pc1ByZXNlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNQcmVzZW50KTtcbiAgICB0aGlzLl9pc0luTWVudU92ZXJsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNJbk1lbnVPdmVybGF5KTtcbiAgICB0aGlzLl9pc0FwcE92ZXJsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNBcHBPdmVybGF5KTtcbiAgICB0aGlzLl9hY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGZTaWRlTmF2SXRlbSB8IG51bGw+KG51bGwpO1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheU1vZGUgPSBjb25maWcuaXNBcHBPdmVybGF5TW9kZTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLl9pc0NvbGxhcHNlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVPdmVyTGF5KCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGluaXQgdGhlIGxpc3Qgb2YgRWxlbWVudHMgZnJvbSB5b3VyIHNpZGVuYXZcbiAgICpcbiAgICpcbiAgICogU2Vjb25kIG9wdGlvbiB3aXRoUm91dGVyIGlzIHRvIGJlIHNldCB0byBmYWxzZSBpZiB5b3UgYXJlIG5vdCBwYXNzaW5nIGxpbmsgc3RyaW5nIGZvciB0aGUgYW5ndWxhciBSb3V0ZXJcbiAgICogSGVyZSB3ZSBhcmUgbm90IGRlZXAgY29weWluZyB0aGUgYXJyYXkgLS0+IHRoZSBmdW5jdGlvbiB3aWxsIGNoYW5nZSBpdFxuICAgKi9cbiAgaW5pdEl0ZW1zKGl0ZW1zOiBEZlNpZGVOYXZJdGVtW10sIHdpdGhSb3V0ZXIgPSB0cnVlKSB7XG4gICAgdGhpcy5faXRlbXMgPSBpdGVtcztcbiAgICB0aGlzLmFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXIpO1xuICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLl9pdGVtcyk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGluYWN0aXZhdGUgdGhlIGxpc3Qgb2YgRWxlbWVudHMgZnJvbSB5b3VyIHNpZGVuYXZcbiAgICogaXNBY3RpdmUgcHJvcGVydGllcyBvZiBhbGwgaXRlbXMgd2lsbCBiZSBzZXQgdG8gZmFsc2UgcmVjdXJzaXZlbHlcbiAgICpcbiAgICovXG4gIGluYWN0aXZlSXRlbXMobGlzdDogRGZTaWRlTmF2SXRlbVtdKSB7XG4gICAgbGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICB0aGlzLmluYWN0aXZlSXRlbXMoaXRlbS5zdWJNZW51cyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGFjdGl2ZSB0aGUgaXRlbSBwYXNzIGFzIGlucHV0XG4gICAqIFRoaXMgZnVuY3Rpb24gaW5hY3RpdmF0ZSBhbGwgdGhlIG90aGVyIGl0ZW1zIG9mIHRoZSBzZXJ2aWNlXG4gICAqIEl0IHdpbGwgdGhlbiBkaXNwYXRjaCB0aGUgbGlzdCBvZiBpdGVtcyBvZiB0aGUgc2lkZU5hdiB0byBhY3RpdmVJdGVtJFxuICAgKlxuICAgKi9cbiAgYWN0aXZlSXRlbShpdGVtOiBEZlNpZGVOYXZJdGVtKSB7XG4gICAgdGhpcy5pbmFjdGl2ZUl0ZW1zKHRoaXMuX2l0ZW1zKTtcbiAgICBpdGVtLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLl9hY3RpdmVJdGVtJC5uZXh0KGl0ZW0pO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyB3aGVuIHRvIHB1dC9yZW1vdmUgdGhlIG92ZXJsYXkuXG4gICAqIGBUcnVlYCBpbiBjYXNlIG9mIG92ZXJsYXkgbmVlZGVkXG4gICAqXG4gICAqL1xuICBnZXQgaXNBcHBPdmVybGF5JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNBcHBPdmVybGF5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyBpZiB0aGUgc2lkZW5hdiBpcyBpbiBhbiBvdmVybGF5IHBhbmVsIG9yIG5vdFxuICAgKiBgVHJ1ZWAgaW4gY2FzZSBvZiBvdmVybGF5IHBhbmVsXG4gICAqXG4gICAqL1xuICBnZXQgaXNJbk1lbnVPdmVybGF5JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNJbk1lbnVPdmVybGF5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyB0aGUgY3VycmVudCBhY3RpdmVJdGVtIGEgdXNlciBjbGlja2VkIG9uXG4gICAqXG4gICAqL1xuICBnZXQgYWN0aXZlSXRlbSQoKTogT2JzZXJ2YWJsZTxEZlNpZGVOYXZJdGVtIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVJdGVtJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyBpZiB0aGUgc2lkZU5hdiBpcyBwcmVzZW50IGluIHRoZSBwYWdlXG4gICAqIFNpZGVOYXYgbWF5IGJlIGNvbGxhcHNlZCBoZXJlIG9yIG5vdFxuICAgKlxuICAgKi9cbiAgZ2V0IGlzUHJlc2VudCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzUHJlc2VudCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogRnV0dXJlIE9wdGlvbnNcbiAgICovXG4gIGdldCBpc01pbmltaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTWlubWl6ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBTaWRlTmF2IGlzIGNvbGxhcHNlZCBvciBub3RcbiAgICogSWYgYHRydWVgIHRoZSBTaWRlTmF2IGlzIGNvbGxhcHNlZFxuICAgKlxuICAgKi9cbiAgZ2V0IGlzQ29sbGFwc2VkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNDb2xsYXBzZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBvZiB0aGUgU2lkZU5hdiBJdGVtcyBhZnRlciB0aGV5IGhhdmUgYmVlbnMgY2hhbmdlZFxuICAgKlxuICAgKi9cbiAgZ2V0IHNpZGVOYXZJdGVtcyQoKTogT2JzZXJ2YWJsZTxEZlNpZGVOYXZJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5fc2lkZU5hdkl0ZW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyB0aGUgbW9kZSBBcHBseSBmb3IgdGhlIFNpZGVOYXZcbiAgICogSWYgYHRydWVgIHRoZSBTaWRlTmF2IGNhbiBiZSBpbiBvdmVybGF5IChidXQgbm90IG5lY2Vzc2FyeSBpcykuXG4gICAqXG4gICAqL1xuICBnZXQgaXNBcHBPdmVybGF5TW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNBcHBPdmVybGF5TW9kZTtcbiAgfVxuXG4gIC8vIGluaXRJdGVtcyBtdXN0IGJlIHVzZWQgdG8gcHVzaCBuZXcgaXRlbXMgdG8gdGhlIHNlcnZpY2VcbiAgZ2V0IGl0ZW1zKCk6IERmU2lkZU5hdkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHRvZ2dsZSBhIFNpZGVOYXYgSXRlbSAoZWl0aGVyIGZyb20gZXhwYW5kIHRvIGNvbGxhcHNlIG9yIHRoZSBvdGhlciB3YXkgYXJvdW5kKS5cbiAgICogaXNDb2xsYXBzZWQgYXR0cmlidXRlIG9mIHRoZSBpbnB1dCBpdGVtIGlzIGNoYW5nZWQuXG4gICAqIEFsbCBpdGVtcyBhcmUgcHVzaCBhZ2FpbiB0byB0aGUgc3RyZWFtIG9mIGl0ZW1zLlxuICAgKiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgU2lkZU5hdiBpbiBjYXNlIG9mIGNsaWNrIGFuZCBFbnRlciBvbiBhbiBJdGVtIHdpdGggc3ViTWVudXNcbiAgICovXG4gIHRvZ2dsZShpdGVtSW5wdXQ6IERmU2lkZU5hdkl0ZW0pIHtcbiAgICBpdGVtSW5wdXQuaXNDb2xsYXBzZWQgPSAhaXRlbUlucHV0LmlzQ29sbGFwc2VkO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbUlucHV0XG4gICAqL1xuICBjb2xsYXBzZUl0ZW0oaXRlbUlucHV0OiBEZlNpZGVOYXZJdGVtKSB7XG4gICAgdGhpcy5jb2xsYXBzZShpdGVtSW5wdXQsIHRoaXMuX2l0ZW1zKTtcbiAgICB0aGlzLmRpc3BhdGNoU2lkZU5hdkl0ZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gY29sbGFwc2VBbGwgaXRlbXNcbiAgICovXG4gIGNvbGxhcHNlQWxsSXRlbXMoKSB7XG4gICAgdGhpcy5jb2xsYXBzZUFsbCh0aGlzLl9pdGVtcyk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHNldC91bnNldCB0aGUgU2lkZU5hdiBpbiBhbiBPdmVybGF5IE1lbnVcbiAgICogSWYgaW5wdXQgaXMgYFRydWVgIHRoZW4gdGhlIFNpZGVOYXYgd2lsbCBiZSBpbiBhbiBPdmVybGF5IE1lbnVcbiAgICogKHdoZW4gbm90IGNvbGxhcHNlZClcbiAgICpcbiAgICovXG4gIHNldEluTWVudVNpZGVOYXYob246IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0luTWVudU92ZXJsYXkkLm5leHQob24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGNvbGxhcHNlIHRoZSBTaWRlTmF2XG4gICAqXG4gICAqL1xuICBoaWRlU2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBtYWtlIHRoZSBTaWRlTmF2IHZpc2libGUgKHVuY29sbGFwc2UpXG4gICAqXG4gICAqL1xuICBzaG93U2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gdG9nZ2xlIHRoZSBTaWRlTmF2IHN0YXR1cyBjb2xsYXBzZS92aXNpYmxlXG4gICAqXG4gICAqL1xuICB0b2dnbGVTaWRlTmF2KCkge1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJC5uZXh0KCF0aGlzLl9pc0NvbGxhcHNlZCQudmFsdWUpO1xuICB9XG5cbiAgLy8gaW50ZXJuYWwgdXNhZ2UgZnJvbSB0aGUgU2lkZU5hdi4gQ2FsbCB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95XG4gIHJlbW92ZVNpZGVCYXIoKSB7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkLm5leHQodGhpcy5jb25maWcuaXNDb2xsYXBzZWQpO1xuICAgIHRoaXMuX2lzUHJlc2VudCQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gc2V0IHRoZSBBcHAgT3ZlcmxheSBNb2RlXG4gICAqIElucHV0IGBUcnVlYCBpZiB5b3Ugd2FudCB0byBzZXQgdGhlIEFwcE92ZXJsYXlcbiAgICogQW4gZXZlbnQgaXMgc2VuZCB0byBpc0FwcE92ZXJsYXkkIGRlcGVuZGluZyBvbiB5b3VyIHN0YXR1c1xuICAgKiBpZiBJbnB1dCA9IGBUcnVlYCBhbmQgaXNDb2xsYXBzZWQgPSBgRmFsc2VgIHRoZW4gaXNBcHBPdmVybGF5JFxuICAgKiB3aWxsIGJlIGBUcnVlYFxuICAgKlxuICAgKi9cbiAgc2V0QXBwT3ZlcmxheU1vZGUob246IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0FwcE92ZXJsYXlNb2RlID0gb247XG4gICAgdGhpcy51cGRhdGVPdmVyTGF5KCk7XG4gIH1cblxuICAvLyBJbnRlcm5hbCB1c2FnZSB0byB0aGUgc2lkZW5hdiBjb21wb25lbnRcbiAgLy8gRG8gbm90IHVzZVxuICBzZXRTaWRlTmF2KCkge1xuICAgIHRoaXMuX2lzUHJlc2VudCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbUlucHV0XG4gICAqIEBwYXJhbSBpdGVtc0xpc3RcbiAgICovXG4gIHByaXZhdGUgY29sbGFwc2UoaXRlbUlucHV0OiBEZlNpZGVOYXZJdGVtLCBpdGVtc0xpc3Q6IERmU2lkZU5hdkl0ZW1bXSk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtc0xpc3QpIHtcbiAgICAgIGlmIChpdGVtID09PSBpdGVtSW5wdXQgJiYgaXRlbS5zdWJNZW51cykge1xuICAgICAgICBpdGVtLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIHByb3BhZ2F0ZSB0aGUgY29sbGFwc2UgdXBcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSA9PT0gaXRlbUlucHV0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGNvbnN0IG5lZWRjb2wgPSB0aGlzLmNvbGxhcHNlKGl0ZW1JbnB1dCwgaXRlbS5zdWJNZW51cyk7XG4gICAgICAgIGlmIChuZWVkY29sKSB7XG4gICAgICAgICAgaXRlbS5pc0NvbGxhcHNlZCA9IHRydWU7IC8vIGNvbGxhcHNlIGl0XG4gICAgICAgICAgcmV0dXJuIHRydWU7IC8vIHByb3BhZ2F0ZSB0aGUgY29sbGFwc2UgdXBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGl0ZW1zTGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbChpdGVtc0xpc3Q6IERmU2lkZU5hdkl0ZW1bXSkge1xuICAgIGl0ZW1zTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICBpdGVtLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUFsbChpdGVtLnN1Yk1lbnVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIE9ubHkgb25lIGl0ZW0gYXQgdGhlIHRpbWUgbXVzdCBiZSBhY3RpdmVcbiAgLy8gQWN0aXZlIGZsYWcgaW4gaXRlbSBpcyBvbmx5IHZhbGlkIGZvciBhY3Rpb24gYnV0dG9uIGFuZCBsaW5rXG4gIC8vIFJvdXRlciBsaW5rIGRvZXMgbm90IHVzZSB0aGlzIGFjdGl2ZSBmbGFnIHRvIHdvcmtcbiAgLy8gSXQgaXMgdXAgdG8geW91IHRvIGluYWN0aXZhdGVJdGVtcyB3aGVuIG5lZWRlZCB3aGVuIHlvdSBtaXggYWN0aW9uQnV0dG9uIGFuZCByb3V0ZXIgbGlua1xuICAvLyBUbyBhdm9pZCBtb3JlIHRoYW4gb25lIGFjdGl2ZSBzdGF0ZSB2aXNpYmxlXG4gIHByaXZhdGUgc2V0QWN0aXZlSXRlbShpdGVtczogRGZTaWRlTmF2SXRlbVtdLCBmb3VuZEFuQWN0aXZlID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBsZXQgZm91bmRBY3RpdmUgPSBmb3VuZEFuQWN0aXZlO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLmlzQWN0aXZlICYmIGZvdW5kQW5BY3RpdmUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0RmU2lkZU5hdlNlcnZpY2UgbXVzdCBiZSBpbml0IHdpdGggb25seSBvbmUgaXNBY3RpdmUgaXRlbScpO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICAgIGZvdW5kQWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGZvdW5kQWN0aXZlID0gdGhpcy5zZXRBY3RpdmVJdGVtKGl0ZW0uc3ViTWVudXMsIGZvdW5kQWN0aXZlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRBY3RpdmU7XG4gIH1cblxuICBwcml2YXRlIGFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXI6IGJvb2xlYW4sIGl0ZW1zOiBEZlNpZGVOYXZJdGVtW10gPSB0aGlzLl9pdGVtcykge1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICghaXRlbS50eXBlKSB7XG4gICAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5zdWJNZW51cztcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLmlzRXh0ZXJuYWwpIHtcbiAgICAgICAgICBpdGVtLnR5cGUgPSBEZk5hdkl0ZW1UeXBlLmV4dGVybmFsTGluaztcbiAgICAgICAgfSBlbHNlIGlmICh3aXRoUm91dGVyKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5yb3V0ZXJMaW5rO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW0udHlwZSA9IERmTmF2SXRlbVR5cGUuYWN0aW9uQnV0dG9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICB0aGlzLmFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXIsIGl0ZW0uc3ViTWVudXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaFNpZGVOYXZJdGVtcygpIHtcbiAgICB0aGlzLl9zaWRlTmF2SXRlbXMkLm5leHQodGhpcy5faXRlbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVPdmVyTGF5KCkge1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheSQubmV4dCh0aGlzLmlzQXBwT3ZlcmxheU1vZGUgJiYgdGhpcy5faXNDb2xsYXBzZWQkLnZhbHVlID09PSBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Component, Input, inject } from '@angular/core';
|
|
2
|
-
import { DfSideNavService } from './sidenav.service';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { RouterModule } from '@angular/router';
|
|
6
|
-
import { DfMediaModule } from '../mediaqueries/media.module';
|
|
7
|
-
import { DfSideNavCollapseModule } from './dfSideNavCollapse.module';
|
|
8
|
-
import { DfManageSideNavDirective } from './manage-sidenav.directive';
|
|
9
|
-
import { DfTitleTruncateDirective } from '../utils/titleTruncate.directive';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common";
|
|
12
|
-
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
13
|
-
import * as i3 from "@angular/router";
|
|
14
|
-
import * as i4 from "../mediaqueries/ifMedia.directive";
|
|
15
|
-
let uniqueId = 0;
|
|
16
|
-
/**
|
|
17
|
-
* SideNav is a component to provide navigation feature with a panel on the side of your page
|
|
18
|
-
*
|
|
19
|
-
* It supports several options as:
|
|
20
|
-
* - Being in an overlay menu or not
|
|
21
|
-
* - Being collapsed or not
|
|
22
|
-
* - Can be used with or without Angular Router
|
|
23
|
-
* - Can be used with media queries to adjust behavior to different breakpoints (see media section)
|
|
24
|
-
*/
|
|
25
|
-
export class DfSideNavListComponent {
|
|
26
|
-
constructor() {
|
|
27
|
-
this.controlledUniqueId = this.getControlledUniqueId();
|
|
28
|
-
this.sideNavService = inject(DfSideNavService);
|
|
29
|
-
}
|
|
30
|
-
getControlledUniqueId() {
|
|
31
|
-
uniqueId++;
|
|
32
|
-
return `df-sidenav-id-${uniqueId};`;
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: DfSideNavListComponent, isStandalone: true, selector: "df-sidenavlist", inputs: { items: "items", tplIcon: "tplIcon", tplItem: "tplItem", currentItem: "currentItem", id: "id" }, ngImport: i0, template: "<ul class=\"df-sidenav-list\" [ngbCollapse]=\"currentItem?.isCollapsed ?? false\" [attr.id]=\"id\">\n @for (item of items; track item; let i = $index) {\n <li dfManageSideNav>\n <ng-template #dfSideNavItemContent>\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n </ng-template>\n @switch (item.type) {\n @case (sideNavService.type.subMenus) {\n <ng-template #subMenus>\n <button\n class=\"df-sidenav-item d-flex align-items-center\"\n (click)=\"sideNavService.toggle(item)\"\n type=\"button\"\n [attr.aria-expanded]=\"!item.isCollapsed\"\n [attr.aria-controls]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n [class.df-sidenav-item-withicon]=\"item.icon\"\n >\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n <span\n class=\"ms-3 df-sidenav-collapse-icon fa-light\"\n [class.fa-chevron-down]=\"item.isCollapsed\"\n [class.fa-chevron-up]=\"!item.isCollapsed\"\n ></span>\n <!-- put the chevron as icon directly in the menu -->\n <!-- todo the icon and the minimized -->\n </button>\n <!-- we don't pass the icons as they are not suppose to have ones ??-->\n <df-sidenavlist\n [items]=\"item.subMenus ?? []\"\n [tplItem]=\"tplItem\"\n [currentItem]=\"item\"\n [id]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n ></df-sidenavlist>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.actionButton) {\n <ng-template #dfSideNavItemButton>\n <button\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n (click)=\"sideNavService.activeItem(item)\"\n [class.active]=\"item.isActive\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </button>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.routerLink) {\n <ng-template #dfRouterTemplate>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n routerLinkActive=\"active\"\n routerLink=\"{{ item.value }}\"\n ariaCurrentWhenActive=\"page\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.separator) {\n <ng-template #dfSeparatorTmp>\n <hr class=\"spacing-01\" />\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.template) {\n @if (tplItem) {\n <ng-template\n [ngTemplateOutlet]=\"tplItem.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n }\n @case (sideNavService.type.title) {\n <ng-template #dfTitleTmp>\n <div class=\"df-sidenav-item df-sidenav-title d-flex align-items-center flex-grow-1\">\n <span class=\"text-nowrap text-uppercase text-muted\" dfTitleTruncate>{{ item.title }}</span>\n </div>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n </ng-container>\n }\n }\n @default {\n <ng-template #dfLinkDefaultTmp>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n href=\"{{ item.value }}\"\n [class.active]=\"item.isActive && item.type === sideNavService.type.link\"\n [attr.target]=\"item.type === sideNavService.type.externalLink ? '_blank' : ''\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n </ng-container>\n }\n }\n }\n </li>\n }\n</ul>\n", dependencies: [{ kind: "component", type: DfSideNavListComponent, selector: "df-sidenavlist", inputs: ["items", "tplIcon", "tplItem", "currentItem", "id"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NgbCollapseModule }, { kind: "directive", type: i2.NgbCollapse, selector: "[ngbCollapse]", inputs: ["animation", "ngbCollapse", "horizontal"], outputs: ["ngbCollapseChange", "shown", "hidden"], exportAs: ["ngbCollapse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: DfMediaModule }, { kind: "directive", type: i4.DfIfMediaDirective, selector: "[dfIfMedia]", inputs: ["dfIfMedia"] }, { kind: "ngmodule", type: DfSideNavCollapseModule }, { kind: "directive", type: DfManageSideNavDirective, selector: "[dfManageSideNav]" }, { kind: "directive", type: DfTitleTruncateDirective, selector: "[dfTitleTruncate]", exportAs: ["dfTitleTruncate"] }] }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavListComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{ selector: 'df-sidenavlist', standalone: true, imports: [
|
|
40
|
-
CommonModule,
|
|
41
|
-
NgbCollapseModule,
|
|
42
|
-
RouterModule,
|
|
43
|
-
DfMediaModule,
|
|
44
|
-
DfSideNavCollapseModule,
|
|
45
|
-
DfManageSideNavDirective,
|
|
46
|
-
DfTitleTruncateDirective
|
|
47
|
-
], template: "<ul class=\"df-sidenav-list\" [ngbCollapse]=\"currentItem?.isCollapsed ?? false\" [attr.id]=\"id\">\n @for (item of items; track item; let i = $index) {\n <li dfManageSideNav>\n <ng-template #dfSideNavItemContent>\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n </ng-template>\n @switch (item.type) {\n @case (sideNavService.type.subMenus) {\n <ng-template #subMenus>\n <button\n class=\"df-sidenav-item d-flex align-items-center\"\n (click)=\"sideNavService.toggle(item)\"\n type=\"button\"\n [attr.aria-expanded]=\"!item.isCollapsed\"\n [attr.aria-controls]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n [class.df-sidenav-item-withicon]=\"item.icon\"\n >\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n <span\n class=\"ms-3 df-sidenav-collapse-icon fa-light\"\n [class.fa-chevron-down]=\"item.isCollapsed\"\n [class.fa-chevron-up]=\"!item.isCollapsed\"\n ></span>\n <!-- put the chevron as icon directly in the menu -->\n <!-- todo the icon and the minimized -->\n </button>\n <!-- we don't pass the icons as they are not suppose to have ones ??-->\n <df-sidenavlist\n [items]=\"item.subMenus ?? []\"\n [tplItem]=\"tplItem\"\n [currentItem]=\"item\"\n [id]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n ></df-sidenavlist>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.actionButton) {\n <ng-template #dfSideNavItemButton>\n <button\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n (click)=\"sideNavService.activeItem(item)\"\n [class.active]=\"item.isActive\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </button>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.routerLink) {\n <ng-template #dfRouterTemplate>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n routerLinkActive=\"active\"\n routerLink=\"{{ item.value }}\"\n ariaCurrentWhenActive=\"page\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.separator) {\n <ng-template #dfSeparatorTmp>\n <hr class=\"spacing-01\" />\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.template) {\n @if (tplItem) {\n <ng-template\n [ngTemplateOutlet]=\"tplItem.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n }\n @case (sideNavService.type.title) {\n <ng-template #dfTitleTmp>\n <div class=\"df-sidenav-item df-sidenav-title d-flex align-items-center flex-grow-1\">\n <span class=\"text-nowrap text-uppercase text-muted\" dfTitleTruncate>{{ item.title }}</span>\n </div>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n </ng-container>\n }\n }\n @default {\n <ng-template #dfLinkDefaultTmp>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n href=\"{{ item.value }}\"\n [class.active]=\"item.isActive && item.type === sideNavService.type.link\"\n [attr.target]=\"item.type === sideNavService.type.externalLink ? '_blank' : ''\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n </ng-container>\n }\n }\n }\n </li>\n }\n</ul>\n" }]
|
|
48
|
-
}], propDecorators: { items: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], tplIcon: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], tplItem: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}], currentItem: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}], id: [{
|
|
57
|
-
type: Input
|
|
58
|
-
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdmxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdmxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdmxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFFNUUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCOzs7Ozs7OztHQVFHO0FBZUgsTUFBTSxPQUFPLHNCQUFzQjtJQWRuQztRQW9CRSx1QkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBTTNDO0lBSkMscUJBQXFCO1FBQ25CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxpQkFBaUIsUUFBUSxHQUFHLENBQUM7SUFDdEMsQ0FBQzs4R0FaVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixvTENyQ25DLDRqTkF3SkEsNENEbkhhLHNCQUFzQix3SEFUL0IsWUFBWSxxTUFDWixpQkFBaUIsd09BQ2pCLFlBQVksZ2ZBQ1osYUFBYSxrSUFDYix1QkFBdUIsK0JBQ3ZCLHdCQUF3Qiw4REFDeEIsd0JBQXdCOzsyRkFHZixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBRWQsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHdCQUF3QjtxQkFDekI7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERmU2lkZU5hdlNlcnZpY2UgfSBmcm9tICcuL3NpZGVuYXYuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiQ29sbGFwc2VNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRGZNZWRpYU1vZHVsZSB9IGZyb20gJy4uL21lZGlhcXVlcmllcy9tZWRpYS5tb2R1bGUnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUgfSBmcm9tICcuL2RmU2lkZU5hdkNvbGxhcHNlLm1vZHVsZSc7XG5pbXBvcnQgdHlwZSB7IERmU2lkZU5hdkl0ZW0gfSBmcm9tICcuL3NpZGVuYXYuc2VydmljZSc7XG5pbXBvcnQgeyBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLCBEZlNpZGVOYXZJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9zaWRlbmF2LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZk1hbmFnZVNpZGVOYXZEaXJlY3RpdmUgfSBmcm9tICcuL21hbmFnZS1zaWRlbmF2LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEZlRpdGxlVHJ1bmNhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi91dGlscy90aXRsZVRydW5jYXRlLmRpcmVjdGl2ZSc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbi8qKlxuICogU2lkZU5hdiBpcyBhIGNvbXBvbmVudCB0byBwcm92aWRlIG5hdmlnYXRpb24gZmVhdHVyZSB3aXRoIGEgcGFuZWwgb24gdGhlIHNpZGUgb2YgeW91ciBwYWdlXG4gKlxuICogSXQgc3VwcG9ydHMgc2V2ZXJhbCBvcHRpb25zIGFzOlxuICogIC0gQmVpbmcgaW4gYW4gb3ZlcmxheSBtZW51IG9yIG5vdFxuICogIC0gQmVpbmcgY29sbGFwc2VkIG9yIG5vdFxuICogIC0gQ2FuIGJlIHVzZWQgd2l0aCBvciB3aXRob3V0IEFuZ3VsYXIgUm91dGVyXG4gKiAgLSBDYW4gYmUgdXNlZCB3aXRoIG1lZGlhIHF1ZXJpZXMgdG8gYWRqdXN0IGJlaGF2aW9yIHRvIGRpZmZlcmVudCBicmVha3BvaW50cyAoc2VlIG1lZGlhIHNlY3Rpb24pXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLXNpZGVuYXZsaXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXZsaXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRGZNZWRpYU1vZHVsZSxcbiAgICBEZlNpZGVOYXZDb2xsYXBzZU1vZHVsZSxcbiAgICBEZk1hbmFnZVNpZGVOYXZEaXJlY3RpdmUsXG4gICAgRGZUaXRsZVRydW5jYXRlRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGZTaWRlTmF2TGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zITogRGZTaWRlTmF2SXRlbVtdO1xuICBASW5wdXQoKSB0cGxJY29uITogRGZTaWRlTmF2SWNvbkRpcmVjdGl2ZTtcbiAgQElucHV0KCkgdHBsSXRlbSE6IERmU2lkZU5hdkl0ZW1EaXJlY3RpdmU7XG4gIEBJbnB1dCgpIGN1cnJlbnRJdGVtOiBEZlNpZGVOYXZJdGVtIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb250cm9sbGVkVW5pcXVlSWQgPSB0aGlzLmdldENvbnRyb2xsZWRVbmlxdWVJZCgpO1xuICBzaWRlTmF2U2VydmljZSA9IGluamVjdChEZlNpZGVOYXZTZXJ2aWNlKTtcblxuICBnZXRDb250cm9sbGVkVW5pcXVlSWQoKTogc3RyaW5nIHtcbiAgICB1bmlxdWVJZCsrO1xuICAgIHJldHVybiBgZGYtc2lkZW5hdi1pZC0ke3VuaXF1ZUlkfTtgO1xuICB9XG59XG4iLCI8dWwgY2xhc3M9XCJkZi1zaWRlbmF2LWxpc3RcIiBbbmdiQ29sbGFwc2VdPVwiY3VycmVudEl0ZW0/LmlzQ29sbGFwc2VkID8/IGZhbHNlXCIgW2F0dHIuaWRdPVwiaWRcIj5cbiAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICA8bGkgZGZNYW5hZ2VTaWRlTmF2PlxuICAgICAgPG5nLXRlbXBsYXRlICNkZlNpZGVOYXZJdGVtQ29udGVudD5cbiAgICAgICAgQGlmICh0cGxJY29uICYmIGl0ZW0uaWNvbikge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHBsSWNvbi50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwie3sgaXRlbS5pY29uIH19IGRmLXNpZGVuYXYtaWNvbiBtZS0zXCI+PC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleC1ncm93LTEgdGV4dC1ub3dyYXBcIiBkZlRpdGxlVHJ1bmNhdGU+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICBAc3dpdGNoIChpdGVtLnR5cGUpIHtcbiAgICAgICAgQGNhc2UgKHNpZGVOYXZTZXJ2aWNlLnR5cGUuc3ViTWVudXMpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3N1Yk1lbnVzPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImRmLXNpZGVuYXYtaXRlbSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNpZGVOYXZTZXJ2aWNlLnRvZ2dsZShpdGVtKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFpdGVtLmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInc2lkZW5hdkNvbnRyb2wnICsgY29udHJvbGxlZFVuaXF1ZUlkLnRvU3RyaW5nKCkgKyAnLScgKyBpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRmLXNpZGVuYXYtaXRlbS13aXRoaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKHRwbEljb24gJiYgaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cGxJY29uLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX0gZGYtc2lkZW5hdi1pY29uIG1lLTNcIj48L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4LWdyb3ctMSB0ZXh0LW5vd3JhcFwiIGRmVGl0bGVUcnVuY2F0ZT57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtMyBkZi1zaWRlbmF2LWNvbGxhcHNlLWljb24gZmEtbGlnaHRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5mYS1jaGV2cm9uLWRvd25dPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZhLWNoZXZyb24tdXBdPVwiIWl0ZW0uaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICA8IS0tIHB1dCB0aGUgY2hldnJvbiBhcyBpY29uIGRpcmVjdGx5IGluIHRoZSBtZW51IC0tPlxuICAgICAgICAgICAgICA8IS0tIHRvZG8gdGhlIGljb24gYW5kIHRoZSBtaW5pbWl6ZWQgLS0+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gd2UgZG9uJ3QgcGFzcyB0aGUgaWNvbnMgYXMgdGhleSBhcmUgbm90IHN1cHBvc2UgdG8gaGF2ZSBvbmVzID8/LS0+XG4gICAgICAgICAgICA8ZGYtc2lkZW5hdmxpc3RcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW0uc3ViTWVudXMgPz8gW11cIlxuICAgICAgICAgICAgICBbdHBsSXRlbV09XCJ0cGxJdGVtXCJcbiAgICAgICAgICAgICAgW2N1cnJlbnRJdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICBbaWRdPVwiJ3NpZGVuYXZDb250cm9sJyArIGNvbnRyb2xsZWRVbmlxdWVJZC50b1N0cmluZygpICsgJy0nICsgaVwiXG4gICAgICAgICAgICA+PC9kZi1zaWRlbmF2bGlzdD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIEBpZiAoIWl0ZW0uYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJNZW51c1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1Yk1lbnVzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKHNpZGVOYXZTZXJ2aWNlLnR5cGUuYWN0aW9uQnV0dG9uKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZlNpZGVOYXZJdGVtQnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImRmLXNpZGVuYXYtaXRlbSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtbm93cmFwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNpZGVOYXZTZXJ2aWNlLmFjdGl2ZUl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uaXNBY3RpdmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZTaWRlTmF2SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgQGlmICghaXRlbS5icmVha3BvaW50cykge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmU2lkZU5hdkl0ZW1CdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRmSWZNZWRpYT1cIml0ZW0uYnJlYWtwb2ludHMhXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZlNpZGVOYXZJdGVtQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKHNpZGVOYXZTZXJ2aWNlLnR5cGUucm91dGVyTGluaykge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGZSb3V0ZXJUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGYtc2lkZW5hdi1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ub3dyYXBcIlxuICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCJcbiAgICAgICAgICAgICAgcm91dGVyTGluaz1cInt7IGl0ZW0udmFsdWUgfX1cIlxuICAgICAgICAgICAgICBhcmlhQ3VycmVudFdoZW5BY3RpdmU9XCJwYWdlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmU2lkZU5hdkl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZSb3V0ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmUm91dGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoc2lkZU5hdlNlcnZpY2UudHlwZS5zZXBhcmF0b3IpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2RmU2VwYXJhdG9yVG1wPlxuICAgICAgICAgICAgPGhyIGNsYXNzPVwic3BhY2luZy0wMVwiIC8+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZTZXBhcmF0b3JUbXBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRmSWZNZWRpYT1cIml0ZW0uYnJlYWtwb2ludHMhXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZlNlcGFyYXRvclRtcFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlIChzaWRlTmF2U2VydmljZS50eXBlLnRlbXBsYXRlKSB7XG4gICAgICAgICAgQGlmICh0cGxJdGVtKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHBsSXRlbS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoc2lkZU5hdlNlcnZpY2UudHlwZS50aXRsZSkge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGZUaXRsZVRtcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZi1zaWRlbmF2LWl0ZW0gZGYtc2lkZW5hdi10aXRsZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXAgdGV4dC11cHBlcmNhc2UgdGV4dC1tdXRlZFwiIGRmVGl0bGVUcnVuY2F0ZT57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZUaXRsZVRtcFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmVGl0bGVUbXBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZkxpbmtEZWZhdWx0VG1wPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZi1zaWRlbmF2LWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LW5vd3JhcFwiXG4gICAgICAgICAgICAgIGhyZWY9XCJ7eyBpdGVtLnZhbHVlIH19XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmlzQWN0aXZlICYmIGl0ZW0udHlwZSA9PT0gc2lkZU5hdlNlcnZpY2UudHlwZS5saW5rXCJcbiAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0udHlwZSA9PT0gc2lkZU5hdlNlcnZpY2UudHlwZS5leHRlcm5hbExpbmsgPyAnX2JsYW5rJyA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmU2lkZU5hdkl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZMaW5rRGVmYXVsdFRtcFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmTGlua0RlZmF1bHRUbXBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvbGk+XG4gIH1cbjwvdWw+XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, Optional } from '@angular/core';
|
|
2
|
-
import { RightToLeftDirectionEnum } from '../../right-to-left/directionDetection.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../right-to-left/directionDetection.service";
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated DfSliderDirectionDirective is deprecated. Use {@link https://design-factory-int.app.net6.paas.westeurope.rnd.az.amadeus.net/#/components/slider/agnosui AgnosUI Slider} instead.
|
|
7
|
-
*/
|
|
8
|
-
export class DfSliderDirectionDirective {
|
|
9
|
-
constructor(elementRef, rtlDirectionService) {
|
|
10
|
-
this.elementRef = elementRef;
|
|
11
|
-
this.rtlDirectionService = rtlDirectionService;
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
if (this.rtlDirectionService) {
|
|
15
|
-
const direction = this.rtlDirectionService.getPageDirection(this.elementRef);
|
|
16
|
-
if (direction === RightToLeftDirectionEnum.RightToLeft) {
|
|
17
|
-
this.host.options.rightToLeft = true;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSliderDirectionDirective, deps: [{ token: i0.ElementRef }, { token: i1.DfDirectionDetectionService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
22
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: DfSliderDirectionDirective, isStandalone: true, selector: "[dfSliderDirection]", inputs: { host: ["dfSliderDirection", "host"] }, ngImport: i0 }); }
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSliderDirectionDirective, decorators: [{
|
|
25
|
-
type: Directive,
|
|
26
|
-
args: [{
|
|
27
|
-
selector: '[dfSliderDirection]',
|
|
28
|
-
standalone: true
|
|
29
|
-
}]
|
|
30
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DfDirectionDetectionService, decorators: [{
|
|
31
|
-
type: Optional
|
|
32
|
-
}] }], propDecorators: { host: [{
|
|
33
|
-
type: Input,
|
|
34
|
-
args: ['dfSliderDirection']
|
|
35
|
-
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyZGlyZWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9zbGlkZXIvZGlyZWN0aW9uL3NsaWRlcmRpcmVjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQStCLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7OztBQUV2SDs7R0FFRztBQUtILE1BQU0sT0FBTywwQkFBMEI7SUFLckMsWUFDbUIsVUFBc0IsRUFDVixtQkFBZ0Q7UUFENUQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNWLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNkI7SUFDNUUsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFN0UsSUFBSSxTQUFTLEtBQUssd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQWxCVSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQVFJLFFBQVE7eUNBSkosSUFBSTtzQkFEVixLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERmRGlyZWN0aW9uRGV0ZWN0aW9uU2VydmljZSwgUmlnaHRUb0xlZnREaXJlY3Rpb25FbnVtIH0gZnJvbSAnLi4vLi4vcmlnaHQtdG8tbGVmdC9kaXJlY3Rpb25EZXRlY3Rpb24uc2VydmljZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgRGZTbGlkZXJEaXJlY3Rpb25EaXJlY3RpdmUgaXMgZGVwcmVjYXRlZC4gVXNlIHtAbGluayBodHRwczovL2Rlc2lnbi1mYWN0b3J5LWludC5hcHAubmV0Ni5wYWFzLndlc3RldXJvcGUucm5kLmF6LmFtYWRldXMubmV0LyMvY29tcG9uZW50cy9zbGlkZXIvYWdub3N1aSAgQWdub3NVSSBTbGlkZXJ9IGluc3RlYWQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZlNsaWRlckRpcmVjdGlvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmU2xpZGVyRGlyZWN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gV29ya2Fyb3VuZCBkdWUgdG8gYmFkIGV4cG9ydCBvbiBAYW5ndWxhci1zbGlkZXIvbmd4LXNsaWRlciBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvODI3N1xuICBASW5wdXQoJ2RmU2xpZGVyRGlyZWN0aW9uJylcbiAgcHVibGljIGhvc3Q6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBydGxEaXJlY3Rpb25TZXJ2aWNlOiBEZkRpcmVjdGlvbkRldGVjdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJ0bERpcmVjdGlvblNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMucnRsRGlyZWN0aW9uU2VydmljZS5nZXRQYWdlRGlyZWN0aW9uKHRoaXMuZWxlbWVudFJlZik7XG5cbiAgICAgIGlmIChkaXJlY3Rpb24gPT09IFJpZ2h0VG9MZWZ0RGlyZWN0aW9uRW51bS5SaWdodFRvTGVmdCkge1xuICAgICAgICB0aGlzLmhvc3Qub3B0aW9ucy5yaWdodFRvTGVmdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class ChangeContext {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2xpZGVyL2xpYi9jaGFuZ2UtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtDQUl6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50ZXJUeXBlIH0gZnJvbSAnLi9wb2ludGVyLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgQ2hhbmdlQ29udGV4dCB7XG4gIHZhbHVlPzogbnVtYmVyO1xuICBoaWdoVmFsdWU/OiBudW1iZXI7XG4gIHBvaW50ZXJUeXBlPzogUG9pbnRlclR5cGU7XG59Il19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/** Helper with compatibility functions to support different browsers */
|
|
2
|
-
export class CompatibilityHelper {
|
|
3
|
-
/** Workaround for TouchEvent constructor sadly not being available on all browsers (e.g. Firefox, Safari) */
|
|
4
|
-
static isTouchEvent(event) {
|
|
5
|
-
if (window.TouchEvent !== undefined) {
|
|
6
|
-
return event instanceof TouchEvent;
|
|
7
|
-
}
|
|
8
|
-
return event.touches !== undefined;
|
|
9
|
-
}
|
|
10
|
-
/** Detect presence of ResizeObserver API */
|
|
11
|
-
static isResizeObserverAvailable() {
|
|
12
|
-
return window.ResizeObserver !== undefined;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGF0aWJpbGl0eS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2xpZGVyL2xpYi9jb21wYXRpYmlsaXR5LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSx3RUFBd0U7QUFDeEUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qiw2R0FBNkc7SUFDdEcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFVO1FBQ25DLElBQUssTUFBYyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxPQUFPLEtBQUssWUFBWSxVQUFVLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELDRDQUE0QztJQUNyQyxNQUFNLENBQUMseUJBQXlCO1FBQ3JDLE9BQVEsTUFBYyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBEZWNsYXJhdGlvbiBmb3IgUmVzaXplT2JzZXJ2ZXIgYSBuZXcgQVBJIGF2YWlsYWJsZSBpbiBzb21lIG9mIG5ld2VzdCBicm93c2Vyczpcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXNpemVPYnNlcnZlclxuZGVjbGFyZSBjbGFzcyBSZXNpemVPYnNlcnZlciB7XG59XG5cbi8qKiBIZWxwZXIgd2l0aCBjb21wYXRpYmlsaXR5IGZ1bmN0aW9ucyB0byBzdXBwb3J0IGRpZmZlcmVudCBicm93c2VycyAqL1xuZXhwb3J0IGNsYXNzIENvbXBhdGliaWxpdHlIZWxwZXIge1xuICAvKiogV29ya2Fyb3VuZCBmb3IgVG91Y2hFdmVudCBjb25zdHJ1Y3RvciBzYWRseSBub3QgYmVpbmcgYXZhaWxhYmxlIG9uIGFsbCBicm93c2VycyAoZS5nLiBGaXJlZm94LCBTYWZhcmkpICovXG4gIHB1YmxpYyBzdGF0aWMgaXNUb3VjaEV2ZW50KGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLlRvdWNoRXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gZXZlbnQudG91Y2hlcyAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIERldGVjdCBwcmVzZW5jZSBvZiBSZXNpemVPYnNlcnZlciBBUEkgKi9cbiAgcHVibGljIHN0YXRpYyBpc1Jlc2l6ZU9ic2VydmVyQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAod2luZG93IGFzIGFueSkuUmVzaXplT2JzZXJ2ZXIgIT09IHVuZGVmaW5lZDtcbiAgfVxufSJdfQ==
|