@clr/angular 18.0.0-beta.3 → 18.0.0-beta.5

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 (54) hide show
  1. package/fesm2022/clr-angular-data-datagrid.mjs +8 -2
  2. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
  3. package/fesm2022/clr-angular-forms-combobox.mjs +332 -39
  4. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -1
  5. package/fesm2022/clr-angular-layout-nav.mjs +27 -25
  6. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -1
  7. package/fesm2022/clr-angular-modal.mjs +2 -3
  8. package/fesm2022/clr-angular-modal.mjs.map +1 -1
  9. package/fesm2022/clr-angular-utils.mjs +5 -0
  10. package/fesm2022/clr-angular-utils.mjs.map +1 -1
  11. package/fesm2022/clr-angular-wizard.mjs +427 -224
  12. package/fesm2022/clr-angular-wizard.mjs.map +1 -1
  13. package/package.json +7 -2
  14. package/schematics/collection.json +10 -0
  15. package/schematics/ng-update/index.d.ts +2 -0
  16. package/schematics/ng-update/index.js +69 -0
  17. package/schematics/ng-update/index.js.map +1 -0
  18. package/schematics/ng-update/migrations/css-migration.d.ts +6 -0
  19. package/schematics/ng-update/migrations/css-migration.js +177 -0
  20. package/schematics/ng-update/migrations/css-migration.js.map +1 -0
  21. package/schematics/ng-update/migrations/import-migration.d.ts +4 -0
  22. package/schematics/ng-update/migrations/import-migration.js +187 -0
  23. package/schematics/ng-update/migrations/import-migration.js.map +1 -0
  24. package/schematics/ng-update/migrations/template-migration.d.ts +6 -0
  25. package/schematics/ng-update/migrations/template-migration.js +203 -0
  26. package/schematics/ng-update/migrations/template-migration.js.map +1 -0
  27. package/schematics/ng-update/replacements/css-replacements.d.ts +17 -0
  28. package/schematics/ng-update/replacements/css-replacements.js +74 -0
  29. package/schematics/ng-update/replacements/css-replacements.js.map +1 -0
  30. package/schematics/ng-update/replacements/import-replacements.d.ts +13 -0
  31. package/schematics/ng-update/replacements/import-replacements.js +101 -0
  32. package/schematics/ng-update/replacements/import-replacements.js.map +1 -0
  33. package/schematics/ng-update/replacements/symbol-replacements.d.ts +12 -0
  34. package/schematics/ng-update/replacements/symbol-replacements.js +68 -0
  35. package/schematics/ng-update/replacements/symbol-replacements.js.map +1 -0
  36. package/schematics/ng-update/replacements/template-replacements.d.ts +14 -0
  37. package/schematics/ng-update/replacements/template-replacements.js +53 -0
  38. package/schematics/ng-update/replacements/template-replacements.js.map +1 -0
  39. package/schematics/ng-update/tests/test-helpers.d.ts +6 -0
  40. package/schematics/ng-update/tests/test-helpers.js +34 -0
  41. package/schematics/ng-update/tests/test-helpers.js.map +1 -0
  42. package/schematics/ng-update/utils/file-visitor.d.ts +8 -0
  43. package/schematics/ng-update/utils/file-visitor.js +44 -0
  44. package/schematics/ng-update/utils/file-visitor.js.map +1 -0
  45. package/schematics/ng-update/utils/regexp-utils.d.ts +16 -0
  46. package/schematics/ng-update/utils/regexp-utils.js +34 -0
  47. package/schematics/ng-update/utils/regexp-utils.js.map +1 -0
  48. package/schematics/vitest.config.d.ts +2 -0
  49. package/schematics/vitest.config.js +17 -0
  50. package/schematics/vitest.config.js.map +1 -0
  51. package/types/clr-angular-forms-combobox.d.ts +55 -9
  52. package/types/clr-angular-layout-nav.d.ts +6 -2
  53. package/types/clr-angular-utils.d.ts +5 -0
  54. package/types/clr-angular-wizard.d.ts +89 -35
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Injectable, Optional, Input, HostBinding, Component, DOCUMENT, PLATFORM_ID, HostListener, Inject, NgModule } from '@angular/core';
2
+ import { Directive, Injectable, Optional, Input, HostBinding, Component, DOCUMENT, createComponent, PLATFORM_ID, HostListener, Inject, NgModule } from '@angular/core';
3
3
  import * as i1 from '@clr/angular/utils';
4
4
  import { WillyWonka, OompaLoompa, commonStringsDefault, LARGE_BREAKPOINT, ClrStandaloneCdkTrapFocus } from '@clr/angular/utils';
5
5
  import { ReplaySubject, Subject } from 'rxjs';
@@ -320,31 +320,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
320
320
  * This software is released under MIT license.
321
321
  * The full license information can be found in LICENSE in the root directory of this project.
322
322
  */
323
- const createCloseButton = (document, ariaLabel) => {
324
- ClarityIcons.addIcons(timesIcon);
325
- const closeButton = document.createElement('button');
326
- closeButton.setAttribute('aria-label', ariaLabel);
327
- closeButton.setAttribute('aria-hidden', 'true');
328
- closeButton.innerHTML = `
329
- <cds-icon
330
- inner-offset="1"
331
- shape="times"
332
- size="32"
333
- ></cds-icon>
334
- `;
335
- /**
336
- * The button is hidden by default based on our Desktop-first approach.
337
- */
338
- closeButton.setAttribute('hidden', 'true');
339
- closeButton.className = 'clr-nav-close';
340
- return closeButton;
341
- };
342
323
  class ClrNavLevel {
343
- constructor(platformId, cdkTrapFocus, responsiveNavService, elementRef, renderer, injector) {
324
+ constructor(platformId, cdkTrapFocus, responsiveNavService, elementRef, renderer, injector, environmentInjector, appRef) {
344
325
  this.cdkTrapFocus = cdkTrapFocus;
345
326
  this.responsiveNavService = responsiveNavService;
346
327
  this.elementRef = elementRef;
347
328
  this.renderer = renderer;
329
+ this.injector = injector;
330
+ this.environmentInjector = environmentInjector;
331
+ this.appRef = appRef;
348
332
  this._isOpen = false;
349
333
  if (isPlatformBrowser(platformId)) {
350
334
  this._document = injector.get(DOCUMENT);
@@ -389,9 +373,9 @@ class ClrNavLevel {
389
373
  this.addNavClass(this.level);
390
374
  }
391
375
  ngAfterViewInit() {
392
- const closeButton = createCloseButton(this._document, this.closeButtonAriaLabel);
376
+ const closeButton = this.createCloseButton();
393
377
  this.renderer.listen(closeButton, 'click', this.close.bind(this));
394
- this.renderer.insertBefore(this.elementRef.nativeElement, closeButton, this.elementRef.nativeElement.firstChild); // Adding the button at the top of the nav
378
+ this.renderer.insertBefore(this.elementRef.nativeElement, closeButton, this.elementRef.nativeElement.firstChild);
395
379
  if (this._document.body.clientWidth < LARGE_BREAKPOINT) {
396
380
  /**
397
381
  * Close if the document body is smaller than the large breakpoint for example:
@@ -473,7 +457,25 @@ class ClrNavLevel {
473
457
  this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'aria-hidden', 'false');
474
458
  this.renderer.removeAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden');
475
459
  }
476
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrNavLevel, deps: [{ token: PLATFORM_ID }, { token: i1.ClrStandaloneCdkTrapFocus }, { token: ResponsiveNavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
460
+ createCloseButton() {
461
+ ClarityIcons.addIcons(timesIcon);
462
+ const closeButton = this._document.createElement('button');
463
+ closeButton.setAttribute('aria-label', this.closeButtonAriaLabel);
464
+ closeButton.setAttribute('aria-hidden', 'true');
465
+ closeButton.setAttribute('hidden', 'true');
466
+ closeButton.className = 'clr-nav-close';
467
+ const iconRef = createComponent(ClrIcon, {
468
+ hostElement: this._document.createElement('cds-icon'),
469
+ environmentInjector: this.environmentInjector,
470
+ elementInjector: this.injector,
471
+ });
472
+ iconRef.instance.shape = 'times';
473
+ iconRef.instance.size = '32';
474
+ this.appRef.attachView(iconRef.hostView);
475
+ closeButton.appendChild(iconRef.location.nativeElement);
476
+ return closeButton;
477
+ }
478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrNavLevel, deps: [{ token: PLATFORM_ID }, { token: i1.ClrStandaloneCdkTrapFocus }, { token: ResponsiveNavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Directive }); }
477
479
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrNavLevel, isStandalone: false, selector: "[clr-nav-level]", inputs: { _level: ["clr-nav-level", "_level"], closeButtonAriaLabel: ["closeAriaLabel", "closeButtonAriaLabel"] }, host: { listeners: { "window:resize": "onResize($event)", "click": "onMouseClick($event.target)" } }, hostDirectives: [{ directive: i1.ClrStandaloneCdkTrapFocus }], ngImport: i0 }); }
478
480
  }
479
481
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrNavLevel, decorators: [{
@@ -486,7 +488,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
486
488
  }], ctorParameters: () => [{ type: undefined, decorators: [{
487
489
  type: Inject,
488
490
  args: [PLATFORM_ID]
489
- }] }, { type: i1.ClrStandaloneCdkTrapFocus }, { type: ResponsiveNavigationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }], propDecorators: { _level: [{
491
+ }] }, { type: i1.ClrStandaloneCdkTrapFocus }, { type: ResponsiveNavigationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.ApplicationRef }], propDecorators: { _level: [{
490
492
  type: Input,
491
493
  args: ['clr-nav-level']
492
494
  }], closeButtonAriaLabel: [{
@@ -1 +1 @@
1
- {"version":3,"file":"clr-angular-layout-nav.mjs","sources":["../../../projects/angular/layout/nav/chocolate/main-container-willy-wonka.ts","../../../projects/angular/layout/nav/responsive-nav-codes.ts","../../../projects/angular/layout/nav/responsive-nav-control-message.ts","../../../projects/angular/layout/nav/providers/responsive-navigation.service.ts","../../../projects/angular/layout/nav/chocolate/nav-detection-oompa-loompa.ts","../../../projects/angular/layout/nav/chocolate/index.ts","../../../projects/angular/layout/nav/header.ts","../../../projects/angular/layout/nav/nav-level.ts","../../../projects/angular/layout/nav/aria-current-link.ts","../../../projects/angular/layout/nav/navigation.module.ts","../../../projects/angular/layout/nav/index.ts","../../../projects/angular/layout/nav/clr-angular-layout-nav.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\nimport { WillyWonka } from '@clr/angular/utils';\n\n@Directive({\n selector: 'clr-main-container',\n standalone: false,\n})\nexport class MainContainerWillyWonka extends WillyWonka {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport class ResponsiveNavCodes {\n static NAV_LEVEL_1 = 1;\n static NAV_LEVEL_2 = 2;\n static NAV_CLOSE_ALL = 'NAV_CLOSE_ALL';\n static NAV_OPEN = 'NAV_OPEN';\n static NAV_CLOSE = 'NAV_CLOSE';\n static NAV_TOGGLE = 'NAV_TOGGLE';\n static NAV_CLASS_HAMBURGER_MENU = 'open-hamburger-menu';\n static NAV_CLASS_OVERFLOW_MENU = 'open-overflow-menu';\n static NAV_CLASS_TRIGGER_1 = 'header-hamburger-trigger';\n static NAV_CLASS_TRIGGER_2 = 'header-overflow-trigger';\n static NAV_CLASS_LEVEL_1 = 'clr-nav-level-1';\n static NAV_CLASS_LEVEL_2 = 'clr-nav-level-2';\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport class ResponsiveNavControlMessage {\n constructor(\n private _controlCode: string,\n private _navLevel: number\n ) {}\n\n get controlCode(): string {\n return this._controlCode;\n }\n\n get navLevel(): number {\n return this._navLevel;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\n\nimport { ResponsiveNavCodes } from '../responsive-nav-codes';\nimport { ResponsiveNavControlMessage } from '../responsive-nav-control-message';\n\n@Injectable({ providedIn: 'root' })\nexport class ResponsiveNavigationService {\n responsiveNavList: number[] = [];\n\n private registerNavSubject = new ReplaySubject<number[]>();\n private controlNavSubject = new Subject<ResponsiveNavControlMessage>();\n\n constructor() {\n this.closeAllNavs(); // We start with all navs closed\n }\n\n get registeredNavs(): Observable<number[]> {\n return this.registerNavSubject.asObservable();\n }\n\n get navControl(): Observable<ResponsiveNavControlMessage> {\n return this.controlNavSubject.asObservable();\n }\n\n registerNav(navLevel: number): void {\n if (!navLevel || this.isNavRegistered(navLevel)) {\n return;\n }\n this.responsiveNavList.push(navLevel);\n this.registerNavSubject.next(this.responsiveNavList);\n }\n\n isNavRegistered(navLevel: number): boolean {\n if (this.responsiveNavList.indexOf(navLevel) > -1) {\n console.error('Multiple clr-nav-level ' + navLevel + ' attributes found. Please make sure that only one exists');\n return true;\n }\n return false;\n }\n\n unregisterNav(navLevel: number) {\n const index = this.responsiveNavList.indexOf(navLevel);\n if (index > -1) {\n this.responsiveNavList.splice(index, 1);\n this.registerNavSubject.next(this.responsiveNavList);\n }\n }\n\n sendControlMessage(controlCode: string, navLevel: number) {\n const message: ResponsiveNavControlMessage = new ResponsiveNavControlMessage(controlCode, navLevel);\n this.controlNavSubject.next(message);\n }\n\n closeAllNavs() {\n const message: ResponsiveNavControlMessage = new ResponsiveNavControlMessage(\n ResponsiveNavCodes.NAV_CLOSE_ALL,\n -999\n );\n this.controlNavSubject.next(message);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ChangeDetectorRef, Directive, Optional } from '@angular/core';\nimport { OompaLoompa } from '@clr/angular/utils';\n\nimport { MainContainerWillyWonka } from './main-container-willy-wonka';\nimport { ResponsiveNavigationService } from '../providers/responsive-navigation.service';\n\n@Directive({\n selector: 'clr-header',\n standalone: false,\n})\nexport class NavDetectionOompaLoompa extends OompaLoompa {\n private responsiveNavService: ResponsiveNavigationService;\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() willyWonka: MainContainerWillyWonka,\n responsiveNavService: ResponsiveNavigationService\n ) {\n if (!willyWonka) {\n throw new Error('clr-header should only be used inside of a clr-main-container');\n }\n super(cdr, willyWonka);\n this.responsiveNavService = responsiveNavService;\n }\n\n // NavDetectionOompaLoompa is the addition of the nav levels\n // Since we support 2 levels, the possibilities are 0, 1 or 3 (1 + 2)\n get flavor() {\n return this.responsiveNavService.responsiveNavList.reduce((sum, navLevel) => sum + navLevel, 0);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './main-container-willy-wonka';\nexport * from './nav-detection-oompa-loompa';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ResponsiveNavigationService } from './providers/responsive-navigation.service';\nimport { ResponsiveNavCodes } from './responsive-nav-codes';\n\n@Component({\n selector: 'clr-header',\n template: `\n @if (isNavLevel1OnPage) {\n <button\n type=\"button\"\n class=\"header-hamburger-trigger\"\n [attr.aria-label]=\"responsiveNavCommonString\"\n (click)=\"openNav(responsiveNavCodes.NAV_LEVEL_1)\"\n >\n <span></span>\n </button>\n }\n <ng-content></ng-content>\n @if (isNavLevel2OnPage) {\n <button\n type=\"button\"\n class=\"header-overflow-trigger\"\n [attr.aria-label]=\"responsiveOverflowCommonString\"\n (click)=\"openNav(responsiveNavCodes.NAV_LEVEL_2)\"\n >\n <span></span>\n </button>\n }\n <div class=\"header-backdrop\" (click)=\"closeOpenNav()\"></div>\n `,\n host: { '[class.header]': 'true' },\n standalone: false,\n})\nexport class ClrHeader implements OnDestroy {\n @Input() @HostBinding('attr.role') role = 'banner';\n\n isNavLevel1OnPage = false;\n isNavLevel2OnPage = false;\n openNavLevel: number = null;\n responsiveNavCodes = ResponsiveNavCodes;\n private _subscription: Subscription;\n\n constructor(\n private responsiveNavService: ResponsiveNavigationService,\n public commonStrings: ClrCommonStringsService\n ) {\n this._subscription = responsiveNavService.registeredNavs.subscribe({\n next: (navLevelList: number[]) => {\n this.initializeNavTriggers(navLevelList);\n },\n });\n\n this._subscription.add(\n responsiveNavService.navControl\n .pipe(\n filter(\n ({ controlCode }) =>\n controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL\n )\n )\n .subscribe(() => {\n this.openNavLevel = null;\n })\n );\n }\n\n get responsiveNavCommonString() {\n const myCommonStrings = this.commonStrings.keys;\n if (this.openNavLevel !== this.responsiveNavCodes.NAV_LEVEL_1) {\n return myCommonStrings.responsiveNavToggleOpen;\n } else {\n return myCommonStrings.responsiveNavToggleClose;\n }\n }\n\n get responsiveOverflowCommonString() {\n const myCommonStrings = this.commonStrings.keys;\n if (this.openNavLevel !== this.responsiveNavCodes.NAV_LEVEL_2) {\n return myCommonStrings.responsiveNavOverflowOpen;\n } else {\n return myCommonStrings.responsiveNavOverflowClose;\n }\n }\n\n // reset triggers. handles cases when an application has different nav levels on different pages.\n resetNavTriggers() {\n this.isNavLevel1OnPage = false;\n this.isNavLevel2OnPage = false;\n }\n\n // decides which triggers to show on the header\n initializeNavTriggers(navList: number[]): void {\n this.resetNavTriggers();\n if (navList.length > 2) {\n console.error('More than 2 Nav Levels detected.');\n return;\n }\n navList.forEach(navLevel => {\n if (navLevel === ResponsiveNavCodes.NAV_LEVEL_1) {\n this.isNavLevel1OnPage = true;\n } else if (navLevel === ResponsiveNavCodes.NAV_LEVEL_2) {\n this.isNavLevel2OnPage = true;\n }\n });\n }\n\n // closes the nav that is open\n closeOpenNav() {\n this.responsiveNavService.closeAllNavs();\n }\n\n /**\n * @deprecated Will be removed in with @clr/angular v15.0.0\n *\n * Use `openNav(navLevel)` instead to open the navigation and ResponsiveNavService to close it.\n */\n toggleNav(navLevel: number) {\n if (this.openNavLevel === navLevel) {\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, navLevel);\n return;\n }\n\n this.openNav(navLevel);\n }\n\n openNav(navLevel: number) {\n this.openNavLevel = navLevel;\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, navLevel);\n }\n\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Directive,\n DOCUMENT,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n Input,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n} from '@angular/core';\nimport { ClarityIcons, timesIcon } from '@clr/angular/icon';\nimport { ClrStandaloneCdkTrapFocus, commonStringsDefault, LARGE_BREAKPOINT } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ResponsiveNavigationService } from './providers/responsive-navigation.service';\nimport { ResponsiveNavCodes } from './responsive-nav-codes';\n\nconst createCloseButton = (document: Document, ariaLabel: string) => {\n ClarityIcons.addIcons(timesIcon);\n\n const closeButton = document.createElement('button');\n closeButton.setAttribute('aria-label', ariaLabel);\n closeButton.setAttribute('aria-hidden', 'true');\n closeButton.innerHTML = `\n <cds-icon\n inner-offset=\"1\"\n shape=\"times\"\n size=\"32\"\n ></cds-icon>\n `;\n /**\n * The button is hidden by default based on our Desktop-first approach.\n */\n closeButton.setAttribute('hidden', 'true');\n closeButton.className = 'clr-nav-close';\n return closeButton;\n};\n\n@Directive({\n selector: '[clr-nav-level]',\n hostDirectives: [ClrStandaloneCdkTrapFocus],\n standalone: false,\n})\nexport class ClrNavLevel implements OnInit {\n @Input('clr-nav-level') _level: number;\n @Input('closeAriaLabel') closeButtonAriaLabel: string;\n\n private _isOpen = false;\n private _document: Document;\n private _subscription: Subscription;\n\n constructor(\n @Inject(PLATFORM_ID) platformId: any,\n private cdkTrapFocus: ClrStandaloneCdkTrapFocus,\n private responsiveNavService: ResponsiveNavigationService,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n injector: Injector\n ) {\n if (isPlatformBrowser(platformId)) {\n this._document = injector.get(DOCUMENT);\n }\n\n this._subscription = responsiveNavService.navControl\n .pipe(\n filter(x => x.navLevel === this.level),\n filter(\n ({ controlCode }) =>\n (controlCode === ResponsiveNavCodes.NAV_OPEN && !this.isOpen) ||\n (controlCode === ResponsiveNavCodes.NAV_CLOSE && this.isOpen)\n )\n )\n .subscribe(({ controlCode }) => {\n if (controlCode === ResponsiveNavCodes.NAV_OPEN) {\n this.open();\n return;\n }\n\n this.close();\n });\n\n this._subscription.add(\n responsiveNavService.navControl\n .pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))\n .subscribe(() => this.close())\n );\n }\n\n get level(): number {\n return this._level;\n }\n\n // getter to access the responsive navigation codes from the template\n get responsiveNavCodes(): ResponsiveNavCodes {\n return ResponsiveNavCodes;\n }\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n ngOnInit() {\n this.cdkTrapFocus.enabled = false;\n\n if (!this.closeButtonAriaLabel) {\n this.closeButtonAriaLabel =\n this._level === ResponsiveNavCodes.NAV_LEVEL_1\n ? commonStringsDefault.responsiveNavToggleClose\n : commonStringsDefault.responsiveNavOverflowClose;\n }\n\n if (this.level !== ResponsiveNavCodes.NAV_LEVEL_1 && this.level !== ResponsiveNavCodes.NAV_LEVEL_2) {\n console.error('Nav Level can only be 1 or 2');\n return;\n }\n this.responsiveNavService.registerNav(this.level);\n this.addNavClass(this.level);\n }\n\n ngAfterViewInit() {\n const closeButton = createCloseButton(this._document, this.closeButtonAriaLabel);\n this.renderer.listen(closeButton, 'click', this.close.bind(this));\n this.renderer.insertBefore(this.elementRef.nativeElement, closeButton, this.elementRef.nativeElement.firstChild); // Adding the button at the top of the nav\n\n if (this._document.body.clientWidth < LARGE_BREAKPOINT) {\n /**\n * Close if the document body is smaller than the large breakpoint for example:\n * - Refreshing the page\n * - Browser window size is changed when opening the applicaiton\n * - Browser zoom is turned on and zoomed to a size that makes the document smaller than the large breakpoint\n */\n this.close();\n }\n }\n\n ngOnDestroy() {\n this.responsiveNavService.unregisterNav(this.level);\n this._subscription.unsubscribe();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: Event) {\n const target = event.target as Window;\n\n if (target.innerWidth < LARGE_BREAKPOINT && this.isOpen) {\n this.close();\n return;\n }\n\n this.showNavigation();\n }\n\n // TODO: Figure out whats the best way to do this. Possible methods\n // 1. HostListener (current solution)\n // 2. Directives on the .nav-link class. We discussed on moving away from class selectors but I forget the reason\n // why\n @HostListener('click', ['$event.target'])\n onMouseClick(target: any) {\n let current: any = target; // Get the element in the DOM on which the mouse was clicked\n const navHost: any = this.elementRef.nativeElement; // Get the current nav native HTML element\n\n // Start checking if current and navHost are equal.\n // If not traverse to the parentNode and check again.\n while (current) {\n if (current === navHost) {\n return;\n } else if (current.classList.contains('nav-link') && this._document.body.clientWidth < LARGE_BREAKPOINT) {\n this.close();\n return;\n }\n current = current.parentNode;\n }\n }\n\n addNavClass(level: number) {\n const navHostClassList = this.elementRef.nativeElement.classList;\n if (level === ResponsiveNavCodes.NAV_LEVEL_1) {\n navHostClassList.add(ResponsiveNavCodes.NAV_CLASS_LEVEL_1);\n } else if (level === ResponsiveNavCodes.NAV_LEVEL_2) {\n navHostClassList.add(ResponsiveNavCodes.NAV_CLASS_LEVEL_2);\n }\n }\n\n open(): void {\n this._isOpen = true;\n this.showNavigation();\n this.cdkTrapFocus.enabled = true;\n this.showCloseButton();\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, this.level);\n }\n\n close(): void {\n this._isOpen = false;\n this.hideNavigation();\n this.cdkTrapFocus.enabled = false;\n this.hideCloseButton();\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, this.level);\n }\n\n protected hideNavigation() {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');\n this.renderer.setAttribute(this.elementRef.nativeElement, 'hidden', 'true');\n }\n\n protected showNavigation() {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'false');\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'hidden');\n }\n\n protected hideCloseButton() {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');\n this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden', 'true');\n }\n\n protected showCloseButton() {\n this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'aria-hidden', 'false');\n this.renderer.removeAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden');\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, OnDestroy, OnInit } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[clrAriaCurrentLink]',\n host: { '[attr.aria-current]': 'ariaCurrent' },\n standalone: false,\n})\nexport class ClrAriaCurrentLink implements OnInit, OnDestroy {\n ariaCurrent: string | undefined;\n private subscription: Subscription;\n\n constructor(private rla: RouterLinkActive) {}\n\n ngOnInit() {\n this.subscription = this.rla.isActiveChange.subscribe(isActive => {\n this.ariaCurrent = isActive ? 'page' : undefined;\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClrIcon } from '@clr/angular/icon';\nimport { ClrDropdownModule } from '@clr/angular/popover/dropdown';\n\nimport { ClrAriaCurrentLink } from './aria-current-link';\nimport { MainContainerWillyWonka } from './chocolate/main-container-willy-wonka';\nimport { NavDetectionOompaLoompa } from './chocolate/nav-detection-oompa-loompa';\nimport { ClrHeader } from './header';\nimport { ClrNavLevel } from './nav-level';\n\nexport const CLR_NAVIGATION_DIRECTIVES: Type<any>[] = [\n ClrHeader,\n ClrNavLevel,\n ClrAriaCurrentLink,\n NavDetectionOompaLoompa,\n MainContainerWillyWonka,\n];\n\n@NgModule({\n imports: [CommonModule, ClrIcon, ClrDropdownModule],\n declarations: [CLR_NAVIGATION_DIRECTIVES],\n exports: [CLR_NAVIGATION_DIRECTIVES],\n})\nexport class ClrNavigationModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './chocolate/index';\nexport * from './header';\nexport * from './nav-level';\nexport * from './aria-current-link';\nexport * from './navigation.module';\nexport * from './providers/responsive-navigation.service';\nexport * from './responsive-nav-codes';\nexport * from './responsive-nav-control-message';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MainContainerWillyWonka","i2.ResponsiveNavigationService","i1.ResponsiveNavigationService","i2","i1"],"mappings":"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"}
1
+ {"version":3,"file":"clr-angular-layout-nav.mjs","sources":["../../../projects/angular/layout/nav/chocolate/main-container-willy-wonka.ts","../../../projects/angular/layout/nav/responsive-nav-codes.ts","../../../projects/angular/layout/nav/responsive-nav-control-message.ts","../../../projects/angular/layout/nav/providers/responsive-navigation.service.ts","../../../projects/angular/layout/nav/chocolate/nav-detection-oompa-loompa.ts","../../../projects/angular/layout/nav/chocolate/index.ts","../../../projects/angular/layout/nav/header.ts","../../../projects/angular/layout/nav/nav-level.ts","../../../projects/angular/layout/nav/aria-current-link.ts","../../../projects/angular/layout/nav/navigation.module.ts","../../../projects/angular/layout/nav/index.ts","../../../projects/angular/layout/nav/clr-angular-layout-nav.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\nimport { WillyWonka } from '@clr/angular/utils';\n\n@Directive({\n selector: 'clr-main-container',\n standalone: false,\n})\nexport class MainContainerWillyWonka extends WillyWonka {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport class ResponsiveNavCodes {\n static NAV_LEVEL_1 = 1;\n static NAV_LEVEL_2 = 2;\n static NAV_CLOSE_ALL = 'NAV_CLOSE_ALL';\n static NAV_OPEN = 'NAV_OPEN';\n static NAV_CLOSE = 'NAV_CLOSE';\n static NAV_TOGGLE = 'NAV_TOGGLE';\n static NAV_CLASS_HAMBURGER_MENU = 'open-hamburger-menu';\n static NAV_CLASS_OVERFLOW_MENU = 'open-overflow-menu';\n static NAV_CLASS_TRIGGER_1 = 'header-hamburger-trigger';\n static NAV_CLASS_TRIGGER_2 = 'header-overflow-trigger';\n static NAV_CLASS_LEVEL_1 = 'clr-nav-level-1';\n static NAV_CLASS_LEVEL_2 = 'clr-nav-level-2';\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport class ResponsiveNavControlMessage {\n constructor(\n private _controlCode: string,\n private _navLevel: number\n ) {}\n\n get controlCode(): string {\n return this._controlCode;\n }\n\n get navLevel(): number {\n return this._navLevel;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\n\nimport { ResponsiveNavCodes } from '../responsive-nav-codes';\nimport { ResponsiveNavControlMessage } from '../responsive-nav-control-message';\n\n@Injectable({ providedIn: 'root' })\nexport class ResponsiveNavigationService {\n responsiveNavList: number[] = [];\n\n private registerNavSubject = new ReplaySubject<number[]>();\n private controlNavSubject = new Subject<ResponsiveNavControlMessage>();\n\n constructor() {\n this.closeAllNavs(); // We start with all navs closed\n }\n\n get registeredNavs(): Observable<number[]> {\n return this.registerNavSubject.asObservable();\n }\n\n get navControl(): Observable<ResponsiveNavControlMessage> {\n return this.controlNavSubject.asObservable();\n }\n\n registerNav(navLevel: number): void {\n if (!navLevel || this.isNavRegistered(navLevel)) {\n return;\n }\n this.responsiveNavList.push(navLevel);\n this.registerNavSubject.next(this.responsiveNavList);\n }\n\n isNavRegistered(navLevel: number): boolean {\n if (this.responsiveNavList.indexOf(navLevel) > -1) {\n console.error('Multiple clr-nav-level ' + navLevel + ' attributes found. Please make sure that only one exists');\n return true;\n }\n return false;\n }\n\n unregisterNav(navLevel: number) {\n const index = this.responsiveNavList.indexOf(navLevel);\n if (index > -1) {\n this.responsiveNavList.splice(index, 1);\n this.registerNavSubject.next(this.responsiveNavList);\n }\n }\n\n sendControlMessage(controlCode: string, navLevel: number) {\n const message: ResponsiveNavControlMessage = new ResponsiveNavControlMessage(controlCode, navLevel);\n this.controlNavSubject.next(message);\n }\n\n closeAllNavs() {\n const message: ResponsiveNavControlMessage = new ResponsiveNavControlMessage(\n ResponsiveNavCodes.NAV_CLOSE_ALL,\n -999\n );\n this.controlNavSubject.next(message);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ChangeDetectorRef, Directive, Optional } from '@angular/core';\nimport { OompaLoompa } from '@clr/angular/utils';\n\nimport { MainContainerWillyWonka } from './main-container-willy-wonka';\nimport { ResponsiveNavigationService } from '../providers/responsive-navigation.service';\n\n@Directive({\n selector: 'clr-header',\n standalone: false,\n})\nexport class NavDetectionOompaLoompa extends OompaLoompa {\n private responsiveNavService: ResponsiveNavigationService;\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() willyWonka: MainContainerWillyWonka,\n responsiveNavService: ResponsiveNavigationService\n ) {\n if (!willyWonka) {\n throw new Error('clr-header should only be used inside of a clr-main-container');\n }\n super(cdr, willyWonka);\n this.responsiveNavService = responsiveNavService;\n }\n\n // NavDetectionOompaLoompa is the addition of the nav levels\n // Since we support 2 levels, the possibilities are 0, 1 or 3 (1 + 2)\n get flavor() {\n return this.responsiveNavService.responsiveNavList.reduce((sum, navLevel) => sum + navLevel, 0);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './main-container-willy-wonka';\nexport * from './nav-detection-oompa-loompa';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ResponsiveNavigationService } from './providers/responsive-navigation.service';\nimport { ResponsiveNavCodes } from './responsive-nav-codes';\n\n@Component({\n selector: 'clr-header',\n template: `\n @if (isNavLevel1OnPage) {\n <button\n type=\"button\"\n class=\"header-hamburger-trigger\"\n [attr.aria-label]=\"responsiveNavCommonString\"\n (click)=\"openNav(responsiveNavCodes.NAV_LEVEL_1)\"\n >\n <span></span>\n </button>\n }\n <ng-content></ng-content>\n @if (isNavLevel2OnPage) {\n <button\n type=\"button\"\n class=\"header-overflow-trigger\"\n [attr.aria-label]=\"responsiveOverflowCommonString\"\n (click)=\"openNav(responsiveNavCodes.NAV_LEVEL_2)\"\n >\n <span></span>\n </button>\n }\n <div class=\"header-backdrop\" (click)=\"closeOpenNav()\"></div>\n `,\n host: { '[class.header]': 'true' },\n standalone: false,\n})\nexport class ClrHeader implements OnDestroy {\n @Input() @HostBinding('attr.role') role = 'banner';\n\n isNavLevel1OnPage = false;\n isNavLevel2OnPage = false;\n openNavLevel: number = null;\n responsiveNavCodes = ResponsiveNavCodes;\n private _subscription: Subscription;\n\n constructor(\n private responsiveNavService: ResponsiveNavigationService,\n public commonStrings: ClrCommonStringsService\n ) {\n this._subscription = responsiveNavService.registeredNavs.subscribe({\n next: (navLevelList: number[]) => {\n this.initializeNavTriggers(navLevelList);\n },\n });\n\n this._subscription.add(\n responsiveNavService.navControl\n .pipe(\n filter(\n ({ controlCode }) =>\n controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL\n )\n )\n .subscribe(() => {\n this.openNavLevel = null;\n })\n );\n }\n\n get responsiveNavCommonString() {\n const myCommonStrings = this.commonStrings.keys;\n if (this.openNavLevel !== this.responsiveNavCodes.NAV_LEVEL_1) {\n return myCommonStrings.responsiveNavToggleOpen;\n } else {\n return myCommonStrings.responsiveNavToggleClose;\n }\n }\n\n get responsiveOverflowCommonString() {\n const myCommonStrings = this.commonStrings.keys;\n if (this.openNavLevel !== this.responsiveNavCodes.NAV_LEVEL_2) {\n return myCommonStrings.responsiveNavOverflowOpen;\n } else {\n return myCommonStrings.responsiveNavOverflowClose;\n }\n }\n\n // reset triggers. handles cases when an application has different nav levels on different pages.\n resetNavTriggers() {\n this.isNavLevel1OnPage = false;\n this.isNavLevel2OnPage = false;\n }\n\n // decides which triggers to show on the header\n initializeNavTriggers(navList: number[]): void {\n this.resetNavTriggers();\n if (navList.length > 2) {\n console.error('More than 2 Nav Levels detected.');\n return;\n }\n navList.forEach(navLevel => {\n if (navLevel === ResponsiveNavCodes.NAV_LEVEL_1) {\n this.isNavLevel1OnPage = true;\n } else if (navLevel === ResponsiveNavCodes.NAV_LEVEL_2) {\n this.isNavLevel2OnPage = true;\n }\n });\n }\n\n // closes the nav that is open\n closeOpenNav() {\n this.responsiveNavService.closeAllNavs();\n }\n\n /**\n * @deprecated Will be removed in with @clr/angular v15.0.0\n *\n * Use `openNav(navLevel)` instead to open the navigation and ResponsiveNavService to close it.\n */\n toggleNav(navLevel: number) {\n if (this.openNavLevel === navLevel) {\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, navLevel);\n return;\n }\n\n this.openNav(navLevel);\n }\n\n openNav(navLevel: number) {\n this.openNavLevel = navLevel;\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, navLevel);\n }\n\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ApplicationRef,\n createComponent,\n Directive,\n DOCUMENT,\n ElementRef,\n EnvironmentInjector,\n HostListener,\n Inject,\n Injector,\n Input,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n} from '@angular/core';\nimport { ClarityIcons, ClrIcon, timesIcon } from '@clr/angular/icon';\nimport { ClrStandaloneCdkTrapFocus, commonStringsDefault, LARGE_BREAKPOINT } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ResponsiveNavigationService } from './providers/responsive-navigation.service';\nimport { ResponsiveNavCodes } from './responsive-nav-codes';\n\n@Directive({\n selector: '[clr-nav-level]',\n hostDirectives: [ClrStandaloneCdkTrapFocus],\n standalone: false,\n})\nexport class ClrNavLevel implements OnInit {\n @Input('clr-nav-level') _level: number;\n @Input('closeAriaLabel') closeButtonAriaLabel: string;\n\n private _isOpen = false;\n private _document: Document;\n private _subscription: Subscription;\n\n constructor(\n @Inject(PLATFORM_ID) platformId: any,\n private cdkTrapFocus: ClrStandaloneCdkTrapFocus,\n private responsiveNavService: ResponsiveNavigationService,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private injector: Injector,\n private environmentInjector: EnvironmentInjector,\n private appRef: ApplicationRef\n ) {\n if (isPlatformBrowser(platformId)) {\n this._document = injector.get(DOCUMENT);\n }\n\n this._subscription = responsiveNavService.navControl\n .pipe(\n filter(x => x.navLevel === this.level),\n filter(\n ({ controlCode }) =>\n (controlCode === ResponsiveNavCodes.NAV_OPEN && !this.isOpen) ||\n (controlCode === ResponsiveNavCodes.NAV_CLOSE && this.isOpen)\n )\n )\n .subscribe(({ controlCode }) => {\n if (controlCode === ResponsiveNavCodes.NAV_OPEN) {\n this.open();\n return;\n }\n\n this.close();\n });\n\n this._subscription.add(\n responsiveNavService.navControl\n .pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))\n .subscribe(() => this.close())\n );\n }\n\n get level(): number {\n return this._level;\n }\n\n // getter to access the responsive navigation codes from the template\n get responsiveNavCodes(): ResponsiveNavCodes {\n return ResponsiveNavCodes;\n }\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n ngOnInit() {\n this.cdkTrapFocus.enabled = false;\n\n if (!this.closeButtonAriaLabel) {\n this.closeButtonAriaLabel =\n this._level === ResponsiveNavCodes.NAV_LEVEL_1\n ? commonStringsDefault.responsiveNavToggleClose\n : commonStringsDefault.responsiveNavOverflowClose;\n }\n\n if (this.level !== ResponsiveNavCodes.NAV_LEVEL_1 && this.level !== ResponsiveNavCodes.NAV_LEVEL_2) {\n console.error('Nav Level can only be 1 or 2');\n return;\n }\n this.responsiveNavService.registerNav(this.level);\n this.addNavClass(this.level);\n }\n\n ngAfterViewInit() {\n const closeButton = this.createCloseButton();\n this.renderer.listen(closeButton, 'click', this.close.bind(this));\n this.renderer.insertBefore(this.elementRef.nativeElement, closeButton, this.elementRef.nativeElement.firstChild);\n\n if (this._document.body.clientWidth < LARGE_BREAKPOINT) {\n /**\n * Close if the document body is smaller than the large breakpoint for example:\n * - Refreshing the page\n * - Browser window size is changed when opening the applicaiton\n * - Browser zoom is turned on and zoomed to a size that makes the document smaller than the large breakpoint\n */\n this.close();\n }\n }\n\n ngOnDestroy() {\n this.responsiveNavService.unregisterNav(this.level);\n this._subscription.unsubscribe();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: Event) {\n const target = event.target as Window;\n\n if (target.innerWidth < LARGE_BREAKPOINT && this.isOpen) {\n this.close();\n return;\n }\n\n this.showNavigation();\n }\n\n // TODO: Figure out whats the best way to do this. Possible methods\n // 1. HostListener (current solution)\n // 2. Directives on the .nav-link class. We discussed on moving away from class selectors but I forget the reason\n // why\n @HostListener('click', ['$event.target'])\n onMouseClick(target: any) {\n let current: any = target; // Get the element in the DOM on which the mouse was clicked\n const navHost: any = this.elementRef.nativeElement; // Get the current nav native HTML element\n\n // Start checking if current and navHost are equal.\n // If not traverse to the parentNode and check again.\n while (current) {\n if (current === navHost) {\n return;\n } else if (current.classList.contains('nav-link') && this._document.body.clientWidth < LARGE_BREAKPOINT) {\n this.close();\n return;\n }\n current = current.parentNode;\n }\n }\n\n addNavClass(level: number) {\n const navHostClassList = this.elementRef.nativeElement.classList;\n if (level === ResponsiveNavCodes.NAV_LEVEL_1) {\n navHostClassList.add(ResponsiveNavCodes.NAV_CLASS_LEVEL_1);\n } else if (level === ResponsiveNavCodes.NAV_LEVEL_2) {\n navHostClassList.add(ResponsiveNavCodes.NAV_CLASS_LEVEL_2);\n }\n }\n\n open(): void {\n this._isOpen = true;\n this.showNavigation();\n this.cdkTrapFocus.enabled = true;\n this.showCloseButton();\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, this.level);\n }\n\n close(): void {\n this._isOpen = false;\n this.hideNavigation();\n this.cdkTrapFocus.enabled = false;\n this.hideCloseButton();\n this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, this.level);\n }\n\n protected hideNavigation() {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');\n this.renderer.setAttribute(this.elementRef.nativeElement, 'hidden', 'true');\n }\n\n protected showNavigation() {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'false');\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'hidden');\n }\n\n protected hideCloseButton() {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');\n this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden', 'true');\n }\n\n protected showCloseButton() {\n this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'aria-hidden', 'false');\n this.renderer.removeAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden');\n }\n\n private createCloseButton(): HTMLButtonElement {\n ClarityIcons.addIcons(timesIcon);\n\n const closeButton = this._document.createElement('button');\n closeButton.setAttribute('aria-label', this.closeButtonAriaLabel);\n closeButton.setAttribute('aria-hidden', 'true');\n closeButton.setAttribute('hidden', 'true');\n closeButton.className = 'clr-nav-close';\n\n const iconRef = createComponent(ClrIcon, {\n hostElement: this._document.createElement('cds-icon'),\n environmentInjector: this.environmentInjector,\n elementInjector: this.injector,\n });\n iconRef.instance.shape = 'times';\n iconRef.instance.size = '32';\n this.appRef.attachView(iconRef.hostView);\n closeButton.appendChild(iconRef.location.nativeElement);\n\n return closeButton;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, OnDestroy, OnInit } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[clrAriaCurrentLink]',\n host: { '[attr.aria-current]': 'ariaCurrent' },\n standalone: false,\n})\nexport class ClrAriaCurrentLink implements OnInit, OnDestroy {\n ariaCurrent: string | undefined;\n private subscription: Subscription;\n\n constructor(private rla: RouterLinkActive) {}\n\n ngOnInit() {\n this.subscription = this.rla.isActiveChange.subscribe(isActive => {\n this.ariaCurrent = isActive ? 'page' : undefined;\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClrIcon } from '@clr/angular/icon';\nimport { ClrDropdownModule } from '@clr/angular/popover/dropdown';\n\nimport { ClrAriaCurrentLink } from './aria-current-link';\nimport { MainContainerWillyWonka } from './chocolate/main-container-willy-wonka';\nimport { NavDetectionOompaLoompa } from './chocolate/nav-detection-oompa-loompa';\nimport { ClrHeader } from './header';\nimport { ClrNavLevel } from './nav-level';\n\nexport const CLR_NAVIGATION_DIRECTIVES: Type<any>[] = [\n ClrHeader,\n ClrNavLevel,\n ClrAriaCurrentLink,\n NavDetectionOompaLoompa,\n MainContainerWillyWonka,\n];\n\n@NgModule({\n imports: [CommonModule, ClrIcon, ClrDropdownModule],\n declarations: [CLR_NAVIGATION_DIRECTIVES],\n exports: [CLR_NAVIGATION_DIRECTIVES],\n})\nexport class ClrNavigationModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './chocolate/index';\nexport * from './header';\nexport * from './nav-level';\nexport * from './aria-current-link';\nexport * from './navigation.module';\nexport * from './providers/responsive-navigation.service';\nexport * from './responsive-nav-codes';\nexport * from './responsive-nav-control-message';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MainContainerWillyWonka","i2.ResponsiveNavigationService","i1.ResponsiveNavigationService","i2","i1"],"mappings":"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"}
@@ -134,7 +134,6 @@ class ClrModal {
134
134
  }
135
135
  backdropClick() {
136
136
  if (this.staticBackdrop) {
137
- this.title.nativeElement.focus();
138
137
  return;
139
138
  }
140
139
  this.close();
@@ -160,7 +159,7 @@ class ClrModal {
160
159
  this.bodyElementRef.nativeElement.scrollTo(0, 0);
161
160
  }
162
161
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrModal, deps: [{ token: i1.ScrollingService }, { token: i1.ClrCommonStringsService }, { token: ModalStackService }, { token: ClrModalConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
163
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ClrModal, isStandalone: false, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], closeButtonAriaLabel: ["clrModalCloseButtonAriaLabel", "closeButtonAriaLabel"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"], stopClose: ["clrModalPreventClose", "stopClose"], labelledBy: ["clrModalLabelledById", "labelledBy"], bypassScrollService: ["clrModalOverrideScrollService", "bypassScrollService"] }, outputs: { _openChanged: "clrModalOpenChange", altClose: "clrModalAlternateClose" }, host: { properties: { "class.open": "this._open" } }, queries: [{ propertyName: "modalContentTemplate", first: true, predicate: ["clrInternalModalContentTemplate"], descendants: true }], viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true }, { propertyName: "bodyElementRef", first: true, predicate: ["body"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@if (_open) {\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [@fadeMove]=\"fadeMove\"\n (@fadeMove.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy || modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\n <div class=\"modal-content-wrapper\">\n @if (!modalContentTemplate) {\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <ng-content select=\".leading-button\"></ng-content>\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n @if (closable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n <div #body class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\n }\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n @if (backdrop) {\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"backdropClick()\"></div>\n }\n</div>\n}\n", styles: [":host{display:none}:host.open{display:inline}\n"], dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "component", type: i5.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }], viewProviders: [ScrollingService], animations: [
162
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ClrModal, isStandalone: false, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], closeButtonAriaLabel: ["clrModalCloseButtonAriaLabel", "closeButtonAriaLabel"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"], stopClose: ["clrModalPreventClose", "stopClose"], labelledBy: ["clrModalLabelledById", "labelledBy"], bypassScrollService: ["clrModalOverrideScrollService", "bypassScrollService"] }, outputs: { _openChanged: "clrModalOpenChange", altClose: "clrModalAlternateClose" }, host: { properties: { "class.open": "this._open" } }, queries: [{ propertyName: "modalContentTemplate", first: true, predicate: ["clrInternalModalContentTemplate"], descendants: true }], viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true }, { propertyName: "bodyElementRef", first: true, predicate: ["body"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@if (_open) {\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [@fadeMove]=\"fadeMove\"\n (@fadeMove.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy || modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\n @if (!modalContentTemplate) {\n <div class=\"modal-content-wrapper\">\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <ng-content select=\".leading-button\"></ng-content>\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n @if (closable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n <div #body class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\n }\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n @if (backdrop) {\n <div\n [@fade]\n class=\"modal-backdrop\"\n [class.static]=\"staticBackdrop\"\n aria-hidden=\"true\"\n (click)=\"backdropClick()\"\n ></div>\n }\n</div>\n}\n", styles: [":host{display:none}:host.open{display:inline}\n"], dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "component", type: i5.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }], viewProviders: [ScrollingService], animations: [
164
163
  trigger('fadeMove', [
165
164
  transition('* => fadeDown', [
166
165
  style({ opacity: 0, transform: 'translate(0, -25%)' }),
@@ -200,7 +199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
200
199
  transition('void => *', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),
201
200
  transition('* => void', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),
202
201
  ]),
203
- ], standalone: false, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@if (_open) {\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [@fadeMove]=\"fadeMove\"\n (@fadeMove.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy || modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\n <div class=\"modal-content-wrapper\">\n @if (!modalContentTemplate) {\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <ng-content select=\".leading-button\"></ng-content>\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n @if (closable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n <div #body class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\n }\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n @if (backdrop) {\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"backdropClick()\"></div>\n }\n</div>\n}\n", styles: [":host{display:none}:host.open{display:inline}\n"] }]
202
+ ], standalone: false, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@if (_open) {\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [@fadeMove]=\"fadeMove\"\n (@fadeMove.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy || modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\n @if (!modalContentTemplate) {\n <div class=\"modal-content-wrapper\">\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <ng-content select=\".leading-button\"></ng-content>\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n @if (closable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n <div #body class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\n }\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n @if (backdrop) {\n <div\n [@fade]\n class=\"modal-backdrop\"\n [class.static]=\"staticBackdrop\"\n aria-hidden=\"true\"\n (click)=\"backdropClick()\"\n ></div>\n }\n</div>\n}\n", styles: [":host{display:none}:host.open{display:inline}\n"] }]
204
203
  }], ctorParameters: () => [{ type: i1.ScrollingService }, { type: i1.ClrCommonStringsService }, { type: ModalStackService }, { type: ClrModalConfigurationService }], propDecorators: { title: [{
205
204
  type: ViewChild,
206
205
  args: ['title']
@@ -1 +1 @@
1
- {"version":3,"file":"clr-angular-modal.mjs","sources":["../../../projects/angular/modal/modal-stack.service.ts","../../../projects/angular/modal/modal-configuration.service.ts","../../../projects/angular/modal/modal.ts","../../../projects/angular/modal/modal.html","../../../projects/angular/modal/modal-body.ts","../../../projects/angular/modal/modal-host.component.ts","../../../projects/angular/modal/modal.module.ts","../../../projects/angular/modal/side-panel.ts","../../../projects/angular/modal/side-panel.html","../../../projects/angular/modal/side-panel.module.ts","../../../projects/angular/modal/index.ts","../../../projects/angular/modal/clr-angular-modal.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { Keys } from '@clr/angular/utils';\n\nexport interface Closable {\n close(): void;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModalStackService {\n private readonly modalStack: Closable[] = [];\n private readonly keyUpEventListener = this.onKeyUp.bind(this);\n\n constructor(@Inject(PLATFORM_ID) private readonly platformId: unknown) {}\n\n trackModalOpen(openedModal: Closable) {\n if (this.modalStack.includes(openedModal) === false) {\n this.modalStack.unshift(openedModal);\n }\n\n if (isPlatformBrowser(this.platformId)) {\n document.body.addEventListener('keyup', this.keyUpEventListener);\n }\n }\n\n trackModalClose(closedModal: Closable) {\n const closedModalIndex = this.modalStack.indexOf(closedModal);\n\n if (closedModalIndex > -1) {\n this.modalStack.splice(closedModalIndex, 1);\n }\n\n if (this.modalStack.length === 0 && isPlatformBrowser(this.platformId)) {\n document.body.removeEventListener('keyup', this.keyUpEventListener);\n }\n }\n\n private onKeyUp(event: KeyboardEvent) {\n if (this.modalStack.length && event.key === Keys.Escape) {\n // We blur the active element because escaping with an input element in focus could cause\n // an ExpressionChangedAfterItHasBeenCheckedError for the touched state. (CDE-1662)\n (document.activeElement as HTMLElement).blur();\n\n this.modalStack[0].close();\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ClrModalConfigurationService {\n fadeMove = 'fadeDown';\n backdrop = true;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ClrCommonStringsService, ScrollingService, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ClrModalConfigurationService } from './modal-configuration.service';\nimport { ModalStackService } from './modal-stack.service';\n\n@Component({\n selector: 'clr-modal',\n viewProviders: [ScrollingService],\n templateUrl: './modal.html',\n styles: [\n `\n :host {\n display: none;\n }\n :host.open {\n display: inline;\n }\n `,\n ],\n animations: [\n trigger('fadeMove', [\n transition('* => fadeDown', [\n style({ opacity: 0, transform: 'translate(0, -25%)' }),\n animate('0.2s ease-in-out'),\n ]),\n transition('fadeDown => *', [\n animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' })),\n ]),\n transition('* => fadeLeft', [style({ opacity: 0, transform: 'translate(25%, 0)' }), animate('0.2s ease-in-out')]),\n transition('fadeLeft => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(25%, 0)' }))]),\n transition('* => fadeUp', [style({ opacity: 0, transform: 'translate(0, 50%)' }), animate('0.2s ease-in-out')]),\n transition('fadeUp => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, 50%)' }))]),\n ]),\n trigger('fade', [\n transition('void => *', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),\n transition('* => void', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),\n ]),\n ],\n standalone: false,\n})\nexport class ClrModal implements OnChanges, OnDestroy {\n modalId = uniqueIdFactory();\n @ViewChild('title') title: ElementRef<HTMLElement>;\n\n @Input('clrModalOpen') @HostBinding('class.open') _open = false;\n @Output('clrModalOpenChange') _openChanged = new EventEmitter<boolean>(false);\n\n @Input('clrModalClosable') closable = true;\n @Input('clrModalCloseButtonAriaLabel') closeButtonAriaLabel = this.commonStrings.keys.close;\n @Input('clrModalSize') size = 'md';\n @Input('clrModalStaticBackdrop') staticBackdrop = true;\n @Input('clrModalSkipAnimation') skipAnimation = false;\n\n @Input('clrModalPreventClose') stopClose = false;\n @Output('clrModalAlternateClose') altClose = new EventEmitter<boolean>(false);\n\n @Input('clrModalLabelledById') labelledBy: string;\n\n // presently this is only used by inline wizards\n @Input('clrModalOverrideScrollService') bypassScrollService = false;\n\n // Provide raw modal content. This is used by the wizard so that the same template can be rendered with and without a modal.\n @ContentChild('clrInternalModalContentTemplate') protected readonly modalContentTemplate: TemplateRef<any>;\n\n @ViewChild('body') private readonly bodyElementRef: ElementRef<HTMLElement>;\n\n constructor(\n private _scrollingService: ScrollingService,\n public commonStrings: ClrCommonStringsService,\n private modalStackService: ModalStackService,\n private configuration: ClrModalConfigurationService\n ) {}\n\n get fadeMove(): string {\n return this.skipAnimation ? '' : this.configuration.fadeMove;\n }\n set fadeMove(move: string) {\n this.configuration.fadeMove = move;\n }\n\n get backdrop(): boolean {\n return this.configuration.backdrop;\n }\n\n // Detect when _open is set to true and set no-scrolling to true\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n if (!this.bypassScrollService && changes && Object.prototype.hasOwnProperty.call(changes, '_open')) {\n if (changes._open.currentValue) {\n this._scrollingService.stopScrolling();\n this.modalStackService.trackModalOpen(this);\n } else {\n this._scrollingService.resumeScrolling();\n }\n }\n }\n\n ngOnDestroy(): void {\n this._scrollingService.resumeScrolling();\n }\n\n open(): void {\n if (this._open) {\n return;\n }\n this._open = true;\n this._openChanged.emit(true);\n this.modalStackService.trackModalOpen(this);\n }\n\n backdropClick(): void {\n if (this.staticBackdrop) {\n this.title.nativeElement.focus();\n return;\n }\n\n this.close();\n }\n\n close(): void {\n if (this.stopClose) {\n this.altClose.emit(false);\n return;\n }\n if (!this.closable || !this._open) {\n return;\n }\n this._open = false;\n }\n\n fadeDone(e: AnimationEvent) {\n if (e.toState === 'void') {\n // TODO: Investigate if we can decouple from animation events\n this._openChanged.emit(false);\n this.modalStackService.trackModalClose(this);\n }\n }\n\n scrollTop() {\n this.bodyElementRef.nativeElement.scrollTo(0, 0);\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@if (_open) {\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [@fadeMove]=\"fadeMove\"\n (@fadeMove.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy || modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\n <div class=\"modal-content-wrapper\">\n @if (!modalContentTemplate) {\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <ng-content select=\".leading-button\"></ng-content>\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n @if (closable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n <div #body class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\n }\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n @if (backdrop) {\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"backdropClick()\"></div>\n }\n</div>\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';\n\n/**\n * Allows modal overflow area to be scrollable via keyboard.\n * The modal body will focus with keyboard navigation only.\n * This allows inner focusable items to be focused without\n * the overflow scroll being focused.\n */\n@Directive({\n selector: '.modal-body',\n standalone: false,\n})\nexport class ClrModalBody implements OnDestroy {\n private tabindex = '0';\n private unlisteners: VoidFunction[] = [];\n private observer: ResizeObserver;\n\n constructor(\n private readonly renderer: Renderer2,\n private readonly host: ElementRef<HTMLElement>,\n ngZone: NgZone\n ) {\n ngZone.runOutsideAngular(() => {\n this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());\n this.observer.observe(host.nativeElement);\n\n this.unlisteners.push(\n renderer.listen(host.nativeElement, 'mouseup', () => {\n // set the tabindex binding back when click is completed with mouseup\n this.addOrRemoveTabIndex();\n }),\n renderer.listen(host.nativeElement, 'mousedown', () => {\n // tabindex = 0 binding should be removed\n // so it won't be focused when click starts with mousedown\n this.removeTabIndex();\n })\n );\n });\n }\n\n ngOnDestroy(): void {\n while (this.unlisteners.length) {\n this.unlisteners.pop()();\n }\n\n this.observer.disconnect();\n this.observer = null;\n }\n\n private addTabIndex() {\n this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);\n }\n\n private removeTabIndex() {\n this.renderer.removeAttribute(this.host.nativeElement, 'tabindex');\n }\n\n private addOrRemoveTabIndex() {\n const modalBody = this.host.nativeElement.parentElement;\n\n if (modalBody && modalBody.clientHeight < modalBody.scrollHeight) {\n this.addTabIndex();\n } else {\n this.removeTabIndex();\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n selector: '[clrModalHost]',\n host: { '[class.clr-modal-host]': 'true' },\n template: `\n <div class=\"clr-modal-host-scrollable\">\n <ng-content></ng-content>\n </div>\n `,\n standalone: false,\n})\nexport class ClrModalHostComponent {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClarityIcons, ClrIcon, windowCloseIcon } from '@clr/angular/icon';\nimport { CdkTrapFocusModule } from '@clr/angular/utils';\n\nimport { ClrModal } from './modal';\nimport { ClrModalBody } from './modal-body';\nimport { ClrModalHostComponent } from './modal-host.component';\n\nexport const CLR_MODAL_DIRECTIVES: Type<any>[] = [ClrModal, ClrModalBody, ClrModalHostComponent];\n\n@NgModule({\n imports: [CommonModule, CdkTrapFocusModule, ClrIcon],\n declarations: [CLR_MODAL_DIRECTIVES],\n exports: [CLR_MODAL_DIRECTIVES, ClrIcon],\n})\nexport class ClrModalModule {\n constructor() {\n ClarityIcons.addIcons(windowCloseIcon);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { ClrModal } from './modal';\nimport { ClrModalConfigurationService } from './modal-configuration.service';\n\n@Component({\n selector: 'clr-side-panel',\n templateUrl: 'side-panel.html',\n host: {\n '[class.side-panel]': 'true',\n },\n standalone: false,\n})\nexport class ClrSidePanel implements OnInit, OnDestroy {\n @Output('clrSidePanelOpenChange') openChange = new EventEmitter<boolean>(false);\n @Input('clrSidePanelCloseButtonAriaLabel') closeButtonAriaLabel: string | undefined;\n @Input('clrSidePanelSkipAnimation') skipAnimation = false;\n @Input('clrSidePanelLabelledById') labelledById: string;\n @Input('clrSidePanelStaticBackdrop') staticBackdrop = false;\n @Input('clrSidePanelClosable') closable = true;\n @Input('clrSidePanelPreventClose') preventClose = false;\n @Output('clrSidePanelAlternateClose') altClose = new EventEmitter<boolean>(false);\n\n private _pinnable = false;\n private _pinned = false;\n private originalStopClose: boolean;\n private _position = 'right';\n private _modal: ClrModal;\n private __open = false;\n\n private _size = 'md';\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private configuration: ClrModalConfigurationService,\n public commonStrings: ClrCommonStringsService\n ) {}\n\n @Input('clrSidePanelOpen')\n get _open(): boolean {\n return this.__open;\n }\n set _open(open: boolean) {\n if (open !== this.__open) {\n this.__open = open;\n if (this.pinned) {\n this.updateModalState();\n }\n }\n }\n\n @Input('clrSidePanelSize')\n get size(): string {\n return this._size;\n }\n\n set size(value: string) {\n if (!value) {\n value = 'md';\n }\n if (this._size !== value) {\n this._size = value;\n if (this.pinned) {\n this.updateModalState();\n }\n }\n }\n\n @Input('clrSidePanelPosition')\n get position(): string {\n return this._position;\n }\n\n set position(position: string) {\n if (position && position !== this._position) {\n this._position = position;\n if (this._position === 'right') {\n this.configuration.fadeMove = 'fadeLeft';\n } else if (this._position === 'bottom') {\n this.configuration.fadeMove = 'fadeUp';\n }\n }\n }\n\n @Input('clrSidePanelPinned')\n get pinned(): boolean {\n return this._pinned;\n }\n\n set pinned(pinned: boolean) {\n this._pinned = pinned;\n if (this.modal) {\n this.updateModalState();\n }\n }\n\n @Input()\n get clrSidePanelBackdrop(): boolean {\n return this.configuration.backdrop;\n }\n\n set clrSidePanelBackdrop(backdrop: boolean) {\n if (backdrop !== undefined) {\n this.configuration.backdrop = backdrop;\n }\n }\n\n @Input()\n get clrSidePanelPinnable(): boolean {\n return this._pinnable;\n }\n\n set clrSidePanelPinnable(pinnable: boolean) {\n this._pinnable = pinnable;\n }\n\n @ViewChild(ClrModal)\n private get modal(): ClrModal {\n return this._modal;\n }\n\n private set modal(modal: ClrModal) {\n this._modal = modal;\n this.originalStopClose = this.modal.stopClose;\n this.updateModalState();\n }\n\n private get hostElement(): HTMLElement {\n return (this.element.nativeElement as HTMLElement).closest('.clr-modal-host') || document.body;\n }\n\n @HostBinding('class.side-panel-bottom')\n private get bottomPositionCssClass() {\n return this.position === 'bottom';\n }\n\n ngOnInit(): void {\n this.configuration.fadeMove = 'fadeLeft';\n if (this.position === 'bottom') {\n this.configuration.fadeMove = 'fadeUp';\n }\n }\n\n ngOnDestroy(): void {\n this.cleanupPinnedClasses();\n }\n\n handleModalOpen(open: boolean) {\n if (open) {\n this.updateModalState();\n } else {\n this.cleanupPinnedClasses();\n }\n this.openChange.emit(open);\n }\n\n open() {\n this.modal.open();\n }\n\n close() {\n this.modal.close();\n }\n\n togglePinned() {\n this.pinned = !this.pinned;\n }\n\n @HostListener('document:pointerup', ['$event'])\n private documentClick(event: Event) {\n if (\n !this.element.nativeElement.contains(event.target as Node) &&\n this.modal._open &&\n !this.configuration.backdrop\n ) {\n this.modal.close();\n }\n }\n\n private updateModalState() {\n if (!this.modal) {\n return;\n }\n if (this.pinned) {\n this.modal.stopClose = true;\n this.updatePinnedClasses();\n } else {\n this.modal.stopClose = this.originalStopClose;\n this.cleanupPinnedClasses();\n }\n }\n\n private cleanupPinnedClasses() {\n [this.hostElement, document.body].forEach(host => {\n host.classList.forEach(className => {\n if (className.startsWith('clr-side-panel-pinned-')) {\n host.classList.remove(className);\n }\n });\n });\n }\n\n private updatePinnedClasses() {\n this.cleanupPinnedClasses();\n this.hostElement.classList.add(`clr-side-panel-pinned-${this.position}-${this.size}`);\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n<clr-modal\n [clrModalOpen]=\"_open\"\n (clrModalOpenChange)=\"handleModalOpen($event)\"\n [clrModalCloseButtonAriaLabel]=\"closeButtonAriaLabel\"\n [clrModalSize]=\"size\"\n [clrModalSkipAnimation]=\"skipAnimation\"\n [clrModalStaticBackdrop]=\"staticBackdrop\"\n [clrModalLabelledById]=\"labelledById\"\n [clrModalPreventClose]=\"preventClose\"\n [clrModalClosable]=\"closable\"\n (clrModalAlternateClose)=\"altClose.emit($event)\"\n [clrModalOverrideScrollService]=\"true\"\n>\n @if (clrSidePanelPinnable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"commonStrings.keys.sidePanelPin\"\n class=\"leading-button pinnable\"\n (click)=\"togglePinned()\"\n >\n <cds-icon [shape]=\"pinned ? 'unpin' : 'pin'\"></cds-icon>\n </button>\n }\n <div class=\"modal-title\"><ng-content select=\".side-panel-title\"></ng-content></div>\n <div class=\"modal-body\"><ng-content select=\".side-panel-body\"></ng-content></div>\n <div class=\"modal-footer\"><ng-content select=\".side-panel-footer\"></ng-content></div>\n</clr-modal>\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClrIcon } from '@clr/angular/icon';\nimport { CdkTrapFocusModule } from '@clr/angular/utils';\n\nimport { ClrModalModule } from './modal.module';\nimport { ClrSidePanel } from './side-panel';\n\nexport const CLR_SIDEPANEL_DIRECTIVES: Type<any>[] = [ClrSidePanel];\n\n@NgModule({\n imports: [CommonModule, CdkTrapFocusModule, ClrIcon, ClrModalModule],\n declarations: [CLR_SIDEPANEL_DIRECTIVES],\n exports: [CLR_SIDEPANEL_DIRECTIVES, ClrModalModule, ClrIcon],\n})\nexport class ClrSidePanelModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './modal';\nexport * from './modal.module';\nexport * from './modal-configuration.service';\nexport * from './modal-host.component';\nexport * from './side-panel.module';\nexport * from './modal-body';\nexport * from './side-panel';\nexport * from './modal-stack.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ModalStackService","i3.ClrModalConfigurationService","i1.ClrModalConfigurationService","i2","i3","i4.ClrModal","i5.ClrModalBody"],"mappings":"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"}
1
+ {"version":3,"file":"clr-angular-modal.mjs","sources":["../../../projects/angular/modal/modal-stack.service.ts","../../../projects/angular/modal/modal-configuration.service.ts","../../../projects/angular/modal/modal.ts","../../../projects/angular/modal/modal.html","../../../projects/angular/modal/modal-body.ts","../../../projects/angular/modal/modal-host.component.ts","../../../projects/angular/modal/modal.module.ts","../../../projects/angular/modal/side-panel.ts","../../../projects/angular/modal/side-panel.html","../../../projects/angular/modal/side-panel.module.ts","../../../projects/angular/modal/index.ts","../../../projects/angular/modal/clr-angular-modal.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { Keys } from '@clr/angular/utils';\n\nexport interface Closable {\n close(): void;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModalStackService {\n private readonly modalStack: Closable[] = [];\n private readonly keyUpEventListener = this.onKeyUp.bind(this);\n\n constructor(@Inject(PLATFORM_ID) private readonly platformId: unknown) {}\n\n trackModalOpen(openedModal: Closable) {\n if (this.modalStack.includes(openedModal) === false) {\n this.modalStack.unshift(openedModal);\n }\n\n if (isPlatformBrowser(this.platformId)) {\n document.body.addEventListener('keyup', this.keyUpEventListener);\n }\n }\n\n trackModalClose(closedModal: Closable) {\n const closedModalIndex = this.modalStack.indexOf(closedModal);\n\n if (closedModalIndex > -1) {\n this.modalStack.splice(closedModalIndex, 1);\n }\n\n if (this.modalStack.length === 0 && isPlatformBrowser(this.platformId)) {\n document.body.removeEventListener('keyup', this.keyUpEventListener);\n }\n }\n\n private onKeyUp(event: KeyboardEvent) {\n if (this.modalStack.length && event.key === Keys.Escape) {\n // We blur the active element because escaping with an input element in focus could cause\n // an ExpressionChangedAfterItHasBeenCheckedError for the touched state. (CDE-1662)\n (document.activeElement as HTMLElement).blur();\n\n this.modalStack[0].close();\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ClrModalConfigurationService {\n fadeMove = 'fadeDown';\n backdrop = true;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ClrCommonStringsService, ScrollingService, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ClrModalConfigurationService } from './modal-configuration.service';\nimport { ModalStackService } from './modal-stack.service';\n\n@Component({\n selector: 'clr-modal',\n viewProviders: [ScrollingService],\n templateUrl: './modal.html',\n styles: [\n `\n :host {\n display: none;\n }\n :host.open {\n display: inline;\n }\n `,\n ],\n animations: [\n trigger('fadeMove', [\n transition('* => fadeDown', [\n style({ opacity: 0, transform: 'translate(0, -25%)' }),\n animate('0.2s ease-in-out'),\n ]),\n transition('fadeDown => *', [\n animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' })),\n ]),\n transition('* => fadeLeft', [style({ opacity: 0, transform: 'translate(25%, 0)' }), animate('0.2s ease-in-out')]),\n transition('fadeLeft => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(25%, 0)' }))]),\n transition('* => fadeUp', [style({ opacity: 0, transform: 'translate(0, 50%)' }), animate('0.2s ease-in-out')]),\n transition('fadeUp => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, 50%)' }))]),\n ]),\n trigger('fade', [\n transition('void => *', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),\n transition('* => void', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),\n ]),\n ],\n standalone: false,\n})\nexport class ClrModal implements OnChanges, OnDestroy {\n modalId = uniqueIdFactory();\n @ViewChild('title') title: ElementRef<HTMLElement>;\n\n @Input('clrModalOpen') @HostBinding('class.open') _open = false;\n @Output('clrModalOpenChange') _openChanged = new EventEmitter<boolean>(false);\n\n @Input('clrModalClosable') closable = true;\n @Input('clrModalCloseButtonAriaLabel') closeButtonAriaLabel = this.commonStrings.keys.close;\n @Input('clrModalSize') size = 'md';\n @Input('clrModalStaticBackdrop') staticBackdrop = true;\n @Input('clrModalSkipAnimation') skipAnimation = false;\n\n @Input('clrModalPreventClose') stopClose = false;\n @Output('clrModalAlternateClose') altClose = new EventEmitter<boolean>(false);\n\n @Input('clrModalLabelledById') labelledBy: string;\n\n // presently this is only used by inline wizards\n @Input('clrModalOverrideScrollService') bypassScrollService = false;\n\n // Provide raw modal content. This is used by the wizard so that the same template can be rendered with and without a modal.\n @ContentChild('clrInternalModalContentTemplate') protected readonly modalContentTemplate: TemplateRef<any>;\n\n @ViewChild('body') private readonly bodyElementRef: ElementRef<HTMLElement>;\n\n constructor(\n private _scrollingService: ScrollingService,\n public commonStrings: ClrCommonStringsService,\n private modalStackService: ModalStackService,\n private configuration: ClrModalConfigurationService\n ) {}\n\n get fadeMove(): string {\n return this.skipAnimation ? '' : this.configuration.fadeMove;\n }\n set fadeMove(move: string) {\n this.configuration.fadeMove = move;\n }\n\n get backdrop(): boolean {\n return this.configuration.backdrop;\n }\n\n // Detect when _open is set to true and set no-scrolling to true\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n if (!this.bypassScrollService && changes && Object.prototype.hasOwnProperty.call(changes, '_open')) {\n if (changes._open.currentValue) {\n this._scrollingService.stopScrolling();\n this.modalStackService.trackModalOpen(this);\n } else {\n this._scrollingService.resumeScrolling();\n }\n }\n }\n\n ngOnDestroy(): void {\n this._scrollingService.resumeScrolling();\n }\n\n open(): void {\n if (this._open) {\n return;\n }\n this._open = true;\n this._openChanged.emit(true);\n this.modalStackService.trackModalOpen(this);\n }\n\n backdropClick(): void {\n if (this.staticBackdrop) {\n return;\n }\n\n this.close();\n }\n\n close(): void {\n if (this.stopClose) {\n this.altClose.emit(false);\n return;\n }\n if (!this.closable || !this._open) {\n return;\n }\n this._open = false;\n }\n\n fadeDone(e: AnimationEvent) {\n if (e.toState === 'void') {\n // TODO: Investigate if we can decouple from animation events\n this._openChanged.emit(false);\n this.modalStackService.trackModalClose(this);\n }\n }\n\n scrollTop() {\n this.bodyElementRef.nativeElement.scrollTo(0, 0);\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@if (_open) {\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [@fadeMove]=\"fadeMove\"\n (@fadeMove.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy || modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\n @if (!modalContentTemplate) {\n <div class=\"modal-content-wrapper\">\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <ng-content select=\".leading-button\"></ng-content>\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n @if (closable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n <div #body class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\n }\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n @if (backdrop) {\n <div\n [@fade]\n class=\"modal-backdrop\"\n [class.static]=\"staticBackdrop\"\n aria-hidden=\"true\"\n (click)=\"backdropClick()\"\n ></div>\n }\n</div>\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';\n\n/**\n * Allows modal overflow area to be scrollable via keyboard.\n * The modal body will focus with keyboard navigation only.\n * This allows inner focusable items to be focused without\n * the overflow scroll being focused.\n */\n@Directive({\n selector: '.modal-body',\n standalone: false,\n})\nexport class ClrModalBody implements OnDestroy {\n private tabindex = '0';\n private unlisteners: VoidFunction[] = [];\n private observer: ResizeObserver;\n\n constructor(\n private readonly renderer: Renderer2,\n private readonly host: ElementRef<HTMLElement>,\n ngZone: NgZone\n ) {\n ngZone.runOutsideAngular(() => {\n this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());\n this.observer.observe(host.nativeElement);\n\n this.unlisteners.push(\n renderer.listen(host.nativeElement, 'mouseup', () => {\n // set the tabindex binding back when click is completed with mouseup\n this.addOrRemoveTabIndex();\n }),\n renderer.listen(host.nativeElement, 'mousedown', () => {\n // tabindex = 0 binding should be removed\n // so it won't be focused when click starts with mousedown\n this.removeTabIndex();\n })\n );\n });\n }\n\n ngOnDestroy(): void {\n while (this.unlisteners.length) {\n this.unlisteners.pop()();\n }\n\n this.observer.disconnect();\n this.observer = null;\n }\n\n private addTabIndex() {\n this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);\n }\n\n private removeTabIndex() {\n this.renderer.removeAttribute(this.host.nativeElement, 'tabindex');\n }\n\n private addOrRemoveTabIndex() {\n const modalBody = this.host.nativeElement.parentElement;\n\n if (modalBody && modalBody.clientHeight < modalBody.scrollHeight) {\n this.addTabIndex();\n } else {\n this.removeTabIndex();\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n selector: '[clrModalHost]',\n host: { '[class.clr-modal-host]': 'true' },\n template: `\n <div class=\"clr-modal-host-scrollable\">\n <ng-content></ng-content>\n </div>\n `,\n standalone: false,\n})\nexport class ClrModalHostComponent {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClarityIcons, ClrIcon, windowCloseIcon } from '@clr/angular/icon';\nimport { CdkTrapFocusModule } from '@clr/angular/utils';\n\nimport { ClrModal } from './modal';\nimport { ClrModalBody } from './modal-body';\nimport { ClrModalHostComponent } from './modal-host.component';\n\nexport const CLR_MODAL_DIRECTIVES: Type<any>[] = [ClrModal, ClrModalBody, ClrModalHostComponent];\n\n@NgModule({\n imports: [CommonModule, CdkTrapFocusModule, ClrIcon],\n declarations: [CLR_MODAL_DIRECTIVES],\n exports: [CLR_MODAL_DIRECTIVES, ClrIcon],\n})\nexport class ClrModalModule {\n constructor() {\n ClarityIcons.addIcons(windowCloseIcon);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { ClrModal } from './modal';\nimport { ClrModalConfigurationService } from './modal-configuration.service';\n\n@Component({\n selector: 'clr-side-panel',\n templateUrl: 'side-panel.html',\n host: {\n '[class.side-panel]': 'true',\n },\n standalone: false,\n})\nexport class ClrSidePanel implements OnInit, OnDestroy {\n @Output('clrSidePanelOpenChange') openChange = new EventEmitter<boolean>(false);\n @Input('clrSidePanelCloseButtonAriaLabel') closeButtonAriaLabel: string | undefined;\n @Input('clrSidePanelSkipAnimation') skipAnimation = false;\n @Input('clrSidePanelLabelledById') labelledById: string;\n @Input('clrSidePanelStaticBackdrop') staticBackdrop = false;\n @Input('clrSidePanelClosable') closable = true;\n @Input('clrSidePanelPreventClose') preventClose = false;\n @Output('clrSidePanelAlternateClose') altClose = new EventEmitter<boolean>(false);\n\n private _pinnable = false;\n private _pinned = false;\n private originalStopClose: boolean;\n private _position = 'right';\n private _modal: ClrModal;\n private __open = false;\n\n private _size = 'md';\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private configuration: ClrModalConfigurationService,\n public commonStrings: ClrCommonStringsService\n ) {}\n\n @Input('clrSidePanelOpen')\n get _open(): boolean {\n return this.__open;\n }\n set _open(open: boolean) {\n if (open !== this.__open) {\n this.__open = open;\n if (this.pinned) {\n this.updateModalState();\n }\n }\n }\n\n @Input('clrSidePanelSize')\n get size(): string {\n return this._size;\n }\n\n set size(value: string) {\n if (!value) {\n value = 'md';\n }\n if (this._size !== value) {\n this._size = value;\n if (this.pinned) {\n this.updateModalState();\n }\n }\n }\n\n @Input('clrSidePanelPosition')\n get position(): string {\n return this._position;\n }\n\n set position(position: string) {\n if (position && position !== this._position) {\n this._position = position;\n if (this._position === 'right') {\n this.configuration.fadeMove = 'fadeLeft';\n } else if (this._position === 'bottom') {\n this.configuration.fadeMove = 'fadeUp';\n }\n }\n }\n\n @Input('clrSidePanelPinned')\n get pinned(): boolean {\n return this._pinned;\n }\n\n set pinned(pinned: boolean) {\n this._pinned = pinned;\n if (this.modal) {\n this.updateModalState();\n }\n }\n\n @Input()\n get clrSidePanelBackdrop(): boolean {\n return this.configuration.backdrop;\n }\n\n set clrSidePanelBackdrop(backdrop: boolean) {\n if (backdrop !== undefined) {\n this.configuration.backdrop = backdrop;\n }\n }\n\n @Input()\n get clrSidePanelPinnable(): boolean {\n return this._pinnable;\n }\n\n set clrSidePanelPinnable(pinnable: boolean) {\n this._pinnable = pinnable;\n }\n\n @ViewChild(ClrModal)\n private get modal(): ClrModal {\n return this._modal;\n }\n\n private set modal(modal: ClrModal) {\n this._modal = modal;\n this.originalStopClose = this.modal.stopClose;\n this.updateModalState();\n }\n\n private get hostElement(): HTMLElement {\n return (this.element.nativeElement as HTMLElement).closest('.clr-modal-host') || document.body;\n }\n\n @HostBinding('class.side-panel-bottom')\n private get bottomPositionCssClass() {\n return this.position === 'bottom';\n }\n\n ngOnInit(): void {\n this.configuration.fadeMove = 'fadeLeft';\n if (this.position === 'bottom') {\n this.configuration.fadeMove = 'fadeUp';\n }\n }\n\n ngOnDestroy(): void {\n this.cleanupPinnedClasses();\n }\n\n handleModalOpen(open: boolean) {\n if (open) {\n this.updateModalState();\n } else {\n this.cleanupPinnedClasses();\n }\n this.openChange.emit(open);\n }\n\n open() {\n this.modal.open();\n }\n\n close() {\n this.modal.close();\n }\n\n togglePinned() {\n this.pinned = !this.pinned;\n }\n\n @HostListener('document:pointerup', ['$event'])\n private documentClick(event: Event) {\n if (\n !this.element.nativeElement.contains(event.target as Node) &&\n this.modal._open &&\n !this.configuration.backdrop\n ) {\n this.modal.close();\n }\n }\n\n private updateModalState() {\n if (!this.modal) {\n return;\n }\n if (this.pinned) {\n this.modal.stopClose = true;\n this.updatePinnedClasses();\n } else {\n this.modal.stopClose = this.originalStopClose;\n this.cleanupPinnedClasses();\n }\n }\n\n private cleanupPinnedClasses() {\n [this.hostElement, document.body].forEach(host => {\n host.classList.forEach(className => {\n if (className.startsWith('clr-side-panel-pinned-')) {\n host.classList.remove(className);\n }\n });\n });\n }\n\n private updatePinnedClasses() {\n this.cleanupPinnedClasses();\n this.hostElement.classList.add(`clr-side-panel-pinned-${this.position}-${this.size}`);\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n<clr-modal\n [clrModalOpen]=\"_open\"\n (clrModalOpenChange)=\"handleModalOpen($event)\"\n [clrModalCloseButtonAriaLabel]=\"closeButtonAriaLabel\"\n [clrModalSize]=\"size\"\n [clrModalSkipAnimation]=\"skipAnimation\"\n [clrModalStaticBackdrop]=\"staticBackdrop\"\n [clrModalLabelledById]=\"labelledById\"\n [clrModalPreventClose]=\"preventClose\"\n [clrModalClosable]=\"closable\"\n (clrModalAlternateClose)=\"altClose.emit($event)\"\n [clrModalOverrideScrollService]=\"true\"\n>\n @if (clrSidePanelPinnable) {\n <button\n type=\"button\"\n [attr.aria-label]=\"commonStrings.keys.sidePanelPin\"\n class=\"leading-button pinnable\"\n (click)=\"togglePinned()\"\n >\n <cds-icon [shape]=\"pinned ? 'unpin' : 'pin'\"></cds-icon>\n </button>\n }\n <div class=\"modal-title\"><ng-content select=\".side-panel-title\"></ng-content></div>\n <div class=\"modal-body\"><ng-content select=\".side-panel-body\"></ng-content></div>\n <div class=\"modal-footer\"><ng-content select=\".side-panel-footer\"></ng-content></div>\n</clr-modal>\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClrIcon } from '@clr/angular/icon';\nimport { CdkTrapFocusModule } from '@clr/angular/utils';\n\nimport { ClrModalModule } from './modal.module';\nimport { ClrSidePanel } from './side-panel';\n\nexport const CLR_SIDEPANEL_DIRECTIVES: Type<any>[] = [ClrSidePanel];\n\n@NgModule({\n imports: [CommonModule, CdkTrapFocusModule, ClrIcon, ClrModalModule],\n declarations: [CLR_SIDEPANEL_DIRECTIVES],\n exports: [CLR_SIDEPANEL_DIRECTIVES, ClrModalModule, ClrIcon],\n})\nexport class ClrSidePanelModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './modal';\nexport * from './modal.module';\nexport * from './modal-configuration.service';\nexport * from './modal-host.component';\nexport * from './side-panel.module';\nexport * from './modal-body';\nexport * from './side-panel';\nexport * from './modal-stack.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ModalStackService","i3.ClrModalConfigurationService","i1.ClrModalConfigurationService","i2","i3","i4.ClrModal","i5.ClrModalBody"],"mappings":"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"}
@@ -799,6 +799,11 @@ const commonStringsDefault = {
799
799
  comboboxSelected: 'Selected',
800
800
  comboboxNoResults: 'No results',
801
801
  comboboxOpen: 'Show options',
802
+ comboboxSelectAll: 'Select All',
803
+ comboboxUnselectAll: 'Unselect All',
804
+ comboboxShowAll: 'Show all {ITEMS} selected',
805
+ comboboxAllSelected: 'All {ITEMS} selected',
806
+ comboboxShowLess: 'Show less',
802
807
  // Datagrid expandable rows
803
808
  datagridExpandableBeginningOf: 'Beginning of',
804
809
  datagridExpandableEndOf: 'End of',