@rossigee/clarity-angular 18.2.1-fixed.1 → 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-accordion.mjs +355 -0
- package/fesm2022/clr-angular-accordion.mjs.map +1 -0
- package/fesm2022/clr-angular-button.mjs +713 -0
- package/fesm2022/clr-angular-button.mjs.map +1 -0
- package/fesm2022/clr-angular-collapsible-panel.mjs +201 -0
- package/fesm2022/clr-angular-collapsible-panel.mjs.map +1 -0
- package/fesm2022/clr-angular-data-datagrid.mjs +7635 -0
- package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -0
- package/fesm2022/clr-angular-data-stack-view.mjs +442 -0
- package/fesm2022/clr-angular-data-stack-view.mjs.map +1 -0
- package/fesm2022/clr-angular-data-tree-view.mjs +1106 -0
- package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -0
- package/fesm2022/clr-angular-data.mjs +40 -0
- package/fesm2022/clr-angular-data.mjs.map +1 -0
- package/fesm2022/clr-angular-emphasis-alert.mjs +624 -0
- package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -0
- package/fesm2022/clr-angular-emphasis-badge.mjs +69 -0
- package/fesm2022/clr-angular-emphasis-badge.mjs.map +1 -0
- package/fesm2022/clr-angular-emphasis-common.mjs +25 -0
- package/fesm2022/clr-angular-emphasis-common.mjs.map +1 -0
- package/fesm2022/clr-angular-emphasis-label.mjs +105 -0
- package/fesm2022/clr-angular-emphasis-label.mjs.map +1 -0
- package/fesm2022/clr-angular-emphasis.mjs +41 -0
- package/fesm2022/clr-angular-emphasis.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-checkbox.mjs +270 -0
- package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-combobox.mjs +1775 -0
- package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-common.mjs +1251 -0
- package/fesm2022/clr-angular-forms-common.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-datalist.mjs +263 -0
- package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-datepicker.mjs +3274 -0
- package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-file-input.mjs +826 -0
- package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-input.mjs +153 -0
- package/fesm2022/clr-angular-forms-input.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-number-input.mjs +236 -0
- package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-password.mjs +233 -0
- package/fesm2022/clr-angular-forms-password.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-radio.mjs +231 -0
- package/fesm2022/clr-angular-forms-radio.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-range.mjs +186 -0
- package/fesm2022/clr-angular-forms-range.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-select.mjs +153 -0
- package/fesm2022/clr-angular-forms-select.mjs.map +1 -0
- package/fesm2022/clr-angular-forms-textarea.mjs +136 -0
- package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -0
- package/fesm2022/clr-angular-forms.mjs +100 -0
- package/fesm2022/clr-angular-forms.mjs.map +1 -0
- package/fesm2022/clr-angular-icon.mjs +7397 -0
- package/fesm2022/clr-angular-icon.mjs.map +1 -0
- package/fesm2022/clr-angular-layout-breadcrumbs.mjs +120 -0
- package/fesm2022/clr-angular-layout-breadcrumbs.mjs.map +1 -0
- package/fesm2022/clr-angular-layout-main-container.mjs +100 -0
- package/fesm2022/clr-angular-layout-main-container.mjs.map +1 -0
- package/fesm2022/clr-angular-layout-nav.mjs +582 -0
- package/fesm2022/clr-angular-layout-nav.mjs.map +1 -0
- package/fesm2022/clr-angular-layout-tabs.mjs +807 -0
- package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -0
- package/fesm2022/clr-angular-layout-vertical-nav.mjs +507 -0
- package/fesm2022/clr-angular-layout-vertical-nav.mjs.map +1 -0
- package/fesm2022/clr-angular-layout.mjs +44 -0
- package/fesm2022/clr-angular-layout.mjs.map +1 -0
- package/fesm2022/clr-angular-modal.mjs +617 -0
- package/fesm2022/clr-angular-modal.mjs.map +1 -0
- package/fesm2022/clr-angular-popover-common.mjs +1082 -0
- package/fesm2022/clr-angular-popover-common.mjs.map +1 -0
- package/fesm2022/clr-angular-popover-dropdown.mjs +492 -0
- package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -0
- package/fesm2022/clr-angular-popover-signpost.mjs +494 -0
- package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -0
- package/fesm2022/clr-angular-popover-tooltip.mjs +293 -0
- package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -0
- package/fesm2022/clr-angular-popover.mjs +41 -0
- package/fesm2022/clr-angular-popover.mjs.map +1 -0
- package/fesm2022/clr-angular-progress-progress-bars.mjs +217 -0
- package/fesm2022/clr-angular-progress-progress-bars.mjs.map +1 -0
- package/fesm2022/clr-angular-progress-spinner.mjs +132 -0
- package/fesm2022/clr-angular-progress-spinner.mjs.map +1 -0
- package/fesm2022/clr-angular-stepper.mjs +694 -0
- package/fesm2022/clr-angular-stepper.mjs.map +1 -0
- package/fesm2022/clr-angular-timeline.mjs +316 -0
- package/fesm2022/clr-angular-timeline.mjs.map +1 -0
- package/fesm2022/clr-angular-utils-conditional.mjs +351 -0
- package/fesm2022/clr-angular-utils-conditional.mjs.map +1 -0
- package/fesm2022/clr-angular-utils-loading.mjs +107 -0
- package/fesm2022/clr-angular-utils-loading.mjs.map +1 -0
- package/fesm2022/clr-angular-utils.mjs +2079 -0
- package/fesm2022/clr-angular-utils.mjs.map +1 -0
- package/fesm2022/clr-angular-wizard.mjs +3074 -0
- package/fesm2022/clr-angular-wizard.mjs.map +1 -0
- package/fesm2022/clr-angular.mjs +2 -2
- package/fesm2022/clr-angular.mjs.map +1 -1
- package/package.json +7 -5
- package/schematics/ng-update/index.d.ts +2 -0
- package/schematics/ng-update/index.js +69 -0
- package/schematics/ng-update/index.js.map +1 -0
- package/schematics/ng-update/migrations/css-migration.d.ts +6 -0
- package/schematics/ng-update/migrations/css-migration.js +177 -0
- package/schematics/ng-update/migrations/css-migration.js.map +1 -0
- package/schematics/ng-update/migrations/import-migration.d.ts +4 -0
- package/schematics/ng-update/migrations/import-migration.js +187 -0
- package/schematics/ng-update/migrations/import-migration.js.map +1 -0
- package/schematics/ng-update/migrations/template-migration.d.ts +6 -0
- package/schematics/ng-update/migrations/template-migration.js +261 -0
- package/schematics/ng-update/migrations/template-migration.js.map +1 -0
- package/schematics/ng-update/replacements/css-replacements.d.ts +17 -0
- package/schematics/ng-update/replacements/css-replacements.js +74 -0
- package/schematics/ng-update/replacements/css-replacements.js.map +1 -0
- package/schematics/ng-update/replacements/import-replacements.d.ts +13 -0
- package/schematics/ng-update/replacements/import-replacements.js +108 -0
- package/schematics/ng-update/replacements/import-replacements.js.map +1 -0
- package/schematics/ng-update/replacements/symbol-replacements.d.ts +12 -0
- package/schematics/ng-update/replacements/symbol-replacements.js +67 -0
- package/schematics/ng-update/replacements/symbol-replacements.js.map +1 -0
- package/schematics/ng-update/replacements/template-replacements.d.ts +19 -0
- package/schematics/ng-update/replacements/template-replacements.js +57 -0
- package/schematics/ng-update/replacements/template-replacements.js.map +1 -0
- package/schematics/ng-update/tests/test-helpers.d.ts +6 -0
- package/schematics/ng-update/tests/test-helpers.js +34 -0
- package/schematics/ng-update/tests/test-helpers.js.map +1 -0
- package/schematics/ng-update/utils/file-visitor.d.ts +8 -0
- package/schematics/ng-update/utils/file-visitor.js +44 -0
- package/schematics/ng-update/utils/file-visitor.js.map +1 -0
- package/schematics/ng-update/utils/regexp-utils.d.ts +16 -0
- package/schematics/ng-update/utils/regexp-utils.js +34 -0
- package/schematics/ng-update/utils/regexp-utils.js.map +1 -0
- package/schematics/vitest.config.d.ts +2 -0
- package/schematics/vitest.config.js +17 -0
- package/schematics/vitest.config.js.map +1 -0
- package/types/clr-angular-accordion.d.ts +100 -0
- package/types/clr-angular-button.d.ts +169 -0
- package/types/clr-angular-collapsible-panel.d.ts +73 -0
- package/types/clr-angular-data-datagrid.d.ts +1843 -0
- package/types/clr-angular-data-stack-view.d.ts +87 -0
- package/types/clr-angular-data-tree-view.d.ts +229 -0
- package/types/clr-angular-data.d.ts +15 -0
- package/types/clr-angular-emphasis-alert.d.ts +175 -0
- package/types/clr-angular-emphasis-badge.d.ts +25 -0
- package/types/clr-angular-emphasis-common.d.ts +6 -0
- package/types/clr-angular-emphasis-label.d.ts +29 -0
- package/types/clr-angular-emphasis.d.ts +15 -0
- package/types/clr-angular-forms-checkbox.d.ts +69 -0
- package/types/clr-angular-forms-combobox.d.ts +353 -0
- package/types/clr-angular-forms-common.d.ts +339 -0
- package/types/clr-angular-forms-datalist.d.ts +59 -0
- package/types/clr-angular-forms-datepicker.d.ts +986 -0
- package/types/clr-angular-forms-file-input.d.ts +193 -0
- package/types/clr-angular-forms-input.d.ts +29 -0
- package/types/clr-angular-forms-number-input.d.ts +43 -0
- package/types/clr-angular-forms-password.d.ts +52 -0
- package/types/clr-angular-forms-radio.d.ts +50 -0
- package/types/clr-angular-forms-range.d.ts +37 -0
- package/types/clr-angular-forms-select.d.ts +36 -0
- package/types/clr-angular-forms-textarea.d.ts +29 -0
- package/types/clr-angular-forms.d.ts +36 -0
- package/types/clr-angular-icon.d.ts +1498 -0
- package/types/clr-angular-layout-breadcrumbs.d.ts +45 -0
- package/types/clr-angular-layout-main-container.d.ts +28 -0
- package/types/clr-angular-layout-nav.d.ts +142 -0
- package/types/clr-angular-layout-tabs.d.ts +158 -0
- package/types/clr-angular-layout-vertical-nav.d.ts +128 -0
- package/types/clr-angular-layout.d.ts +19 -0
- package/types/clr-angular-modal.d.ts +160 -0
- package/types/clr-angular-popover-common.d.ts +254 -0
- package/types/clr-angular-popover-dropdown.d.ts +123 -0
- package/types/clr-angular-popover-signpost.d.ts +157 -0
- package/types/clr-angular-popover-tooltip.d.ts +83 -0
- package/types/clr-angular-popover.d.ts +16 -0
- package/types/clr-angular-progress-progress-bars.d.ts +57 -0
- package/types/clr-angular-progress-spinner.d.ts +44 -0
- package/types/clr-angular-stepper.d.ts +179 -0
- package/types/clr-angular-timeline.d.ts +86 -0
- package/types/clr-angular-utils-conditional.d.ts +132 -0
- package/types/clr-angular-utils-loading.d.ts +38 -0
- package/types/clr-angular-utils.d.ts +913 -0
- package/types/clr-angular-wizard.d.ts +1508 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clr-angular-button.mjs","sources":["../../../projects/angular/button/providers/button-in-group.service.ts","../../../projects/angular/button/button-group/button.ts","../../../projects/angular/button/providers/button-group-focus.enum.ts","../../../projects/angular/button/providers/button-group-focus-handler.service.ts","../../../projects/angular/button/button-group/button-group.ts","../../../projects/angular/button/button-group/button-group.html","../../../projects/angular/button/button-group/button-group.module.ts","../../../projects/angular/button/button-loading/loading-button.ts","../../../projects/angular/button/button-loading/loading-button.module.ts","../../../projects/angular/button/button.module.ts","../../../projects/angular/button/button-group/index.ts","../../../projects/angular/button/button-loading/index.ts","../../../projects/angular/button/index.ts","../../../projects/angular/button/clr-angular-button.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';\nimport { Observable, Subject } from 'rxjs';\n\nimport { ClrButton } from '../button-group/button';\n\n@Injectable()\nexport class ButtonInGroupService {\n private _changes = new Subject<ClrButton>();\n\n get changes(): Observable<ClrButton> {\n return this._changes.asObservable();\n }\n\n updateButtonGroup(button: ClrButton): void {\n this._changes.next(button);\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, EventEmitter, Input, Optional, Output, SkipSelf, TemplateRef, ViewChild } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { ClrLoadingState, LoadingListener, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ButtonInGroupService } from '../providers/button-in-group.service';\n\n@Component({\n selector: 'clr-button',\n template: `\n <ng-template #buttonProjectedRef>\n <button\n [class]=\"classNames\"\n (click)=\"emitClick()\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.disabled]=\"disabled\"\n [attr.role]=\"role\"\n [attr.id]=\"id\"\n >\n @if (loading) {\n <span class=\"spinner spinner-inline\"></span>\n }\n <ng-content></ng-content>\n </button>\n </ng-template>\n `,\n providers: [{ provide: LoadingListener, useExisting: ClrButton }],\n standalone: false,\n})\nexport class ClrButton implements LoadingListener {\n @Output('click') _click = new EventEmitter<boolean>(false);\n @Input('routerLinkActive') routerLinkActiveClasses: string;\n\n @ViewChild('buttonProjectedRef', { static: true }) templateRef: TemplateRef<ClrButton>;\n\n loading: boolean;\n\n private _inMenu = false;\n private _enableService = false;\n private _classNames = 'btn';\n private _name: string = null;\n private _type: string = null;\n private _disabled: any = null;\n private _id: string = uniqueIdFactory();\n\n constructor(\n @Optional() private readonly routerLinkActive: RouterLinkActive,\n @SkipSelf() @Optional() public buttonInGroupService: ButtonInGroupService\n ) {}\n\n @Input('clrInMenu')\n get inMenu(): boolean {\n return this._inMenu;\n }\n set inMenu(value: boolean) {\n value = !!value;\n if (this._inMenu !== value) {\n this._inMenu = value;\n // We check if the service flag is enabled\n // and if the service exists because the service is optional\n if (this._enableService && this.buttonInGroupService) {\n this.buttonInGroupService.updateButtonGroup(this);\n }\n }\n }\n\n @Input('class')\n get classNames(): string {\n return this.routerLinkActive?.isActive ? `${this._classNames} ${this.routerLinkActiveClasses}` : this._classNames;\n }\n set classNames(value: string) {\n if (typeof value === 'string') {\n const classNames: string[] = value.split(' ');\n if (classNames.indexOf('btn') === -1) {\n classNames.push('btn');\n }\n this._classNames = classNames.join(' ');\n }\n }\n\n @Input('name')\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n if (typeof value === 'string') {\n this._name = value;\n }\n }\n\n @Input('type')\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n if (typeof value === 'string') {\n this._type = value;\n }\n }\n\n @Input('id')\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n if (typeof value === 'string') {\n this._id = value;\n }\n }\n\n @Input('disabled')\n get disabled(): any {\n return this._disabled;\n }\n set disabled(value: any) {\n if (value !== null && value !== false) {\n this._disabled = '';\n } else {\n this._disabled = null;\n }\n }\n\n get role(): string {\n return this.inMenu ? 'menuitem' : null;\n }\n\n ngAfterViewInit() {\n this._enableService = true;\n }\n\n loadingStateChange(state: ClrLoadingState): void {\n this.loading = state === ClrLoadingState.LOADING;\n }\n\n emitClick(): void {\n this._click.emit(true);\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 enum InitialFocus {\n FIRST_ITEM = 'first',\n LAST_ITEM = 'last',\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, Renderer2 } from '@angular/core';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { FocusableItem, FocusService, Linkers } from '@clr/angular/utils';\n\nimport { InitialFocus } from './button-group-focus.enum';\n@Injectable()\nexport class ButtonGroupFocusHandler {\n initialFocus: InitialFocus = InitialFocus.FIRST_ITEM;\n\n private menu: HTMLElement;\n private menuToggle: HTMLElement;\n private buttons: FocusableItem[];\n private _unlistenFuncs: (() => void)[] = [];\n\n constructor(\n private focusService: FocusService,\n private popoverService: ClrPopoverService,\n private renderer: Renderer2\n ) {}\n\n ngOnDestroy() {\n this._unlistenFuncs.forEach((unlisten: () => void) => unlisten());\n this.focusService.detachListeners(this.menu);\n }\n\n initialize({ menu, menuToggle }: { menu: HTMLElement; menuToggle: HTMLElement }) {\n this.menu = menu;\n this.menuToggle = menuToggle;\n\n this.focusService.registerContainer(this.menu);\n this.listenToKeys();\n this.linkButtons();\n\n switch (this.initialFocus) {\n case InitialFocus.LAST_ITEM:\n this.focusLastItem();\n break;\n default:\n this.focusFirstItem();\n break;\n }\n }\n\n private resetButtonsFocus() {\n this.buttons.forEach(button => {\n button.blur();\n });\n }\n\n private listenToKeys() {\n this._unlistenFuncs.push(\n this.renderer.listen(this.menu, 'keydown.shift.tab', event => this.closeMenu(event, false))\n );\n this._unlistenFuncs.push(this.renderer.listen(this.menu, 'keydown.tab', event => this.closeMenu(event, true)));\n }\n\n private closeMenu(event: KeyboardEvent, focusBackOnToggle: boolean) {\n this.popoverService.toggleWithEvent(event);\n if (focusBackOnToggle) {\n this.menuToggle.focus();\n }\n this.resetButtonsFocus();\n }\n\n private linkButtons() {\n const buttonElements = Array.from(this.menu.children) as HTMLElement[];\n this.buttons = buttonElements.map<FocusableItem>(buttonElement => {\n this._unlistenFuncs.push(this.renderer.listen(buttonElement, 'click', event => this.closeMenu(event, true)));\n return {\n id: buttonElement.id,\n value: buttonElement,\n focus: () => {\n buttonElement.setAttribute('tabindex', '0');\n buttonElement.focus();\n },\n blur: () => {\n buttonElement.setAttribute('tabindex', '-1');\n buttonElement.blur();\n },\n };\n });\n this.resetButtonsFocus();\n Linkers.linkVertical(this.buttons);\n }\n\n private focusFirstItem(): void {\n if (this.buttons.length) {\n this.focusService.moveTo(this.buttons[0]);\n }\n this.initialFocus = InitialFocus.FIRST_ITEM;\n }\n\n private focusLastItem(): void {\n if (this.buttons.length) {\n this.focusService.moveTo(this.buttons[this.buttons.length - 1]);\n }\n this.initialFocus = InitialFocus.FIRST_ITEM;\n }\n}\n\nexport const BUTTON_GROUP_FOCUS_HANDLER_PROVIDER = {\n provide: ButtonGroupFocusHandler,\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 AfterContentInit,\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n ClrPopoverHostDirective,\n ClrPopoverPosition,\n ClrPopoverService,\n ClrPopoverType,\n DROPDOWN_POSITIONS,\n} from '@clr/angular/popover/common';\nimport {\n ClrCommonStringsService,\n ClrDestroyService,\n FOCUS_SERVICE_PROVIDER,\n uniqueIdFactory,\n} from '@clr/angular/utils';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ClrButton } from './button';\nimport {\n BUTTON_GROUP_FOCUS_HANDLER_PROVIDER,\n ButtonGroupFocusHandler,\n} from '../providers/button-group-focus-handler.service';\nimport { InitialFocus } from '../providers/button-group-focus.enum';\nimport { ButtonInGroupService } from '../providers/button-in-group.service';\n\n@Component({\n selector: 'clr-button-group',\n templateUrl: 'button-group.html',\n providers: [ButtonInGroupService, ClrDestroyService, BUTTON_GROUP_FOCUS_HANDLER_PROVIDER, FOCUS_SERVICE_PROVIDER],\n hostDirectives: [ClrPopoverHostDirective],\n host: { '[class.btn-group]': 'true' },\n standalone: false,\n})\nexport class ClrButtonGroup implements AfterContentInit, AfterViewInit {\n @Input('clrToggleButtonAriaLabel') clrToggleButtonAriaLabel: string = this.commonStrings.keys.rowActions;\n\n @ViewChild('menuToggle') menuToggle: ElementRef<HTMLElement>;\n @ViewChild('menu') menu: ElementRef<HTMLElement>;\n\n @ContentChildren(ClrButton) buttons: QueryList<ClrButton>;\n\n popoverId = uniqueIdFactory();\n InitialFocus = InitialFocus;\n\n inlineButtons: ClrButton[] = [];\n menuButtons: ClrButton[] = [];\n protected popoverType = ClrPopoverType.DROPDOWN;\n private _menuPosition = ClrPopoverPosition.BOTTOM_LEFT;\n\n constructor(\n public buttonGroupNewService: ButtonInGroupService,\n private popoverService: ClrPopoverService,\n public commonStrings: ClrCommonStringsService,\n private destroy$: ClrDestroyService,\n private focusHandler: ButtonGroupFocusHandler\n ) {}\n\n @Input('clrMenuPosition')\n get menuPosition(): ClrPopoverPosition {\n return this._menuPosition;\n }\n set menuPosition(pos: ClrPopoverPosition | string) {\n if (!pos) {\n return;\n }\n\n const posIndex = DROPDOWN_POSITIONS.indexOf(pos as ClrPopoverPosition);\n\n if (posIndex === -1) {\n return;\n }\n\n this._menuPosition = DROPDOWN_POSITIONS[posIndex];\n }\n\n get open() {\n return this.popoverService.open;\n }\n\n /**\n * 1. Initializes the initial Button Group View\n * 2. Subscribes to changes on the ContentChildren\n * in case the user content projection changes\n */\n ngAfterContentInit() {\n this.initializeButtons();\n this.buttonGroupNewService.changes.pipe(takeUntil(this.destroy$)).subscribe(button => this.rearrangeButton(button));\n this.buttons.changes.subscribe(() => {\n this.initializeButtons();\n });\n }\n\n ngAfterViewInit() {\n this.handleFocusOnMenuOpen();\n }\n\n /**\n * Moves the button into the other ViewContainer\n * when an update is received.\n *\n * @param button\n */\n rearrangeButton(button: ClrButton): void {\n let fromView: ClrButton[];\n let toView: ClrButton[];\n if (button.inMenu) {\n fromView = this.inlineButtons;\n toView = this.menuButtons;\n } else {\n fromView = this.menuButtons;\n toView = this.inlineButtons;\n }\n const index: number = fromView.indexOf(button);\n if (index > -1) {\n fromView.splice(index, 1);\n const moveIndex = this.getMoveIndex(button);\n if (moveIndex <= toView.length) {\n toView.splice(moveIndex, 0, button);\n }\n }\n }\n\n openMenu(event: Event, initialFocus: InitialFocus) {\n this.focusHandler.initialFocus = initialFocus;\n if (!this.popoverService.open) {\n this.popoverService.toggleWithEvent(event);\n }\n }\n\n /**\n * Author: Eudes\n *\n * Finds the order of a button w.r.t other buttons\n *\n * @param buttonToMove\n * @returns\n */\n getMoveIndex(buttonToMove: ClrButton): number {\n const tempArr: ClrButton[] = this.buttons.filter(button => button.inMenu === buttonToMove.inMenu);\n return tempArr.indexOf(buttonToMove);\n }\n\n initializeButtons(): void {\n const tempInlineButtons: ClrButton[] = [];\n const tempInMenuButtons: ClrButton[] = [];\n this.buttons.forEach(button => {\n if (button.inMenu) {\n tempInMenuButtons.push(button);\n } else {\n tempInlineButtons.push(button);\n }\n });\n this.inlineButtons = tempInlineButtons;\n this.menuButtons = tempInMenuButtons;\n }\n\n private handleFocusOnMenuOpen() {\n this.popoverService.popoverVisible.pipe(takeUntil(this.destroy$)).subscribe(visible => {\n if (visible) {\n this.focusHandler.initialize({\n menu: this.menu.nativeElement,\n menuToggle: this.menuToggle.nativeElement,\n });\n }\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\n@for (inlineButton of inlineButtons; track inlineButton) {\n<ng-template [ngTemplateOutlet]=\"inlineButton.templateRef\"></ng-template>\n} @if (menuButtons.length > 0) {\n<div class=\"btn-group-overflow open\" [ngClass]=\"menuPosition\">\n <button\n #menuToggle\n class=\"btn dropdown-toggle\"\n clrPopoverOrigin\n clrPopoverOpenCloseButton\n (keydown.arrowup)=\"openMenu($event, InitialFocus.LAST_ITEM)\"\n (keydown.arrowdown)=\"openMenu($event, InitialFocus.FIRST_ITEM)\"\n [attr.aria-controls]=\"popoverId\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-label]=\"clrToggleButtonAriaLabel\"\n >\n <cds-icon shape=\"ellipsis-horizontal\" [attr.title]=\"commonStrings.keys.more\"></cds-icon>\n </button>\n <div\n #menu\n role=\"menu\"\n class=\"dropdown-menu clr-button-group-menu\"\n [id]=\"popoverId\"\n [attr.id]=\"popoverId\"\n [attr.aria-hidden]=\"!open\"\n *clrPopoverContent=\"open; at menuPosition; type: popoverType; outsideClickToClose: true; scrollToClose: true\"\n >\n @for (menuButton of menuButtons; track menuButton) {\n <ng-template [ngTemplateOutlet]=\"menuButton.templateRef\"></ng-template>\n }\n </div>\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 { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClrIcon } from '@clr/angular/icon';\nimport { ClrPopoverModuleNext } from '@clr/angular/popover/common';\n\nimport { ClrButton } from './button';\nimport { ClrButtonGroup } from './button-group';\n\nexport const CLR_BUTTON_GROUP_DIRECTIVES: Type<any>[] = [ClrButton, ClrButtonGroup];\n\n@NgModule({\n imports: [CommonModule, ClrIcon, ClrPopoverModuleNext],\n declarations: [CLR_BUTTON_GROUP_DIRECTIVES],\n exports: [CLR_BUTTON_GROUP_DIRECTIVES],\n})\nexport class ClrButtonGroupModule {}\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, keyframes, style, transition, trigger } from '@angular/animations';\nimport { Component, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport { ClrLoadingState, LoadingListener } from '@clr/angular/utils';\n\n// minimum width to fit loading spinner\nconst MIN_BUTTON_WIDTH = 42;\n\n@Component({\n selector: 'button[clrLoading]',\n template: `\n <span @parent>\n @switch (state) {\n @case (buttonState.LOADING) {\n <span @spinner class=\"spinner spinner-inline\"></span>\n }\n @case (buttonState.SUCCESS) {\n <span\n @validated\n (@validated.done)=\"this.loadingStateChange(this.buttonState.DEFAULT)\"\n class=\"spinner spinner-inline spinner-check\"\n ></span>\n }\n @case (buttonState.DEFAULT) {\n <span @defaultButton class=\"clr-loading-btn-content\">\n <ng-content></ng-content>\n </span>\n }\n }\n </span>\n `,\n providers: [{ provide: LoadingListener, useExisting: ClrLoadingButton }],\n animations: [\n trigger('parent', [\n // Skip :enter animation on first render.\n // The button text/content should only be faded when transitioning to or from a non-default state.\n transition(':enter', []),\n ]),\n trigger('defaultButton', [\n transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),\n // TODO: see if we can get leave animation to work before spinner's enter animation\n transition(':leave', [style({ opacity: 0 })]),\n ]),\n trigger('spinner', [\n transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate('100ms ease-out', style({ opacity: 0 }))]),\n ]),\n trigger('validated', [\n transition(':enter', [\n animate(\n '600ms',\n keyframes([\n style({ transform: 'scale(0,0)', offset: 0 }),\n style({ opacity: 1, offset: 0.2 }),\n style({ transform: 'scale(1.2,1.2)', offset: 0.4 }),\n style({ transform: 'scale(.9,.9)', offset: 0.6 }),\n style({ transform: 'scale(1,1)', offset: 1 }),\n ])\n ),\n ]),\n transition(':leave', [style({ opacity: 1 }), animate('100ms ease-out', style({ opacity: 0 }))]),\n ]),\n ],\n host: { '[attr.disabled]': \"disabled? '' : null\" },\n standalone: false,\n})\nexport class ClrLoadingButton implements LoadingListener {\n @Input('disabled') disabled: boolean;\n\n @Output('clrLoadingChange') clrLoadingChange = new EventEmitter<ClrLoadingState>(false);\n\n buttonState = ClrLoadingState;\n state: ClrLoadingState = ClrLoadingState.DEFAULT;\n\n constructor(\n public el: ElementRef<HTMLButtonElement>,\n private renderer: Renderer2\n ) {}\n\n loadingStateChange(state: ClrLoadingState): void {\n if (state === this.state) {\n return;\n }\n this.state = state;\n\n switch (state) {\n case ClrLoadingState.DEFAULT:\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'transform'); // for chromium render bug see issue https://github.com/vmware/clarity/issues/2700\n if (!this.disabled) {\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n break;\n case ClrLoadingState.LOADING:\n this.setExplicitButtonWidth();\n this.renderer.setStyle(this.el.nativeElement, 'transform', 'translatez(0)'); // for chromium render bug see issue https://github.com/vmware/clarity/issues/2700\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', '');\n break;\n case ClrLoadingState.SUCCESS:\n this.setExplicitButtonWidth();\n break;\n case ClrLoadingState.ERROR:\n this.loadingStateChange(ClrLoadingState.DEFAULT);\n break;\n default:\n break;\n }\n this.clrLoadingChange.emit(state);\n }\n\n private setExplicitButtonWidth() {\n if (this.el.nativeElement && this.el.nativeElement.getBoundingClientRect) {\n const boundingClientRect = this.el.nativeElement.getBoundingClientRect();\n const width = Math.max(MIN_BUTTON_WIDTH, boundingClientRect.width);\n this.renderer.setStyle(this.el.nativeElement, 'width', `${width}px`);\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 { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\n\nimport { ClrLoadingButton } from './loading-button';\n\nexport const CLR_LOADING_BUTTON_DIRECTIVES: Type<any>[] = [ClrLoadingButton];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [CLR_LOADING_BUTTON_DIRECTIVES],\n exports: [CLR_LOADING_BUTTON_DIRECTIVES],\n})\nexport class ClrLoadingButtonModule {}\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 { NgModule } from '@angular/core';\nimport { ClarityIcons, ellipsisHorizontalIcon } from '@clr/angular/icon';\n\nimport { ClrButtonGroupModule } from './button-group/button-group.module';\nimport { ClrLoadingButtonModule } from './button-loading/loading-button.module';\n\n@NgModule({\n exports: [ClrLoadingButtonModule, ClrButtonGroupModule],\n})\nexport class ClrButtonModule {\n constructor() {\n ClarityIcons.addIcons(ellipsisHorizontalIcon);\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 './button';\nexport * from './button-group';\nexport * from './button-group.module';\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 './loading-button';\nexport * from './loading-button.module';\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 './button.module';\nexport * from './button-group/index';\nexport * from './button-loading/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ButtonInGroupService","i1","i1.ButtonInGroupService","i4.ButtonGroupFocusHandler"],"mappings":"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"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, EventEmitter, Directive } from '@angular/core';
|
|
3
|
+
import * as i2 from '@clr/angular/utils';
|
|
4
|
+
import { uniqueIdFactory, defaultAnimationTiming } from '@clr/angular/utils';
|
|
5
|
+
import { map, filter, tap } from 'rxjs/operators';
|
|
6
|
+
import { BehaviorSubject } from 'rxjs';
|
|
7
|
+
import { trigger, transition, style, animate } from '@angular/animations';
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
11
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
12
|
+
* This software is released under MIT license.
|
|
13
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
14
|
+
*/
|
|
15
|
+
let panelGroupCount = 0;
|
|
16
|
+
class CollapsiblePanelModel {
|
|
17
|
+
constructor(id, groupId) {
|
|
18
|
+
this.id = id;
|
|
19
|
+
this.groupId = groupId;
|
|
20
|
+
this.index = null;
|
|
21
|
+
this.disabled = false;
|
|
22
|
+
this.open = false;
|
|
23
|
+
this.templateId = `${this.id}-${this.groupId}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
class CollapsiblePanelGroupModel {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.panelGroupCount = panelGroupCount++;
|
|
29
|
+
this._panels = {};
|
|
30
|
+
}
|
|
31
|
+
get panels() {
|
|
32
|
+
return Object.keys(this._panels).map(id => this._panels[id]);
|
|
33
|
+
}
|
|
34
|
+
updatePanelOrder(ids) {
|
|
35
|
+
ids.forEach((id, index) => {
|
|
36
|
+
if (this._panels[id]) {
|
|
37
|
+
this._panels[id].index = index;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
this.removeOldPanels(ids);
|
|
41
|
+
}
|
|
42
|
+
addPanel(id, open = false) {
|
|
43
|
+
this._panels[id] = new CollapsiblePanelModel(id, this.panelGroupCount);
|
|
44
|
+
this._panels[id].open = open;
|
|
45
|
+
}
|
|
46
|
+
togglePanel(panelId, open) {
|
|
47
|
+
if (!this._panels[panelId]) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const panelIsOpen = this._panels[panelId].open;
|
|
51
|
+
this._panels[panelId].open = open !== undefined ? open : !panelIsOpen;
|
|
52
|
+
}
|
|
53
|
+
disablePanel(panelId, disabled) {
|
|
54
|
+
if (!this._panels[panelId]) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this._panels[panelId].disabled = disabled;
|
|
58
|
+
}
|
|
59
|
+
removeOldPanels(ids) {
|
|
60
|
+
this.panels
|
|
61
|
+
.filter(panel => ids.find(id => id === panel.id) === undefined)
|
|
62
|
+
.forEach(panel => delete this._panels[panel.id]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
68
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
69
|
+
* This software is released under MIT license.
|
|
70
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
71
|
+
*/
|
|
72
|
+
class CollapsiblePanelService {
|
|
73
|
+
constructor() {
|
|
74
|
+
this.panelGroup = new CollapsiblePanelGroupModel();
|
|
75
|
+
this._panelsChanges = new BehaviorSubject(this.panelGroup.panels);
|
|
76
|
+
}
|
|
77
|
+
getPanelChanges(panelId) {
|
|
78
|
+
return this._panelsChanges.pipe(map(panels => panels.find(s => s.id === panelId)));
|
|
79
|
+
}
|
|
80
|
+
addPanel(panelId, open = false) {
|
|
81
|
+
this.panelGroup.addPanel(panelId, open);
|
|
82
|
+
this.emitUpdatedPanels();
|
|
83
|
+
}
|
|
84
|
+
togglePanel(panelId, open) {
|
|
85
|
+
this.panelGroup.togglePanel(panelId, open);
|
|
86
|
+
this.emitUpdatedPanels();
|
|
87
|
+
}
|
|
88
|
+
disablePanel(panelId, disabled) {
|
|
89
|
+
this.panelGroup.disablePanel(panelId, disabled);
|
|
90
|
+
this.emitUpdatedPanels();
|
|
91
|
+
}
|
|
92
|
+
updatePanelOrder(ids) {
|
|
93
|
+
this.panelGroup.updatePanelOrder(ids);
|
|
94
|
+
this.emitUpdatedPanels();
|
|
95
|
+
}
|
|
96
|
+
emitUpdatedPanels() {
|
|
97
|
+
this._panelsChanges.next(this.panelGroup.panels);
|
|
98
|
+
}
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsiblePanelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
100
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsiblePanelService }); }
|
|
101
|
+
}
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsiblePanelService, decorators: [{
|
|
103
|
+
type: Injectable
|
|
104
|
+
}] });
|
|
105
|
+
|
|
106
|
+
/*
|
|
107
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
108
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
109
|
+
* This software is released under MIT license.
|
|
110
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
111
|
+
*/
|
|
112
|
+
class CollapsiblePanel {
|
|
113
|
+
constructor(panelService, ifExpandService, cdr) {
|
|
114
|
+
this.panelService = panelService;
|
|
115
|
+
this.ifExpandService = ifExpandService;
|
|
116
|
+
this.cdr = cdr;
|
|
117
|
+
this.panelOpen = false;
|
|
118
|
+
this.panelOpenChange = new EventEmitter();
|
|
119
|
+
this._id = uniqueIdFactory();
|
|
120
|
+
}
|
|
121
|
+
get id() {
|
|
122
|
+
return this._id;
|
|
123
|
+
}
|
|
124
|
+
set id(value) {
|
|
125
|
+
this._id = value;
|
|
126
|
+
}
|
|
127
|
+
ngOnInit() {
|
|
128
|
+
this.panelService.addPanel(this.id, this.panelOpen);
|
|
129
|
+
this.panelService.disablePanel(this.id, this.disabled);
|
|
130
|
+
this.panel = this.panelService.getPanelChanges(this.id).pipe(filter(panel => !!panel), tap(panel => this.emitPanelChange(panel)));
|
|
131
|
+
}
|
|
132
|
+
togglePanel() {
|
|
133
|
+
this.panelService.togglePanel(this.id);
|
|
134
|
+
}
|
|
135
|
+
collapsePanelOnAnimationDone(panel) {
|
|
136
|
+
if (!panel.open) {
|
|
137
|
+
this.ifExpandService.expanded = false;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
handlePanelInputChanges(changes) {
|
|
141
|
+
if (this.panel && changes.panelOpen && changes.panelOpen.currentValue !== changes.panelOpen.previousValue) {
|
|
142
|
+
this.panelService.togglePanel(this.id, changes.panelOpen.currentValue);
|
|
143
|
+
}
|
|
144
|
+
if (this.panel && changes.disabled && changes.disabled.currentValue !== changes.disabled.previousValue) {
|
|
145
|
+
this.panelService.disablePanel(this.id, changes.disabled.currentValue);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
emitPanelChange(panel) {
|
|
149
|
+
if (panel.index !== this._panelIndex) {
|
|
150
|
+
this._panelIndex = panel.index;
|
|
151
|
+
this.cdr.detectChanges();
|
|
152
|
+
}
|
|
153
|
+
if (panel.open !== this.panelOpen) {
|
|
154
|
+
this.panelOpenChange.emit(panel.open);
|
|
155
|
+
this.panelOpen = panel.open;
|
|
156
|
+
}
|
|
157
|
+
if (panel.open) {
|
|
158
|
+
this.ifExpandService.expanded = true;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsiblePanel, deps: [{ token: CollapsiblePanelService }, { token: i2.IfExpandService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
162
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: CollapsiblePanel, isStandalone: true, ngImport: i0 }); }
|
|
163
|
+
}
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsiblePanel, decorators: [{
|
|
165
|
+
type: Directive
|
|
166
|
+
}], ctorParameters: () => [{ type: CollapsiblePanelService }, { type: i2.IfExpandService }, { type: i0.ChangeDetectorRef }] });
|
|
167
|
+
|
|
168
|
+
/*
|
|
169
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
170
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
171
|
+
* This software is released under MIT license.
|
|
172
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
173
|
+
*/
|
|
174
|
+
const skipInitialRenderTrigger = trigger('skipInitialRender', [transition(':enter', [])]);
|
|
175
|
+
const panelExpandTransition = transition('void => *', [
|
|
176
|
+
style({ display: 'block', height: 0 }),
|
|
177
|
+
animate(defaultAnimationTiming, style({ height: '*' })),
|
|
178
|
+
]);
|
|
179
|
+
const panelCollapseTransition = transition('* => void', [
|
|
180
|
+
style({ display: 'block' }),
|
|
181
|
+
animate(defaultAnimationTiming, style({ height: 0, display: 'none' })),
|
|
182
|
+
]);
|
|
183
|
+
const collapsiblePanelExpandAnimation = [skipInitialRenderTrigger, trigger('toggle', [panelExpandTransition])];
|
|
184
|
+
const collapsiblePanelAnimation = [
|
|
185
|
+
skipInitialRenderTrigger,
|
|
186
|
+
trigger('toggle', [panelExpandTransition, panelCollapseTransition]),
|
|
187
|
+
];
|
|
188
|
+
|
|
189
|
+
/*
|
|
190
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
191
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
192
|
+
* This software is released under MIT license.
|
|
193
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Generated bundle index. Do not edit.
|
|
198
|
+
*/
|
|
199
|
+
|
|
200
|
+
export { CollapsiblePanel, CollapsiblePanelGroupModel, CollapsiblePanelModel, CollapsiblePanelService, collapsiblePanelAnimation, collapsiblePanelExpandAnimation, panelCollapseTransition, panelExpandTransition, skipInitialRenderTrigger };
|
|
201
|
+
//# sourceMappingURL=clr-angular-collapsible-panel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clr-angular-collapsible-panel.mjs","sources":["../../../projects/angular/collapsible-panel/models/collapsible-panel.model.ts","../../../projects/angular/collapsible-panel/providers/collapsible-panel.service.ts","../../../projects/angular/collapsible-panel/collapsible-panel.ts","../../../projects/angular/collapsible-panel/utils/animation.ts","../../../projects/angular/collapsible-panel/index.ts","../../../projects/angular/collapsible-panel/clr-angular-collapsible-panel.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\nlet panelGroupCount = 0;\n\nexport class CollapsiblePanelModel {\n index: number = null;\n disabled = false;\n open = false;\n templateId = `${this.id}-${this.groupId}`;\n constructor(\n public id: string,\n public groupId: number | string\n ) {}\n}\n\nexport class CollapsiblePanelGroupModel {\n protected panelGroupCount = panelGroupCount++;\n protected _panels: { [id: string]: CollapsiblePanelModel } = {};\n\n get panels(): CollapsiblePanelModel[] {\n return Object.keys(this._panels).map(id => this._panels[id]);\n }\n\n updatePanelOrder(ids: string[]) {\n ids.forEach((id, index) => {\n if (this._panels[id]) {\n this._panels[id].index = index;\n }\n });\n this.removeOldPanels(ids);\n }\n\n addPanel(id: string, open = false) {\n this._panels[id] = new CollapsiblePanelModel(id, this.panelGroupCount);\n this._panels[id].open = open;\n }\n\n togglePanel(panelId: string, open?: boolean) {\n if (!this._panels[panelId]) {\n return;\n }\n\n const panelIsOpen = this._panels[panelId].open;\n this._panels[panelId].open = open !== undefined ? open : !panelIsOpen;\n }\n\n disablePanel(panelId: string, disabled: boolean) {\n if (!this._panels[panelId]) {\n return;\n }\n\n this._panels[panelId].disabled = disabled;\n }\n\n private removeOldPanels(ids: string[]) {\n this.panels\n .filter(panel => ids.find(id => id === panel.id) === undefined)\n .forEach(panel => delete this._panels[panel.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 { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { CollapsiblePanelGroupModel, CollapsiblePanelModel } from '../models/collapsible-panel.model';\n\n@Injectable()\nexport class CollapsiblePanelService {\n protected panelGroup = new CollapsiblePanelGroupModel();\n protected readonly _panelsChanges = new BehaviorSubject(this.panelGroup.panels);\n\n getPanelChanges(panelId: string): Observable<CollapsiblePanelModel> {\n return this._panelsChanges.pipe(map(panels => panels.find(s => s.id === panelId)));\n }\n\n addPanel(panelId: string, open = false) {\n this.panelGroup.addPanel(panelId, open);\n this.emitUpdatedPanels();\n }\n\n togglePanel(panelId: string, open?: boolean) {\n this.panelGroup.togglePanel(panelId, open);\n this.emitUpdatedPanels();\n }\n\n disablePanel(panelId: string, disabled?: boolean) {\n this.panelGroup.disablePanel(panelId, disabled);\n this.emitUpdatedPanels();\n }\n\n updatePanelOrder(ids: string[]) {\n this.panelGroup.updatePanelOrder(ids);\n this.emitUpdatedPanels();\n }\n\n protected emitUpdatedPanels() {\n this._panelsChanges.next(this.panelGroup.panels);\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, EventEmitter, OnInit, SimpleChanges } from '@angular/core';\nimport { IfExpandService, uniqueIdFactory } from '@clr/angular/utils';\nimport { Observable } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\n\nimport { CollapsiblePanelModel } from './models/collapsible-panel.model';\nimport { CollapsiblePanelService } from './providers/collapsible-panel.service';\n\n@Directive()\nexport abstract class CollapsiblePanel implements OnInit {\n panelOpen = false;\n panelOpenChange = new EventEmitter<boolean>();\n\n panel: Observable<CollapsiblePanelModel>;\n\n protected _panelIndex: number;\n private _id = uniqueIdFactory();\n\n constructor(\n protected panelService: CollapsiblePanelService,\n protected ifExpandService: IfExpandService,\n protected cdr: ChangeDetectorRef\n ) {}\n\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value;\n }\n\n abstract get disabled(): boolean;\n\n ngOnInit() {\n this.panelService.addPanel(this.id, this.panelOpen);\n this.panelService.disablePanel(this.id, this.disabled);\n this.panel = this.panelService.getPanelChanges(this.id).pipe(\n filter(panel => !!panel),\n tap(panel => this.emitPanelChange(panel))\n );\n }\n\n togglePanel() {\n this.panelService.togglePanel(this.id);\n }\n\n collapsePanelOnAnimationDone(panel: CollapsiblePanelModel) {\n if (!panel.open) {\n this.ifExpandService.expanded = false;\n }\n }\n\n protected handlePanelInputChanges(changes: SimpleChanges) {\n if (this.panel && changes.panelOpen && changes.panelOpen.currentValue !== changes.panelOpen.previousValue) {\n this.panelService.togglePanel(this.id, changes.panelOpen.currentValue);\n }\n\n if (this.panel && changes.disabled && changes.disabled.currentValue !== changes.disabled.previousValue) {\n this.panelService.disablePanel(this.id, changes.disabled.currentValue);\n }\n }\n\n private emitPanelChange(panel: CollapsiblePanelModel) {\n if (panel.index !== this._panelIndex) {\n this._panelIndex = panel.index;\n this.cdr.detectChanges();\n }\n\n if (panel.open !== this.panelOpen) {\n this.panelOpenChange.emit(panel.open);\n this.panelOpen = panel.open;\n }\n\n if (panel.open) {\n this.ifExpandService.expanded = true;\n }\n }\n\n abstract getPanelStateClasses(panel: CollapsiblePanelModel): string;\n abstract getContentId(id: string): string;\n abstract getHeaderId(id: string): string;\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, style, transition, trigger } from '@angular/animations';\nimport { defaultAnimationTiming } from '@clr/angular/utils';\n\nexport const skipInitialRenderTrigger = trigger('skipInitialRender', [transition(':enter', [])]);\n\nexport const panelExpandTransition = transition('void => *', [\n style({ display: 'block', height: 0 }),\n animate(defaultAnimationTiming, style({ height: '*' })),\n]);\n\nexport const panelCollapseTransition = transition('* => void', [\n style({ display: 'block' }),\n animate(defaultAnimationTiming, style({ height: 0, display: 'none' })),\n]);\n\nexport const collapsiblePanelExpandAnimation = [skipInitialRenderTrigger, trigger('toggle', [panelExpandTransition])];\n\nexport const collapsiblePanelAnimation = [\n skipInitialRenderTrigger,\n trigger('toggle', [panelExpandTransition, panelCollapseTransition]),\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 './collapsible-panel';\nexport * from './models/collapsible-panel.model';\nexport * from './providers/collapsible-panel.service';\nexport * from './utils/animation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.CollapsiblePanelService"],"mappings":";;;;;;;;AAAA;;;;;AAKG;AAEH,IAAI,eAAe,GAAG,CAAC;MAEV,qBAAqB,CAAA;IAKhC,WAAA,CACS,EAAU,EACV,OAAwB,EAAA;QADxB,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,OAAO,GAAP,OAAO;QANhB,IAAA,CAAA,KAAK,GAAW,IAAI;QACpB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,IAAI,GAAG,KAAK;QACZ,IAAA,CAAA,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAA,CAAE;IAItC;AACJ;MAEY,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;QACY,IAAA,CAAA,eAAe,GAAG,eAAe,EAAE;QACnC,IAAA,CAAA,OAAO,GAA4C,EAAE;IA0CjE;AAxCE,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9D;AAEA,IAAA,gBAAgB,CAAC,GAAa,EAAA;QAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,KAAI;AACxB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACpB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK;YAChC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;IAC3B;AAEA,IAAA,QAAQ,CAAC,EAAU,EAAE,IAAI,GAAG,KAAK,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI;IAC9B;IAEA,WAAW,CAAC,OAAe,EAAE,IAAc,EAAA;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B;QACF;QAEA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI;QAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW;IACvE;IAEA,YAAY,CAAC,OAAe,EAAE,QAAiB,EAAA;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B;QACF;QAEA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG,QAAQ;IAC3C;AAEQ,IAAA,eAAe,CAAC,GAAa,EAAA;AACnC,QAAA,IAAI,CAAC;aACF,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,KAAK,SAAS;AAC7D,aAAA,OAAO,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpD;AACD;;AChED;;;;;AAKG;MASU,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,0BAA0B,EAAE;QACpC,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AA6BhF,IAAA;AA3BC,IAAA,eAAe,CAAC,OAAe,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;IACpF;AAEA,IAAA,QAAQ,CAAC,OAAe,EAAE,IAAI,GAAG,KAAK,EAAA;QACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;QACvC,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEA,WAAW,CAAC,OAAe,EAAE,IAAc,EAAA;QACzC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;QAC1C,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEA,YAAY,CAAC,OAAe,EAAE,QAAkB,EAAA;QAC9C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/C,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEA,IAAA,gBAAgB,CAAC,GAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEU,iBAAiB,GAAA;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAClD;8GA9BW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACbD;;;;;AAKG;MAWmB,gBAAgB,CAAA;AASpC,IAAA,WAAA,CACY,YAAqC,EACrC,eAAgC,EAChC,GAAsB,EAAA;QAFtB,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,GAAG,GAAH,GAAG;QAXf,IAAA,CAAA,SAAS,GAAG,KAAK;AACjB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW;QAKrC,IAAA,CAAA,GAAG,GAAG,eAAe,EAAE;IAM5B;AAEH,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,GAAG;IACjB;IACA,IAAI,EAAE,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK;IAClB;IAIA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;AACnD,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;AACtD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAC1D,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,EACxB,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC1C;IACH;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;IACxC;AAEA,IAAA,4BAA4B,CAAC,KAA4B,EAAA;AACvD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK;QACvC;IACF;AAEU,IAAA,uBAAuB,CAAC,OAAsB,EAAA;QACtD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE;AACzG,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;QACxE;QAEA,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE;AACtG,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxE;IACF;AAEQ,IAAA,eAAe,CAAC,KAA4B,EAAA;QAClD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK;AAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QAC1B;QAEA,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE;YACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI;QAC7B;AAEA,QAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI;QACtC;IACF;8GAnEoB,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBADrC;;;ACfD;;;;;AAKG;AAKI,MAAM,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAExF,MAAM,qBAAqB,GAAG,UAAU,CAAC,WAAW,EAAE;IAC3D,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACtC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACxD,CAAA;AAEM,MAAM,uBAAuB,GAAG,UAAU,CAAC,WAAW,EAAE;AAC7D,IAAA,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC3B,IAAA,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACvE,CAAA;AAEM,MAAM,+BAA+B,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAE7G,MAAM,yBAAyB,GAAG;IACvC,wBAAwB;IACxB,OAAO,CAAC,QAAQ,EAAE,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;;;AC1BrE;;;;;AAKG;;ACLH;;AAEG;;;;"}
|