@ni/nimble-angular 33.4.7 → 33.4.9
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/anchor-step/index.d.ts +0 -7
- package/fesm2022/ni-nimble-angular-anchor-step.mjs +0 -7
- package/fesm2022/ni-nimble-angular-anchor-step.mjs.map +1 -1
- package/fesm2022/ni-nimble-angular.mjs +4 -471
- package/fesm2022/ni-nimble-angular.mjs.map +1 -1
- package/index.d.ts +4 -283
- package/package.json +2 -2
package/anchor-step/index.d.ts
CHANGED
|
@@ -27,13 +27,6 @@ declare class NimbleAnchorStepDirective extends NimbleAnchorBaseDirective<Anchor
|
|
|
27
27
|
static ɵdir: i0.ɵɵDirectiveDeclaration<NimbleAnchorStepDirective, "nimble-anchor-step", never, { "severity": { "alias": "severity"; "required": false; }; "severityText": { "alias": "severity-text"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readOnly": { "alias": "readonly"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, {}, never, never, false, never>;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
/**
|
|
31
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
32
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
33
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
34
|
-
*
|
|
35
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
36
|
-
*/
|
|
37
30
|
/**
|
|
38
31
|
* Directive to handle nimble-anchor-step RouterLink support.
|
|
39
32
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|
|
@@ -6,13 +6,6 @@ export { AnchorStepSeverity } from '@ni/nimble-components/dist/esm/anchor-step/t
|
|
|
6
6
|
import { toBooleanProperty } from '@ni/nimble-angular/internal-utilities';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
11
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
12
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
13
|
-
*
|
|
14
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
15
|
-
*/
|
|
16
9
|
/**
|
|
17
10
|
* Directive to handle nimble-anchor-step RouterLink support.
|
|
18
11
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ni-nimble-angular-anchor-step.mjs","sources":["../../../nimble-angular/anchor-step/nimble-anchor-step-router-link-with-href.directive.ts","../../../nimble-angular/anchor-step/nimble-anchor-step-router-link.directive.ts","../../../nimble-angular/anchor-step/nimble-anchor-step.directive.ts","../../../nimble-angular/anchor-step/nimble-anchor-step.module.ts","../../../nimble-angular/anchor-step/ni-nimble-angular-anchor-step.ts"],"sourcesContent":["import { Directive, Input } from '@angular/core';\nimport { DisableableRouterLinkWithHrefDirective } from '@ni/nimble-angular';\nimport type { AnchorStep } from './nimble-anchor-step.directive';\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"ni-nimble-angular-anchor-step.mjs","sources":["../../../nimble-angular/anchor-step/nimble-anchor-step-router-link-with-href.directive.ts","../../../nimble-angular/anchor-step/nimble-anchor-step-router-link.directive.ts","../../../nimble-angular/anchor-step/nimble-anchor-step.directive.ts","../../../nimble-angular/anchor-step/nimble-anchor-step.module.ts","../../../nimble-angular/anchor-step/ni-nimble-angular-anchor-step.ts"],"sourcesContent":["import { Directive, Input } from '@angular/core';\nimport { DisableableRouterLinkWithHrefDirective } from '@ni/nimble-angular';\nimport type { AnchorStep } from './nimble-anchor-step.directive';\n\n/**\n * Directive to handle nimble-anchor-step 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-anchor-step[nimbleRouterLink]',\n standalone: false\n})\nexport class NimbleAnchorStepRouterLinkWithHrefDirective extends DisableableRouterLinkWithHrefDirective<AnchorStep> {\n @Input()\n public set nimbleRouterLink(commands: never[] | string | null | undefined) {\n this.routerLink = commands;\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleAnchorStepRouterLinkWithHrefDirective.\n *\n * @see NimbleAnchorStepRouterLinkWithHrefDirective\n */\n@Directive({\n selector: 'nimble-anchor-step[routerLink]',\n standalone: false\n})\nexport class NimbleAnchorStepRouterLinkDirective {\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 AnchorStep, anchorStepTag } from '@ni/nimble-components/dist/esm/anchor-step';\nimport { AnchorStepSeverity } from '@ni/nimble-components/dist/esm/anchor-step/types';\nimport { type BooleanValueOrAttribute, toBooleanProperty } from '@ni/nimble-angular/internal-utilities';\nimport { NimbleAnchorBaseDirective } from '@ni/nimble-angular';\n\nexport type { AnchorStep };\nexport { anchorStepTag };\nexport { AnchorStepSeverity };\n\n/**\n * Directive to provide Angular integration for the anchor step element.\n */\n@Directive({\n selector: 'nimble-anchor-step',\n standalone: false\n})\nexport class NimbleAnchorStepDirective extends NimbleAnchorBaseDirective<AnchorStep> {\n public get severity(): AnchorStepSeverity {\n return this.elementRef.nativeElement.severity;\n }\n\n @Input() public set severity(value: AnchorStepSeverity) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'severity', value);\n }\n\n public get severityText(): string | undefined {\n return this.elementRef.nativeElement.severityText;\n }\n\n @Input('severity-text') public set severityText(value: string | undefined) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'severityText', value);\n }\n\n public get disabled(): boolean {\n return this.elementRef.nativeElement.disabled;\n }\n\n @Input() public set disabled(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', toBooleanProperty(value));\n }\n\n public get readOnly(): boolean {\n return this.elementRef.nativeElement.readOnly;\n }\n\n // readOnly property maps to the readonly attribute\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/readOnly\n @Input('readonly') public set readOnly(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'readOnly', toBooleanProperty(value));\n }\n\n public get selected(): boolean {\n return this.elementRef.nativeElement.selected;\n }\n\n @Input() public set selected(value: BooleanValueOrAttribute) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'selected', toBooleanProperty(value));\n }\n\n public constructor(renderer: Renderer2, elementRef: ElementRef<AnchorStep>) {\n super(renderer, elementRef);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NimbleAnchorStepDirective } from './nimble-anchor-step.directive';\nimport { NimbleAnchorStepRouterLinkDirective } from './nimble-anchor-step-router-link.directive';\nimport { NimbleAnchorStepRouterLinkWithHrefDirective } from './nimble-anchor-step-router-link-with-href.directive';\n\nimport '@ni/nimble-components/dist/esm/anchor-step';\n\n@NgModule({\n declarations: [NimbleAnchorStepDirective, NimbleAnchorStepRouterLinkDirective, NimbleAnchorStepRouterLinkWithHrefDirective],\n imports: [CommonModule],\n exports: [NimbleAnchorStepDirective, NimbleAnchorStepRouterLinkDirective, NimbleAnchorStepRouterLinkWithHrefDirective]\n})\nexport class NimbleAnchorStepModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import * as i2 from '@angular/common';
|
|
4
|
-
import { LocationStrategy, CommonModule } from '@angular/common';
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
2
|
+
import { Input, Directive, NgModule, Inject, EventEmitter, HostListener, Output, forwardRef, Optional, Host, inject, ApplicationRef, DestroyRef, ChangeDetectorRef, isDevMode, afterNextRender, Injectable } from '@angular/core';
|
|
6
3
|
import * as i1 from '@angular/router';
|
|
7
|
-
import {
|
|
4
|
+
import { RouterLink, Router, ActivatedRoute } from '@angular/router';
|
|
8
5
|
export { anchorTag } from '@ni/nimble-components/dist/esm/anchor';
|
|
9
6
|
export { AnchorAppearance } from '@ni/nimble-components/dist/esm/anchor/types';
|
|
10
7
|
import { toBooleanProperty, toNumberProperty, toBooleanAriaAttribute } from '@ni/nimble-angular/internal-utilities';
|
|
8
|
+
import * as i2 from '@angular/common';
|
|
9
|
+
import { CommonModule, LocationStrategy } from '@angular/common';
|
|
11
10
|
export { anchorButtonTag } from '@ni/nimble-components/dist/esm/anchor-button';
|
|
12
11
|
export { anchorMenuItemTag } from '@ni/nimble-components/dist/esm/anchor-menu-item';
|
|
13
12
|
export { anchorTabTag } from '@ni/nimble-components/dist/esm/anchor-tab';
|
|
@@ -302,437 +301,6 @@ export { SpinnerAppearance } from '@ni/nimble-components/dist/esm/spinner/types'
|
|
|
302
301
|
export { DropdownAppearance } from '@ni/nimble-components/dist/esm/patterns/dropdown/types';
|
|
303
302
|
export { IconSeverity } from '@ni/nimble-components/dist/esm/icon-base/types';
|
|
304
303
|
|
|
305
|
-
/**
|
|
306
|
-
* [Nimble]
|
|
307
|
-
* Copied from https://github.com/angular/angular/blob/20.3.15/packages/router/src/directives/router_link.ts
|
|
308
|
-
* with the following modifications:
|
|
309
|
-
* - Copy `isUrlTree` function from url_tree.ts into this file instead of importing
|
|
310
|
-
* - Hardcode `isAnchorElement` to `true` so that the directive will correctly set the `href` on elements within nimble that represent anchors
|
|
311
|
-
* - Make `href` a `@HostBindinding` to avoid using Angular's private sanitization APIs because `href` bindings automatically are sanitized by
|
|
312
|
-
* Angular (see https://angular.dev/best-practices/security#sanitization-and-security-contexts). Implementations leveraging RouterLink should have a test
|
|
313
|
-
* ensuring sanitization is called.
|
|
314
|
-
* - Comment out uneccessary export of the deprecated `RouterLinkWithHref`
|
|
315
|
-
*/
|
|
316
|
-
/**
|
|
317
|
-
* @license
|
|
318
|
-
* Copyright Google LLC All Rights Reserved.
|
|
319
|
-
*
|
|
320
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
321
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
322
|
-
*/
|
|
323
|
-
// [Nimble] Copied from https://github.com/angular/angular/blob/18.2.13/packages/router/src/url_tree.ts
|
|
324
|
-
function isUrlTree(v) {
|
|
325
|
-
return v instanceof UrlTree;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* @description
|
|
329
|
-
*
|
|
330
|
-
* When applied to an element in a template, makes that element a link
|
|
331
|
-
* that initiates navigation to a route. Navigation opens one or more routed components
|
|
332
|
-
* in one or more `<router-outlet>` locations on the page.
|
|
333
|
-
*
|
|
334
|
-
* Given a route configuration `[{ path: 'user/:name', component: UserCmp }]`,
|
|
335
|
-
* the following creates a static link to the route:
|
|
336
|
-
* `<a routerLink="/user/bob">link to user component</a>`
|
|
337
|
-
*
|
|
338
|
-
* You can use dynamic values to generate the link.
|
|
339
|
-
* For a dynamic link, pass an array of path segments,
|
|
340
|
-
* followed by the params for each segment.
|
|
341
|
-
* For example, `['/team', teamId, 'user', userName, {details: true}]`
|
|
342
|
-
* generates a link to `/team/11/user/bob;details=true`.
|
|
343
|
-
*
|
|
344
|
-
* Multiple static segments can be merged into one term and combined with dynamic segments.
|
|
345
|
-
* For example, `['/team/11/user', userName, {details: true}]`
|
|
346
|
-
*
|
|
347
|
-
* The input that you provide to the link is treated as a delta to the current URL.
|
|
348
|
-
* For instance, suppose the current URL is `/user/(box//aux:team)`.
|
|
349
|
-
* The link `<a [routerLink]="['/user/jim']">Jim</a>` creates the URL
|
|
350
|
-
* `/user/(jim//aux:team)`.
|
|
351
|
-
* See {@link Router#createUrlTree} for more information.
|
|
352
|
-
*
|
|
353
|
-
* @usageNotes
|
|
354
|
-
*
|
|
355
|
-
* You can use absolute or relative paths in a link, set query parameters,
|
|
356
|
-
* control how parameters are handled, and keep a history of navigation states.
|
|
357
|
-
*
|
|
358
|
-
* ### Relative link paths
|
|
359
|
-
*
|
|
360
|
-
* The first segment name can be prepended with `/`, `./`, or `../`.
|
|
361
|
-
* * If the first segment begins with `/`, the router looks up the route from the root of the
|
|
362
|
-
* app.
|
|
363
|
-
* * If the first segment begins with `./`, or doesn't begin with a slash, the router
|
|
364
|
-
* looks in the children of the current activated route.
|
|
365
|
-
* * If the first segment begins with `../`, the router goes up one level in the route tree.
|
|
366
|
-
*
|
|
367
|
-
* ### Setting and handling query params and fragments
|
|
368
|
-
*
|
|
369
|
-
* The following link adds a query parameter and a fragment to the generated URL:
|
|
370
|
-
*
|
|
371
|
-
* ```html
|
|
372
|
-
* <a [routerLink]="['/user/bob']" [queryParams]="{debug: true}" fragment="education">
|
|
373
|
-
* link to user component
|
|
374
|
-
* </a>
|
|
375
|
-
* ```
|
|
376
|
-
* By default, the directive constructs the new URL using the given query parameters.
|
|
377
|
-
* The example generates the link: `/user/bob?debug=true#education`.
|
|
378
|
-
*
|
|
379
|
-
* You can instruct the directive to handle query parameters differently
|
|
380
|
-
* by specifying the `queryParamsHandling` option in the link.
|
|
381
|
-
* Allowed values are:
|
|
382
|
-
*
|
|
383
|
-
* - `'merge'`: Merge the given `queryParams` into the current query params.
|
|
384
|
-
* - `'preserve'`: Preserve the current query params.
|
|
385
|
-
*
|
|
386
|
-
* For example:
|
|
387
|
-
*
|
|
388
|
-
* ```html
|
|
389
|
-
* <a [routerLink]="['/user/bob']" [queryParams]="{debug: true}" queryParamsHandling="merge">
|
|
390
|
-
* link to user component
|
|
391
|
-
* </a>
|
|
392
|
-
* ```
|
|
393
|
-
*
|
|
394
|
-
* `queryParams`, `fragment`, `queryParamsHandling`, `preserveFragment`, and `relativeTo`
|
|
395
|
-
* cannot be used when the `routerLink` input is a `UrlTree`.
|
|
396
|
-
*
|
|
397
|
-
* See {@link UrlCreationOptions#queryParamsHandling}.
|
|
398
|
-
*
|
|
399
|
-
* ### Preserving navigation history
|
|
400
|
-
*
|
|
401
|
-
* You can provide a `state` value to be persisted to the browser's
|
|
402
|
-
* [`History.state` property](https://developer.mozilla.org/en-US/docs/Web/API/History#Properties).
|
|
403
|
-
* For example:
|
|
404
|
-
*
|
|
405
|
-
* ```html
|
|
406
|
-
* <a [routerLink]="['/user/bob']" [state]="{tracingId: 123}">
|
|
407
|
-
* link to user component
|
|
408
|
-
* </a>
|
|
409
|
-
* ```
|
|
410
|
-
*
|
|
411
|
-
* Use {@link Router#getCurrentNavigation} to retrieve a saved
|
|
412
|
-
* navigation-state value. For example, to capture the `tracingId` during the `NavigationStart`
|
|
413
|
-
* event:
|
|
414
|
-
*
|
|
415
|
-
* ```ts
|
|
416
|
-
* // Get NavigationStart events
|
|
417
|
-
* router.events.pipe(filter(e => e instanceof NavigationStart)).subscribe(e => {
|
|
418
|
-
* const navigation = router.getCurrentNavigation();
|
|
419
|
-
* tracingService.trace({id: navigation.extras.state.tracingId});
|
|
420
|
-
* });
|
|
421
|
-
* ```
|
|
422
|
-
*
|
|
423
|
-
* ### RouterLink compatible custom elements
|
|
424
|
-
*
|
|
425
|
-
* In order to make a custom element work with routerLink, the corresponding custom
|
|
426
|
-
* element must implement the `href` attribute and must list `href` in the array of
|
|
427
|
-
* the static property/getter `observedAttributes`.
|
|
428
|
-
*
|
|
429
|
-
* @ngModule RouterModule
|
|
430
|
-
*
|
|
431
|
-
* @publicApi
|
|
432
|
-
*/
|
|
433
|
-
/* [Nimble] Remove all configuration from @Directive decorator
|
|
434
|
-
@Directive({
|
|
435
|
-
selector: '[routerLink]',
|
|
436
|
-
host: {
|
|
437
|
-
'[attr.href]': 'reactiveHref()',
|
|
438
|
-
},
|
|
439
|
-
})
|
|
440
|
-
*/
|
|
441
|
-
class RouterLink {
|
|
442
|
-
constructor(router, route, tabIndexAttribute, renderer, el,
|
|
443
|
-
// [Nimble] Need Inject decorator
|
|
444
|
-
locationStrategy) {
|
|
445
|
-
this.router = router;
|
|
446
|
-
this.route = route;
|
|
447
|
-
this.tabIndexAttribute = tabIndexAttribute;
|
|
448
|
-
this.renderer = renderer;
|
|
449
|
-
this.el = el;
|
|
450
|
-
this.locationStrategy = locationStrategy;
|
|
451
|
-
/** @nodoc */
|
|
452
|
-
this.reactiveHref = signal(null, ...(ngDevMode ? [{ debugName: "reactiveHref" }] : []));
|
|
453
|
-
/**
|
|
454
|
-
* Represents an `href` attribute value applied to a host element,
|
|
455
|
-
* when a host element is an `<a>`/`<area>` tag or a compatible custom element.
|
|
456
|
-
* For other tags, the value is `null`.
|
|
457
|
-
*/
|
|
458
|
-
// [Nimble] Make `href` a `@HostBinding`
|
|
459
|
-
this.href = null;
|
|
460
|
-
/** @internal */
|
|
461
|
-
this.onChanges = new Subject();
|
|
462
|
-
this.applicationErrorHandler = inject(_INTERNAL_APPLICATION_ERROR_HANDLER);
|
|
463
|
-
this.options = inject(ROUTER_CONFIGURATION, { optional: true });
|
|
464
|
-
/**
|
|
465
|
-
* Passed to {@link Router#createUrlTree} as part of the
|
|
466
|
-
* `UrlCreationOptions`.
|
|
467
|
-
* @see {@link UrlCreationOptions#preserveFragment}
|
|
468
|
-
* @see {@link Router#createUrlTree}
|
|
469
|
-
*/
|
|
470
|
-
this.preserveFragment = false;
|
|
471
|
-
/**
|
|
472
|
-
* Passed to {@link Router#navigateByUrl} as part of the
|
|
473
|
-
* `NavigationBehaviorOptions`.
|
|
474
|
-
* @see {@link NavigationBehaviorOptions#skipLocationChange}
|
|
475
|
-
* @see {@link Router#navigateByUrl}
|
|
476
|
-
*/
|
|
477
|
-
this.skipLocationChange = false;
|
|
478
|
-
/**
|
|
479
|
-
* Passed to {@link Router#navigateByUrl} as part of the
|
|
480
|
-
* `NavigationBehaviorOptions`.
|
|
481
|
-
* @see {@link NavigationBehaviorOptions#replaceUrl}
|
|
482
|
-
* @see {@link Router#navigateByUrl}
|
|
483
|
-
*/
|
|
484
|
-
this.replaceUrl = false;
|
|
485
|
-
this.routerLinkInput = null;
|
|
486
|
-
// [Nimble] No need to initialize reactiveHref
|
|
487
|
-
// // Set the initial href value to whatever exists on the host element already
|
|
488
|
-
// this.reactiveHref.set(inject(new HostAttributeToken('href'), {optional: true}));
|
|
489
|
-
// [Nimble] Hard-coding `isAnchorElement` to `true`
|
|
490
|
-
this.isAnchorElement = true;
|
|
491
|
-
// const tagName = el.nativeElement.tagName?.toLowerCase();
|
|
492
|
-
// this.isAnchorElement =
|
|
493
|
-
// tagName === 'a' ||
|
|
494
|
-
// tagName === 'area' ||
|
|
495
|
-
// !!(
|
|
496
|
-
// // Avoid breaking in an SSR context where customElements might not be defined.
|
|
497
|
-
// (
|
|
498
|
-
// typeof customElements === 'object' &&
|
|
499
|
-
// // observedAttributes is an optional static property/getter on a custom element.
|
|
500
|
-
// // The spec states that this must be an array of strings.
|
|
501
|
-
// (
|
|
502
|
-
// customElements.get(tagName) as {observedAttributes?: string[]} | undefined
|
|
503
|
-
// )?.observedAttributes?.includes?.('href')
|
|
504
|
-
// )
|
|
505
|
-
// );
|
|
506
|
-
/* [Nimble] There was a bug here in version 20.3.15 which was fixed in 21.0.9. I have backported the fix.
|
|
507
|
-
See: https://github.com/angular/angular/commit/41cd4a6af800cf7807c46862c99ae036457d8fa7
|
|
508
|
-
if (!this.isAnchorElement) {
|
|
509
|
-
this.subscribeToNavigationEventsIfNecessary();
|
|
510
|
-
} else {
|
|
511
|
-
this.setTabIndexIfNotOnNativeEl('0');
|
|
512
|
-
}
|
|
513
|
-
if (this.isAnchorElement) {
|
|
514
|
-
this.setTabIndexIfNotOnNativeEl('0');
|
|
515
|
-
this.subscribeToNavigationEventsIfNecessary();
|
|
516
|
-
}
|
|
517
|
-
*/
|
|
518
|
-
}
|
|
519
|
-
subscribeToNavigationEventsIfNecessary() {
|
|
520
|
-
if (this.subscription !== undefined || !this.isAnchorElement) {
|
|
521
|
-
return;
|
|
522
|
-
}
|
|
523
|
-
/* [Nimble] Also part of backport
|
|
524
|
-
// preserving fragment in router state
|
|
525
|
-
let createSubcription = this.preserveFragment;
|
|
526
|
-
// preserving or merging with query params in router state
|
|
527
|
-
const dependsOnRouterState = (handling?: QueryParamsHandling | null) =>
|
|
528
|
-
handling === 'merge' || handling === 'preserve';
|
|
529
|
-
createSubcription ||= dependsOnRouterState(this.queryParamsHandling);
|
|
530
|
-
createSubcription ||=
|
|
531
|
-
!this.queryParamsHandling && !dependsOnRouterState(this.options?.defaultQueryParamsHandling);
|
|
532
|
-
if (!createSubcription) {
|
|
533
|
-
return;
|
|
534
|
-
}
|
|
535
|
-
*/
|
|
536
|
-
this.subscription = this.router.events.subscribe((s) => {
|
|
537
|
-
if (s instanceof NavigationEnd) {
|
|
538
|
-
this.updateHref();
|
|
539
|
-
}
|
|
540
|
-
});
|
|
541
|
-
}
|
|
542
|
-
/**
|
|
543
|
-
* Modifies the tab index if there was not a tabindex attribute on the element during
|
|
544
|
-
* instantiation.
|
|
545
|
-
*/
|
|
546
|
-
setTabIndexIfNotOnNativeEl(newTabIndex) {
|
|
547
|
-
if (this.tabIndexAttribute != null /* both `null` and `undefined` */ || this.isAnchorElement) {
|
|
548
|
-
return;
|
|
549
|
-
}
|
|
550
|
-
this.applyAttributeValue('tabindex', newTabIndex);
|
|
551
|
-
}
|
|
552
|
-
/** @docs-private */
|
|
553
|
-
// TODO(atscott): Remove changes parameter in major version as a breaking change.
|
|
554
|
-
ngOnChanges(changes) {
|
|
555
|
-
/* [Nimble] Comment out extra error handling that uses ngDevMode and RuntimeErrorCode
|
|
556
|
-
if (
|
|
557
|
-
ngDevMode &&
|
|
558
|
-
isUrlTree(this.routerLinkInput) &&
|
|
559
|
-
(this.fragment !== undefined ||
|
|
560
|
-
this.queryParams ||
|
|
561
|
-
this.queryParamsHandling ||
|
|
562
|
-
this.preserveFragment ||
|
|
563
|
-
this.relativeTo)
|
|
564
|
-
) {
|
|
565
|
-
throw new RuntimeError(
|
|
566
|
-
RuntimeErrorCode.INVALID_ROUTER_LINK_INPUTS,
|
|
567
|
-
'Cannot configure queryParams or fragment when using a UrlTree as the routerLink input value.',
|
|
568
|
-
);
|
|
569
|
-
}
|
|
570
|
-
*/
|
|
571
|
-
if (this.isAnchorElement) {
|
|
572
|
-
this.updateHref();
|
|
573
|
-
this.subscribeToNavigationEventsIfNecessary();
|
|
574
|
-
}
|
|
575
|
-
// This is subscribed to by `RouterLinkActive` so that it knows to update when there are changes
|
|
576
|
-
// to the RouterLinks it's tracking.
|
|
577
|
-
this.onChanges.next(this);
|
|
578
|
-
}
|
|
579
|
-
/**
|
|
580
|
-
* Commands to pass to {@link Router#createUrlTree} or a `UrlTree`.
|
|
581
|
-
* - **array**: commands to pass to {@link Router#createUrlTree}.
|
|
582
|
-
* - **string**: shorthand for array of commands with just the string, i.e. `['/route']`
|
|
583
|
-
* - **UrlTree**: a `UrlTree` for this link rather than creating one from the commands
|
|
584
|
-
* and other inputs that correspond to properties of `UrlCreationOptions`.
|
|
585
|
-
* - **null|undefined**: effectively disables the `routerLink`
|
|
586
|
-
* @see {@link Router#createUrlTree}
|
|
587
|
-
*/
|
|
588
|
-
set routerLink(commandsOrUrlTree) {
|
|
589
|
-
if (commandsOrUrlTree == null) {
|
|
590
|
-
this.routerLinkInput = null;
|
|
591
|
-
this.setTabIndexIfNotOnNativeEl(null);
|
|
592
|
-
}
|
|
593
|
-
else {
|
|
594
|
-
if (isUrlTree(commandsOrUrlTree)) {
|
|
595
|
-
this.routerLinkInput = commandsOrUrlTree;
|
|
596
|
-
}
|
|
597
|
-
else {
|
|
598
|
-
this.routerLinkInput = Array.isArray(commandsOrUrlTree)
|
|
599
|
-
? commandsOrUrlTree
|
|
600
|
-
: [commandsOrUrlTree];
|
|
601
|
-
}
|
|
602
|
-
this.setTabIndexIfNotOnNativeEl('0');
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
/** @docs-private */
|
|
606
|
-
onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
|
|
607
|
-
const urlTree = this.urlTree;
|
|
608
|
-
if (urlTree === null) {
|
|
609
|
-
return true;
|
|
610
|
-
}
|
|
611
|
-
if (this.isAnchorElement) {
|
|
612
|
-
if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {
|
|
613
|
-
return true;
|
|
614
|
-
}
|
|
615
|
-
if (typeof this.target === 'string' && this.target != '_self') {
|
|
616
|
-
return true;
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
const extras = {
|
|
620
|
-
skipLocationChange: this.skipLocationChange,
|
|
621
|
-
replaceUrl: this.replaceUrl,
|
|
622
|
-
state: this.state,
|
|
623
|
-
info: this.info,
|
|
624
|
-
};
|
|
625
|
-
// navigateByUrl is mocked frequently in tests... Reduce breakages when adding `catch`
|
|
626
|
-
this.router.navigateByUrl(urlTree, extras)?.catch((e) => {
|
|
627
|
-
this.applicationErrorHandler(e);
|
|
628
|
-
});
|
|
629
|
-
// Return `false` for `<a>` elements to prevent default action
|
|
630
|
-
// and cancel the native behavior, since the navigation is handled
|
|
631
|
-
// by the Router.
|
|
632
|
-
return !this.isAnchorElement;
|
|
633
|
-
}
|
|
634
|
-
/** @docs-private */
|
|
635
|
-
ngOnDestroy() {
|
|
636
|
-
this.subscription?.unsubscribe();
|
|
637
|
-
}
|
|
638
|
-
updateHref() {
|
|
639
|
-
const urlTree = this.urlTree;
|
|
640
|
-
// [Nimble] Set `href` directly instead of using `reactiveHref` since we made `href` a `@HostBinding`
|
|
641
|
-
this.href =
|
|
642
|
-
// this.reactiveHref.set(
|
|
643
|
-
urlTree !== null && this.locationStrategy
|
|
644
|
-
? (this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(urlTree)) ?? '')
|
|
645
|
-
: null;
|
|
646
|
-
//);
|
|
647
|
-
}
|
|
648
|
-
applyAttributeValue(attrName, attrValue) {
|
|
649
|
-
const renderer = this.renderer;
|
|
650
|
-
const nativeElement = this.el.nativeElement;
|
|
651
|
-
if (attrValue !== null) {
|
|
652
|
-
renderer.setAttribute(nativeElement, attrName, attrValue);
|
|
653
|
-
}
|
|
654
|
-
else {
|
|
655
|
-
renderer.removeAttribute(nativeElement, attrName);
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
get urlTree() {
|
|
659
|
-
if (this.routerLinkInput === null) {
|
|
660
|
-
return null;
|
|
661
|
-
}
|
|
662
|
-
else if (isUrlTree(this.routerLinkInput)) {
|
|
663
|
-
return this.routerLinkInput;
|
|
664
|
-
}
|
|
665
|
-
// [Nimble] Add type assertion to allow passing `readonly any[]` to `createUrlTree` which expects `any[]`
|
|
666
|
-
return this.router.createUrlTree(this.routerLinkInput, {
|
|
667
|
-
// If the `relativeTo` input is not defined, we want to use `this.route` by default.
|
|
668
|
-
// Otherwise, we should use the value provided by the user in the input.
|
|
669
|
-
relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,
|
|
670
|
-
queryParams: this.queryParams,
|
|
671
|
-
fragment: this.fragment,
|
|
672
|
-
queryParamsHandling: this.queryParamsHandling,
|
|
673
|
-
preserveFragment: this.preserveFragment,
|
|
674
|
-
});
|
|
675
|
-
}
|
|
676
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: RouterLink, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
677
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.27", type: RouterLink, isStandalone: true, inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.href": "this.href", "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
678
|
-
}
|
|
679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: RouterLink, decorators: [{
|
|
680
|
-
type: Directive
|
|
681
|
-
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: undefined, decorators: [{
|
|
682
|
-
type: Attribute,
|
|
683
|
-
args: ['tabindex']
|
|
684
|
-
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.LocationStrategy, decorators: [{
|
|
685
|
-
type: Inject,
|
|
686
|
-
args: [LocationStrategy]
|
|
687
|
-
}] }], propDecorators: { href: [{
|
|
688
|
-
type: HostBinding,
|
|
689
|
-
args: ['attr.href']
|
|
690
|
-
}], target: [{
|
|
691
|
-
type: HostBinding,
|
|
692
|
-
args: ['attr.target']
|
|
693
|
-
}, {
|
|
694
|
-
type: Input
|
|
695
|
-
}], queryParams: [{
|
|
696
|
-
type: Input
|
|
697
|
-
}], fragment: [{
|
|
698
|
-
type: Input
|
|
699
|
-
}], queryParamsHandling: [{
|
|
700
|
-
type: Input
|
|
701
|
-
}], state: [{
|
|
702
|
-
type: Input
|
|
703
|
-
}], info: [{
|
|
704
|
-
type: Input
|
|
705
|
-
}], relativeTo: [{
|
|
706
|
-
type: Input
|
|
707
|
-
}], preserveFragment: [{
|
|
708
|
-
type: Input,
|
|
709
|
-
args: [{ transform: booleanAttribute }]
|
|
710
|
-
}], skipLocationChange: [{
|
|
711
|
-
type: Input,
|
|
712
|
-
args: [{ transform: booleanAttribute }]
|
|
713
|
-
}], replaceUrl: [{
|
|
714
|
-
type: Input,
|
|
715
|
-
args: [{ transform: booleanAttribute }]
|
|
716
|
-
}], routerLink: [{
|
|
717
|
-
type: Input
|
|
718
|
-
}], onClick: [{
|
|
719
|
-
type: HostListener,
|
|
720
|
-
args: ['click', [
|
|
721
|
-
'$event.button',
|
|
722
|
-
'$event.ctrlKey',
|
|
723
|
-
'$event.shiftKey',
|
|
724
|
-
'$event.altKey',
|
|
725
|
-
'$event.metaKey',
|
|
726
|
-
]]
|
|
727
|
-
}] } });
|
|
728
|
-
|
|
729
|
-
/**
|
|
730
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
731
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
732
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
733
|
-
*
|
|
734
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
735
|
-
*/
|
|
736
304
|
/**
|
|
737
305
|
* Directive to handle nimble-anchor RouterLink support.
|
|
738
306
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|
|
@@ -936,13 +504,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
936
504
|
args: [LocationStrategy]
|
|
937
505
|
}] }] });
|
|
938
506
|
|
|
939
|
-
/**
|
|
940
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
941
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
942
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
943
|
-
*
|
|
944
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
945
|
-
*/
|
|
946
507
|
/**
|
|
947
508
|
* Directive to handle nimble-anchor-button RouterLink support.
|
|
948
509
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|
|
@@ -1051,13 +612,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
1051
612
|
}]
|
|
1052
613
|
}] });
|
|
1053
614
|
|
|
1054
|
-
/**
|
|
1055
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
1056
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
1057
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
1058
|
-
*
|
|
1059
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
1060
|
-
*/
|
|
1061
615
|
/**
|
|
1062
616
|
* Directive to handle nimble-anchor-menu-item RouterLink support.
|
|
1063
617
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|
|
@@ -1140,13 +694,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
1140
694
|
}]
|
|
1141
695
|
}] });
|
|
1142
696
|
|
|
1143
|
-
/**
|
|
1144
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
1145
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
1146
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
1147
|
-
*
|
|
1148
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
1149
|
-
*/
|
|
1150
697
|
/**
|
|
1151
698
|
* Directive to handle nimble-anchor-tab RouterLink support.
|
|
1152
699
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|
|
@@ -1273,13 +820,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
1273
820
|
}]
|
|
1274
821
|
}] });
|
|
1275
822
|
|
|
1276
|
-
/**
|
|
1277
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
1278
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
1279
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
1280
|
-
*
|
|
1281
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
1282
|
-
*/
|
|
1283
823
|
/**
|
|
1284
824
|
* Directive to handle nimble-anchor-tree-item RouterLink support.
|
|
1285
825
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|
|
@@ -1489,13 +1029,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
1489
1029
|
}]
|
|
1490
1030
|
}] });
|
|
1491
1031
|
|
|
1492
|
-
/**
|
|
1493
|
-
* Selectors used for built-in Angular RouterLink directives:
|
|
1494
|
-
* RouterLink: ':not(a):not(area)[routerLink]'
|
|
1495
|
-
* RouterLinkWithHref: 'a[routerLink],area[routerLink]'
|
|
1496
|
-
*
|
|
1497
|
-
* See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
|
|
1498
|
-
*/
|
|
1499
1032
|
/**
|
|
1500
1033
|
* Directive to handle nimble-breadcrumb-item RouterLink support.
|
|
1501
1034
|
* Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
|