@dereekb/dbx-web 12.6.18 → 12.6.20
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/esm2022/lib/extension/help/absract.help.widget.directive.mjs +7 -7
- package/esm2022/lib/extension/help/help.context.directive.mjs +4 -4
- package/esm2022/lib/extension/help/help.context.mjs +3 -3
- package/esm2022/lib/extension/help/help.context.service.mjs +3 -3
- package/esm2022/lib/extension/help/help.mjs +1 -1
- package/esm2022/lib/extension/help/help.view.list.component.mjs +30 -11
- package/esm2022/lib/extension/help/help.view.list.entry.component.mjs +4 -3
- package/esm2022/lib/extension/help/help.view.popover.component.mjs +5 -4
- package/esm2022/lib/extension/help/help.widget.mjs +1 -1
- package/esm2022/lib/extension/help/help.widget.service.mjs +18 -10
- package/esm2022/lib/router/layout/anchor/anchor.component.mjs +20 -7
- package/esm2022/lib/router/provider/ngrouter/anchor.component.mjs +13 -4
- package/esm2022/lib/router/provider/uirouter/anchor.component.mjs +7 -51
- package/esm2022/lib/screen/resize.mjs +2 -2
- package/esm2022/lib/util/click.mjs +56 -0
- package/esm2022/lib/util/index.mjs +2 -1
- package/fesm2022/dereekb-dbx-web.mjs +152 -94
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/extension/help/absract.help.widget.directive.d.ts +8 -7
- package/lib/extension/help/help.context.d.ts +2 -2
- package/lib/extension/help/help.context.directive.d.ts +2 -2
- package/lib/extension/help/help.context.service.d.ts +3 -3
- package/lib/extension/help/help.d.ts +3 -3
- package/lib/extension/help/help.view.list.component.d.ts +16 -9
- package/lib/extension/help/help.view.list.entry.component.d.ts +1 -1
- package/lib/extension/help/help.view.popover.component.d.ts +8 -3
- package/lib/extension/help/help.widget.d.ts +13 -9
- package/lib/extension/help/help.widget.service.d.ts +15 -8
- package/lib/layout/style/_style.scss +8 -0
- package/lib/router/layout/anchor/anchor.component.d.ts +4 -1
- package/lib/router/provider/ngrouter/anchor.component.d.ts +5 -0
- package/lib/router/provider/uirouter/anchor.component.d.ts +2 -14
- package/lib/screen/resize.d.ts +1 -1
- package/lib/util/click.d.ts +29 -0
- package/lib/util/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { skipAllInitialMaybe } from '@dereekb/rxjs';
|
|
2
|
-
import { Component, TemplateRef, HostListener, inject, viewChild, input, ChangeDetectionStrategy, computed } from '@angular/core';
|
|
2
|
+
import { Component, TemplateRef, HostListener, inject, viewChild, input, ChangeDetectionStrategy, computed, ElementRef } from '@angular/core';
|
|
3
3
|
import { AbstractDbxAnchorDirective, DbxInjectionComponent } from '@dereekb/dbx-core';
|
|
4
4
|
import { NgTemplateOutlet, NgClass } from '@angular/common';
|
|
5
5
|
import { toObservable } from '@angular/core/rxjs-interop';
|
|
6
6
|
import { shareReplay } from 'rxjs';
|
|
7
7
|
import { DbxRouterWebProviderConfig } from '../../provider/router.provider.config';
|
|
8
|
+
import { overrideClickElementEffect } from '../../../util/click';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
/**
|
|
10
11
|
* Component that renders an anchor element depending on the input.
|
|
@@ -12,11 +13,19 @@ import * as i0 from "@angular/core";
|
|
|
12
13
|
export class DbxAnchorComponent extends AbstractDbxAnchorDirective {
|
|
13
14
|
_dbNgxRouterWebProviderConfig = inject(DbxRouterWebProviderConfig);
|
|
14
15
|
block = input();
|
|
16
|
+
clickableElement = viewChild('clickable', { read: ElementRef });
|
|
17
|
+
childClickTarget = viewChild('childClickTarget', { read: ElementRef });
|
|
15
18
|
templateRef = viewChild('content', { read: TemplateRef });
|
|
16
19
|
templateRef$ = toObservable(this.templateRef).pipe(skipAllInitialMaybe(), shareReplay(1));
|
|
17
20
|
selectedClassSignal = computed(() => (this.selectedSignal() ? 'dbx-anchor-selected' : ''));
|
|
18
21
|
srefAnchorConfig = this._dbNgxRouterWebProviderConfig.anchorSegueRefComponent;
|
|
22
|
+
_overrideClickElementEffect = overrideClickElementEffect({
|
|
23
|
+
clickTarget: this.clickableElement,
|
|
24
|
+
childClickTarget: this.childClickTarget,
|
|
25
|
+
disabledSignal: computed(() => this.typeSignal() !== 'clickable')
|
|
26
|
+
});
|
|
19
27
|
clickAnchor(event) {
|
|
28
|
+
console.log('click anchor');
|
|
20
29
|
this.anchor()?.onClick?.(event);
|
|
21
30
|
}
|
|
22
31
|
onMouseEnter(event) {
|
|
@@ -26,14 +35,16 @@ export class DbxAnchorComponent extends AbstractDbxAnchorDirective {
|
|
|
26
35
|
this.anchor()?.onMouse?.('leave', event);
|
|
27
36
|
}
|
|
28
37
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAnchorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxAnchorComponent, isStandalone: true, selector: "dbx-anchor, [dbx-anchor]", inputs: { block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "dbx-anchor-block": "block()" }, listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, classAttribute: "d-inline dbx-anchor" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
38
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxAnchorComponent, isStandalone: true, selector: "dbx-anchor, [dbx-anchor]", inputs: { block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "dbx-anchor-block": "block()" }, listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, classAttribute: "d-inline dbx-anchor" }, viewQueries: [{ propertyName: "clickableElement", first: true, predicate: ["clickable"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "childClickTarget", first: true, predicate: ["childClickTarget"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
30
39
|
@switch (typeSignal()) {
|
|
31
40
|
@case ('plain') {
|
|
32
41
|
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
33
42
|
}
|
|
34
43
|
@case ('clickable') {
|
|
35
|
-
<a class="dbx-anchor-a dbx-anchor-click" [ngClass]="selectedClassSignal()" (click)="clickAnchor()">
|
|
36
|
-
<
|
|
44
|
+
<a #clickable class="dbx-anchor-a dbx-anchor-click" [ngClass]="selectedClassSignal()" (click)="clickAnchor()">
|
|
45
|
+
<span #childClickTarget>
|
|
46
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
47
|
+
</span>
|
|
37
48
|
</a>
|
|
38
49
|
}
|
|
39
50
|
@case ('sref') {
|
|
@@ -68,8 +79,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
68
79
|
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
69
80
|
}
|
|
70
81
|
@case ('clickable') {
|
|
71
|
-
<a class="dbx-anchor-a dbx-anchor-click" [ngClass]="selectedClassSignal()" (click)="clickAnchor()">
|
|
72
|
-
<
|
|
82
|
+
<a #clickable class="dbx-anchor-a dbx-anchor-click" [ngClass]="selectedClassSignal()" (click)="clickAnchor()">
|
|
83
|
+
<span #childClickTarget>
|
|
84
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
85
|
+
</span>
|
|
73
86
|
</a>
|
|
74
87
|
}
|
|
75
88
|
@case ('sref') {
|
|
@@ -108,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
108
121
|
type: HostListener,
|
|
109
122
|
args: ['mouseleave']
|
|
110
123
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvbGF5b3V0L2FuY2hvci9hbmNob3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SSxPQUFPLEVBQUUsMEJBQTBCLEVBQStCLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUVqRTs7R0FFRztBQTRDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBQy9DLDZCQUE2QixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBRTNFLEtBQUssR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFaEMsZ0JBQWdCLEdBQUcsU0FBUyxDQUF5QyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RyxnQkFBZ0IsR0FBRyxTQUFTLENBQXlDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFFL0csV0FBVyxHQUFHLFNBQVMsQ0FBc0MsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDL0YsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFMUYsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUzRixnQkFBZ0IsR0FBZ0MsSUFBSSxDQUFDLDZCQUE2QixDQUFDLHVCQUF1QixDQUFDO0lBRWpHLDJCQUEyQixHQUFHLDBCQUEwQixDQUFDO1FBQzFFLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1FBQ2xDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7UUFDdkMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssV0FBVyxDQUFDO0tBQ2xFLENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBQyxLQUF5QjtRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR0QsWUFBWSxDQUFDLEtBQXlCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUdELFlBQVksQ0FBQyxLQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7d0dBbENVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLGllQUtzRSxVQUFVLCtIQUNILFVBQVUsaUhBRTNCLFdBQVcsb0VBakQxRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ1QsNERBRVMsZ0JBQWdCLG9KQUFFLE9BQU8sb0ZBQUUscUJBQXFCOzs0RkFPL0Msa0JBQWtCO2tCQTNDOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUM7b0JBQzNELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QixrQkFBa0IsRUFBRSxTQUFTO3FCQUM5QjtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBNEJDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQU0xQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNraXBBbGxJbml0aWFsTWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCB2aWV3Q2hpbGQsIGlucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgY29tcHV0ZWQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4QW5jaG9yRGlyZWN0aXZlLCBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcsIERieEluamVjdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXIvcm91dGVyLnByb3ZpZGVyLmNvbmZpZyc7XG5pbXBvcnQgeyBvdmVycmlkZUNsaWNrRWxlbWVudEVmZmVjdCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY2xpY2snO1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHJlbmRlcnMgYW4gYW5jaG9yIGVsZW1lbnQgZGVwZW5kaW5nIG9uIHRoZSBpbnB1dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWFuY2hvciwgW2RieC1hbmNob3JdJyxcbiAgdGVtcGxhdGU6IGBcbiAgICBAc3dpdGNoICh0eXBlU2lnbmFsKCkpIHtcbiAgICAgIEBjYXNlICgncGxhaW4nKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2NsaWNrYWJsZScpIHtcbiAgICAgICAgPGEgI2NsaWNrYWJsZSBjbGFzcz1cImRieC1hbmNob3ItYSBkYngtYW5jaG9yLWNsaWNrXCIgW25nQ2xhc3NdPVwic2VsZWN0ZWRDbGFzc1NpZ25hbCgpXCIgKGNsaWNrKT1cImNsaWNrQW5jaG9yKClcIj5cbiAgICAgICAgICA8c3BhbiAjY2hpbGRDbGlja1RhcmdldD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ3NyZWYnKSB7XG4gICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwic3JlZkFuY2hvckNvbmZpZ1wiPlxuICAgICAgICAgIDwhLS0gSW5qZWN0ZWQgaW4gY2hpbGQuIC0tPlxuICAgICAgICA8L2RieC1pbmplY3Rpb24+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2hyZWYnKSB7XG4gICAgICAgIDxhIGNsYXNzPVwiZGJ4LWFuY2hvci1hIGRieC1hbmNob3ItaHJlZlwiIFtocmVmXT1cInVybFNpZ25hbCgpXCIgW2F0dHIudGFyZ2V0XT1cInRhcmdldFNpZ25hbCgpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgICAgQGNhc2UgKCdkaXNhYmxlZCcpIHtcbiAgICAgICAgPGEgY2xhc3M9XCJkYngtYW5jaG9yLWEgZGJ4LWFuY2hvci1kaXNhYmxlZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYT5cbiAgICAgIH1cbiAgICB9XG4gICAgPCEtLSBUZW1wbGF0ZSBjb250ZW50IC0tPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgTmdDbGFzcywgRGJ4SW5qZWN0aW9uQ29tcG9uZW50XSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZC1pbmxpbmUgZGJ4LWFuY2hvcicsXG4gICAgJ2RieC1hbmNob3ItYmxvY2snOiAnYmxvY2soKSdcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QW5jaG9yQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhBbmNob3JEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kYk5neFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnID0gaW5qZWN0KERieFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnKTtcblxuICByZWFkb25seSBibG9jayA9IGlucHV0PE1heWJlPGJvb2xlYW4+PigpO1xuXG4gIHJlYWRvbmx5IGNsaWNrYWJsZUVsZW1lbnQgPSB2aWV3Q2hpbGQ8c3RyaW5nLCBNYXliZTxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4+KCdjbGlja2FibGUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHJlYWRvbmx5IGNoaWxkQ2xpY2tUYXJnZXQgPSB2aWV3Q2hpbGQ8c3RyaW5nLCBNYXliZTxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4+KCdjaGlsZENsaWNrVGFyZ2V0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuXG4gIHJlYWRvbmx5IHRlbXBsYXRlUmVmID0gdmlld0NoaWxkPHN0cmluZywgTWF5YmU8VGVtcGxhdGVSZWY8dW5rbm93bj4+PignY29udGVudCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlUmVmJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnRlbXBsYXRlUmVmKS5waXBlKHNraXBBbGxJbml0aWFsTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkQ2xhc3NTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zZWxlY3RlZFNpZ25hbCgpID8gJ2RieC1hbmNob3Itc2VsZWN0ZWQnIDogJycpKTtcblxuICByZWFkb25seSBzcmVmQW5jaG9yQ29uZmlnOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgPSB0aGlzLl9kYk5neFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnLmFuY2hvclNlZ3VlUmVmQ29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfb3ZlcnJpZGVDbGlja0VsZW1lbnRFZmZlY3QgPSBvdmVycmlkZUNsaWNrRWxlbWVudEVmZmVjdCh7XG4gICAgY2xpY2tUYXJnZXQ6IHRoaXMuY2xpY2thYmxlRWxlbWVudCxcbiAgICBjaGlsZENsaWNrVGFyZ2V0OiB0aGlzLmNoaWxkQ2xpY2tUYXJnZXQsXG4gICAgZGlzYWJsZWRTaWduYWw6IGNvbXB1dGVkKCgpID0+IHRoaXMudHlwZVNpZ25hbCgpICE9PSAnY2xpY2thYmxlJylcbiAgfSk7XG5cbiAgY2xpY2tBbmNob3IoZXZlbnQ/OiBNYXliZTxNb3VzZUV2ZW50Pik6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdjbGljayBhbmNob3InKTtcbiAgICB0aGlzLmFuY2hvcigpPy5vbkNsaWNrPy4oZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIG9uTW91c2VFbnRlcihldmVudD86IE1heWJlPE1vdXNlRXZlbnQ+KSB7XG4gICAgdGhpcy5hbmNob3IoKT8ub25Nb3VzZT8uKCdlbnRlcicsIGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBvbk1vdXNlTGVhdmUoZXZlbnQ/OiBNYXliZTxNb3VzZUV2ZW50Pikge1xuICAgIHRoaXMuYW5jaG9yKCk/Lm9uTW91c2U/LignbGVhdmUnLCBldmVudCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, computed, ElementRef, viewChild } from '@angular/core';
|
|
2
2
|
import { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';
|
|
3
3
|
import { DbxInjectionComponent } from '@dereekb/dbx-core';
|
|
4
|
+
import { overrideClickElementEffect } from '../../../util/click';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* SegueAnchor implementation for Angular Router.
|
|
7
8
|
*/
|
|
8
9
|
export class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {
|
|
10
|
+
anchorElement = viewChild.required('anchor', { read: ElementRef });
|
|
11
|
+
injectionElement = viewChild.required('injection', { read: ElementRef });
|
|
12
|
+
anchorDisabledSignal = computed(() => this.anchorSignal()?.disabled ?? false);
|
|
13
|
+
_overrideClickElementEffect = overrideClickElementEffect({
|
|
14
|
+
clickTarget: this.anchorElement,
|
|
15
|
+
childClickTarget: this.injectionElement,
|
|
16
|
+
disabledSignal: this.anchorDisabledSignal
|
|
17
|
+
});
|
|
9
18
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAngularRouterSegueAnchorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
19
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxAngularRouterSegueAnchorComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "anchorElement", first: true, predicate: ["anchor"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "injectionElement", first: true, predicate: ["injection"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<a class=\"dbx-anchor-a\" #anchor [attr.target]=\"targetSignal()\">\n <dbx-injection #injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n", dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
|
|
11
20
|
}
|
|
12
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAngularRouterSegueAnchorComponent, decorators: [{
|
|
13
22
|
type: Component,
|
|
14
|
-
args: [{ imports: [DbxInjectionComponent], standalone: true, template: "<a class=\"dbx-anchor-a\" [attr.target]=\"targetSignal()\">\n <dbx-injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n" }]
|
|
23
|
+
args: [{ imports: [DbxInjectionComponent], standalone: true, template: "<a class=\"dbx-anchor-a\" #anchor [attr.target]=\"targetSignal()\">\n <dbx-injection #injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n" }]
|
|
15
24
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvcHJvdmlkZXIvbmdyb3V0ZXIvYW5jaG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvcHJvdmlkZXIvbmdyb3V0ZXIvYW5jaG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRWpFOztHQUVHO0FBTUgsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLCtCQUErQjtJQUM5RSxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBa0MsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDcEcsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBa0MsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDMUcsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7SUFFcEUsMkJBQTJCLEdBQUcsMEJBQTBCLENBQUM7UUFDMUUsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQy9CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7UUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7S0FDMUMsQ0FBQyxDQUFDO3dHQVRRLG9DQUFvQzs0RkFBcEMsb0NBQW9DLDRKQUNnRCxVQUFVLHdIQUNKLFVBQVUsb0VDZmpILGlLQUdBLDRDRE9ZLHFCQUFxQjs7NEZBR3BCLG9DQUFvQztrQkFMaEQsU0FBUzs4QkFFQyxDQUFDLHFCQUFxQixDQUFDLGNBQ3BCLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4U2VndWVBbmNob3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9sYXlvdXQvYW5jaG9yL2FuY2hvci5zZWd1ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgb3ZlcnJpZGVDbGlja0VsZW1lbnRFZmZlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NsaWNrJztcblxuLyoqXG4gKiBTZWd1ZUFuY2hvciBpbXBsZW1lbnRhdGlvbiBmb3IgQW5ndWxhciBSb3V0ZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vYW5jaG9yLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieEluamVjdGlvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QW5ndWxhclJvdXRlclNlZ3VlQW5jaG9yQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhTZWd1ZUFuY2hvckRpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IGFuY2hvckVsZW1lbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8c3RyaW5nLCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2FuY2hvcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcbiAgcmVhZG9ubHkgaW5qZWN0aW9uRWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignaW5qZWN0aW9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICByZWFkb25seSBhbmNob3JEaXNhYmxlZFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYW5jaG9yU2lnbmFsKCk/LmRpc2FibGVkID8/IGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX292ZXJyaWRlQ2xpY2tFbGVtZW50RWZmZWN0ID0gb3ZlcnJpZGVDbGlja0VsZW1lbnRFZmZlY3Qoe1xuICAgIGNsaWNrVGFyZ2V0OiB0aGlzLmFuY2hvckVsZW1lbnQsXG4gICAgY2hpbGRDbGlja1RhcmdldDogdGhpcy5pbmplY3Rpb25FbGVtZW50LFxuICAgIGRpc2FibGVkU2lnbmFsOiB0aGlzLmFuY2hvckRpc2FibGVkU2lnbmFsXG4gIH0pO1xufVxuIiwiPGEgY2xhc3M9XCJkYngtYW5jaG9yLWFcIiAjYW5jaG9yIFthdHRyLnRhcmdldF09XCJ0YXJnZXRTaWduYWwoKVwiPlxuICA8ZGJ4LWluamVjdGlvbiAjaW5qZWN0aW9uIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZUNvbmZpZ1NpZ25hbCgpXCI+PC9kYngtaW5qZWN0aW9uPlxuPC9hPlxuIl19
|
|
@@ -1,71 +1,27 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, ElementRef, viewChild } from '@angular/core';
|
|
2
2
|
import { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';
|
|
3
3
|
import { UIRouterModule } from '@uirouter/angular';
|
|
4
4
|
import { DbxInjectionComponent } from '@dereekb/dbx-core';
|
|
5
5
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
6
|
+
import { overrideClickElementEffect } from '../../../util/click';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@uirouter/angular";
|
|
8
9
|
/**
|
|
9
10
|
* SegueAnchor implementation for UIRouter.
|
|
10
11
|
*/
|
|
11
12
|
export class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {
|
|
12
|
-
_cleanupClickOverride = null;
|
|
13
13
|
_parentAnchorSignal = toSignal(this.parent.anchor$, { initialValue: undefined });
|
|
14
14
|
anchorElement = viewChild.required('anchor', { read: ElementRef });
|
|
15
15
|
injectionElement = viewChild.required('injection', { read: ElementRef });
|
|
16
16
|
anchorDisabledSignal = computed(() => this.anchorSignal()?.disabled ?? false);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
*
|
|
22
|
-
* For example, dbx-button would call event.stopPropagation() on click, which would prevent the uiSref from being triggered, but the default behavior
|
|
23
|
-
* of the anchor element would still be triggered, causing the browser to load/reload the page at the given href instead of navigating to the new state using uiSref.
|
|
24
|
-
*
|
|
25
|
-
* NOTE: Those nested event listeners are still ultimately triggered.
|
|
26
|
-
*/
|
|
27
|
-
_overrideClickElementEffect = effect(() => {
|
|
28
|
-
const anchorElement = this.anchorElement();
|
|
29
|
-
const injectionElement = this.injectionElement();
|
|
30
|
-
const anchorDisabled = this.anchorDisabledSignal();
|
|
31
|
-
if (injectionElement) {
|
|
32
|
-
// cleanup/remove the previous/existing click function
|
|
33
|
-
if (this._cleanupClickOverride) {
|
|
34
|
-
this._cleanupClickOverride();
|
|
35
|
-
}
|
|
36
|
-
if (!anchorDisabled) {
|
|
37
|
-
const clickOverride = (event) => {
|
|
38
|
-
// Allow ctrl+click, cmd+click, shift+click, and middle-click for new tab/window
|
|
39
|
-
// Don't preventDefault or stopPropagation - let browser handle it naturally
|
|
40
|
-
if (event.ctrlKey || event.metaKey || event.shiftKey || event.button === 1) {
|
|
41
|
-
return; // Browser will open in new tab/window
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
// otherwise, also trigger a click on the uiSref anchor element
|
|
45
|
-
anchorElement?.nativeElement.click();
|
|
46
|
-
// Prevents the default behavior of the anchor element's href from being triggered
|
|
47
|
-
event.preventDefault();
|
|
48
|
-
event.stopPropagation();
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
this._cleanupClickOverride = () => {
|
|
52
|
-
injectionElement.nativeElement.removeEventListener('click', clickOverride);
|
|
53
|
-
delete this._cleanupClickOverride;
|
|
54
|
-
};
|
|
55
|
-
injectionElement.nativeElement.addEventListener('click', clickOverride, {
|
|
56
|
-
capture: true // Use capture to ensure this event listener is called before any nested child's event listeners
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
17
|
+
_overrideClickElementEffect = overrideClickElementEffect({
|
|
18
|
+
clickTarget: this.anchorElement,
|
|
19
|
+
childClickTarget: this.injectionElement,
|
|
20
|
+
disabledSignal: this.anchorDisabledSignal
|
|
60
21
|
});
|
|
61
22
|
uiSrefSignal = computed(() => (this._parentAnchorSignal()?.ref ?? ''));
|
|
62
23
|
uiParamsSignal = computed(() => this._parentAnchorSignal()?.refParams);
|
|
63
24
|
uiOptionsSignal = computed(() => this._parentAnchorSignal()?.refOptions ?? {});
|
|
64
|
-
ngOnDestroy() {
|
|
65
|
-
if (this._cleanupClickOverride) {
|
|
66
|
-
this._cleanupClickOverride();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
25
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxUIRouterSegueAnchorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
70
26
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxUIRouterSegueAnchorComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "anchorElement", first: true, predicate: ["anchor"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "injectionElement", first: true, predicate: ["injection"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<a class=\"dbx-anchor-a dbx-anchor-sref\" #anchor [attr.target]=\"targetSignal()\" [uiSref]=\"uiSrefSignal()\" [uiParams]=\"uiParamsSignal()\" [uiOptions]=\"uiOptionsSignal()\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection #injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n", dependencies: [{ kind: "ngmodule", type: UIRouterModule }, { kind: "directive", type: i1.UISref, selector: "[uiSref]", inputs: ["uiSref", "uiParams", "uiOptions"], exportAs: ["uiSref"] }, { kind: "directive", type: i1.AnchorUISref, selector: "a[uiSref]" }, { kind: "directive", type: i1.UISrefActive, selector: "[uiSrefActive],[uiSrefActiveEq]", inputs: ["uiSrefActive", "uiSrefActiveEq"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71
27
|
}
|
|
@@ -73,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
73
29
|
type: Component,
|
|
74
30
|
args: [{ imports: [UIRouterModule, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<a class=\"dbx-anchor-a dbx-anchor-sref\" #anchor [attr.target]=\"targetSignal()\" [uiSref]=\"uiSrefSignal()\" [uiParams]=\"uiParamsSignal()\" [uiOptions]=\"uiOptionsSignal()\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection #injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n" }]
|
|
75
31
|
}] });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvYW5jaG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvYW5jaG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0YsT0FBTyxFQUF1QyxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUVqRTs7R0FFRztBQU9ILE1BQU0sT0FBTywrQkFBZ0MsU0FBUSwrQkFBK0I7SUFDakUsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFFekYsYUFBYSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWtDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWtDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBRXBFLDJCQUEyQixHQUFHLDBCQUEwQixDQUFDO1FBQzFFLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYTtRQUMvQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1FBQ3ZDLGNBQWMsRUFBRSxJQUFJLENBQUMsb0JBQW9CO0tBQzFDLENBQUMsQ0FBQztJQUVNLFlBQVksR0FBRyxRQUFRLENBQWMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFnQixDQUFDLENBQUM7SUFDbkcsY0FBYyxHQUFHLFFBQVEsQ0FBa0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEYsZUFBZSxHQUFHLFFBQVEsQ0FBb0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsVUFBVSxJQUFLLEVBQXdCLENBQUMsQ0FBQzt3R0FmdkgsK0JBQStCOzRGQUEvQiwrQkFBK0IsNEpBR3FELFVBQVUsd0hBQ0osVUFBVSxvRUNwQmpILDBWQUdBLDJDRFNZLGNBQWMsNFdBQUUscUJBQXFCOzs0RkFJcEMsK0JBQStCO2tCQU4zQyxTQUFTOzhCQUVDLENBQUMsY0FBYyxFQUFFLHFCQUFxQixDQUFDLG1CQUMvQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdERieFNlZ3VlQW5jaG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vbGF5b3V0L2FuY2hvci9hbmNob3Iuc2VndWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9iaiwgU3RhdGVPck5hbWUsIFRyYW5zaXRpb25PcHRpb25zLCBVSVJvdXRlck1vZHVsZSB9IGZyb20gJ0B1aXJvdXRlci9hbmd1bGFyJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgb3ZlcnJpZGVDbGlja0VsZW1lbnRFZmZlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NsaWNrJztcblxuLyoqXG4gKiBTZWd1ZUFuY2hvciBpbXBsZW1lbnRhdGlvbiBmb3IgVUlSb3V0ZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vYW5jaG9yLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1VJUm91dGVyTW9kdWxlLCBEYnhJbmplY3Rpb25Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhVSVJvdXRlclNlZ3VlQW5jaG9yQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhTZWd1ZUFuY2hvckRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudEFuY2hvclNpZ25hbCA9IHRvU2lnbmFsKHRoaXMucGFyZW50LmFuY2hvciQsIHsgaW5pdGlhbFZhbHVlOiB1bmRlZmluZWQgfSk7XG5cbiAgcmVhZG9ubHkgYW5jaG9yRWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignYW5jaG9yJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICByZWFkb25seSBpbmplY3Rpb25FbGVtZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPHN0cmluZywgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdpbmplY3Rpb24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHJlYWRvbmx5IGFuY2hvckRpc2FibGVkU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hbmNob3JTaWduYWwoKT8uZGlzYWJsZWQgPz8gZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfb3ZlcnJpZGVDbGlja0VsZW1lbnRFZmZlY3QgPSBvdmVycmlkZUNsaWNrRWxlbWVudEVmZmVjdCh7XG4gICAgY2xpY2tUYXJnZXQ6IHRoaXMuYW5jaG9yRWxlbWVudCxcbiAgICBjaGlsZENsaWNrVGFyZ2V0OiB0aGlzLmluamVjdGlvbkVsZW1lbnQsXG4gICAgZGlzYWJsZWRTaWduYWw6IHRoaXMuYW5jaG9yRGlzYWJsZWRTaWduYWxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdWlTcmVmU2lnbmFsID0gY29tcHV0ZWQ8U3RhdGVPck5hbWU+KCgpID0+ICh0aGlzLl9wYXJlbnRBbmNob3JTaWduYWwoKT8ucmVmID8/ICcnKSBhcyBTdGF0ZU9yTmFtZSk7XG4gIHJlYWRvbmx5IHVpUGFyYW1zU2lnbmFsID0gY29tcHV0ZWQ8T2JqIHwgdW5kZWZpbmVkPigoKSA9PiB0aGlzLl9wYXJlbnRBbmNob3JTaWduYWwoKT8ucmVmUGFyYW1zKTtcbiAgcmVhZG9ubHkgdWlPcHRpb25zU2lnbmFsID0gY29tcHV0ZWQ8VHJhbnNpdGlvbk9wdGlvbnM+KCgpID0+IHRoaXMuX3BhcmVudEFuY2hvclNpZ25hbCgpPy5yZWZPcHRpb25zID8/ICh7fSBhcyBUcmFuc2l0aW9uT3B0aW9ucykpO1xufVxuIiwiPGEgY2xhc3M9XCJkYngtYW5jaG9yLWEgZGJ4LWFuY2hvci1zcmVmXCIgI2FuY2hvciBbYXR0ci50YXJnZXRdPVwidGFyZ2V0U2lnbmFsKClcIiBbdWlTcmVmXT1cInVpU3JlZlNpZ25hbCgpXCIgW3VpUGFyYW1zXT1cInVpUGFyYW1zU2lnbmFsKClcIiBbdWlPcHRpb25zXT1cInVpT3B0aW9uc1NpZ25hbCgpXCIgdWlTcmVmQWN0aXZlPVwiZGJ4LWFuY2hvci1hY3RpdmVcIiB1aVNyZWZBY3RpdmVFcT1cImRieC1hbmNob3ItYWN0aXZlLWVxXCI+XG4gIDxkYngtaW5qZWN0aW9uICNpbmplY3Rpb24gW3RlbXBsYXRlXT1cInRlbXBsYXRlQ29uZmlnU2lnbmFsKClcIj48L2RieC1pbmplY3Rpb24+XG48L2E+XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { DestroyRef, ElementRef, inject, signal } from '@angular/core';
|
|
|
2
2
|
/**
|
|
3
3
|
* Creates a new Signal that emits resize events.
|
|
4
4
|
*
|
|
5
|
-
* Must
|
|
5
|
+
* Must called in an Angular injection context.
|
|
6
6
|
*
|
|
7
7
|
* @param inputElement The element to observe for resize events. If not provided, the host element will be injected.
|
|
8
8
|
*/
|
|
@@ -31,4 +31,4 @@ export function resizeSignal(inputElement) {
|
|
|
31
31
|
});
|
|
32
32
|
return resizeSignal;
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL3NjcmVlbi9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFlLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWFwRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLFlBQXNDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLFlBQVksSUFBSSxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUVoRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFlO1FBQ3hDLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQyxDQUFDO0lBRUgsSUFBSSxPQUF3QixDQUFDO0lBRTdCLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBOEIsRUFBRSxFQUFFO1FBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixNQUFNLFlBQVksR0FBaUI7WUFDakMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQzVCLE9BQU87WUFDUCxPQUFPLEVBQUUsQ0FBQyxPQUFPO1NBQ2xCLENBQUM7UUFFRixPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM5QixZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXhDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ3hCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBpbmplY3QsIHR5cGUgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXNpemUgZXZlbnQgdXNlZCBieSByZXNpemVTaWduYWwuXG4gKlxuICogTWFpbnRhaW5zIHRoZSBzYW1lIHBhdHRlcm4gYXMgaHR0cHM6Ly9naXRodWIuY29tL05lbWVzTGFzemxvL2FuZ3VsYXItcmVzaXplLWV2ZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzaXplZEV2ZW50IHtcbiAgcmVhZG9ubHkgbmV3UmVjdDogRE9NUmVjdFJlYWRPbmx5O1xuICByZWFkb25seSBvbGRSZWN0PzogRE9NUmVjdFJlYWRPbmx5O1xuICByZWFkb25seSBpc0ZpcnN0OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgU2lnbmFsIHRoYXQgZW1pdHMgcmVzaXplIGV2ZW50cy5cbiAqXG4gKiBNdXN0IGNhbGxlZCBpbiBhbiBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBpbnB1dEVsZW1lbnQgVGhlIGVsZW1lbnQgdG8gb2JzZXJ2ZSBmb3IgcmVzaXplIGV2ZW50cy4gSWYgbm90IHByb3ZpZGVkLCB0aGUgaG9zdCBlbGVtZW50IHdpbGwgYmUgaW5qZWN0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNpemVTaWduYWwoaW5wdXRFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pOiBTaWduYWw8UmVzaXplZEV2ZW50PiB7XG4gIGNvbnN0IGVsZW1lbnQgPSBpbnB1dEVsZW1lbnQgPz8gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBjb25zdCByZXNpemVTaWduYWwgPSBzaWduYWw8UmVzaXplZEV2ZW50Pih7XG4gICAgbmV3UmVjdDogZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgIGlzRmlyc3Q6IHRydWVcbiAgfSk7XG5cbiAgbGV0IG9sZFJlY3Q6IERPTVJlY3RSZWFkT25seTtcblxuICBjb25zdCBvYnNlcnZlRXZlbnQgPSAoZW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgY29uc3QgZG9tU2l6ZSA9IGVudHJpZXNbMF07XG4gICAgY29uc3QgcmVzaXplZEV2ZW50OiBSZXNpemVkRXZlbnQgPSB7XG4gICAgICBuZXdSZWN0OiBkb21TaXplLmNvbnRlbnRSZWN0LFxuICAgICAgb2xkUmVjdCxcbiAgICAgIGlzRmlyc3Q6ICFvbGRSZWN0XG4gICAgfTtcblxuICAgIG9sZFJlY3QgPSBkb21TaXplLmNvbnRlbnRSZWN0O1xuICAgIHJlc2l6ZVNpZ25hbC5zZXQocmVzaXplZEV2ZW50KTtcbiAgfTtcblxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihvYnNlcnZlRXZlbnQpO1xuICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc2l6ZVNpZ25hbDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { DestroyRef, effect, inject } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* This effect exists to solve the issue of an injected element that utilizes event.stopPropogation() and doesn't also call event.preventDefault().
|
|
4
|
+
*
|
|
5
|
+
* We didn't want to use css's pointer-events: none as that would disable the Angular Material button effects.
|
|
6
|
+
*
|
|
7
|
+
* For example, dbx-button would call event.stopPropagation() on click, which would prevent the uiSref from being triggered, but the default behavior
|
|
8
|
+
* of the anchor element would still be triggered, causing the browser to load/reload the page at the given href instead of navigating to the new state using uiSref.
|
|
9
|
+
*
|
|
10
|
+
* NOTE: Those nested event listeners are still ultimately triggered.
|
|
11
|
+
*
|
|
12
|
+
* Must be run in an Angular injection context.
|
|
13
|
+
*/
|
|
14
|
+
export function overrideClickElementEffect(config) {
|
|
15
|
+
const { clickTarget, childClickTarget, disabledSignal } = config;
|
|
16
|
+
const destroyRef = inject(DestroyRef);
|
|
17
|
+
let _cleanupClickOverride;
|
|
18
|
+
destroyRef.onDestroy(() => {
|
|
19
|
+
_cleanupClickOverride?.();
|
|
20
|
+
});
|
|
21
|
+
return effect(() => {
|
|
22
|
+
const clickTargetElement = clickTarget?.();
|
|
23
|
+
const childClickElement = childClickTarget();
|
|
24
|
+
const anchorDisabled = disabledSignal?.() ?? false;
|
|
25
|
+
// cleanup/remove the previous/existing click function
|
|
26
|
+
if (_cleanupClickOverride) {
|
|
27
|
+
_cleanupClickOverride();
|
|
28
|
+
}
|
|
29
|
+
if (childClickElement) {
|
|
30
|
+
if (!anchorDisabled) {
|
|
31
|
+
const clickOverride = (event) => {
|
|
32
|
+
// Allow ctrl+click, cmd+click, shift+click, and middle-click for new tab/window
|
|
33
|
+
// Don't preventDefault or stopPropagation - let browser handle it naturally
|
|
34
|
+
if (event.ctrlKey || event.metaKey || event.shiftKey || event.button === 1) {
|
|
35
|
+
return; // Browser will open in new tab/window
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// otherwise, also trigger a click on the uiSref anchor element
|
|
39
|
+
clickTargetElement?.nativeElement.click();
|
|
40
|
+
// Prevents the default behavior of the anchor element's href from being triggered
|
|
41
|
+
event.preventDefault();
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
_cleanupClickOverride = () => {
|
|
46
|
+
childClickElement.nativeElement.removeEventListener('click', clickOverride);
|
|
47
|
+
_cleanupClickOverride = null;
|
|
48
|
+
};
|
|
49
|
+
childClickElement.nativeElement.addEventListener('click', clickOverride, {
|
|
50
|
+
capture: true // Use capture to ensure this event listener is called before any nested child's event listeners
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvdXRpbC9jbGljay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBbUIsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBa0J6Rjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxNQUF3QztJQUNqRixNQUFNLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUVqRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsSUFBSSxxQkFBd0MsQ0FBQztJQUU3QyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN4QixxQkFBcUIsRUFBRSxFQUFFLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDakIsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQzNDLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLGNBQWMsR0FBRyxjQUFjLEVBQUUsRUFBRSxJQUFJLEtBQUssQ0FBQztRQUVuRCxzREFBc0Q7UUFDdEQsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQzFCLHFCQUFxQixFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO29CQUMxQyxnRkFBZ0Y7b0JBQ2hGLDRFQUE0RTtvQkFDNUUsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUMzRSxPQUFPLENBQUMsc0NBQXNDO29CQUNoRCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sK0RBQStEO3dCQUMvRCxrQkFBa0IsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQzFDLGtGQUFrRjt3QkFDbEYsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQzFCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDO2dCQUVGLHFCQUFxQixHQUFHLEdBQUcsRUFBRTtvQkFDM0IsaUJBQWlCLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDNUUscUJBQXFCLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixDQUFDLENBQUM7Z0JBRUYsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUU7b0JBQ3ZFLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0dBQWdHO2lCQUMvRyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGVmZmVjdCwgdHlwZSBFbGVtZW50UmVmLCBpbmplY3QsIHR5cGUgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnJpZGVDbGlja0VsZW1lbnRFZmZlY3RDb25maWcge1xuICAvKipcbiAgICogVGFyZ2V0IHRvIHRyYW5zZmVyIFwiY2xpY2tcIiBldmVudHMgdG8uXG4gICAqL1xuICByZWFkb25seSBjbGlja1RhcmdldD86IE1heWJlPFNpZ25hbDxNYXliZTxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4+PjtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCB0YXJnZXQgdG8gd2F0Y2ggYW5kIG92ZXJyaWRlIGNsaWNrcyBmb3IuXG4gICAqL1xuICByZWFkb25seSBjaGlsZENsaWNrVGFyZ2V0OiBTaWduYWw8TWF5YmU8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+PjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHNpZ25hbCB0byBkaXNhYmxlIHRoZSBjbGlja2luZyBvdmVycmlkZS5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkU2lnbmFsPzogTWF5YmU8U2lnbmFsPGJvb2xlYW4+Pjtcbn1cblxuLyoqXG4gKiBUaGlzIGVmZmVjdCBleGlzdHMgdG8gc29sdmUgdGhlIGlzc3VlIG9mIGFuIGluamVjdGVkIGVsZW1lbnQgdGhhdCB1dGlsaXplcyBldmVudC5zdG9wUHJvcG9nYXRpb24oKSBhbmQgZG9lc24ndCBhbHNvIGNhbGwgZXZlbnQucHJldmVudERlZmF1bHQoKS5cbiAqXG4gKiBXZSBkaWRuJ3Qgd2FudCB0byB1c2UgY3NzJ3MgcG9pbnRlci1ldmVudHM6IG5vbmUgYXMgdGhhdCB3b3VsZCBkaXNhYmxlIHRoZSBBbmd1bGFyIE1hdGVyaWFsIGJ1dHRvbiBlZmZlY3RzLlxuICpcbiAqIEZvciBleGFtcGxlLCBkYngtYnV0dG9uIHdvdWxkIGNhbGwgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgb24gY2xpY2ssIHdoaWNoIHdvdWxkIHByZXZlbnQgdGhlIHVpU3JlZiBmcm9tIGJlaW5nIHRyaWdnZXJlZCwgYnV0IHRoZSBkZWZhdWx0IGJlaGF2aW9yXG4gKiBvZiB0aGUgYW5jaG9yIGVsZW1lbnQgd291bGQgc3RpbGwgYmUgdHJpZ2dlcmVkLCBjYXVzaW5nIHRoZSBicm93c2VyIHRvIGxvYWQvcmVsb2FkIHRoZSBwYWdlIGF0IHRoZSBnaXZlbiBocmVmIGluc3RlYWQgb2YgbmF2aWdhdGluZyB0byB0aGUgbmV3IHN0YXRlIHVzaW5nIHVpU3JlZi5cbiAqXG4gKiBOT1RFOiBUaG9zZSBuZXN0ZWQgZXZlbnQgbGlzdGVuZXJzIGFyZSBzdGlsbCB1bHRpbWF0ZWx5IHRyaWdnZXJlZC5cbiAqXG4gKiBNdXN0IGJlIHJ1biBpbiBhbiBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3ZlcnJpZGVDbGlja0VsZW1lbnRFZmZlY3QoY29uZmlnOiBPdmVycmlkZUNsaWNrRWxlbWVudEVmZmVjdENvbmZpZykge1xuICBjb25zdCB7IGNsaWNrVGFyZ2V0LCBjaGlsZENsaWNrVGFyZ2V0LCBkaXNhYmxlZFNpZ25hbCB9ID0gY29uZmlnO1xuXG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgbGV0IF9jbGVhbnVwQ2xpY2tPdmVycmlkZTogTWF5YmU8KCkgPT4gdm9pZD47XG5cbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIF9jbGVhbnVwQ2xpY2tPdmVycmlkZT8uKCk7XG4gIH0pO1xuXG4gIHJldHVybiBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNsaWNrVGFyZ2V0RWxlbWVudCA9IGNsaWNrVGFyZ2V0Py4oKTtcbiAgICBjb25zdCBjaGlsZENsaWNrRWxlbWVudCA9IGNoaWxkQ2xpY2tUYXJnZXQoKTtcbiAgICBjb25zdCBhbmNob3JEaXNhYmxlZCA9IGRpc2FibGVkU2lnbmFsPy4oKSA/PyBmYWxzZTtcblxuICAgIC8vIGNsZWFudXAvcmVtb3ZlIHRoZSBwcmV2aW91cy9leGlzdGluZyBjbGljayBmdW5jdGlvblxuICAgIGlmIChfY2xlYW51cENsaWNrT3ZlcnJpZGUpIHtcbiAgICAgIF9jbGVhbnVwQ2xpY2tPdmVycmlkZSgpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZENsaWNrRWxlbWVudCkge1xuICAgICAgaWYgKCFhbmNob3JEaXNhYmxlZCkge1xuICAgICAgICBjb25zdCBjbGlja092ZXJyaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gQWxsb3cgY3RybCtjbGljaywgY21kK2NsaWNrLCBzaGlmdCtjbGljaywgYW5kIG1pZGRsZS1jbGljayBmb3IgbmV3IHRhYi93aW5kb3dcbiAgICAgICAgICAvLyBEb24ndCBwcmV2ZW50RGVmYXVsdCBvciBzdG9wUHJvcGFnYXRpb24gLSBsZXQgYnJvd3NlciBoYW5kbGUgaXQgbmF0dXJhbGx5XG4gICAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5idXR0b24gPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybjsgLy8gQnJvd3NlciB3aWxsIG9wZW4gaW4gbmV3IHRhYi93aW5kb3dcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBhbHNvIHRyaWdnZXIgYSBjbGljayBvbiB0aGUgdWlTcmVmIGFuY2hvciBlbGVtZW50XG4gICAgICAgICAgICBjbGlja1RhcmdldEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIC8vIFByZXZlbnRzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBhbmNob3IgZWxlbWVudCdzIGhyZWYgZnJvbSBiZWluZyB0cmlnZ2VyZWRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgX2NsZWFudXBDbGlja092ZXJyaWRlID0gKCkgPT4ge1xuICAgICAgICAgIGNoaWxkQ2xpY2tFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbGlja092ZXJyaWRlKTtcbiAgICAgICAgICBfY2xlYW51cENsaWNrT3ZlcnJpZGUgPSBudWxsO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNoaWxkQ2xpY2tFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbGlja092ZXJyaWRlLCB7XG4gICAgICAgICAgY2FwdHVyZTogdHJ1ZSAvLyBVc2UgY2FwdHVyZSB0byBlbnN1cmUgdGhpcyBldmVudCBsaXN0ZW5lciBpcyBjYWxsZWQgYmVmb3JlIGFueSBuZXN0ZWQgY2hpbGQncyBldmVudCBsaXN0ZW5lcnNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './cdk';
|
|
2
2
|
export * from './clipboard';
|
|
3
3
|
export * from './clipboard.directive';
|
|
4
|
-
|
|
4
|
+
export * from './click';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jZGsnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGlwYm9hcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGlwYm9hcmQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY2xpY2snO1xuIl19
|