@clr/angular 18.1.0 → 18.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/clr-angular-data-datagrid.mjs +17 -6
- package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-common.mjs +14 -3
- package/fesm2022/clr-angular-forms-common.mjs.map +1 -1
- package/fesm2022/clr-angular-icon.mjs +3 -3
- package/fesm2022/clr-angular-icon.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-signpost.mjs +1 -0
- package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -1
- package/package.json +2 -2
- package/types/clr-angular-data-datagrid.d.ts +4 -2
- package/types/clr-angular-forms-common.d.ts +9 -6
|
@@ -263,6 +263,7 @@ class ClrSignpostContent {
|
|
|
263
263
|
signpostIdService.setId(this.signpostContentId);
|
|
264
264
|
popoverService.panelClass.push('clr-signpost-container');
|
|
265
265
|
popoverContent.contentType = ClrPopoverType.SIGNPOST;
|
|
266
|
+
popoverContent.contentAt = this._position;
|
|
266
267
|
}
|
|
267
268
|
/*********
|
|
268
269
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clr-angular-popover-signpost.mjs","sources":["../../../projects/angular/popover/signpost/providers/signpost-focus-manager.service.ts","../../../projects/angular/popover/signpost/providers/signpost-id.service.ts","../../../projects/angular/popover/signpost/signpost-trigger.ts","../../../projects/angular/popover/signpost/signpost.ts","../../../projects/angular/popover/signpost/signpost-content.ts","../../../projects/angular/popover/signpost/signpost-title.ts","../../../projects/angular/popover/signpost/signpost.module.ts","../../../projects/angular/popover/signpost/index.ts","../../../projects/angular/popover/signpost/clr-angular-popover-signpost.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 { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SignpostFocusManager {\n private _triggerEl: HTMLElement;\n\n set triggerEl(value: HTMLElement) {\n this._triggerEl = value;\n }\n\n focusTrigger() {\n if (this._triggerEl) {\n this._triggerEl.focus();\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';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class SignpostIdService {\n private _id = new Subject<string>();\n\n get id(): Observable<string> {\n return this._id.asObservable();\n }\n\n setId(id: string) {\n this._id.next(id);\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 { Directive, DOCUMENT, ElementRef, HostListener, Inject, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { Subscription } from 'rxjs';\n\nimport { SignpostFocusManager } from './providers/signpost-focus-manager.service';\nimport { SignpostIdService } from './providers/signpost-id.service';\n\n@Directive({\n selector: '[clrSignpostTrigger]',\n host: {\n class: 'signpost-trigger',\n '[attr.aria-expanded]': 'ariaExpanded',\n '[attr.aria-controls]': 'ariaControl',\n '[class.active]': 'isOpen',\n },\n standalone: false,\n})\n\n/*********\n *\n * @description\n * A Directive added to the ClrSignpost Trigger button that will call the ClrSignpost.toggle() function to hide/show the\n * ClrSignpostContent.\n *\n */\nexport class ClrSignpostTrigger implements OnDestroy {\n ariaExpanded = false;\n ariaControl: string;\n isOpen: boolean;\n\n private document: Document;\n private subscriptions: Subscription[] = [];\n\n constructor(\n private popoverService: ClrPopoverService,\n private el: ElementRef<HTMLElement>,\n private signpostIdService: SignpostIdService,\n private signpostFocusManager: SignpostFocusManager,\n @Inject(DOCUMENT) document: any,\n @Inject(PLATFORM_ID) private platformId: any\n ) {\n this.document = document;\n }\n\n ngOnInit() {\n this.popoverService.origin = this.el;\n this.signpostFocusManager.triggerEl = this.el.nativeElement;\n this.subscriptions.push(\n this.popoverService.openChange.subscribe((isOpen: boolean) => {\n this.ariaExpanded = isOpen;\n\n const prevIsOpen = this.isOpen;\n this.isOpen = isOpen;\n\n // openChange fires false on initialization because signpost starts as closed by default\n // but we shouldn't focus on that initial false value\n // we should focus back only if it's closed after being opened\n if (!this.isOpen && prevIsOpen) {\n this.focusOnClose();\n }\n }),\n this.signpostIdService.id.subscribe(idChange => (this.ariaControl = idChange))\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((sub: Subscription) => sub.unsubscribe());\n }\n\n /**********\n *\n * @description\n * click handler for the ClrSignpost trigger button used to hide/show ClrSignpostContent.\n */\n @HostListener('click', ['$event'])\n onSignpostTriggerClick(event: Event): void {\n this.popoverService.toggleWithEvent(event);\n }\n\n private focusOnClose() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n // we have to set the focus back on the trigger only if the focus is reset back to the body element\n // if the focus is on another element, we are not allowed to move that focus back to this trigger again.\n if (!this.isOpen && this.document.activeElement === this.document.body) {\n this.signpostFocusManager.focusTrigger();\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, ContentChild, Input } from '@angular/core';\nimport { ClrPopoverHostDirective, ClrPopoverPoint, ClrPopoverService } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { SignpostFocusManager } from './providers/signpost-focus-manager.service';\nimport { SignpostIdService } from './providers/signpost-id.service';\nimport { ClrSignpostTrigger } from './signpost-trigger';\n\n@Component({\n selector: 'clr-signpost',\n template: `\n @if (showDefaultTrigger) {\n <button\n type=\"button\"\n class=\"signpost-action btn btn-sm btn-icon btn-link\"\n clrSignpostTrigger\n [attr.aria-label]=\"signpostTriggerAriaLabel || commonStrings.keys.signpostToggle\"\n >\n <cds-icon shape=\"info-circle\" [attr.title]=\"commonStrings.keys.info\"></cds-icon>\n </button>\n }\n\n <ng-content></ng-content>\n `,\n host: { '[class.signpost]': 'true' },\n providers: [SignpostFocusManager, SignpostIdService],\n hostDirectives: [ClrPopoverHostDirective],\n standalone: false,\n})\n\n/*********\n *\n * @class ClrSignpost\n *\n * @description\n * Class used to configure and control the state of a ClrSignpost and its associated ClrSignpostContent.\n * It supports the clrPosition with a 'right-middle' default.\n *\n */\nexport class ClrSignpost {\n /**********\n * @property useCustomTrigger\n *\n * @description\n * Flag used to determine if we need to use the default trigger or a user supplied trigger element.\n *\n */\n useCustomTrigger = false;\n\n @Input('clrSignpostTriggerAriaLabel') signpostTriggerAriaLabel: string;\n /**\n * Hides the default trigger button. Use when the signpost is opened\n * programmatically via `openAtPoint()` and no trigger icon is needed.\n */\n @Input('clrSignpostHideTrigger') hideTrigger = false;\n\n constructor(\n public commonStrings: ClrCommonStringsService,\n private popoverService: ClrPopoverService\n ) {}\n /**********\n * @property signPostTrigger\n *\n * @description\n * Uses ContentChild to check for a user supplied element with the ClrSignpostTrigger on it.\n *\n */\n @ContentChild(ClrSignpostTrigger)\n set customTrigger(trigger: ClrSignpostTrigger) {\n this.useCustomTrigger = !!trigger;\n }\n\n get showDefaultTrigger(): boolean {\n return !this.useCustomTrigger && !this.hideTrigger;\n }\n\n openAtPoint(point: ClrPopoverPoint, targetElement?: HTMLElement) {\n this.popoverService.openAtPoint(point, targetElement);\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 AfterViewInit,\n Component,\n DOCUMENT,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Optional,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport {\n ClrPopoverContent,\n ClrPopoverPosition,\n ClrPopoverService,\n ClrPopoverType,\n POPOVER_HOST_ORIGIN,\n SIGNPOST_POSITIONS,\n} from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { SignpostFocusManager } from './providers/signpost-focus-manager.service';\nimport { SignpostIdService } from './providers/signpost-id.service';\n\n@Component({\n selector: 'clr-signpost-content',\n template: `\n <div class=\"signpost-wrap\">\n <div class=\"popover-pointer\"></div>\n <div class=\"signpost-content-header\">\n <ng-content select=\"clr-signpost-title\"></ng-content>\n <button\n #closeButton\n type=\"button\"\n [attr.aria-label]=\"signpostCloseAriaLabel || commonStrings.keys.signpostClose\"\n class=\"signpost-action close\"\n (click)=\"close()\"\n [attr.aria-controls]=\"signpostContentId\"\n >\n <cds-icon shape=\"window-close\" [attr.title]=\"commonStrings.keys.close\"></cds-icon>\n </button>\n </div>\n <div class=\"signpost-content-body\" tabindex=\"0\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n '[class.signpost-content]': 'true',\n '[id]': 'signpostContentId',\n role: 'dialog',\n },\n standalone: false,\n hostDirectives: [ClrPopoverContent],\n})\nexport class ClrSignpostContent implements OnDestroy, AfterViewInit {\n @Input('clrSignpostCloseAriaLabel') signpostCloseAriaLabel: string;\n @ViewChild('closeButton', { read: ElementRef }) closeButton: ElementRef<HTMLButtonElement>;\n\n signpostContentId = uniqueIdFactory();\n\n private _position = ClrPopoverPosition.RIGHT_MIDDLE;\n\n constructor(\n @Optional()\n @Inject(POPOVER_HOST_ORIGIN)\n parentHost: ElementRef<HTMLElement>,\n private element: ElementRef,\n public commonStrings: ClrCommonStringsService,\n signpostIdService: SignpostIdService,\n private signpostFocusManager: SignpostFocusManager,\n @Inject(PLATFORM_ID) private platformId: any,\n @Inject(DOCUMENT) private document: Document,\n private popoverService: ClrPopoverService,\n private popoverContent: ClrPopoverContent\n ) {\n if (!parentHost) {\n throw new Error('clr-signpost-content should only be used inside of a clr-signpost');\n }\n // Defaults\n signpostIdService.setId(this.signpostContentId);\n\n popoverService.panelClass.push('clr-signpost-container');\n popoverContent.contentType = ClrPopoverType.SIGNPOST;\n }\n\n /*********\n *\n * @description\n * A setter for the position of the ClrSignpostContent popover. This is a combination of the following:\n * - originPoint - where on the trigger to position the content\n * - popoverPoint - where on the content container to align with the origin\n * - offsetY - where on the Y axis to align the ClrSignpostContent so it meets specs\n * - offsetX - where on the X axis to align the ClrSignpostContent so it meets specs\n * There are 12 possible positions to place a ClrSignpostContent container:\n * - top-left\n * - top-middle\n * - top-right\n * - right-top\n * - right-middle\n * - right-bottom\n * - bottom-right\n * - bottom-middle\n * - bottom-left\n * - left-bottom\n * - left-middle\n * - left-top\n *\n * I think of it as follows for 'top-left' -> CONTAINER_SIDE-SIDE_POSITION. In this case CONTAINER_SIDE is 'top'\n * meaning the top of the trigger icon (above the icon that hides/shows) the ClrSignpostContent. And, SIDE_POSITION\n * is 'left' meaning two things: 1) the ClrSignpostContent container extends to the left and 2) the 'arrow/pointer'\n * linking the SignpostContent to the trigger points down at the horizontal center of the trigger icon.\n *\n * @param newPosition\n */\n @Input('clrPosition')\n get position() {\n return this._position;\n }\n set position(position: string | ClrPopoverPosition) {\n const posIndex = SIGNPOST_POSITIONS.indexOf(position as ClrPopoverPosition);\n this._position = position && posIndex > -1 ? SIGNPOST_POSITIONS[posIndex] : ClrPopoverPosition.RIGHT_MIDDLE;\n\n this.popoverContent.contentAt = this._position;\n }\n\n /*\n * Fallback to hide when *clrIfOpen is not being used\n */\n @HostBinding('class.is-off-screen')\n get isOffScreen() {\n return !this.popoverService.open;\n }\n\n /**********\n *\n * @description\n * Close function that uses the signpost instance to toggle the state of the content popover.\n *\n */\n close() {\n this.popoverService.open = false;\n }\n\n ngAfterViewInit(): void {\n this.popoverService.closeButtonRef = this.closeButton;\n this.closeButton.nativeElement.focus();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Tab') {\n const focusableElements = this.getFocusableElements(this.element.nativeElement);\n\n // take the first element when SHIFT+TAB or last when only TAB\n const focusableElementIndex = event.shiftKey ? 0 : focusableElements.length - 1;\n\n if (document.activeElement === focusableElements[focusableElementIndex]) {\n event.preventDefault();\n this.popoverService.open = false;\n }\n }\n }\n\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId) && this.element.nativeElement.contains(this.document.activeElement)) {\n this.signpostFocusManager.focusTrigger();\n }\n }\n\n private getFocusableElements(element: HTMLElement): HTMLElement[] {\n return Array.from(\n element.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n ) as HTMLElement[];\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: 'clr-signpost-title',\n template: `<ng-content></ng-content>`,\n host: { '[class.signpost-title]': 'true' },\n standalone: false,\n})\nexport class ClrSignpostTitle {}\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, infoCircleIcon, windowCloseIcon } from '@clr/angular/icon';\nimport { ClrIfOpen, ClrPopoverModuleNext } from '@clr/angular/popover/common';\nimport { ClrFocusOnViewInitModule } from '@clr/angular/utils';\n\nimport { ClrSignpost } from './signpost';\nimport { ClrSignpostContent } from './signpost-content';\nimport { ClrSignpostTitle } from './signpost-title';\nimport { ClrSignpostTrigger } from './signpost-trigger';\n\nexport const CLR_SIGNPOST_DIRECTIVES: Type<any>[] = [\n ClrSignpost,\n ClrSignpostContent,\n ClrSignpostTrigger,\n ClrSignpostTitle,\n];\n\n@NgModule({\n imports: [CommonModule, ClrIcon, ClrFocusOnViewInitModule, ClrPopoverModuleNext, ClrIfOpen],\n declarations: [CLR_SIGNPOST_DIRECTIVES],\n exports: [CLR_SIGNPOST_DIRECTIVES, ClrIfOpen],\n})\nexport class ClrSignpostModule {\n constructor() {\n ClarityIcons.addIcons(windowCloseIcon, infoCircleIcon);\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 './signpost';\nexport * from './signpost-content';\nexport * from './signpost-title';\nexport * from './signpost-trigger';\nexport * from './signpost.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SignpostIdService","i3.SignpostFocusManager","i2","i4.ClrSignpostTrigger","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clr-angular-popover-signpost.mjs","sources":["../../../projects/angular/popover/signpost/providers/signpost-focus-manager.service.ts","../../../projects/angular/popover/signpost/providers/signpost-id.service.ts","../../../projects/angular/popover/signpost/signpost-trigger.ts","../../../projects/angular/popover/signpost/signpost.ts","../../../projects/angular/popover/signpost/signpost-content.ts","../../../projects/angular/popover/signpost/signpost-title.ts","../../../projects/angular/popover/signpost/signpost.module.ts","../../../projects/angular/popover/signpost/index.ts","../../../projects/angular/popover/signpost/clr-angular-popover-signpost.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 { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SignpostFocusManager {\n private _triggerEl: HTMLElement;\n\n set triggerEl(value: HTMLElement) {\n this._triggerEl = value;\n }\n\n focusTrigger() {\n if (this._triggerEl) {\n this._triggerEl.focus();\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';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class SignpostIdService {\n private _id = new Subject<string>();\n\n get id(): Observable<string> {\n return this._id.asObservable();\n }\n\n setId(id: string) {\n this._id.next(id);\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 { Directive, DOCUMENT, ElementRef, HostListener, Inject, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { Subscription } from 'rxjs';\n\nimport { SignpostFocusManager } from './providers/signpost-focus-manager.service';\nimport { SignpostIdService } from './providers/signpost-id.service';\n\n@Directive({\n selector: '[clrSignpostTrigger]',\n host: {\n class: 'signpost-trigger',\n '[attr.aria-expanded]': 'ariaExpanded',\n '[attr.aria-controls]': 'ariaControl',\n '[class.active]': 'isOpen',\n },\n standalone: false,\n})\n\n/*********\n *\n * @description\n * A Directive added to the ClrSignpost Trigger button that will call the ClrSignpost.toggle() function to hide/show the\n * ClrSignpostContent.\n *\n */\nexport class ClrSignpostTrigger implements OnDestroy {\n ariaExpanded = false;\n ariaControl: string;\n isOpen: boolean;\n\n private document: Document;\n private subscriptions: Subscription[] = [];\n\n constructor(\n private popoverService: ClrPopoverService,\n private el: ElementRef<HTMLElement>,\n private signpostIdService: SignpostIdService,\n private signpostFocusManager: SignpostFocusManager,\n @Inject(DOCUMENT) document: any,\n @Inject(PLATFORM_ID) private platformId: any\n ) {\n this.document = document;\n }\n\n ngOnInit() {\n this.popoverService.origin = this.el;\n this.signpostFocusManager.triggerEl = this.el.nativeElement;\n this.subscriptions.push(\n this.popoverService.openChange.subscribe((isOpen: boolean) => {\n this.ariaExpanded = isOpen;\n\n const prevIsOpen = this.isOpen;\n this.isOpen = isOpen;\n\n // openChange fires false on initialization because signpost starts as closed by default\n // but we shouldn't focus on that initial false value\n // we should focus back only if it's closed after being opened\n if (!this.isOpen && prevIsOpen) {\n this.focusOnClose();\n }\n }),\n this.signpostIdService.id.subscribe(idChange => (this.ariaControl = idChange))\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((sub: Subscription) => sub.unsubscribe());\n }\n\n /**********\n *\n * @description\n * click handler for the ClrSignpost trigger button used to hide/show ClrSignpostContent.\n */\n @HostListener('click', ['$event'])\n onSignpostTriggerClick(event: Event): void {\n this.popoverService.toggleWithEvent(event);\n }\n\n private focusOnClose() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n // we have to set the focus back on the trigger only if the focus is reset back to the body element\n // if the focus is on another element, we are not allowed to move that focus back to this trigger again.\n if (!this.isOpen && this.document.activeElement === this.document.body) {\n this.signpostFocusManager.focusTrigger();\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, ContentChild, Input } from '@angular/core';\nimport { ClrPopoverHostDirective, ClrPopoverPoint, ClrPopoverService } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { SignpostFocusManager } from './providers/signpost-focus-manager.service';\nimport { SignpostIdService } from './providers/signpost-id.service';\nimport { ClrSignpostTrigger } from './signpost-trigger';\n\n@Component({\n selector: 'clr-signpost',\n template: `\n @if (showDefaultTrigger) {\n <button\n type=\"button\"\n class=\"signpost-action btn btn-sm btn-icon btn-link\"\n clrSignpostTrigger\n [attr.aria-label]=\"signpostTriggerAriaLabel || commonStrings.keys.signpostToggle\"\n >\n <cds-icon shape=\"info-circle\" [attr.title]=\"commonStrings.keys.info\"></cds-icon>\n </button>\n }\n\n <ng-content></ng-content>\n `,\n host: { '[class.signpost]': 'true' },\n providers: [SignpostFocusManager, SignpostIdService],\n hostDirectives: [ClrPopoverHostDirective],\n standalone: false,\n})\n\n/*********\n *\n * @class ClrSignpost\n *\n * @description\n * Class used to configure and control the state of a ClrSignpost and its associated ClrSignpostContent.\n * It supports the clrPosition with a 'right-middle' default.\n *\n */\nexport class ClrSignpost {\n /**********\n * @property useCustomTrigger\n *\n * @description\n * Flag used to determine if we need to use the default trigger or a user supplied trigger element.\n *\n */\n useCustomTrigger = false;\n\n @Input('clrSignpostTriggerAriaLabel') signpostTriggerAriaLabel: string;\n /**\n * Hides the default trigger button. Use when the signpost is opened\n * programmatically via `openAtPoint()` and no trigger icon is needed.\n */\n @Input('clrSignpostHideTrigger') hideTrigger = false;\n\n constructor(\n public commonStrings: ClrCommonStringsService,\n private popoverService: ClrPopoverService\n ) {}\n /**********\n * @property signPostTrigger\n *\n * @description\n * Uses ContentChild to check for a user supplied element with the ClrSignpostTrigger on it.\n *\n */\n @ContentChild(ClrSignpostTrigger)\n set customTrigger(trigger: ClrSignpostTrigger) {\n this.useCustomTrigger = !!trigger;\n }\n\n get showDefaultTrigger(): boolean {\n return !this.useCustomTrigger && !this.hideTrigger;\n }\n\n openAtPoint(point: ClrPopoverPoint, targetElement?: HTMLElement) {\n this.popoverService.openAtPoint(point, targetElement);\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 AfterViewInit,\n Component,\n DOCUMENT,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Optional,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport {\n ClrPopoverContent,\n ClrPopoverPosition,\n ClrPopoverService,\n ClrPopoverType,\n POPOVER_HOST_ORIGIN,\n SIGNPOST_POSITIONS,\n} from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { SignpostFocusManager } from './providers/signpost-focus-manager.service';\nimport { SignpostIdService } from './providers/signpost-id.service';\n\n@Component({\n selector: 'clr-signpost-content',\n template: `\n <div class=\"signpost-wrap\">\n <div class=\"popover-pointer\"></div>\n <div class=\"signpost-content-header\">\n <ng-content select=\"clr-signpost-title\"></ng-content>\n <button\n #closeButton\n type=\"button\"\n [attr.aria-label]=\"signpostCloseAriaLabel || commonStrings.keys.signpostClose\"\n class=\"signpost-action close\"\n (click)=\"close()\"\n [attr.aria-controls]=\"signpostContentId\"\n >\n <cds-icon shape=\"window-close\" [attr.title]=\"commonStrings.keys.close\"></cds-icon>\n </button>\n </div>\n <div class=\"signpost-content-body\" tabindex=\"0\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n '[class.signpost-content]': 'true',\n '[id]': 'signpostContentId',\n role: 'dialog',\n },\n standalone: false,\n hostDirectives: [ClrPopoverContent],\n})\nexport class ClrSignpostContent implements OnDestroy, AfterViewInit {\n @Input('clrSignpostCloseAriaLabel') signpostCloseAriaLabel: string;\n @ViewChild('closeButton', { read: ElementRef }) closeButton: ElementRef<HTMLButtonElement>;\n\n signpostContentId = uniqueIdFactory();\n\n private _position = ClrPopoverPosition.RIGHT_MIDDLE;\n\n constructor(\n @Optional()\n @Inject(POPOVER_HOST_ORIGIN)\n parentHost: ElementRef<HTMLElement>,\n private element: ElementRef,\n public commonStrings: ClrCommonStringsService,\n signpostIdService: SignpostIdService,\n private signpostFocusManager: SignpostFocusManager,\n @Inject(PLATFORM_ID) private platformId: any,\n @Inject(DOCUMENT) private document: Document,\n private popoverService: ClrPopoverService,\n private popoverContent: ClrPopoverContent\n ) {\n if (!parentHost) {\n throw new Error('clr-signpost-content should only be used inside of a clr-signpost');\n }\n // Defaults\n signpostIdService.setId(this.signpostContentId);\n\n popoverService.panelClass.push('clr-signpost-container');\n popoverContent.contentType = ClrPopoverType.SIGNPOST;\n popoverContent.contentAt = this._position;\n }\n\n /*********\n *\n * @description\n * A setter for the position of the ClrSignpostContent popover. This is a combination of the following:\n * - originPoint - where on the trigger to position the content\n * - popoverPoint - where on the content container to align with the origin\n * - offsetY - where on the Y axis to align the ClrSignpostContent so it meets specs\n * - offsetX - where on the X axis to align the ClrSignpostContent so it meets specs\n * There are 12 possible positions to place a ClrSignpostContent container:\n * - top-left\n * - top-middle\n * - top-right\n * - right-top\n * - right-middle\n * - right-bottom\n * - bottom-right\n * - bottom-middle\n * - bottom-left\n * - left-bottom\n * - left-middle\n * - left-top\n *\n * I think of it as follows for 'top-left' -> CONTAINER_SIDE-SIDE_POSITION. In this case CONTAINER_SIDE is 'top'\n * meaning the top of the trigger icon (above the icon that hides/shows) the ClrSignpostContent. And, SIDE_POSITION\n * is 'left' meaning two things: 1) the ClrSignpostContent container extends to the left and 2) the 'arrow/pointer'\n * linking the SignpostContent to the trigger points down at the horizontal center of the trigger icon.\n *\n * @param newPosition\n */\n @Input('clrPosition')\n get position() {\n return this._position;\n }\n set position(position: string | ClrPopoverPosition) {\n const posIndex = SIGNPOST_POSITIONS.indexOf(position as ClrPopoverPosition);\n this._position = position && posIndex > -1 ? SIGNPOST_POSITIONS[posIndex] : ClrPopoverPosition.RIGHT_MIDDLE;\n\n this.popoverContent.contentAt = this._position;\n }\n\n /*\n * Fallback to hide when *clrIfOpen is not being used\n */\n @HostBinding('class.is-off-screen')\n get isOffScreen() {\n return !this.popoverService.open;\n }\n\n /**********\n *\n * @description\n * Close function that uses the signpost instance to toggle the state of the content popover.\n *\n */\n close() {\n this.popoverService.open = false;\n }\n\n ngAfterViewInit(): void {\n this.popoverService.closeButtonRef = this.closeButton;\n this.closeButton.nativeElement.focus();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Tab') {\n const focusableElements = this.getFocusableElements(this.element.nativeElement);\n\n // take the first element when SHIFT+TAB or last when only TAB\n const focusableElementIndex = event.shiftKey ? 0 : focusableElements.length - 1;\n\n if (document.activeElement === focusableElements[focusableElementIndex]) {\n event.preventDefault();\n this.popoverService.open = false;\n }\n }\n }\n\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId) && this.element.nativeElement.contains(this.document.activeElement)) {\n this.signpostFocusManager.focusTrigger();\n }\n }\n\n private getFocusableElements(element: HTMLElement): HTMLElement[] {\n return Array.from(\n element.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n ) as HTMLElement[];\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: 'clr-signpost-title',\n template: `<ng-content></ng-content>`,\n host: { '[class.signpost-title]': 'true' },\n standalone: false,\n})\nexport class ClrSignpostTitle {}\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, infoCircleIcon, windowCloseIcon } from '@clr/angular/icon';\nimport { ClrIfOpen, ClrPopoverModuleNext } from '@clr/angular/popover/common';\nimport { ClrFocusOnViewInitModule } from '@clr/angular/utils';\n\nimport { ClrSignpost } from './signpost';\nimport { ClrSignpostContent } from './signpost-content';\nimport { ClrSignpostTitle } from './signpost-title';\nimport { ClrSignpostTrigger } from './signpost-trigger';\n\nexport const CLR_SIGNPOST_DIRECTIVES: Type<any>[] = [\n ClrSignpost,\n ClrSignpostContent,\n ClrSignpostTrigger,\n ClrSignpostTitle,\n];\n\n@NgModule({\n imports: [CommonModule, ClrIcon, ClrFocusOnViewInitModule, ClrPopoverModuleNext, ClrIfOpen],\n declarations: [CLR_SIGNPOST_DIRECTIVES],\n exports: [CLR_SIGNPOST_DIRECTIVES, ClrIfOpen],\n})\nexport class ClrSignpostModule {\n constructor() {\n ClarityIcons.addIcons(windowCloseIcon, infoCircleIcon);\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 './signpost';\nexport * from './signpost-content';\nexport * from './signpost-title';\nexport * from './signpost-trigger';\nexport * from './signpost.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SignpostIdService","i3.SignpostFocusManager","i2","i4.ClrSignpostTrigger","i5"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@angular/cdk": ">= 21.1.0",
|
|
26
26
|
"@angular/common": ">= 21.1.0",
|
|
27
27
|
"@angular/core": ">= 21.1.0",
|
|
28
|
-
"@clr/ui": "18.1
|
|
28
|
+
"@clr/ui": "18.2.1"
|
|
29
29
|
},
|
|
30
30
|
"module": "fesm2022/clr-angular.mjs",
|
|
31
31
|
"typings": "types/clr-angular.d.ts",
|
|
@@ -231,5 +231,5 @@
|
|
|
231
231
|
"dependencies": {
|
|
232
232
|
"tslib": "^2.3.0"
|
|
233
233
|
},
|
|
234
|
-
"version": "18.1
|
|
234
|
+
"version": "18.2.1"
|
|
235
235
|
}
|
|
@@ -726,12 +726,13 @@ declare class ClrDatagridRow<T = any> implements AfterContentInit, AfterViewInit
|
|
|
726
726
|
set clrDgRowSelectionLabel(label: string);
|
|
727
727
|
get _view(): any;
|
|
728
728
|
get identifyBy(): _clr_angular_data_datagrid.ClrDatagridItemsIdentityFunction<any>;
|
|
729
|
+
openDetails(event: MouseEvent, detailButton: HTMLButtonElement): void;
|
|
729
730
|
ngOnInit(): void;
|
|
730
731
|
ngAfterContentInit(): void;
|
|
731
732
|
ngAfterViewInit(): void;
|
|
732
733
|
ngOnDestroy(): void;
|
|
733
734
|
toggle(selected?: boolean): void;
|
|
734
|
-
toggleExpand(): void;
|
|
735
|
+
toggleExpand(event: MouseEvent): void;
|
|
735
736
|
/**
|
|
736
737
|
* The default behavior in Chrome and Firefox for shift-clicking on a label is to perform text-selection.
|
|
737
738
|
* This prevents our intended range-selection, because this text-selection overrides our shift-click event.
|
|
@@ -915,6 +916,7 @@ declare class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, O
|
|
|
915
916
|
* The application can provide custom select all logic.
|
|
916
917
|
*/
|
|
917
918
|
customSelectAllEnabled: boolean;
|
|
919
|
+
selectAllDisabled: boolean;
|
|
918
920
|
customSelectAll: EventEmitter<boolean>;
|
|
919
921
|
/**
|
|
920
922
|
* Expose virtual scroll directive for applications to access its public methods
|
|
@@ -1017,7 +1019,7 @@ declare class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, O
|
|
|
1017
1019
|
private toggleVirtualScrollSubscriptions;
|
|
1018
1020
|
private handleResizeChanges;
|
|
1019
1021
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagrid<any>, never>;
|
|
1020
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "loadingMoreItems": { "alias": "clrLoadingMoreItems"; "required": false; }; "clrDgSingleSelectionAriaLabel": { "alias": "clrDgSingleSelectionAriaLabel"; "required": false; }; "clrDgSingleActionableAriaLabel": { "alias": "clrDgSingleActionableAriaLabel"; "required": false; }; "clrDetailExpandableAriaLabel": { "alias": "clrDetailExpandableAriaLabel"; "required": false; }; "clrDgDisablePageFocus": { "alias": "clrDgDisablePageFocus"; "required": false; }; "customSelectAllEnabled": { "alias": "clrDgCustomSelectAllEnabled"; "required": false; }; "loading": { "alias": "clrDgLoading"; "required": false; }; "selectionType": { "alias": "clrDgSelectionType"; "required": false; }; "selected": { "alias": "clrDgSelected"; "required": false; }; "clrDgPreserveSelection": { "alias": "clrDgPreserveSelection"; "required": false; }; "rowSelectionMode": { "alias": "clrDgRowSelection"; "required": false; }; "identityFn": { "alias": "clrDgItemsIdentityFn"; "required": false; }; }, { "selectedChanged": "clrDgSelectedChange"; "refresh": "clrDgRefresh"; "customSelectAll": "clrDgCustomSelectAll"; }, ["iterator", "placeholder", "_virtualScroll", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
|
|
1022
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "loadingMoreItems": { "alias": "clrLoadingMoreItems"; "required": false; }; "clrDgSingleSelectionAriaLabel": { "alias": "clrDgSingleSelectionAriaLabel"; "required": false; }; "clrDgSingleActionableAriaLabel": { "alias": "clrDgSingleActionableAriaLabel"; "required": false; }; "clrDetailExpandableAriaLabel": { "alias": "clrDetailExpandableAriaLabel"; "required": false; }; "clrDgDisablePageFocus": { "alias": "clrDgDisablePageFocus"; "required": false; }; "customSelectAllEnabled": { "alias": "clrDgCustomSelectAllEnabled"; "required": false; }; "selectAllDisabled": { "alias": "clrDgSelectAllDisabled"; "required": false; }; "loading": { "alias": "clrDgLoading"; "required": false; }; "selectionType": { "alias": "clrDgSelectionType"; "required": false; }; "selected": { "alias": "clrDgSelected"; "required": false; }; "clrDgPreserveSelection": { "alias": "clrDgPreserveSelection"; "required": false; }; "rowSelectionMode": { "alias": "clrDgRowSelection"; "required": false; }; "identityFn": { "alias": "clrDgItemsIdentityFn"; "required": false; }; }, { "selectedChanged": "clrDgSelectedChange"; "refresh": "clrDgRefresh"; "customSelectAll": "clrDgCustomSelectAll"; }, ["iterator", "placeholder", "_virtualScroll", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
|
|
1021
1023
|
static ngAcceptInputType_selectionType: SelectionType | string;
|
|
1022
1024
|
}
|
|
1023
1025
|
|
|
@@ -196,8 +196,14 @@ declare abstract class ClrAbstractContainer implements OnDestroy {
|
|
|
196
196
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrAbstractContainer, never, never, {}, {}, ["label", "controlSuccessComponent", "controlErrorComponent", "controlHelperComponent"], never, true, never>;
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
+
declare enum CONTROL_STATE {
|
|
200
|
+
VALID = "VALID",
|
|
201
|
+
INVALID = "INVALID"
|
|
202
|
+
}
|
|
203
|
+
|
|
199
204
|
declare abstract class AbstractIfState {
|
|
200
205
|
protected ngControlService: NgControlService;
|
|
206
|
+
protected state: CONTROL_STATE;
|
|
201
207
|
protected displayedContent: boolean;
|
|
202
208
|
protected controls: NgControl[];
|
|
203
209
|
protected constructor(ngControlService: NgControlService);
|
|
@@ -207,17 +213,14 @@ declare abstract class AbstractIfState {
|
|
|
207
213
|
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractIfState, never, never, {}, {}, never, never, true, never>;
|
|
208
214
|
}
|
|
209
215
|
|
|
210
|
-
declare enum CONTROL_STATE {
|
|
211
|
-
VALID = "VALID",
|
|
212
|
-
INVALID = "INVALID"
|
|
213
|
-
}
|
|
214
|
-
|
|
215
216
|
declare class ClrIfError extends AbstractIfState {
|
|
216
217
|
private template;
|
|
217
218
|
private container;
|
|
218
|
-
|
|
219
|
+
private _error;
|
|
219
220
|
private embeddedViewRef;
|
|
220
221
|
constructor(ngControlService: NgControlService, template: TemplateRef<any>, container: ViewContainerRef);
|
|
222
|
+
get error(): string;
|
|
223
|
+
set error(value: string);
|
|
221
224
|
/**
|
|
222
225
|
* @param state CONTROL_STATE
|
|
223
226
|
*/
|