@ni/nimble-angular 2.0.0 → 2.1.1

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.
Files changed (35) hide show
  1. package/README.md +11 -0
  2. package/bundles/ni-nimble-angular.umd.js +302 -108
  3. package/bundles/ni-nimble-angular.umd.js.map +1 -1
  4. package/directives/breadcrumb/nimble-breadcrumb.directive.d.ts +7 -0
  5. package/directives/breadcrumb/nimble-breadcrumb.module.d.ts +3 -0
  6. package/directives/breadcrumb/nimble-breadcrumb.module.ngfactory.d.ts +3 -0
  7. package/directives/breadcrumb-item/nimble-breadcrumb-item-router-link-with-href.directive.d.ts +16 -0
  8. package/directives/breadcrumb-item/nimble-breadcrumb-item-router-link.directive.d.ts +8 -0
  9. package/directives/breadcrumb-item/nimble-breadcrumb-item.directive.d.ts +25 -0
  10. package/directives/breadcrumb-item/nimble-breadcrumb-item.module.d.ts +3 -0
  11. package/directives/breadcrumb-item/nimble-breadcrumb-item.module.ngfactory.d.ts +3 -0
  12. package/esm2015/directives/breadcrumb/nimble-breadcrumb.directive.js +12 -0
  13. package/esm2015/directives/breadcrumb/nimble-breadcrumb.directive.ngsummary.json +1 -0
  14. package/esm2015/directives/breadcrumb/nimble-breadcrumb.module.js +14 -0
  15. package/esm2015/directives/breadcrumb/nimble-breadcrumb.module.ngfactory.js +12 -0
  16. package/esm2015/directives/breadcrumb/nimble-breadcrumb.module.ngsummary.json +1 -0
  17. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item-router-link-with-href.directive.js +26 -0
  18. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item-router-link-with-href.directive.ngsummary.json +1 -0
  19. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item-router-link.directive.js +16 -0
  20. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item-router-link.directive.ngsummary.json +1 -0
  21. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item.directive.js +71 -0
  22. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item.directive.ngsummary.json +1 -0
  23. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item.module.js +16 -0
  24. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item.module.ngfactory.js +12 -0
  25. package/esm2015/directives/breadcrumb-item/nimble-breadcrumb-item.module.ngsummary.json +1 -0
  26. package/esm2015/ni-nimble-angular.js +3 -2
  27. package/esm2015/ni-nimble-angular.ngsummary.json +1 -1
  28. package/esm2015/public-api.js +6 -1
  29. package/esm2015/public-api.ngsummary.json +1 -1
  30. package/fesm2015/ni-nimble-angular.js +146 -3
  31. package/fesm2015/ni-nimble-angular.js.map +1 -1
  32. package/ni-nimble-angular.d.ts +2 -1
  33. package/ni-nimble-angular.metadata.json +1 -1
  34. package/package.json +3 -2
  35. package/public-api.d.ts +5 -0
package/README.md CHANGED
@@ -90,6 +90,17 @@ See the [README.md for the ni/nimble repository](/README.md) for documentation o
90
90
 
91
91
  For best results, always use `ngModel`, `formControl`, or `formControlName` bindings when integrating Nimble form controls in Angular. Binding to the control's native value property or event (e.g. `[value]` or `(change)`) is not supported, and can cause build failures and other issues. If a value change event is necessary, use `ngModel (ngModelChange)="onChange()"`.
92
92
 
93
+ ### Using Nimble breadcrumb with Angular's RouterLink
94
+
95
+ `nimble-breadcrumb-item` supports the [Angular RouterLink directive](https://angular.io/api/router/RouterLink) for breadcrumb navigation in an Angular app using routing.
96
+ However, the attribute name `nimbleRouterLink` should be used instead of `routerLink` - for example:
97
+ ```html
98
+ <nimble-breadcrumb-item [nimbleRouterLink]="breadcrumb.url">
99
+ {{ breadcrumb.label }}
100
+ </nimble-breadcrumb-item>
101
+ ```
102
+ The properties RouterLink supports (`queryParams`, `state`, etc.) can be used on `nimble-breadcrumb-item` as-is.
103
+
93
104
  ### Testing with Nimble elements and `fakeAsync`
94
105
 
95
106
  Angular's `fakeAsync` utility is useful for writing quickly-executing tests, but it can cause issues when testing components containing Nimble elements. Nimble uses an internal process queue to schedule work. If a `fakeAsync` test schedules work on the queue (by creating or interacting with Nimble elements) and the queue isn't processed by the end of the test, the queue will never be processed and subsequent tests may fail.
@@ -1,124 +1,33 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@ni/nimble-components/dist/esm/button/types'), require('@angular/common'), require('@ni/nimble-components/dist/esm/button'), require('@angular/forms'), require('@ni/nimble-components/dist/esm/checkbox'), require('@ni/nimble-components/dist/esm/drawer/types'), require('@ni/nimble-components/dist/esm/drawer'), require('@ni/nimble-components/dist/esm/listbox-option'), require('@ni/nimble-components/dist/esm/menu'), require('@ni/nimble-components/dist/esm/menu-item'), require('@ni/nimble-components/dist/esm/number-field'), require('@ni/nimble-components/dist/esm/select'), require('@ni/nimble-components/dist/esm/tab'), require('@ni/nimble-components/dist/esm/tab-panel'), require('@ni/nimble-components/dist/esm/tabs'), require('@ni/nimble-components/dist/esm/tabs-toolbar'), require('@ni/nimble-components/dist/esm/text-field/types'), require('@ni/nimble-components/dist/esm/text-field'), require('@ni/nimble-components/dist/esm/theme-provider/types'), require('@ni/nimble-components/dist/esm/theme-provider'), require('@ni/nimble-components/dist/esm/toggle-button'), require('@ni/nimble-components/dist/esm/tree-item'), require('@ni/nimble-components/dist/esm/tree-view/types'), require('@ni/nimble-components/dist/esm/tree-view'), require('@ni/nimble-components/dist/esm/testing/async-helpers')) :
3
- typeof define === 'function' && define.amd ? define('@ni/nimble-angular', ['exports', '@angular/core', '@ni/nimble-components/dist/esm/button/types', '@angular/common', '@ni/nimble-components/dist/esm/button', '@angular/forms', '@ni/nimble-components/dist/esm/checkbox', '@ni/nimble-components/dist/esm/drawer/types', '@ni/nimble-components/dist/esm/drawer', '@ni/nimble-components/dist/esm/listbox-option', '@ni/nimble-components/dist/esm/menu', '@ni/nimble-components/dist/esm/menu-item', '@ni/nimble-components/dist/esm/number-field', '@ni/nimble-components/dist/esm/select', '@ni/nimble-components/dist/esm/tab', '@ni/nimble-components/dist/esm/tab-panel', '@ni/nimble-components/dist/esm/tabs', '@ni/nimble-components/dist/esm/tabs-toolbar', '@ni/nimble-components/dist/esm/text-field/types', '@ni/nimble-components/dist/esm/text-field', '@ni/nimble-components/dist/esm/theme-provider/types', '@ni/nimble-components/dist/esm/theme-provider', '@ni/nimble-components/dist/esm/toggle-button', '@ni/nimble-components/dist/esm/tree-item', '@ni/nimble-components/dist/esm/tree-view/types', '@ni/nimble-components/dist/esm/tree-view', '@ni/nimble-components/dist/esm/testing/async-helpers'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ni = global.ni || {}, global.ni["nimble-angular"] = {}), global.ng.core, global.types, global.ng.common, null, global.ng.forms, null, global.types$1, null, null, null, null, null, null, null, null, null, null, global.types$2, null, global.types$3, null, null, null, global.types$4, null, global.asyncHelpers));
5
- })(this, (function (exports, core, types, common, button, forms, checkbox, types$1, drawer, listboxOption, menu, menuItem, numberField, select, tab, tabPanel, tabs, tabsToolbar, types$2, textField, types$3, themeProvider, toggleButton, treeItem, types$4, treeView, asyncHelpers) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@ni/nimble-components/dist/esm/breadcrumb'), require('@angular/router'), require('@ni/nimble-components/dist/esm/breadcrumb-item'), require('@ni/nimble-components/dist/esm/button/types'), require('@ni/nimble-components/dist/esm/button'), require('@angular/forms'), require('@ni/nimble-components/dist/esm/checkbox'), require('@ni/nimble-components/dist/esm/drawer/types'), require('@ni/nimble-components/dist/esm/drawer'), require('@ni/nimble-components/dist/esm/listbox-option'), require('@ni/nimble-components/dist/esm/menu'), require('@ni/nimble-components/dist/esm/menu-item'), require('@ni/nimble-components/dist/esm/number-field'), require('@ni/nimble-components/dist/esm/select'), require('@ni/nimble-components/dist/esm/tab'), require('@ni/nimble-components/dist/esm/tab-panel'), require('@ni/nimble-components/dist/esm/tabs'), require('@ni/nimble-components/dist/esm/tabs-toolbar'), require('@ni/nimble-components/dist/esm/text-field/types'), require('@ni/nimble-components/dist/esm/text-field'), require('@ni/nimble-components/dist/esm/theme-provider/types'), require('@ni/nimble-components/dist/esm/theme-provider'), require('@ni/nimble-components/dist/esm/toggle-button'), require('@ni/nimble-components/dist/esm/tree-item'), require('@ni/nimble-components/dist/esm/tree-view/types'), require('@ni/nimble-components/dist/esm/tree-view'), require('@ni/nimble-components/dist/esm/testing/async-helpers')) :
3
+ typeof define === 'function' && define.amd ? define('@ni/nimble-angular', ['exports', '@angular/core', '@angular/common', '@ni/nimble-components/dist/esm/breadcrumb', '@angular/router', '@ni/nimble-components/dist/esm/breadcrumb-item', '@ni/nimble-components/dist/esm/button/types', '@ni/nimble-components/dist/esm/button', '@angular/forms', '@ni/nimble-components/dist/esm/checkbox', '@ni/nimble-components/dist/esm/drawer/types', '@ni/nimble-components/dist/esm/drawer', '@ni/nimble-components/dist/esm/listbox-option', '@ni/nimble-components/dist/esm/menu', '@ni/nimble-components/dist/esm/menu-item', '@ni/nimble-components/dist/esm/number-field', '@ni/nimble-components/dist/esm/select', '@ni/nimble-components/dist/esm/tab', '@ni/nimble-components/dist/esm/tab-panel', '@ni/nimble-components/dist/esm/tabs', '@ni/nimble-components/dist/esm/tabs-toolbar', '@ni/nimble-components/dist/esm/text-field/types', '@ni/nimble-components/dist/esm/text-field', '@ni/nimble-components/dist/esm/theme-provider/types', '@ni/nimble-components/dist/esm/theme-provider', '@ni/nimble-components/dist/esm/toggle-button', '@ni/nimble-components/dist/esm/tree-item', '@ni/nimble-components/dist/esm/tree-view/types', '@ni/nimble-components/dist/esm/tree-view', '@ni/nimble-components/dist/esm/testing/async-helpers'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ni = global.ni || {}, global.ni["nimble-angular"] = {}), global.ng.core, global.ng.common, null, global.ng.router, null, global.types, null, global.ng.forms, null, global.types$1, null, null, null, null, null, null, null, null, null, null, global.types$2, null, global.types$3, null, null, null, global.types$4, null, global.asyncHelpers));
5
+ })(this, (function (exports, core, common, breadcrumb, router, breadcrumbItem, types, button, forms, checkbox, types$1, drawer, listboxOption, menu, menuItem, numberField, select, tab, tabPanel, tabs, tabsToolbar, types$2, textField, types$3, themeProvider, toggleButton, treeItem, types$4, treeView, asyncHelpers) { 'use strict';
6
6
 
7
7
  /**
8
- * Conversion helpers for values coming from template attributes or property bindings
9
- */
10
- /**
11
- * Converts values from templates (empty string or null) or boolean bindings to a boolean property representation
12
- */
13
- var toBooleanProperty = function (value) {
14
- if (value === false || value === null) {
15
- return false;
16
- }
17
- // For boolean attributes the empty string value is true
18
- return true;
19
- };
20
- /**
21
- * Converts values from templates (empty string or null) or boolean bindings to an Aria boolean
22
- * attribute representation (the strings "true" or "false")
8
+ * Directive to provide Angular integration for the breadcrumb.
23
9
  */
24
- var toBooleanAriaAttribute = function (value) {
25
- if (value === false || value === null) {
26
- return 'false';
10
+ var NimbleBreadcrumbDirective = /** @class */ (function () {
11
+ function NimbleBreadcrumbDirective() {
27
12
  }
28
- // For boolean attributes the empty string value is true
29
- return 'true';
30
- };
31
- /**
32
- * Converts values from templates (number representation as a string) or number bindings to a number property representation
33
- */
34
- var toNumberProperty = function (value) {
35
- // Angular: https://github.com/angular/angular/blob/2664bc2b3ef4ee5fd671f915828cfcc274a36c77/packages/forms/src/directives/number_value_accessor.ts#L67
36
- // And Fast: https://github.com/microsoft/fast/blob/46bb6d9aab2c37105f4434db3795e176c2354a4f/packages/web-components/fast-element/src/components/attributes.ts#L100
37
- // Handle numeric conversions from the view differently
38
- // Since Number(val) https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number-constructor-number-value
39
- // and val * 1 https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-applystringornumericbinaryoperator
40
- // Are identical (use ToNumeric algorithm), went with Number() for clarity
41
- return Number(value);
42
- };
43
-
44
- /**
45
- * Directive to provide Angular integration for the button.
46
- */
47
- var NimbleButtonDirective = /** @class */ (function () {
48
- function NimbleButtonDirective(renderer, elementRef) {
49
- this.renderer = renderer;
50
- this.elementRef = elementRef;
51
- }
52
- Object.defineProperty(NimbleButtonDirective.prototype, "appearance", {
53
- get: function () {
54
- return this.elementRef.nativeElement.appearance;
55
- },
56
- set: function (value) {
57
- this.renderer.setProperty(this.elementRef.nativeElement, 'appearance', value);
58
- },
59
- enumerable: false,
60
- configurable: true
61
- });
62
- Object.defineProperty(NimbleButtonDirective.prototype, "disabled", {
63
- get: function () {
64
- return this.elementRef.nativeElement.disabled;
65
- },
66
- set: function (value) {
67
- this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', toBooleanProperty(value));
68
- },
69
- enumerable: false,
70
- configurable: true
71
- });
72
- Object.defineProperty(NimbleButtonDirective.prototype, "type", {
73
- get: function () {
74
- return this.elementRef.nativeElement.type;
75
- },
76
- set: function (value) {
77
- this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);
78
- },
79
- enumerable: false,
80
- configurable: true
81
- });
82
- Object.defineProperty(NimbleButtonDirective.prototype, "contentHidden", {
83
- get: function () {
84
- return this.elementRef.nativeElement.contentHidden;
85
- },
86
- // contentHidden property intentionally maps to the content-hidden attribute
87
- // eslint-disable-next-line @angular-eslint/no-input-rename
88
- set: function (value) {
89
- this.renderer.setProperty(this.elementRef.nativeElement, 'contentHidden', toBooleanProperty(value));
90
- },
91
- enumerable: false,
92
- configurable: true
93
- });
94
- return NimbleButtonDirective;
13
+ return NimbleBreadcrumbDirective;
95
14
  }());
96
- NimbleButtonDirective.decorators = [
15
+ NimbleBreadcrumbDirective.decorators = [
97
16
  { type: core.Directive, args: [{
98
- selector: 'nimble-button'
17
+ selector: 'nimble-breadcrumb'
99
18
  },] }
100
19
  ];
101
- NimbleButtonDirective.ctorParameters = function () { return [
102
- { type: core.Renderer2 },
103
- { type: core.ElementRef }
104
- ]; };
105
- NimbleButtonDirective.propDecorators = {
106
- appearance: [{ type: core.Input }],
107
- disabled: [{ type: core.Input }],
108
- type: [{ type: core.Input }],
109
- contentHidden: [{ type: core.Input, args: ['content-hidden',] }]
110
- };
111
20
 
112
- var NimbleButtonModule = /** @class */ (function () {
113
- function NimbleButtonModule() {
21
+ var NimbleBreadcrumbModule = /** @class */ (function () {
22
+ function NimbleBreadcrumbModule() {
114
23
  }
115
- return NimbleButtonModule;
24
+ return NimbleBreadcrumbModule;
116
25
  }());
117
- NimbleButtonModule.decorators = [
26
+ NimbleBreadcrumbModule.decorators = [
118
27
  { type: core.NgModule, args: [{
119
- declarations: [NimbleButtonDirective],
28
+ declarations: [NimbleBreadcrumbDirective],
120
29
  imports: [common.CommonModule],
121
- exports: [NimbleButtonDirective]
30
+ exports: [NimbleBreadcrumbDirective]
122
31
  },] }
123
32
  ];
124
33
 
@@ -440,6 +349,285 @@
440
349
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
441
350
  }
442
351
 
352
+ /**
353
+ * Selectors used for built-in Angular RouterLink directives:
354
+ * RouterLink: ':not(a):not(area)[routerLink]'
355
+ * RouterLinkWithHref: 'a[routerLink],area[routerLink]'
356
+ *
357
+ * See https://github.com/angular/angular/blob/5957ff4163f55d814be2cf80b9909244f1ce5262/packages/router/src/directives/router_link.ts
358
+ */
359
+ /**
360
+ * Directive to handle nimble-breadcrumb-item RouterLink support.
361
+ * Note: Clients need to use [nimbleRouterLink] instead of [routerLink], so that there
362
+ * won't also be an active RouterLink directive incorrectly handling navigation.
363
+ */
364
+ var NimbleBreadcrumbItemRouterLinkWithHrefDirective = /** @class */ (function (_super) {
365
+ __extends(NimbleBreadcrumbItemRouterLinkWithHrefDirective, _super);
366
+ function NimbleBreadcrumbItemRouterLinkWithHrefDirective() {
367
+ return _super !== null && _super.apply(this, arguments) || this;
368
+ }
369
+ Object.defineProperty(NimbleBreadcrumbItemRouterLinkWithHrefDirective.prototype, "nimbleRouterLink", {
370
+ set: function (commands) {
371
+ this.routerLink = commands;
372
+ },
373
+ enumerable: false,
374
+ configurable: true
375
+ });
376
+ return NimbleBreadcrumbItemRouterLinkWithHrefDirective;
377
+ }(router.RouterLinkWithHref));
378
+ NimbleBreadcrumbItemRouterLinkWithHrefDirective.decorators = [
379
+ { type: core.Directive, args: [{ selector: 'nimble-breadcrumb-item[nimbleRouterLink]' },] }
380
+ ];
381
+ NimbleBreadcrumbItemRouterLinkWithHrefDirective.propDecorators = {
382
+ nimbleRouterLink: [{ type: core.Input }]
383
+ };
384
+
385
+ /**
386
+ * Directive to provide Angular integration for the breadcrumb item.
387
+ */
388
+ var NimbleBreadcrumbItemDirective = /** @class */ (function () {
389
+ function NimbleBreadcrumbItemDirective(renderer, elementRef) {
390
+ this.renderer = renderer;
391
+ this.elementRef = elementRef;
392
+ }
393
+ Object.defineProperty(NimbleBreadcrumbItemDirective.prototype, "href", {
394
+ get: function () {
395
+ return this.elementRef.nativeElement.href;
396
+ },
397
+ set: function (value) {
398
+ this.renderer.setProperty(this.elementRef.nativeElement, 'href', value);
399
+ },
400
+ enumerable: false,
401
+ configurable: true
402
+ });
403
+ Object.defineProperty(NimbleBreadcrumbItemDirective.prototype, "hreflang", {
404
+ get: function () {
405
+ return this.elementRef.nativeElement.hreflang;
406
+ },
407
+ set: function (value) {
408
+ this.renderer.setProperty(this.elementRef.nativeElement, 'hreflang', value);
409
+ },
410
+ enumerable: false,
411
+ configurable: true
412
+ });
413
+ Object.defineProperty(NimbleBreadcrumbItemDirective.prototype, "ping", {
414
+ get: function () {
415
+ return this.elementRef.nativeElement.ping;
416
+ },
417
+ set: function (value) {
418
+ this.renderer.setProperty(this.elementRef.nativeElement, 'ping', value);
419
+ },
420
+ enumerable: false,
421
+ configurable: true
422
+ });
423
+ Object.defineProperty(NimbleBreadcrumbItemDirective.prototype, "referrerpolicy", {
424
+ get: function () {
425
+ return this.elementRef.nativeElement.referrerpolicy;
426
+ },
427
+ set: function (value) {
428
+ this.renderer.setProperty(this.elementRef.nativeElement, 'referrerpolicy', value);
429
+ },
430
+ enumerable: false,
431
+ configurable: true
432
+ });
433
+ Object.defineProperty(NimbleBreadcrumbItemDirective.prototype, "rel", {
434
+ get: function () {
435
+ return this.elementRef.nativeElement.rel;
436
+ },
437
+ set: function (value) {
438
+ this.renderer.setProperty(this.elementRef.nativeElement, 'rel', value);
439
+ },
440
+ enumerable: false,
441
+ configurable: true
442
+ });
443
+ Object.defineProperty(NimbleBreadcrumbItemDirective.prototype, "target", {
444
+ get: function () {
445
+ return this.elementRef.nativeElement.target;
446
+ },
447
+ set: function (value) {
448
+ this.renderer.setProperty(this.elementRef.nativeElement, 'target', value);
449
+ },
450
+ enumerable: false,
451
+ configurable: true
452
+ });
453
+ Object.defineProperty(NimbleBreadcrumbItemDirective.prototype, "type", {
454
+ get: function () {
455
+ return this.elementRef.nativeElement.type;
456
+ },
457
+ set: function (value) {
458
+ this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);
459
+ },
460
+ enumerable: false,
461
+ configurable: true
462
+ });
463
+ return NimbleBreadcrumbItemDirective;
464
+ }());
465
+ NimbleBreadcrumbItemDirective.decorators = [
466
+ { type: core.Directive, args: [{
467
+ selector: 'nimble-breadcrumb-item'
468
+ },] }
469
+ ];
470
+ NimbleBreadcrumbItemDirective.ctorParameters = function () { return [
471
+ { type: core.Renderer2 },
472
+ { type: core.ElementRef }
473
+ ]; };
474
+ NimbleBreadcrumbItemDirective.propDecorators = {
475
+ href: [{ type: core.Input }],
476
+ hreflang: [{ type: core.Input }],
477
+ ping: [{ type: core.Input }],
478
+ referrerpolicy: [{ type: core.Input }],
479
+ rel: [{ type: core.Input }],
480
+ target: [{ type: core.Input }],
481
+ type: [{ type: core.Input }]
482
+ };
483
+
484
+ /**
485
+ * Directive used solely to point consumers to use [nimbleRouterLink] / NimbleBreadcrumbItemRouterLinkWithHrefDirective.
486
+ *
487
+ * @see NimbleBreadcrumbItemRouterLinkWithHrefDirective
488
+ */
489
+ var NimbleBreadcrumbItemRouterLinkDirective = /** @class */ (function () {
490
+ function NimbleBreadcrumbItemRouterLinkDirective() {
491
+ throw new Error('Use [nimbleRouterLink] instead of [routerLink].');
492
+ }
493
+ return NimbleBreadcrumbItemRouterLinkDirective;
494
+ }());
495
+ NimbleBreadcrumbItemRouterLinkDirective.decorators = [
496
+ { type: core.Directive, args: [{ selector: 'nimble-breadcrumb-item[routerLink]' },] }
497
+ ];
498
+ NimbleBreadcrumbItemRouterLinkDirective.ctorParameters = function () { return []; };
499
+
500
+ var NimbleBreadcrumbItemModule = /** @class */ (function () {
501
+ function NimbleBreadcrumbItemModule() {
502
+ }
503
+ return NimbleBreadcrumbItemModule;
504
+ }());
505
+ NimbleBreadcrumbItemModule.decorators = [
506
+ { type: core.NgModule, args: [{
507
+ declarations: [NimbleBreadcrumbItemDirective, NimbleBreadcrumbItemRouterLinkDirective, NimbleBreadcrumbItemRouterLinkWithHrefDirective],
508
+ imports: [common.CommonModule],
509
+ exports: [NimbleBreadcrumbItemDirective, NimbleBreadcrumbItemRouterLinkDirective, NimbleBreadcrumbItemRouterLinkWithHrefDirective]
510
+ },] }
511
+ ];
512
+
513
+ /**
514
+ * Conversion helpers for values coming from template attributes or property bindings
515
+ */
516
+ /**
517
+ * Converts values from templates (empty string or null) or boolean bindings to a boolean property representation
518
+ */
519
+ var toBooleanProperty = function (value) {
520
+ if (value === false || value === null) {
521
+ return false;
522
+ }
523
+ // For boolean attributes the empty string value is true
524
+ return true;
525
+ };
526
+ /**
527
+ * Converts values from templates (empty string or null) or boolean bindings to an Aria boolean
528
+ * attribute representation (the strings "true" or "false")
529
+ */
530
+ var toBooleanAriaAttribute = function (value) {
531
+ if (value === false || value === null) {
532
+ return 'false';
533
+ }
534
+ // For boolean attributes the empty string value is true
535
+ return 'true';
536
+ };
537
+ /**
538
+ * Converts values from templates (number representation as a string) or number bindings to a number property representation
539
+ */
540
+ var toNumberProperty = function (value) {
541
+ // Angular: https://github.com/angular/angular/blob/2664bc2b3ef4ee5fd671f915828cfcc274a36c77/packages/forms/src/directives/number_value_accessor.ts#L67
542
+ // And Fast: https://github.com/microsoft/fast/blob/46bb6d9aab2c37105f4434db3795e176c2354a4f/packages/web-components/fast-element/src/components/attributes.ts#L100
543
+ // Handle numeric conversions from the view differently
544
+ // Since Number(val) https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number-constructor-number-value
545
+ // and val * 1 https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-applystringornumericbinaryoperator
546
+ // Are identical (use ToNumeric algorithm), went with Number() for clarity
547
+ return Number(value);
548
+ };
549
+
550
+ /**
551
+ * Directive to provide Angular integration for the button.
552
+ */
553
+ var NimbleButtonDirective = /** @class */ (function () {
554
+ function NimbleButtonDirective(renderer, elementRef) {
555
+ this.renderer = renderer;
556
+ this.elementRef = elementRef;
557
+ }
558
+ Object.defineProperty(NimbleButtonDirective.prototype, "appearance", {
559
+ get: function () {
560
+ return this.elementRef.nativeElement.appearance;
561
+ },
562
+ set: function (value) {
563
+ this.renderer.setProperty(this.elementRef.nativeElement, 'appearance', value);
564
+ },
565
+ enumerable: false,
566
+ configurable: true
567
+ });
568
+ Object.defineProperty(NimbleButtonDirective.prototype, "disabled", {
569
+ get: function () {
570
+ return this.elementRef.nativeElement.disabled;
571
+ },
572
+ set: function (value) {
573
+ this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', toBooleanProperty(value));
574
+ },
575
+ enumerable: false,
576
+ configurable: true
577
+ });
578
+ Object.defineProperty(NimbleButtonDirective.prototype, "type", {
579
+ get: function () {
580
+ return this.elementRef.nativeElement.type;
581
+ },
582
+ set: function (value) {
583
+ this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);
584
+ },
585
+ enumerable: false,
586
+ configurable: true
587
+ });
588
+ Object.defineProperty(NimbleButtonDirective.prototype, "contentHidden", {
589
+ get: function () {
590
+ return this.elementRef.nativeElement.contentHidden;
591
+ },
592
+ // contentHidden property intentionally maps to the content-hidden attribute
593
+ // eslint-disable-next-line @angular-eslint/no-input-rename
594
+ set: function (value) {
595
+ this.renderer.setProperty(this.elementRef.nativeElement, 'contentHidden', toBooleanProperty(value));
596
+ },
597
+ enumerable: false,
598
+ configurable: true
599
+ });
600
+ return NimbleButtonDirective;
601
+ }());
602
+ NimbleButtonDirective.decorators = [
603
+ { type: core.Directive, args: [{
604
+ selector: 'nimble-button'
605
+ },] }
606
+ ];
607
+ NimbleButtonDirective.ctorParameters = function () { return [
608
+ { type: core.Renderer2 },
609
+ { type: core.ElementRef }
610
+ ]; };
611
+ NimbleButtonDirective.propDecorators = {
612
+ appearance: [{ type: core.Input }],
613
+ disabled: [{ type: core.Input }],
614
+ type: [{ type: core.Input }],
615
+ contentHidden: [{ type: core.Input, args: ['content-hidden',] }]
616
+ };
617
+
618
+ var NimbleButtonModule = /** @class */ (function () {
619
+ function NimbleButtonModule() {
620
+ }
621
+ return NimbleButtonModule;
622
+ }());
623
+ NimbleButtonModule.decorators = [
624
+ { type: core.NgModule, args: [{
625
+ declarations: [NimbleButtonDirective],
626
+ imports: [common.CommonModule],
627
+ exports: [NimbleButtonDirective]
628
+ },] }
629
+ ];
630
+
443
631
  /**
444
632
  * Extension of Angular's CheckboxControlValueAccessor to target the Nimble checkbox control.
445
633
  *
@@ -1447,6 +1635,11 @@
1447
1635
  enumerable: true,
1448
1636
  get: function () { return asyncHelpers.processUpdates; }
1449
1637
  });
1638
+ exports.NimbleBreadcrumbDirective = NimbleBreadcrumbDirective;
1639
+ exports.NimbleBreadcrumbItemDirective = NimbleBreadcrumbItemDirective;
1640
+ exports.NimbleBreadcrumbItemModule = NimbleBreadcrumbItemModule;
1641
+ exports.NimbleBreadcrumbItemRouterLinkWithHrefDirective = NimbleBreadcrumbItemRouterLinkWithHrefDirective;
1642
+ exports.NimbleBreadcrumbModule = NimbleBreadcrumbModule;
1450
1643
  exports.NimbleButtonDirective = NimbleButtonDirective;
1451
1644
  exports.NimbleButtonModule = NimbleButtonModule;
1452
1645
  exports.NimbleCheckboxControlValueAccessorDirective = NimbleCheckboxControlValueAccessorDirective;
@@ -1486,7 +1679,8 @@
1486
1679
  exports.NimbleTreeViewDirective = NimbleTreeViewDirective;
1487
1680
  exports.NimbleTreeViewModule = NimbleTreeViewModule;
1488
1681
  exports.waitForUpdatesAsync = waitForUpdatesAsync;
1489
- exports["ɵa"] = NimbleToggleButtonControlValueAccessorDirective;
1682
+ exports["ɵa"] = NimbleBreadcrumbItemRouterLinkDirective;
1683
+ exports["ɵb"] = NimbleToggleButtonControlValueAccessorDirective;
1490
1684
 
1491
1685
  Object.defineProperty(exports, '__esModule', { value: true });
1492
1686