@ni/nimble-angular 33.4.8 → 33.4.10

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.
@@ -1,13 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, inject, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER, booleanAttribute, HostListener, Input, HostBinding, Attribute, Inject, Directive, NgModule, EventEmitter, Output, forwardRef, Optional, Host, ApplicationRef, DestroyRef, ChangeDetectorRef, isDevMode, afterNextRender, Injectable } from '@angular/core';
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 { UrlTree, ROUTER_CONFIGURATION, NavigationEnd, Router, ActivatedRoute } from '@angular/router';
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
@@ -10802,7 +10335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
10802
10335
  */
10803
10336
  class NimbleSelectControlValueAccessorDirective extends SelectControlValueAccessor {
10804
10337
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NimbleSelectControlValueAccessorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
10805
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleSelectControlValueAccessorDirective, isStandalone: false, selector: "nimble-select:not([multiple])[formControlName],nimble-select:not([multiple])[formControl],nimble-select:not([multiple])[ngModel]", host: { listeners: { "change": "onChange($event.target.value)", "blur": "onTouched()" } }, providers: [{
10338
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleSelectControlValueAccessorDirective, isStandalone: false, selector: "nimble-select:not([multiple])[formControlName],nimble-select:not([multiple])[formControl],nimble-select:not([multiple])[ngModel]", host: { listeners: { "change": "onChange($any($event.target).value)", "blur": "onTouched()" } }, providers: [{
10806
10339
  provide: NG_VALUE_ACCESSOR,
10807
10340
  useExisting: forwardRef(() => NimbleSelectControlValueAccessorDirective),
10808
10341
  multi: true
@@ -10814,7 +10347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
10814
10347
  selector: 'nimble-select:not([multiple])[formControlName],nimble-select:not([multiple])[formControl],nimble-select:not([multiple])[ngModel]',
10815
10348
  // The following host metadata is duplicated from SelectControlValueAccessor
10816
10349
  // eslint-disable-next-line @typescript-eslint/naming-convention
10817
- host: { '(change)': 'onChange($event.target.value)', '(blur)': 'onTouched()' },
10350
+ host: { '(change)': 'onChange($any($event.target).value)', '(blur)': 'onTouched()' },
10818
10351
  providers: [{
10819
10352
  provide: NG_VALUE_ACCESSOR,
10820
10353
  useExisting: forwardRef(() => NimbleSelectControlValueAccessorDirective),
@@ -11160,7 +10693,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
11160
10693
  */
11161
10694
  class NimbleNumberFieldControlValueAccessorDirective extends NumberValueAccessor {
11162
10695
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NimbleNumberFieldControlValueAccessorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
11163
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleNumberFieldControlValueAccessorDirective, isStandalone: false, selector: "nimble-number-field[formControlName],nimble-number-field[formControl],nimble-number-field[ngModel]", host: { listeners: { "input": "onChange($event.target.value)", "blur": "onTouched()" } }, providers: [{
10696
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleNumberFieldControlValueAccessorDirective, isStandalone: false, selector: "nimble-number-field[formControlName],nimble-number-field[formControl],nimble-number-field[ngModel]", host: { listeners: { "input": "onChange($any($event.target).value)", "blur": "onTouched()" } }, providers: [{
11164
10697
  provide: NG_VALUE_ACCESSOR,
11165
10698
  useExisting: forwardRef(() => NimbleNumberFieldControlValueAccessorDirective),
11166
10699
  multi: true
@@ -11172,7 +10705,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
11172
10705
  selector: 'nimble-number-field[formControlName],nimble-number-field[formControl],nimble-number-field[ngModel]',
11173
10706
  // The following host metadata is duplicated from NumberValueAccessor
11174
10707
  // eslint-disable-next-line @typescript-eslint/naming-convention
11175
- host: { '(input)': 'onChange($event.target.value)', '(blur)': 'onTouched()' },
10708
+ host: { '(input)': 'onChange($any($event.target).value)', '(blur)': 'onTouched()' },
11176
10709
  providers: [{
11177
10710
  provide: NG_VALUE_ACCESSOR,
11178
10711
  useExisting: forwardRef(() => NimbleNumberFieldControlValueAccessorDirective),
@@ -11608,7 +11141,7 @@ class NimbleRadioControlValueAccessorDirective extends RadioControlValueAccessor
11608
11141
  this.onChange = () => { };
11609
11142
  }
11610
11143
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NimbleRadioControlValueAccessorDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: RadioControlRegistry }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
11611
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleRadioControlValueAccessorDirective, isStandalone: false, selector: "nimble-radio[formControlName],nimble-radio[formControl],nimble-radio[ngModel]", host: { listeners: { "change": "nimbleOnChange($event.target.checked)", "blur": "onTouched()" } }, providers: [{
11144
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleRadioControlValueAccessorDirective, isStandalone: false, selector: "nimble-radio[formControlName],nimble-radio[formControl],nimble-radio[ngModel]", host: { listeners: { "change": "nimbleOnChange($any($event.target).checked)", "blur": "onTouched()" } }, providers: [{
11612
11145
  provide: NG_VALUE_ACCESSOR,
11613
11146
  useExisting: forwardRef(() => NimbleRadioControlValueAccessorDirective),
11614
11147
  multi: true
@@ -11620,7 +11153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
11620
11153
  selector: 'nimble-radio[formControlName],nimble-radio[formControl],nimble-radio[ngModel]',
11621
11154
  // The following host metadata is duplicated from RadioControlValueAccessor
11622
11155
  // eslint-disable-next-line @typescript-eslint/naming-convention
11623
- host: { '(change)': 'nimbleOnChange($event.target.checked)', '(blur)': 'onTouched()' },
11156
+ host: { '(change)': 'nimbleOnChange($any($event.target).checked)', '(blur)': 'onTouched()' },
11624
11157
  providers: [{
11625
11158
  provide: NG_VALUE_ACCESSOR,
11626
11159
  useExisting: forwardRef(() => NimbleRadioControlValueAccessorDirective),
@@ -11923,7 +11456,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
11923
11456
  */
11924
11457
  class NimbleSwitchControlValueAccessorDirective extends CheckboxControlValueAccessor {
11925
11458
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NimbleSwitchControlValueAccessorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
11926
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleSwitchControlValueAccessorDirective, isStandalone: false, selector: "nimble-switch[formControlName],nimble-switch[formControl],nimble-switch[ngModel]", host: { listeners: { "change": "onChange($event.target.checked)", "blur": "onTouched()" } }, providers: [{
11459
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleSwitchControlValueAccessorDirective, isStandalone: false, selector: "nimble-switch[formControlName],nimble-switch[formControl],nimble-switch[ngModel]", host: { listeners: { "change": "onChange($any($event.target).checked)", "blur": "onTouched()" } }, providers: [{
11927
11460
  provide: NG_VALUE_ACCESSOR,
11928
11461
  useExisting: forwardRef(() => NimbleSwitchControlValueAccessorDirective),
11929
11462
  multi: true
@@ -11935,7 +11468,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
11935
11468
  selector: 'nimble-switch[formControlName],nimble-switch[formControl],nimble-switch[ngModel]',
11936
11469
  // The following host metadata is duplicated from CheckboxControlValueAccessor
11937
11470
  // eslint-disable-next-line @typescript-eslint/naming-convention
11938
- host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },
11471
+ host: { '(change)': 'onChange($any($event.target).checked)', '(blur)': 'onTouched()' },
11939
11472
  providers: [{
11940
11473
  provide: NG_VALUE_ACCESSOR,
11941
11474
  useExisting: forwardRef(() => NimbleSwitchControlValueAccessorDirective),
@@ -12291,7 +11824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12291
11824
  */
12292
11825
  class NimbleTextAreaControlValueAccessorDirective extends DefaultValueAccessor {
12293
11826
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NimbleTextAreaControlValueAccessorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
12294
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleTextAreaControlValueAccessorDirective, isStandalone: false, selector: "nimble-text-area[formControlName],nimble-text-area[formControl],nimble-text-area[ngModel]", host: { listeners: { "input": "$any(this)._handleInput($event.target.value)", "blur": "onTouched()", "compositionstart": "$any(this)._compositionStart()", "compositionend": "$any(this)._compositionEnd($event.target.value)" } }, providers: [{
11827
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleTextAreaControlValueAccessorDirective, isStandalone: false, selector: "nimble-text-area[formControlName],nimble-text-area[formControl],nimble-text-area[ngModel]", host: { listeners: { "input": "$any(this)._handleInput($any($event.target).value)", "blur": "onTouched()", "compositionstart": "$any(this)._compositionStart()", "compositionend": "$any(this)._compositionEnd($any($event.target).value)" } }, providers: [{
12295
11828
  provide: NG_VALUE_ACCESSOR,
12296
11829
  useExisting: forwardRef(() => NimbleTextAreaControlValueAccessorDirective),
12297
11830
  multi: true
@@ -12304,10 +11837,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12304
11837
  // The following host metadata is duplicated from DefaultValueAccessor
12305
11838
  host: {
12306
11839
  /* eslint-disable @typescript-eslint/naming-convention */
12307
- '(input)': '$any(this)._handleInput($event.target.value)',
11840
+ '(input)': '$any(this)._handleInput($any($event.target).value)',
12308
11841
  '(blur)': 'onTouched()',
12309
11842
  '(compositionstart)': '$any(this)._compositionStart()',
12310
- '(compositionend)': '$any(this)._compositionEnd($event.target.value)'
11843
+ '(compositionend)': '$any(this)._compositionEnd($any($event.target).value)'
12311
11844
  /* eslint-enable @typescript-eslint/naming-convention */
12312
11845
  },
12313
11846
  providers: [{
@@ -12505,7 +12038,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12505
12038
  */
12506
12039
  class NimbleTextFieldControlValueAccessorDirective extends DefaultValueAccessor {
12507
12040
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NimbleTextFieldControlValueAccessorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
12508
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleTextFieldControlValueAccessorDirective, isStandalone: false, selector: "nimble-text-field[formControlName],nimble-text-field[formControl],nimble-text-field[ngModel]", host: { listeners: { "input": "$any(this)._handleInput($event.target.value)", "blur": "onTouched()", "compositionstart": "$any(this)._compositionStart()", "compositionend": "$any(this)._compositionEnd($event.target.value)" } }, providers: [{
12041
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleTextFieldControlValueAccessorDirective, isStandalone: false, selector: "nimble-text-field[formControlName],nimble-text-field[formControl],nimble-text-field[ngModel]", host: { listeners: { "input": "$any(this)._handleInput($any($event.target).value)", "blur": "onTouched()", "compositionstart": "$any(this)._compositionStart()", "compositionend": "$any(this)._compositionEnd($any($event.target).value)" } }, providers: [{
12509
12042
  provide: NG_VALUE_ACCESSOR,
12510
12043
  useExisting: forwardRef(() => NimbleTextFieldControlValueAccessorDirective),
12511
12044
  multi: true
@@ -12518,10 +12051,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12518
12051
  // The following host metadata is duplicated from DefaultValueAccessor
12519
12052
  host: {
12520
12053
  /* eslint-disable @typescript-eslint/naming-convention */
12521
- '(input)': '$any(this)._handleInput($event.target.value)',
12054
+ '(input)': '$any(this)._handleInput($any($event.target).value)',
12522
12055
  '(blur)': 'onTouched()',
12523
12056
  '(compositionstart)': '$any(this)._compositionStart()',
12524
- '(compositionend)': '$any(this)._compositionEnd($event.target.value)'
12057
+ '(compositionend)': '$any(this)._compositionEnd($any($event.target).value)'
12525
12058
  /* eslint-enable @typescript-eslint/naming-convention */
12526
12059
  },
12527
12060
  providers: [{
@@ -12772,7 +12305,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12772
12305
  */
12773
12306
  class NimbleToggleButtonControlValueAccessorDirective extends CheckboxControlValueAccessor {
12774
12307
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NimbleToggleButtonControlValueAccessorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
12775
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleToggleButtonControlValueAccessorDirective, isStandalone: false, selector: "nimble-toggle-button[formControlName],nimble-toggle-button[formControl],nimble-toggle-button[ngModel]", host: { listeners: { "change": "onChange($event.target.checked)", "blur": "onTouched()" } }, providers: [{
12308
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NimbleToggleButtonControlValueAccessorDirective, isStandalone: false, selector: "nimble-toggle-button[formControlName],nimble-toggle-button[formControl],nimble-toggle-button[ngModel]", host: { listeners: { "change": "onChange($any($event.target).checked)", "blur": "onTouched()" } }, providers: [{
12776
12309
  provide: NG_VALUE_ACCESSOR,
12777
12310
  useExisting: forwardRef(() => NimbleToggleButtonControlValueAccessorDirective),
12778
12311
  multi: true
@@ -12784,7 +12317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
12784
12317
  selector: 'nimble-toggle-button[formControlName],nimble-toggle-button[formControl],nimble-toggle-button[ngModel]',
12785
12318
  // The following host metadata is duplicated from CheckboxControlValueAccessor
12786
12319
  // eslint-disable-next-line @typescript-eslint/naming-convention
12787
- host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },
12320
+ host: { '(change)': 'onChange($any($event.target).checked)', '(blur)': 'onTouched()' },
12788
12321
  providers: [{
12789
12322
  provide: NG_VALUE_ACCESSOR,
12790
12323
  useExisting: forwardRef(() => NimbleToggleButtonControlValueAccessorDirective),