@ni/nimble-angular 16.8.7 → 16.8.8

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.
@@ -0,0 +1,49 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Directive to allow client to intercept anchor clicks and do router navigation instead of
5
+ * letting the default action handle the navigation. The client supplies a function which is
6
+ * expected to build the proper url and call one of the router's navigation functions, passing
7
+ * the url and any navigation options. If the router successfully navigated, the function should
8
+ * return false to prevent the link's default click handler from also performing the navigation.
9
+ */
10
+ export class NimbleTableColumnAnchorNavigationGuardDirective {
11
+ onDelegatedEvent(delegatedEvent, recordId) {
12
+ if (delegatedEvent.type !== 'click') {
13
+ return;
14
+ }
15
+ const clickEvent = delegatedEvent;
16
+ // Only call the navigationGuard for plain left clicks.
17
+ // Those are the only ones that should potentially use the router.
18
+ // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L453
19
+ if (clickEvent.button !== 0 || clickEvent.ctrlKey || clickEvent.shiftKey || clickEvent.altKey || clickEvent.metaKey) {
20
+ return;
21
+ }
22
+ const cellView = delegatedEvent.target;
23
+ // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L457
24
+ if (typeof cellView.columnConfig.target === 'string' && cellView.columnConfig.target !== '_self') {
25
+ return;
26
+ }
27
+ const href = cellView.cellRecord.href;
28
+ if (!href) {
29
+ return;
30
+ }
31
+ if (this.navigationGuard && !this.navigationGuard(recordId)) {
32
+ clickEvent.preventDefault();
33
+ }
34
+ }
35
+ }
36
+ NimbleTableColumnAnchorNavigationGuardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorNavigationGuardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
37
+ NimbleTableColumnAnchorNavigationGuardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorNavigationGuardDirective, selector: "nimble-table-column-anchor[navigationGuard]", inputs: { navigationGuard: "navigationGuard" }, host: { listeners: { "delegated-event": "onDelegatedEvent($event.detail.originalEvent,$event.detail.recordId)" } }, ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorNavigationGuardDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: 'nimble-table-column-anchor[navigationGuard]'
42
+ }]
43
+ }], propDecorators: { navigationGuard: [{
44
+ type: Input
45
+ }], onDelegatedEvent: [{
46
+ type: HostListener,
47
+ args: ['delegated-event', ['$event.detail.originalEvent', '$event.detail.recordId']]
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3ItbmF2aWdhdGlvbi1ndWFyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaS9uaW1ibGUtYW5ndWxhci90YWJsZS1jb2x1bW4vYW5jaG9yL25pbWJsZS10YWJsZS1jb2x1bW4tYW5jaG9yLW5hdmlnYXRpb24tZ3VhcmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLL0Q7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLCtDQUErQztJQUtoRCxnQkFBZ0IsQ0FBQyxjQUFxQixFQUFFLFFBQTRCO1FBQ3hFLElBQUksY0FBYyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDakMsT0FBTztTQUNWO1FBRUQsTUFBTSxVQUFVLEdBQUcsY0FBNEIsQ0FBQztRQUNoRCx1REFBdUQ7UUFDdkQsa0VBQWtFO1FBQ2xFLGdKQUFnSjtRQUNoSixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDakgsT0FBTztTQUNWO1FBRUQsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLE1BQW1DLENBQUM7UUFDcEUsZ0pBQWdKO1FBQ2hKLElBQUksT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFO1lBQzlGLE9BQU87U0FDVjtRQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pELFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMvQjtJQUNMLENBQUM7OzRJQWhDUSwrQ0FBK0M7Z0lBQS9DLCtDQUErQzsyRkFBL0MsK0NBQStDO2tCQUgzRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2Q0FBNkM7aUJBQzFEOzhCQUdVLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUUsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLENBQUMsNkJBQTZCLEVBQUUsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgVGFibGVDb2x1bW5BbmNob3JDZWxsVmlldyB9IGZyb20gJ0BuaS9uaW1ibGUtY29tcG9uZW50cy9kaXN0L2VzbS90YWJsZS1jb2x1bW4vYW5jaG9yL2NlbGwtdmlldyc7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25HdWFyZCA9IChyb3dSZWNvcmRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiBib29sZWFuO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBhbGxvdyBjbGllbnQgdG8gaW50ZXJjZXB0IGFuY2hvciBjbGlja3MgYW5kIGRvIHJvdXRlciBuYXZpZ2F0aW9uIGluc3RlYWQgb2ZcbiAqIGxldHRpbmcgdGhlIGRlZmF1bHQgYWN0aW9uIGhhbmRsZSB0aGUgbmF2aWdhdGlvbi4gVGhlIGNsaWVudCBzdXBwbGllcyBhIGZ1bmN0aW9uIHdoaWNoIGlzXG4gKiBleHBlY3RlZCB0byBidWlsZCB0aGUgcHJvcGVyIHVybCBhbmQgY2FsbCBvbmUgb2YgdGhlIHJvdXRlcidzIG5hdmlnYXRpb24gZnVuY3Rpb25zLCBwYXNzaW5nXG4gKiB0aGUgdXJsIGFuZCBhbnkgbmF2aWdhdGlvbiBvcHRpb25zLiBJZiB0aGUgcm91dGVyIHN1Y2Nlc3NmdWxseSBuYXZpZ2F0ZWQsIHRoZSBmdW5jdGlvbiBzaG91bGRcbiAqIHJldHVybiBmYWxzZSB0byBwcmV2ZW50IHRoZSBsaW5rJ3MgZGVmYXVsdCBjbGljayBoYW5kbGVyIGZyb20gYWxzbyBwZXJmb3JtaW5nIHRoZSBuYXZpZ2F0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ25pbWJsZS10YWJsZS1jb2x1bW4tYW5jaG9yW25hdmlnYXRpb25HdWFyZF0nXG59KVxuZXhwb3J0IGNsYXNzIE5pbWJsZVRhYmxlQ29sdW1uQW5jaG9yTmF2aWdhdGlvbkd1YXJkRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYXZpZ2F0aW9uR3VhcmQ/OiBOYXZpZ2F0aW9uR3VhcmQ7XG5cbiAgICBASG9zdExpc3RlbmVyKCdkZWxlZ2F0ZWQtZXZlbnQnLCBbJyRldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudCcsICckZXZlbnQuZGV0YWlsLnJlY29yZElkJ10pXG4gICAgcHJpdmF0ZSBvbkRlbGVnYXRlZEV2ZW50KGRlbGVnYXRlZEV2ZW50OiBFdmVudCwgcmVjb3JkSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICBpZiAoZGVsZWdhdGVkRXZlbnQudHlwZSAhPT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpY2tFdmVudCA9IGRlbGVnYXRlZEV2ZW50IGFzIE1vdXNlRXZlbnQ7XG4gICAgICAgIC8vIE9ubHkgY2FsbCB0aGUgbmF2aWdhdGlvbkd1YXJkIGZvciBwbGFpbiBsZWZ0IGNsaWNrcy5cbiAgICAgICAgLy8gVGhvc2UgYXJlIHRoZSBvbmx5IG9uZXMgdGhhdCBzaG91bGQgcG90ZW50aWFsbHkgdXNlIHRoZSByb3V0ZXIuXG4gICAgICAgIC8vIEJhc2VkIG9uOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMzVhM2ZkZTViNzFlZjNiNTAyODJmZTZmN2IzN2NhMWM5MmI4ZDJhMC9wYWNrYWdlcy9yb3V0ZXIvc3JjL2RpcmVjdGl2ZXMvcm91dGVyX2xpbmsudHMjTDQ1M1xuICAgICAgICBpZiAoY2xpY2tFdmVudC5idXR0b24gIT09IDAgfHwgY2xpY2tFdmVudC5jdHJsS2V5IHx8IGNsaWNrRXZlbnQuc2hpZnRLZXkgfHwgY2xpY2tFdmVudC5hbHRLZXkgfHwgY2xpY2tFdmVudC5tZXRhS2V5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjZWxsVmlldyA9IGRlbGVnYXRlZEV2ZW50LnRhcmdldCBhcyBUYWJsZUNvbHVtbkFuY2hvckNlbGxWaWV3O1xuICAgICAgICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzM1YTNmZGU1YjcxZWYzYjUwMjgyZmU2ZjdiMzdjYTFjOTJiOGQyYTAvcGFja2FnZXMvcm91dGVyL3NyYy9kaXJlY3RpdmVzL3JvdXRlcl9saW5rLnRzI0w0NTdcbiAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmlldy5jb2x1bW5Db25maWcudGFyZ2V0ID09PSAnc3RyaW5nJyAmJiBjZWxsVmlldy5jb2x1bW5Db25maWcudGFyZ2V0ICE9PSAnX3NlbGYnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBocmVmID0gY2VsbFZpZXcuY2VsbFJlY29yZC5ocmVmO1xuICAgICAgICBpZiAoIWhyZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25HdWFyZCAmJiAhdGhpcy5uYXZpZ2F0aW9uR3VhcmQocmVjb3JkSWQpKSB7XG4gICAgICAgICAgICBjbGlja0V2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,21 +1,20 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NimbleTableColumnAnchorDirective } from './nimble-table-column-anchor.directive';
4
- import { NimbleTableColumnAnchorRouterLinkWithHrefDirective } from './nimble-table-column-anchor-router-link-with-href.directive';
5
- import { NimbleTableColumnAnchorRouterLinkDirective } from './nimble-table-column-anchor-router-link.directive';
4
+ import { NimbleTableColumnAnchorNavigationGuardDirective } from './nimble-table-column-anchor-navigation-guard.directive';
6
5
  import '@ni/nimble-components/dist/esm/table-column/anchor';
7
6
  import * as i0 from "@angular/core";
8
7
  export class NimbleTableColumnAnchorModule {
9
8
  }
10
9
  NimbleTableColumnAnchorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- NimbleTableColumnAnchorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective], imports: [CommonModule], exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective] });
10
+ NimbleTableColumnAnchorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective], imports: [CommonModule], exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective] });
12
11
  NimbleTableColumnAnchorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, imports: [CommonModule] });
13
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, decorators: [{
14
13
  type: NgModule,
15
14
  args: [{
16
- declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective],
15
+ declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective],
17
16
  imports: [CommonModule],
18
- exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective]
17
+ exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective]
19
18
  }]
20
19
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmkvbmltYmxlLWFuZ3VsYXIvdGFibGUtY29sdW1uL2FuY2hvci9uaW1ibGUtdGFibGUtY29sdW1uLWFuY2hvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEksT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFaEgsT0FBTyxvREFBb0QsQ0FBQzs7QUFPNUQsTUFBTSxPQUFPLDZCQUE2Qjs7MEhBQTdCLDZCQUE2QjsySEFBN0IsNkJBQTZCLGlCQUp2QixnQ0FBZ0MsRUFBRSwwQ0FBMEMsRUFBRSxrREFBa0QsYUFDckksWUFBWSxhQUNaLGdDQUFnQyxFQUFFLDBDQUEwQyxFQUFFLGtEQUFrRDsySEFFakksNkJBQTZCLFlBSDVCLFlBQVk7MkZBR2IsNkJBQTZCO2tCQUx6QyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGdDQUFnQyxFQUFFLDBDQUEwQyxFQUFFLGtEQUFrRCxDQUFDO29CQUNoSixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdDQUFnQyxFQUFFLDBDQUEwQyxFQUFFLGtEQUFrRCxDQUFDO2lCQUM5SSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmltYmxlVGFibGVDb2x1bW5BbmNob3JEaXJlY3RpdmUgfSBmcm9tICcuL25pbWJsZS10YWJsZS1jb2x1bW4tYW5jaG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOaW1ibGVUYWJsZUNvbHVtbkFuY2hvclJvdXRlckxpbmtXaXRoSHJlZkRpcmVjdGl2ZSB9IGZyb20gJy4vbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3Itcm91dGVyLWxpbmstd2l0aC1ocmVmLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOaW1ibGVUYWJsZUNvbHVtbkFuY2hvclJvdXRlckxpbmtEaXJlY3RpdmUgfSBmcm9tICcuL25pbWJsZS10YWJsZS1jb2x1bW4tYW5jaG9yLXJvdXRlci1saW5rLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCAnQG5pL25pbWJsZS1jb21wb25lbnRzL2Rpc3QvZXNtL3RhYmxlLWNvbHVtbi9hbmNob3InO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05pbWJsZVRhYmxlQ29sdW1uQW5jaG9yRGlyZWN0aXZlLCBOaW1ibGVUYWJsZUNvbHVtbkFuY2hvclJvdXRlckxpbmtEaXJlY3RpdmUsIE5pbWJsZVRhYmxlQ29sdW1uQW5jaG9yUm91dGVyTGlua1dpdGhIcmVmRGlyZWN0aXZlXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbTmltYmxlVGFibGVDb2x1bW5BbmNob3JEaXJlY3RpdmUsIE5pbWJsZVRhYmxlQ29sdW1uQW5jaG9yUm91dGVyTGlua0RpcmVjdGl2ZSwgTmltYmxlVGFibGVDb2x1bW5BbmNob3JSb3V0ZXJMaW5rV2l0aEhyZWZEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE5pbWJsZVRhYmxlQ29sdW1uQW5jaG9yTW9kdWxlIHsgfVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmkvbmltYmxlLWFuZ3VsYXIvdGFibGUtY29sdW1uL2FuY2hvci9uaW1ibGUtdGFibGUtY29sdW1uLWFuY2hvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFFMUgsT0FBTyxvREFBb0QsQ0FBQzs7QUFPNUQsTUFBTSxPQUFPLDZCQUE2Qjs7MEhBQTdCLDZCQUE2QjsySEFBN0IsNkJBQTZCLGlCQUp2QixnQ0FBZ0MsRUFBRSwrQ0FBK0MsYUFDdEYsWUFBWSxhQUNaLGdDQUFnQyxFQUFFLCtDQUErQzsySEFFbEYsNkJBQTZCLFlBSDVCLFlBQVk7MkZBR2IsNkJBQTZCO2tCQUx6QyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGdDQUFnQyxFQUFFLCtDQUErQyxDQUFDO29CQUNqRyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdDQUFnQyxFQUFFLCtDQUErQyxDQUFDO2lCQUMvRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmltYmxlVGFibGVDb2x1bW5BbmNob3JEaXJlY3RpdmUgfSBmcm9tICcuL25pbWJsZS10YWJsZS1jb2x1bW4tYW5jaG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOaW1ibGVUYWJsZUNvbHVtbkFuY2hvck5hdmlnYXRpb25HdWFyZERpcmVjdGl2ZSB9IGZyb20gJy4vbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3ItbmF2aWdhdGlvbi1ndWFyZC5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgJ0BuaS9uaW1ibGUtY29tcG9uZW50cy9kaXN0L2VzbS90YWJsZS1jb2x1bW4vYW5jaG9yJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtOaW1ibGVUYWJsZUNvbHVtbkFuY2hvckRpcmVjdGl2ZSwgTmltYmxlVGFibGVDb2x1bW5BbmNob3JOYXZpZ2F0aW9uR3VhcmREaXJlY3RpdmVdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtOaW1ibGVUYWJsZUNvbHVtbkFuY2hvckRpcmVjdGl2ZSwgTmltYmxlVGFibGVDb2x1bW5BbmNob3JOYXZpZ2F0aW9uR3VhcmREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE5pbWJsZVRhYmxlQ29sdW1uQW5jaG9yTW9kdWxlIHsgfVxuIl19
@@ -1,5 +1,4 @@
1
- export * from './nimble-table-column-anchor-router-link-with-href.directive';
2
- export * from './nimble-table-column-anchor-router-link.directive';
1
+ export * from './nimble-table-column-anchor-navigation-guard.directive';
3
2
  export * from './nimble-table-column-anchor.directive';
4
3
  export * from './nimble-table-column-anchor.module';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3RhYmxlLWNvbHVtbi9hbmNob3IvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uaW1ibGUtdGFibGUtY29sdW1uLWFuY2hvci1yb3V0ZXItbGluay13aXRoLWhyZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3Itcm91dGVyLWxpbmsuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3IubW9kdWxlJzsiXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3RhYmxlLWNvbHVtbi9hbmNob3IvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3ItbmF2aWdhdGlvbi1ndWFyZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9uaW1ibGUtdGFibGUtY29sdW1uLWFuY2hvci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9uaW1ibGUtdGFibGUtY29sdW1uLWFuY2hvci5tb2R1bGUnOyJdfQ==
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, HostListener, Input, NgModule } from '@angular/core';
3
- import { RouterLinkWithHref } from '@angular/router';
2
+ import { Directive, Input, HostListener, NgModule } from '@angular/core';
4
3
  export { tableColumnAnchorTag } from '@ni/nimble-components/dist/esm/table-column/anchor';
5
4
  export { AnchorAppearance } from '@ni/nimble-components/dist/esm/anchor/types';
6
5
  import { toBooleanProperty, toNullableNumberProperty } from '@ni/nimble-angular/internal-utilities';
@@ -8,60 +7,52 @@ import { NimbleTableColumnBaseDirective } from '@ni/nimble-angular/table-column'
8
7
  import { CommonModule } from '@angular/common';
9
8
 
10
9
  /**
11
- * Directive to handle nimble-table-column-anchor RouterLink support.
12
- * Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
13
- * won't also be an active RouterLink directive incorrectly handling navigation.
10
+ * Directive to allow client to intercept anchor clicks and do router navigation instead of
11
+ * letting the default action handle the navigation. The client supplies a function which is
12
+ * expected to build the proper url and call one of the router's navigation functions, passing
13
+ * the url and any navigation options. If the router successfully navigated, the function should
14
+ * return false to prevent the link's default click handler from also performing the navigation.
14
15
  */
15
- class NimbleTableColumnAnchorRouterLinkWithHrefDirective extends RouterLinkWithHref {
16
- set routerLink(_commands) {
17
- throw new Error('Directly configuring the routerLink url is not supported. The router url is configured via the href-field-name of the column.');
18
- }
19
- onDelegatedEvent(delegatedEvent) {
16
+ class NimbleTableColumnAnchorNavigationGuardDirective {
17
+ onDelegatedEvent(delegatedEvent, recordId) {
20
18
  if (delegatedEvent.type !== 'click') {
21
19
  return;
22
20
  }
23
21
  const clickEvent = delegatedEvent;
24
- const href = delegatedEvent.target.cellRecord.href;
22
+ // Only call the navigationGuard for plain left clicks.
23
+ // Those are the only ones that should potentially use the router.
24
+ // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L453
25
+ if (clickEvent.button !== 0 || clickEvent.ctrlKey || clickEvent.shiftKey || clickEvent.altKey || clickEvent.metaKey) {
26
+ return;
27
+ }
28
+ const cellView = delegatedEvent.target;
29
+ // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L457
30
+ if (typeof cellView.columnConfig.target === 'string' && cellView.columnConfig.target !== '_self') {
31
+ return;
32
+ }
33
+ const href = cellView.cellRecord.href;
25
34
  if (!href) {
26
35
  return;
27
36
  }
28
- // Let the router handle this navigation
29
- super.routerLink = href;
30
- if (!this.onClick(clickEvent.button, clickEvent.ctrlKey, clickEvent.shiftKey, clickEvent.altKey, clickEvent.metaKey)) {
37
+ if (this.navigationGuard && !this.navigationGuard(recordId)) {
31
38
  clickEvent.preventDefault();
32
39
  }
33
- super.routerLink = null;
34
40
  }
35
41
  }
36
- NimbleTableColumnAnchorRouterLinkWithHrefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
37
- NimbleTableColumnAnchorRouterLinkWithHrefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, selector: "nimble-table-column-anchor[nimbleRouterLink]", host: { listeners: { "delegated-event": "onDelegatedEvent($event.detail.originalEvent)" } }, usesInheritance: true, ngImport: i0 });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, decorators: [{
42
+ NimbleTableColumnAnchorNavigationGuardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorNavigationGuardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
43
+ NimbleTableColumnAnchorNavigationGuardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorNavigationGuardDirective, selector: "nimble-table-column-anchor[navigationGuard]", inputs: { navigationGuard: "navigationGuard" }, host: { listeners: { "delegated-event": "onDelegatedEvent($event.detail.originalEvent,$event.detail.recordId)" } }, ngImport: i0 });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorNavigationGuardDirective, decorators: [{
39
45
  type: Directive,
40
46
  args: [{
41
- selector: 'nimble-table-column-anchor[nimbleRouterLink]'
47
+ selector: 'nimble-table-column-anchor[navigationGuard]'
42
48
  }]
43
- }], propDecorators: { onDelegatedEvent: [{
49
+ }], propDecorators: { navigationGuard: [{
50
+ type: Input
51
+ }], onDelegatedEvent: [{
44
52
  type: HostListener,
45
- args: ['delegated-event', ['$event.detail.originalEvent']]
53
+ args: ['delegated-event', ['$event.detail.originalEvent', '$event.detail.recordId']]
46
54
  }] } });
47
55
 
48
- /**
49
- * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleTableColumnAnchorRouterLinkWithHrefDirective.
50
- *
51
- * @see NimbleTableColumnAnchorRouterLinkWithHrefDirective
52
- */
53
- class NimbleTableColumnAnchorRouterLinkDirective {
54
- constructor() {
55
- throw new Error('Use [nimbleRouterLink] instead of [routerLink].');
56
- }
57
- }
58
- NimbleTableColumnAnchorRouterLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
- NimbleTableColumnAnchorRouterLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorRouterLinkDirective, selector: "nimble-table-column-anchor[routerLink]", ngImport: i0 });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkDirective, decorators: [{
61
- type: Directive,
62
- args: [{ selector: 'nimble-table-column-anchor[routerLink]' }]
63
- }], ctorParameters: function () { return []; } });
64
-
65
56
  /**
66
57
  * Directive to provide Angular integration for the table column element for links.
67
58
  */
@@ -223,14 +214,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
223
214
  class NimbleTableColumnAnchorModule {
224
215
  }
225
216
  NimbleTableColumnAnchorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
226
- NimbleTableColumnAnchorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective], imports: [CommonModule], exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective] });
217
+ NimbleTableColumnAnchorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective], imports: [CommonModule], exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective] });
227
218
  NimbleTableColumnAnchorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, imports: [CommonModule] });
228
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, decorators: [{
229
220
  type: NgModule,
230
221
  args: [{
231
- declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective],
222
+ declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective],
232
223
  imports: [CommonModule],
233
- exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective]
224
+ exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective]
234
225
  }]
235
226
  }] });
236
227
 
@@ -238,5 +229,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
238
229
  * Generated bundle index. Do not edit.
239
230
  */
240
231
 
241
- export { NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorModule, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective };
232
+ export { NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorModule, NimbleTableColumnAnchorNavigationGuardDirective };
242
233
  //# sourceMappingURL=ni-nimble-angular-table-column-anchor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ni-nimble-angular-table-column-anchor.mjs","sources":["../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor-router-link-with-href.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor-router-link.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.module.ts","../../../../projects/ni/nimble-angular/table-column/anchor/ni-nimble-angular-table-column-anchor.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\nimport { RouterLinkWithHref } from '@angular/router';\nimport type { TableColumnAnchorCellView } from '@ni/nimble-components/dist/esm/table-column/anchor/cell-view';\n\n/**\n * Directive to handle nimble-table-column-anchor RouterLink support.\n * Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there\n * won't also be an active RouterLink directive incorrectly handling navigation.\n */\n@Directive({\n selector: 'nimble-table-column-anchor[nimbleRouterLink]'\n})\nexport class NimbleTableColumnAnchorRouterLinkWithHrefDirective extends RouterLinkWithHref {\n public set routerLink(_commands: unknown[] | string | null | undefined) {\n throw new Error('Directly configuring the routerLink url is not supported. The router url is configured via the href-field-name of the column.');\n }\n\n @HostListener('delegated-event', ['$event.detail.originalEvent'])\n private onDelegatedEvent(delegatedEvent: Event): void {\n if (delegatedEvent.type !== 'click') {\n return;\n }\n\n const clickEvent = delegatedEvent as MouseEvent;\n const href = (delegatedEvent.target as TableColumnAnchorCellView).cellRecord.href;\n\n if (!href) {\n return;\n }\n\n // Let the router handle this navigation\n super.routerLink = href;\n if (!this.onClick(clickEvent.button, clickEvent.ctrlKey, clickEvent.shiftKey, clickEvent.altKey, clickEvent.metaKey)) {\n clickEvent.preventDefault();\n }\n super.routerLink = null;\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleTableColumnAnchorRouterLinkWithHrefDirective.\n *\n * @see NimbleTableColumnAnchorRouterLinkWithHrefDirective\n */\n@Directive({ selector: 'nimble-table-column-anchor[routerLink]' })\nexport class NimbleTableColumnAnchorRouterLinkDirective {\n public constructor() {\n throw new Error('Use [nimbleRouterLink] instead of [routerLink].');\n }\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\nimport { type TableColumnAnchor, tableColumnAnchorTag } from '@ni/nimble-components/dist/esm/table-column/anchor';\nimport { AnchorAppearance } from '@ni/nimble-components/dist/esm/anchor/types';\nimport { BooleanValueOrAttribute, NumberValueOrAttribute, toBooleanProperty, toNullableNumberProperty } from '@ni/nimble-angular/internal-utilities';\nimport { NimbleTableColumnBaseDirective } from '@ni/nimble-angular/table-column';\n\nexport type { TableColumnAnchor };\nexport { tableColumnAnchorTag };\nexport { AnchorAppearance };\n\n/**\n * Directive to provide Angular integration for the table column element for links.\n */\n@Directive({\n selector: 'nimble-table-column-anchor'\n})\nexport class NimbleTableColumnAnchorDirective extends NimbleTableColumnBaseDirective<TableColumnAnchor> {\n public get labelFieldName(): string | undefined {\n return this.elementRef.nativeElement.labelFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('label-field-name') public set labelFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'labelFieldName', value);\n }\n\n public get hrefFieldName(): string | undefined {\n return this.elementRef.nativeElement.hrefFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('href-field-name') public set hrefFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hrefFieldName', value);\n }\n\n public get appearance(): AnchorAppearance {\n return this.elementRef.nativeElement.appearance;\n }\n\n @Input() public set appearance(value: AnchorAppearance) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'appearance', value);\n }\n\n public get underlineHidden(): boolean {\n return this.elementRef.nativeElement.underlineHidden;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('underline-hidden') public set underlineHidden(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'underlineHidden', toBooleanProperty(value));\n }\n\n public get hreflang(): string | undefined {\n return this.elementRef.nativeElement.hreflang;\n }\n\n @Input() public set hreflang(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hreflang', value);\n }\n\n public get ping(): string | undefined {\n return this.elementRef.nativeElement.ping;\n }\n\n @Input() public set ping(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'ping', value);\n }\n\n public get referrerpolicy(): string | undefined {\n return this.elementRef.nativeElement.referrerpolicy;\n }\n\n @Input() public set referrerpolicy(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'referrerpolicy', value);\n }\n\n public get rel(): string | undefined {\n return this.elementRef.nativeElement.rel;\n }\n\n @Input() public set rel(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'rel', value);\n }\n\n public get target(): string | undefined {\n return this.elementRef.nativeElement.target;\n }\n\n @Input() public set target(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'target', value);\n }\n\n public get type(): string | undefined {\n return this.elementRef.nativeElement.type;\n }\n\n @Input() public set type(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);\n }\n\n public get download(): string | undefined {\n return this.elementRef.nativeElement.download;\n }\n\n @Input() public set download(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'download', value);\n }\n\n public get fractionalWidth(): number | null | undefined {\n return this.elementRef.nativeElement.fractionalWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fractional-width') public set fractionalWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'fractionalWidth', toNullableNumberProperty(value));\n }\n\n public get minPixelWidth(): number | null | undefined {\n return this.elementRef.nativeElement.minPixelWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('min-pixel-width') public set minPixelWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'minPixelWidth', toNullableNumberProperty(value));\n }\n\n public get groupIndex(): number | null | undefined {\n return this.elementRef.nativeElement.groupIndex;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('group-index') public set groupIndex(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupIndex', toNullableNumberProperty(value));\n }\n\n public get groupingDisabled(): boolean {\n return this.elementRef.nativeElement.groupingDisabled;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('grouping-disabled') public set groupingDisabled(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupingDisabled', toBooleanProperty(value));\n }\n\n public constructor(renderer: Renderer2, elementRef: ElementRef<TableColumnAnchor>) {\n super(renderer, elementRef);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NimbleTableColumnAnchorDirective } from './nimble-table-column-anchor.directive';\nimport { NimbleTableColumnAnchorRouterLinkWithHrefDirective } from './nimble-table-column-anchor-router-link-with-href.directive';\nimport { NimbleTableColumnAnchorRouterLinkDirective } from './nimble-table-column-anchor-router-link.directive';\n\nimport '@ni/nimble-components/dist/esm/table-column/anchor';\n\n@NgModule({\n declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective],\n imports: [CommonModule],\n exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective]\n})\nexport class NimbleTableColumnAnchorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ni-nimble-angular-table-column-anchor.mjs","sources":["../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor-navigation-guard.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.module.ts","../../../../projects/ni/nimble-angular/table-column/anchor/ni-nimble-angular-table-column-anchor.ts"],"sourcesContent":["import { Directive, HostListener, Input } from '@angular/core';\nimport type { TableColumnAnchorCellView } from '@ni/nimble-components/dist/esm/table-column/anchor/cell-view';\n\nexport type NavigationGuard = (rowRecordId: string | undefined) => boolean;\n\n/**\n * Directive to allow client to intercept anchor clicks and do router navigation instead of\n * letting the default action handle the navigation. The client supplies a function which is\n * expected to build the proper url and call one of the router's navigation functions, passing\n * the url and any navigation options. If the router successfully navigated, the function should\n * return false to prevent the link's default click handler from also performing the navigation.\n */\n@Directive({\n selector: 'nimble-table-column-anchor[navigationGuard]'\n})\nexport class NimbleTableColumnAnchorNavigationGuardDirective {\n @Input()\n public navigationGuard?: NavigationGuard;\n\n @HostListener('delegated-event', ['$event.detail.originalEvent', '$event.detail.recordId'])\n private onDelegatedEvent(delegatedEvent: Event, recordId: string | undefined): void {\n if (delegatedEvent.type !== 'click') {\n return;\n }\n\n const clickEvent = delegatedEvent as MouseEvent;\n // Only call the navigationGuard for plain left clicks.\n // Those are the only ones that should potentially use the router.\n // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L453\n if (clickEvent.button !== 0 || clickEvent.ctrlKey || clickEvent.shiftKey || clickEvent.altKey || clickEvent.metaKey) {\n return;\n }\n\n const cellView = delegatedEvent.target as TableColumnAnchorCellView;\n // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L457\n if (typeof cellView.columnConfig.target === 'string' && cellView.columnConfig.target !== '_self') {\n return;\n }\n\n const href = cellView.cellRecord.href;\n if (!href) {\n return;\n }\n\n if (this.navigationGuard && !this.navigationGuard(recordId)) {\n clickEvent.preventDefault();\n }\n }\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\nimport { type TableColumnAnchor, tableColumnAnchorTag } from '@ni/nimble-components/dist/esm/table-column/anchor';\nimport { AnchorAppearance } from '@ni/nimble-components/dist/esm/anchor/types';\nimport { BooleanValueOrAttribute, NumberValueOrAttribute, toBooleanProperty, toNullableNumberProperty } from '@ni/nimble-angular/internal-utilities';\nimport { NimbleTableColumnBaseDirective } from '@ni/nimble-angular/table-column';\n\nexport type { TableColumnAnchor };\nexport { tableColumnAnchorTag };\nexport { AnchorAppearance };\n\n/**\n * Directive to provide Angular integration for the table column element for links.\n */\n@Directive({\n selector: 'nimble-table-column-anchor'\n})\nexport class NimbleTableColumnAnchorDirective extends NimbleTableColumnBaseDirective<TableColumnAnchor> {\n public get labelFieldName(): string | undefined {\n return this.elementRef.nativeElement.labelFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('label-field-name') public set labelFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'labelFieldName', value);\n }\n\n public get hrefFieldName(): string | undefined {\n return this.elementRef.nativeElement.hrefFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('href-field-name') public set hrefFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hrefFieldName', value);\n }\n\n public get appearance(): AnchorAppearance {\n return this.elementRef.nativeElement.appearance;\n }\n\n @Input() public set appearance(value: AnchorAppearance) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'appearance', value);\n }\n\n public get underlineHidden(): boolean {\n return this.elementRef.nativeElement.underlineHidden;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('underline-hidden') public set underlineHidden(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'underlineHidden', toBooleanProperty(value));\n }\n\n public get hreflang(): string | undefined {\n return this.elementRef.nativeElement.hreflang;\n }\n\n @Input() public set hreflang(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hreflang', value);\n }\n\n public get ping(): string | undefined {\n return this.elementRef.nativeElement.ping;\n }\n\n @Input() public set ping(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'ping', value);\n }\n\n public get referrerpolicy(): string | undefined {\n return this.elementRef.nativeElement.referrerpolicy;\n }\n\n @Input() public set referrerpolicy(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'referrerpolicy', value);\n }\n\n public get rel(): string | undefined {\n return this.elementRef.nativeElement.rel;\n }\n\n @Input() public set rel(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'rel', value);\n }\n\n public get target(): string | undefined {\n return this.elementRef.nativeElement.target;\n }\n\n @Input() public set target(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'target', value);\n }\n\n public get type(): string | undefined {\n return this.elementRef.nativeElement.type;\n }\n\n @Input() public set type(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);\n }\n\n public get download(): string | undefined {\n return this.elementRef.nativeElement.download;\n }\n\n @Input() public set download(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'download', value);\n }\n\n public get fractionalWidth(): number | null | undefined {\n return this.elementRef.nativeElement.fractionalWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fractional-width') public set fractionalWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'fractionalWidth', toNullableNumberProperty(value));\n }\n\n public get minPixelWidth(): number | null | undefined {\n return this.elementRef.nativeElement.minPixelWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('min-pixel-width') public set minPixelWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'minPixelWidth', toNullableNumberProperty(value));\n }\n\n public get groupIndex(): number | null | undefined {\n return this.elementRef.nativeElement.groupIndex;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('group-index') public set groupIndex(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupIndex', toNullableNumberProperty(value));\n }\n\n public get groupingDisabled(): boolean {\n return this.elementRef.nativeElement.groupingDisabled;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('grouping-disabled') public set groupingDisabled(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupingDisabled', toBooleanProperty(value));\n }\n\n public constructor(renderer: Renderer2, elementRef: ElementRef<TableColumnAnchor>) {\n super(renderer, elementRef);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NimbleTableColumnAnchorDirective } from './nimble-table-column-anchor.directive';\nimport { NimbleTableColumnAnchorNavigationGuardDirective } from './nimble-table-column-anchor-navigation-guard.directive';\n\nimport '@ni/nimble-components/dist/esm/table-column/anchor';\n\n@NgModule({\n declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective],\n imports: [CommonModule],\n exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective]\n})\nexport class NimbleTableColumnAnchorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, HostListener, Input, NgModule } from '@angular/core';
3
- import { RouterLinkWithHref } from '@angular/router';
2
+ import { Directive, Input, HostListener, NgModule } from '@angular/core';
4
3
  export { tableColumnAnchorTag } from '@ni/nimble-components/dist/esm/table-column/anchor';
5
4
  export { AnchorAppearance } from '@ni/nimble-components/dist/esm/anchor/types';
6
5
  import { toBooleanProperty, toNullableNumberProperty } from '@ni/nimble-angular/internal-utilities';
@@ -8,60 +7,52 @@ import { NimbleTableColumnBaseDirective } from '@ni/nimble-angular/table-column'
8
7
  import { CommonModule } from '@angular/common';
9
8
 
10
9
  /**
11
- * Directive to handle nimble-table-column-anchor RouterLink support.
12
- * Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
13
- * won't also be an active RouterLink directive incorrectly handling navigation.
10
+ * Directive to allow client to intercept anchor clicks and do router navigation instead of
11
+ * letting the default action handle the navigation. The client supplies a function which is
12
+ * expected to build the proper url and call one of the router's navigation functions, passing
13
+ * the url and any navigation options. If the router successfully navigated, the function should
14
+ * return false to prevent the link's default click handler from also performing the navigation.
14
15
  */
15
- class NimbleTableColumnAnchorRouterLinkWithHrefDirective extends RouterLinkWithHref {
16
- set routerLink(_commands) {
17
- throw new Error('Directly configuring the routerLink url is not supported. The router url is configured via the href-field-name of the column.');
18
- }
19
- onDelegatedEvent(delegatedEvent) {
16
+ class NimbleTableColumnAnchorNavigationGuardDirective {
17
+ onDelegatedEvent(delegatedEvent, recordId) {
20
18
  if (delegatedEvent.type !== 'click') {
21
19
  return;
22
20
  }
23
21
  const clickEvent = delegatedEvent;
24
- const href = delegatedEvent.target.cellRecord.href;
22
+ // Only call the navigationGuard for plain left clicks.
23
+ // Those are the only ones that should potentially use the router.
24
+ // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L453
25
+ if (clickEvent.button !== 0 || clickEvent.ctrlKey || clickEvent.shiftKey || clickEvent.altKey || clickEvent.metaKey) {
26
+ return;
27
+ }
28
+ const cellView = delegatedEvent.target;
29
+ // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L457
30
+ if (typeof cellView.columnConfig.target === 'string' && cellView.columnConfig.target !== '_self') {
31
+ return;
32
+ }
33
+ const href = cellView.cellRecord.href;
25
34
  if (!href) {
26
35
  return;
27
36
  }
28
- // Let the router handle this navigation
29
- super.routerLink = href;
30
- if (!this.onClick(clickEvent.button, clickEvent.ctrlKey, clickEvent.shiftKey, clickEvent.altKey, clickEvent.metaKey)) {
37
+ if (this.navigationGuard && !this.navigationGuard(recordId)) {
31
38
  clickEvent.preventDefault();
32
39
  }
33
- super.routerLink = null;
34
40
  }
35
41
  }
36
- NimbleTableColumnAnchorRouterLinkWithHrefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
37
- NimbleTableColumnAnchorRouterLinkWithHrefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, selector: "nimble-table-column-anchor[nimbleRouterLink]", host: { listeners: { "delegated-event": "onDelegatedEvent($event.detail.originalEvent)" } }, usesInheritance: true, ngImport: i0 });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, decorators: [{
42
+ NimbleTableColumnAnchorNavigationGuardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorNavigationGuardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
43
+ NimbleTableColumnAnchorNavigationGuardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorNavigationGuardDirective, selector: "nimble-table-column-anchor[navigationGuard]", inputs: { navigationGuard: "navigationGuard" }, host: { listeners: { "delegated-event": "onDelegatedEvent($event.detail.originalEvent,$event.detail.recordId)" } }, ngImport: i0 });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorNavigationGuardDirective, decorators: [{
39
45
  type: Directive,
40
46
  args: [{
41
- selector: 'nimble-table-column-anchor[nimbleRouterLink]'
47
+ selector: 'nimble-table-column-anchor[navigationGuard]'
42
48
  }]
43
- }], propDecorators: { onDelegatedEvent: [{
49
+ }], propDecorators: { navigationGuard: [{
50
+ type: Input
51
+ }], onDelegatedEvent: [{
44
52
  type: HostListener,
45
- args: ['delegated-event', ['$event.detail.originalEvent']]
53
+ args: ['delegated-event', ['$event.detail.originalEvent', '$event.detail.recordId']]
46
54
  }] } });
47
55
 
48
- /**
49
- * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleTableColumnAnchorRouterLinkWithHrefDirective.
50
- *
51
- * @see NimbleTableColumnAnchorRouterLinkWithHrefDirective
52
- */
53
- class NimbleTableColumnAnchorRouterLinkDirective {
54
- constructor() {
55
- throw new Error('Use [nimbleRouterLink] instead of [routerLink].');
56
- }
57
- }
58
- NimbleTableColumnAnchorRouterLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
- NimbleTableColumnAnchorRouterLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorRouterLinkDirective, selector: "nimble-table-column-anchor[routerLink]", ngImport: i0 });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkDirective, decorators: [{
61
- type: Directive,
62
- args: [{ selector: 'nimble-table-column-anchor[routerLink]' }]
63
- }], ctorParameters: function () { return []; } });
64
-
65
56
  /**
66
57
  * Directive to provide Angular integration for the table column element for links.
67
58
  */
@@ -223,14 +214,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
223
214
  class NimbleTableColumnAnchorModule {
224
215
  }
225
216
  NimbleTableColumnAnchorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
226
- NimbleTableColumnAnchorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective], imports: [CommonModule], exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective] });
217
+ NimbleTableColumnAnchorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective], imports: [CommonModule], exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective] });
227
218
  NimbleTableColumnAnchorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, imports: [CommonModule] });
228
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorModule, decorators: [{
229
220
  type: NgModule,
230
221
  args: [{
231
- declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective],
222
+ declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective],
232
223
  imports: [CommonModule],
233
- exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective]
224
+ exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective]
234
225
  }]
235
226
  }] });
236
227
 
@@ -238,5 +229,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
238
229
  * Generated bundle index. Do not edit.
239
230
  */
240
231
 
241
- export { NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorModule, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective };
232
+ export { NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorModule, NimbleTableColumnAnchorNavigationGuardDirective };
242
233
  //# sourceMappingURL=ni-nimble-angular-table-column-anchor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ni-nimble-angular-table-column-anchor.mjs","sources":["../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor-router-link-with-href.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor-router-link.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.module.ts","../../../../projects/ni/nimble-angular/table-column/anchor/ni-nimble-angular-table-column-anchor.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\nimport { RouterLinkWithHref } from '@angular/router';\nimport type { TableColumnAnchorCellView } from '@ni/nimble-components/dist/esm/table-column/anchor/cell-view';\n\n/**\n * Directive to handle nimble-table-column-anchor RouterLink support.\n * Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there\n * won't also be an active RouterLink directive incorrectly handling navigation.\n */\n@Directive({\n selector: 'nimble-table-column-anchor[nimbleRouterLink]'\n})\nexport class NimbleTableColumnAnchorRouterLinkWithHrefDirective extends RouterLinkWithHref {\n public set routerLink(_commands: unknown[] | string | null | undefined) {\n throw new Error('Directly configuring the routerLink url is not supported. The router url is configured via the href-field-name of the column.');\n }\n\n @HostListener('delegated-event', ['$event.detail.originalEvent'])\n private onDelegatedEvent(delegatedEvent: Event): void {\n if (delegatedEvent.type !== 'click') {\n return;\n }\n\n const clickEvent = delegatedEvent as MouseEvent;\n const href = (delegatedEvent.target as TableColumnAnchorCellView).cellRecord.href;\n\n if (!href) {\n return;\n }\n\n // Let the router handle this navigation\n super.routerLink = href;\n if (!this.onClick(clickEvent.button, clickEvent.ctrlKey, clickEvent.shiftKey, clickEvent.altKey, clickEvent.metaKey)) {\n clickEvent.preventDefault();\n }\n super.routerLink = null;\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleTableColumnAnchorRouterLinkWithHrefDirective.\n *\n * @see NimbleTableColumnAnchorRouterLinkWithHrefDirective\n */\n@Directive({ selector: 'nimble-table-column-anchor[routerLink]' })\nexport class NimbleTableColumnAnchorRouterLinkDirective {\n public constructor() {\n throw new Error('Use [nimbleRouterLink] instead of [routerLink].');\n }\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\nimport { type TableColumnAnchor, tableColumnAnchorTag } from '@ni/nimble-components/dist/esm/table-column/anchor';\nimport { AnchorAppearance } from '@ni/nimble-components/dist/esm/anchor/types';\nimport { BooleanValueOrAttribute, NumberValueOrAttribute, toBooleanProperty, toNullableNumberProperty } from '@ni/nimble-angular/internal-utilities';\nimport { NimbleTableColumnBaseDirective } from '@ni/nimble-angular/table-column';\n\nexport type { TableColumnAnchor };\nexport { tableColumnAnchorTag };\nexport { AnchorAppearance };\n\n/**\n * Directive to provide Angular integration for the table column element for links.\n */\n@Directive({\n selector: 'nimble-table-column-anchor'\n})\nexport class NimbleTableColumnAnchorDirective extends NimbleTableColumnBaseDirective<TableColumnAnchor> {\n public get labelFieldName(): string | undefined {\n return this.elementRef.nativeElement.labelFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('label-field-name') public set labelFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'labelFieldName', value);\n }\n\n public get hrefFieldName(): string | undefined {\n return this.elementRef.nativeElement.hrefFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('href-field-name') public set hrefFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hrefFieldName', value);\n }\n\n public get appearance(): AnchorAppearance {\n return this.elementRef.nativeElement.appearance;\n }\n\n @Input() public set appearance(value: AnchorAppearance) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'appearance', value);\n }\n\n public get underlineHidden(): boolean {\n return this.elementRef.nativeElement.underlineHidden;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('underline-hidden') public set underlineHidden(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'underlineHidden', toBooleanProperty(value));\n }\n\n public get hreflang(): string | undefined {\n return this.elementRef.nativeElement.hreflang;\n }\n\n @Input() public set hreflang(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hreflang', value);\n }\n\n public get ping(): string | undefined {\n return this.elementRef.nativeElement.ping;\n }\n\n @Input() public set ping(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'ping', value);\n }\n\n public get referrerpolicy(): string | undefined {\n return this.elementRef.nativeElement.referrerpolicy;\n }\n\n @Input() public set referrerpolicy(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'referrerpolicy', value);\n }\n\n public get rel(): string | undefined {\n return this.elementRef.nativeElement.rel;\n }\n\n @Input() public set rel(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'rel', value);\n }\n\n public get target(): string | undefined {\n return this.elementRef.nativeElement.target;\n }\n\n @Input() public set target(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'target', value);\n }\n\n public get type(): string | undefined {\n return this.elementRef.nativeElement.type;\n }\n\n @Input() public set type(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);\n }\n\n public get download(): string | undefined {\n return this.elementRef.nativeElement.download;\n }\n\n @Input() public set download(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'download', value);\n }\n\n public get fractionalWidth(): number | null | undefined {\n return this.elementRef.nativeElement.fractionalWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fractional-width') public set fractionalWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'fractionalWidth', toNullableNumberProperty(value));\n }\n\n public get minPixelWidth(): number | null | undefined {\n return this.elementRef.nativeElement.minPixelWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('min-pixel-width') public set minPixelWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'minPixelWidth', toNullableNumberProperty(value));\n }\n\n public get groupIndex(): number | null | undefined {\n return this.elementRef.nativeElement.groupIndex;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('group-index') public set groupIndex(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupIndex', toNullableNumberProperty(value));\n }\n\n public get groupingDisabled(): boolean {\n return this.elementRef.nativeElement.groupingDisabled;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('grouping-disabled') public set groupingDisabled(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupingDisabled', toBooleanProperty(value));\n }\n\n public constructor(renderer: Renderer2, elementRef: ElementRef<TableColumnAnchor>) {\n super(renderer, elementRef);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NimbleTableColumnAnchorDirective } from './nimble-table-column-anchor.directive';\nimport { NimbleTableColumnAnchorRouterLinkWithHrefDirective } from './nimble-table-column-anchor-router-link-with-href.directive';\nimport { NimbleTableColumnAnchorRouterLinkDirective } from './nimble-table-column-anchor-router-link.directive';\n\nimport '@ni/nimble-components/dist/esm/table-column/anchor';\n\n@NgModule({\n declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective],\n imports: [CommonModule],\n exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorRouterLinkDirective, NimbleTableColumnAnchorRouterLinkWithHrefDirective]\n})\nexport class NimbleTableColumnAnchorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ni-nimble-angular-table-column-anchor.mjs","sources":["../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor-navigation-guard.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.directive.ts","../../../../projects/ni/nimble-angular/table-column/anchor/nimble-table-column-anchor.module.ts","../../../../projects/ni/nimble-angular/table-column/anchor/ni-nimble-angular-table-column-anchor.ts"],"sourcesContent":["import { Directive, HostListener, Input } from '@angular/core';\nimport type { TableColumnAnchorCellView } from '@ni/nimble-components/dist/esm/table-column/anchor/cell-view';\n\nexport type NavigationGuard = (rowRecordId: string | undefined) => boolean;\n\n/**\n * Directive to allow client to intercept anchor clicks and do router navigation instead of\n * letting the default action handle the navigation. The client supplies a function which is\n * expected to build the proper url and call one of the router's navigation functions, passing\n * the url and any navigation options. If the router successfully navigated, the function should\n * return false to prevent the link's default click handler from also performing the navigation.\n */\n@Directive({\n selector: 'nimble-table-column-anchor[navigationGuard]'\n})\nexport class NimbleTableColumnAnchorNavigationGuardDirective {\n @Input()\n public navigationGuard?: NavigationGuard;\n\n @HostListener('delegated-event', ['$event.detail.originalEvent', '$event.detail.recordId'])\n private onDelegatedEvent(delegatedEvent: Event, recordId: string | undefined): void {\n if (delegatedEvent.type !== 'click') {\n return;\n }\n\n const clickEvent = delegatedEvent as MouseEvent;\n // Only call the navigationGuard for plain left clicks.\n // Those are the only ones that should potentially use the router.\n // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L453\n if (clickEvent.button !== 0 || clickEvent.ctrlKey || clickEvent.shiftKey || clickEvent.altKey || clickEvent.metaKey) {\n return;\n }\n\n const cellView = delegatedEvent.target as TableColumnAnchorCellView;\n // Based on: https://github.com/angular/angular/blob/35a3fde5b71ef3b50282fe6f7b37ca1c92b8d2a0/packages/router/src/directives/router_link.ts#L457\n if (typeof cellView.columnConfig.target === 'string' && cellView.columnConfig.target !== '_self') {\n return;\n }\n\n const href = cellView.cellRecord.href;\n if (!href) {\n return;\n }\n\n if (this.navigationGuard && !this.navigationGuard(recordId)) {\n clickEvent.preventDefault();\n }\n }\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\nimport { type TableColumnAnchor, tableColumnAnchorTag } from '@ni/nimble-components/dist/esm/table-column/anchor';\nimport { AnchorAppearance } from '@ni/nimble-components/dist/esm/anchor/types';\nimport { BooleanValueOrAttribute, NumberValueOrAttribute, toBooleanProperty, toNullableNumberProperty } from '@ni/nimble-angular/internal-utilities';\nimport { NimbleTableColumnBaseDirective } from '@ni/nimble-angular/table-column';\n\nexport type { TableColumnAnchor };\nexport { tableColumnAnchorTag };\nexport { AnchorAppearance };\n\n/**\n * Directive to provide Angular integration for the table column element for links.\n */\n@Directive({\n selector: 'nimble-table-column-anchor'\n})\nexport class NimbleTableColumnAnchorDirective extends NimbleTableColumnBaseDirective<TableColumnAnchor> {\n public get labelFieldName(): string | undefined {\n return this.elementRef.nativeElement.labelFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('label-field-name') public set labelFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'labelFieldName', value);\n }\n\n public get hrefFieldName(): string | undefined {\n return this.elementRef.nativeElement.hrefFieldName;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('href-field-name') public set hrefFieldName(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hrefFieldName', value);\n }\n\n public get appearance(): AnchorAppearance {\n return this.elementRef.nativeElement.appearance;\n }\n\n @Input() public set appearance(value: AnchorAppearance) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'appearance', value);\n }\n\n public get underlineHidden(): boolean {\n return this.elementRef.nativeElement.underlineHidden;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('underline-hidden') public set underlineHidden(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'underlineHidden', toBooleanProperty(value));\n }\n\n public get hreflang(): string | undefined {\n return this.elementRef.nativeElement.hreflang;\n }\n\n @Input() public set hreflang(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'hreflang', value);\n }\n\n public get ping(): string | undefined {\n return this.elementRef.nativeElement.ping;\n }\n\n @Input() public set ping(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'ping', value);\n }\n\n public get referrerpolicy(): string | undefined {\n return this.elementRef.nativeElement.referrerpolicy;\n }\n\n @Input() public set referrerpolicy(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'referrerpolicy', value);\n }\n\n public get rel(): string | undefined {\n return this.elementRef.nativeElement.rel;\n }\n\n @Input() public set rel(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'rel', value);\n }\n\n public get target(): string | undefined {\n return this.elementRef.nativeElement.target;\n }\n\n @Input() public set target(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'target', value);\n }\n\n public get type(): string | undefined {\n return this.elementRef.nativeElement.type;\n }\n\n @Input() public set type(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);\n }\n\n public get download(): string | undefined {\n return this.elementRef.nativeElement.download;\n }\n\n @Input() public set download(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'download', value);\n }\n\n public get fractionalWidth(): number | null | undefined {\n return this.elementRef.nativeElement.fractionalWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fractional-width') public set fractionalWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'fractionalWidth', toNullableNumberProperty(value));\n }\n\n public get minPixelWidth(): number | null | undefined {\n return this.elementRef.nativeElement.minPixelWidth;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('min-pixel-width') public set minPixelWidth(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'minPixelWidth', toNullableNumberProperty(value));\n }\n\n public get groupIndex(): number | null | undefined {\n return this.elementRef.nativeElement.groupIndex;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('group-index') public set groupIndex(value: NumberValueOrAttribute | null | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupIndex', toNullableNumberProperty(value));\n }\n\n public get groupingDisabled(): boolean {\n return this.elementRef.nativeElement.groupingDisabled;\n }\n\n // Renaming because property should have camel casing, but attribute should not\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('grouping-disabled') public set groupingDisabled(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'groupingDisabled', toBooleanProperty(value));\n }\n\n public constructor(renderer: Renderer2, elementRef: ElementRef<TableColumnAnchor>) {\n super(renderer, elementRef);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NimbleTableColumnAnchorDirective } from './nimble-table-column-anchor.directive';\nimport { NimbleTableColumnAnchorNavigationGuardDirective } from './nimble-table-column-anchor-navigation-guard.directive';\n\nimport '@ni/nimble-components/dist/esm/table-column/anchor';\n\n@NgModule({\n declarations: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective],\n imports: [CommonModule],\n exports: [NimbleTableColumnAnchorDirective, NimbleTableColumnAnchorNavigationGuardDirective]\n})\nexport class NimbleTableColumnAnchorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-angular",
3
- "version": "16.8.7",
3
+ "version": "16.8.8",
4
4
  "description": "Angular components for the NI Nimble Design System",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,15 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare type NavigationGuard = (rowRecordId: string | undefined) => boolean;
3
+ /**
4
+ * Directive to allow client to intercept anchor clicks and do router navigation instead of
5
+ * letting the default action handle the navigation. The client supplies a function which is
6
+ * expected to build the proper url and call one of the router's navigation functions, passing
7
+ * the url and any navigation options. If the router successfully navigated, the function should
8
+ * return false to prevent the link's default click handler from also performing the navigation.
9
+ */
10
+ export declare class NimbleTableColumnAnchorNavigationGuardDirective {
11
+ navigationGuard?: NavigationGuard;
12
+ private onDelegatedEvent;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<NimbleTableColumnAnchorNavigationGuardDirective, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NimbleTableColumnAnchorNavigationGuardDirective, "nimble-table-column-anchor[navigationGuard]", never, { "navigationGuard": "navigationGuard"; }, {}, never, never, false>;
15
+ }
@@ -1,11 +1,10 @@
1
1
  import '@ni/nimble-components/dist/esm/table-column/anchor';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./nimble-table-column-anchor.directive";
4
- import * as i2 from "./nimble-table-column-anchor-router-link.directive";
5
- import * as i3 from "./nimble-table-column-anchor-router-link-with-href.directive";
6
- import * as i4 from "@angular/common";
4
+ import * as i2 from "./nimble-table-column-anchor-navigation-guard.directive";
5
+ import * as i3 from "@angular/common";
7
6
  export declare class NimbleTableColumnAnchorModule {
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NimbleTableColumnAnchorModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<NimbleTableColumnAnchorModule, [typeof i1.NimbleTableColumnAnchorDirective, typeof i2.NimbleTableColumnAnchorRouterLinkDirective, typeof i3.NimbleTableColumnAnchorRouterLinkWithHrefDirective], [typeof i4.CommonModule], [typeof i1.NimbleTableColumnAnchorDirective, typeof i2.NimbleTableColumnAnchorRouterLinkDirective, typeof i3.NimbleTableColumnAnchorRouterLinkWithHrefDirective]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NimbleTableColumnAnchorModule, [typeof i1.NimbleTableColumnAnchorDirective, typeof i2.NimbleTableColumnAnchorNavigationGuardDirective], [typeof i3.CommonModule], [typeof i1.NimbleTableColumnAnchorDirective, typeof i2.NimbleTableColumnAnchorNavigationGuardDirective]>;
10
9
  static ɵinj: i0.ɵɵInjectorDeclaration<NimbleTableColumnAnchorModule>;
11
10
  }
@@ -1,4 +1,3 @@
1
- export * from './nimble-table-column-anchor-router-link-with-href.directive';
2
- export * from './nimble-table-column-anchor-router-link.directive';
1
+ export * from './nimble-table-column-anchor-navigation-guard.directive';
3
2
  export * from './nimble-table-column-anchor.directive';
4
3
  export * from './nimble-table-column-anchor.module';
@@ -1,41 +0,0 @@
1
- import { Directive, HostListener } from '@angular/core';
2
- import { RouterLinkWithHref } from '@angular/router';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Directive to handle nimble-table-column-anchor RouterLink support.
6
- * Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
7
- * won't also be an active RouterLink directive incorrectly handling navigation.
8
- */
9
- export class NimbleTableColumnAnchorRouterLinkWithHrefDirective extends RouterLinkWithHref {
10
- set routerLink(_commands) {
11
- throw new Error('Directly configuring the routerLink url is not supported. The router url is configured via the href-field-name of the column.');
12
- }
13
- onDelegatedEvent(delegatedEvent) {
14
- if (delegatedEvent.type !== 'click') {
15
- return;
16
- }
17
- const clickEvent = delegatedEvent;
18
- const href = delegatedEvent.target.cellRecord.href;
19
- if (!href) {
20
- return;
21
- }
22
- // Let the router handle this navigation
23
- super.routerLink = href;
24
- if (!this.onClick(clickEvent.button, clickEvent.ctrlKey, clickEvent.shiftKey, clickEvent.altKey, clickEvent.metaKey)) {
25
- clickEvent.preventDefault();
26
- }
27
- super.routerLink = null;
28
- }
29
- }
30
- NimbleTableColumnAnchorRouterLinkWithHrefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
31
- NimbleTableColumnAnchorRouterLinkWithHrefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, selector: "nimble-table-column-anchor[nimbleRouterLink]", host: { listeners: { "delegated-event": "onDelegatedEvent($event.detail.originalEvent)" } }, usesInheritance: true, ngImport: i0 });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkWithHrefDirective, decorators: [{
33
- type: Directive,
34
- args: [{
35
- selector: 'nimble-table-column-anchor[nimbleRouterLink]'
36
- }]
37
- }], propDecorators: { onDelegatedEvent: [{
38
- type: HostListener,
39
- args: ['delegated-event', ['$event.detail.originalEvent']]
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3Itcm91dGVyLWxpbmstd2l0aC1ocmVmLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3RhYmxlLWNvbHVtbi9hbmNob3IvbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3Itcm91dGVyLWxpbmstd2l0aC1ocmVmLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHckQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxrREFBbUQsU0FBUSxrQkFBa0I7SUFDdEYsSUFBVyxVQUFVLENBQUMsU0FBZ0Q7UUFDbEUsTUFBTSxJQUFJLEtBQUssQ0FBQywrSEFBK0gsQ0FBQyxDQUFDO0lBQ3JKLENBQUM7SUFHTyxnQkFBZ0IsQ0FBQyxjQUFxQjtRQUMxQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ2pDLE9BQU87U0FDVjtRQUVELE1BQU0sVUFBVSxHQUFHLGNBQTRCLENBQUM7UUFDaEQsTUFBTSxJQUFJLEdBQUksY0FBYyxDQUFDLE1BQW9DLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUVsRixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTztTQUNWO1FBRUQsd0NBQXdDO1FBQ3hDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xILFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMvQjtRQUNELEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7OytJQXhCUSxrREFBa0Q7bUlBQWxELGtEQUFrRDsyRkFBbEQsa0RBQWtEO2tCQUg5RCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4Q0FBOEM7aUJBQzNEOzhCQU9XLGdCQUFnQjtzQkFEdkIsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgdHlwZSB7IFRhYmxlQ29sdW1uQW5jaG9yQ2VsbFZpZXcgfSBmcm9tICdAbmkvbmltYmxlLWNvbXBvbmVudHMvZGlzdC9lc20vdGFibGUtY29sdW1uL2FuY2hvci9jZWxsLXZpZXcnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBoYW5kbGUgbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3IgUm91dGVyTGluayBzdXBwb3J0LlxuICogTm90ZTogQ2xpZW50cyBuZWVkIHRvIHVzZSBbbmltYmxlUm91dGVyTGlua10gaW5zdGVhZCBvZiBbcm91dGVyTGlua10sIHNvIHRoYXQgdGhlcmVcbiAqIHdvbid0IGFsc28gYmUgYW4gYWN0aXZlIFJvdXRlckxpbmsgZGlyZWN0aXZlIGluY29ycmVjdGx5IGhhbmRsaW5nIG5hdmlnYXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3JbbmltYmxlUm91dGVyTGlua10nXG59KVxuZXhwb3J0IGNsYXNzIE5pbWJsZVRhYmxlQ29sdW1uQW5jaG9yUm91dGVyTGlua1dpdGhIcmVmRGlyZWN0aXZlIGV4dGVuZHMgUm91dGVyTGlua1dpdGhIcmVmIHtcbiAgICBwdWJsaWMgc2V0IHJvdXRlckxpbmsoX2NvbW1hbmRzOiB1bmtub3duW10gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGlyZWN0bHkgY29uZmlndXJpbmcgdGhlIHJvdXRlckxpbmsgdXJsIGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSByb3V0ZXIgdXJsIGlzIGNvbmZpZ3VyZWQgdmlhIHRoZSBocmVmLWZpZWxkLW5hbWUgb2YgdGhlIGNvbHVtbi4nKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkZWxlZ2F0ZWQtZXZlbnQnLCBbJyRldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudCddKVxuICAgIHByaXZhdGUgb25EZWxlZ2F0ZWRFdmVudChkZWxlZ2F0ZWRFdmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRlbGVnYXRlZEV2ZW50LnR5cGUgIT09ICdjbGljaycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWNrRXZlbnQgPSBkZWxlZ2F0ZWRFdmVudCBhcyBNb3VzZUV2ZW50O1xuICAgICAgICBjb25zdCBocmVmID0gKGRlbGVnYXRlZEV2ZW50LnRhcmdldCBhcyBUYWJsZUNvbHVtbkFuY2hvckNlbGxWaWV3KS5jZWxsUmVjb3JkLmhyZWY7XG5cbiAgICAgICAgaWYgKCFocmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMZXQgdGhlIHJvdXRlciBoYW5kbGUgdGhpcyBuYXZpZ2F0aW9uXG4gICAgICAgIHN1cGVyLnJvdXRlckxpbmsgPSBocmVmO1xuICAgICAgICBpZiAoIXRoaXMub25DbGljayhjbGlja0V2ZW50LmJ1dHRvbiwgY2xpY2tFdmVudC5jdHJsS2V5LCBjbGlja0V2ZW50LnNoaWZ0S2V5LCBjbGlja0V2ZW50LmFsdEtleSwgY2xpY2tFdmVudC5tZXRhS2V5KSkge1xuICAgICAgICAgICAgY2xpY2tFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLnJvdXRlckxpbmsgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleTableColumnAnchorRouterLinkWithHrefDirective.
5
- *
6
- * @see NimbleTableColumnAnchorRouterLinkWithHrefDirective
7
- */
8
- export class NimbleTableColumnAnchorRouterLinkDirective {
9
- constructor() {
10
- throw new Error('Use [nimbleRouterLink] instead of [routerLink].');
11
- }
12
- }
13
- NimbleTableColumnAnchorRouterLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14
- NimbleTableColumnAnchorRouterLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleTableColumnAnchorRouterLinkDirective, selector: "nimble-table-column-anchor[routerLink]", ngImport: i0 });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleTableColumnAnchorRouterLinkDirective, decorators: [{
16
- type: Directive,
17
- args: [{ selector: 'nimble-table-column-anchor[routerLink]' }]
18
- }], ctorParameters: function () { return []; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3Itcm91dGVyLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmkvbmltYmxlLWFuZ3VsYXIvdGFibGUtY29sdW1uL2FuY2hvci9uaW1ibGUtdGFibGUtY29sdW1uLWFuY2hvci1yb3V0ZXItbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7Ozs7R0FJRztBQUVILE1BQU0sT0FBTywwQ0FBMEM7SUFDbkQ7UUFDSSxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7dUlBSFEsMENBQTBDOzJIQUExQywwQ0FBMEM7MkZBQTFDLDBDQUEwQztrQkFEdEQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3Q0FBd0MsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB1c2VkIHNvbGVseSB0byBwb2ludCBjb25zdW1lcnMgdG8gdXNlIFtuaW1ibGVSb3V0ZXJMaW5rXSAvIE5pbWJsZVRhYmxlQ29sdW1uQW5jaG9yUm91dGVyTGlua1dpdGhIcmVmRGlyZWN0aXZlLlxuICpcbiAqIEBzZWUgTmltYmxlVGFibGVDb2x1bW5BbmNob3JSb3V0ZXJMaW5rV2l0aEhyZWZEaXJlY3RpdmVcbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmltYmxlLXRhYmxlLWNvbHVtbi1hbmNob3Jbcm91dGVyTGlua10nIH0pXG5leHBvcnQgY2xhc3MgTmltYmxlVGFibGVDb2x1bW5BbmNob3JSb3V0ZXJMaW5rRGlyZWN0aXZlIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVXNlIFtuaW1ibGVSb3V0ZXJMaW5rXSBpbnN0ZWFkIG9mIFtyb3V0ZXJMaW5rXS4nKTtcbiAgICB9XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { RouterLinkWithHref } from '@angular/router';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Directive to handle nimble-table-column-anchor RouterLink support.
5
- * Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
6
- * won't also be an active RouterLink directive incorrectly handling navigation.
7
- */
8
- export declare class NimbleTableColumnAnchorRouterLinkWithHrefDirective extends RouterLinkWithHref {
9
- set routerLink(_commands: unknown[] | string | null | undefined);
10
- private onDelegatedEvent;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<NimbleTableColumnAnchorRouterLinkWithHrefDirective, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<NimbleTableColumnAnchorRouterLinkWithHrefDirective, "nimble-table-column-anchor[nimbleRouterLink]", never, {}, {}, never, never, false>;
13
- }
@@ -1,11 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- /**
3
- * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleTableColumnAnchorRouterLinkWithHrefDirective.
4
- *
5
- * @see NimbleTableColumnAnchorRouterLinkWithHrefDirective
6
- */
7
- export declare class NimbleTableColumnAnchorRouterLinkDirective {
8
- constructor();
9
- static ɵfac: i0.ɵɵFactoryDeclaration<NimbleTableColumnAnchorRouterLinkDirective, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<NimbleTableColumnAnchorRouterLinkDirective, "nimble-table-column-anchor[routerLink]", never, {}, {}, never, never, false>;
11
- }