@clr/angular 18.0.0-beta.1 → 18.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/clr-angular-accordion.mjs +1 -1
- package/fesm2022/clr-angular-accordion.mjs.map +1 -1
- package/fesm2022/clr-angular-button.mjs +6 -6
- package/fesm2022/clr-angular-button.mjs.map +1 -1
- package/fesm2022/clr-angular-data-datagrid.mjs +27 -35
- package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
- package/fesm2022/clr-angular-data-tree-view.mjs +3 -3
- package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -1
- package/fesm2022/clr-angular-data.mjs +11 -9116
- package/fesm2022/clr-angular-data.mjs.map +1 -1
- package/fesm2022/clr-angular-emphasis-alert.mjs +2 -2
- package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -1
- package/fesm2022/clr-angular-emphasis.mjs +12 -778
- package/fesm2022/clr-angular-emphasis.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-checkbox.mjs +13 -44
- package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-combobox.mjs +420 -90
- package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-common.mjs +62 -57
- package/fesm2022/clr-angular-forms-common.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-datalist.mjs +2 -14
- package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-datepicker.mjs +20 -28
- package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-file-input.mjs +78 -62
- package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-input.mjs +4 -18
- package/fesm2022/clr-angular-forms-input.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-number-input.mjs +2 -14
- package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-password.mjs +2 -14
- package/fesm2022/clr-angular-forms-password.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-radio.mjs +13 -44
- package/fesm2022/clr-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-range.mjs +3 -16
- package/fesm2022/clr-angular-forms-range.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-select.mjs +3 -16
- package/fesm2022/clr-angular-forms-select.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-textarea.mjs +4 -17
- package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/clr-angular-forms.mjs +68 -8560
- package/fesm2022/clr-angular-forms.mjs.map +1 -1
- package/fesm2022/clr-angular-icon.mjs +10 -0
- package/fesm2022/clr-angular-icon.mjs.map +1 -1
- package/fesm2022/clr-angular-layout-nav.mjs +27 -25
- package/fesm2022/clr-angular-layout-nav.mjs.map +1 -1
- package/fesm2022/clr-angular-layout-tabs.mjs +1 -1
- package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -1
- package/fesm2022/clr-angular-layout.mjs +15 -2057
- package/fesm2022/clr-angular-layout.mjs.map +1 -1
- package/fesm2022/clr-angular-modal.mjs +4 -5
- package/fesm2022/clr-angular-modal.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-common.mjs +151 -85
- package/fesm2022/clr-angular-popover-common.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-dropdown.mjs +7 -4
- package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-signpost.mjs +30 -15
- package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-tooltip.mjs +7 -7
- package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -1
- package/fesm2022/clr-angular-popover.mjs +12 -2242
- package/fesm2022/clr-angular-popover.mjs.map +1 -1
- package/fesm2022/clr-angular-stepper.mjs +5 -5
- package/fesm2022/clr-angular-stepper.mjs.map +1 -1
- package/fesm2022/clr-angular-utils.mjs +20 -485
- package/fesm2022/clr-angular-utils.mjs.map +1 -1
- package/fesm2022/clr-angular-wizard.mjs +434 -223
- package/fesm2022/clr-angular-wizard.mjs.map +1 -1
- package/fesm2022/clr-angular.mjs +94 -38740
- package/fesm2022/clr-angular.mjs.map +1 -1
- package/package.json +10 -5
- package/popover/common/README.md +14 -12
- package/schematics/collection.json +14 -0
- 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 +1 -1
- package/types/clr-angular-button.d.ts +1 -1
- package/types/clr-angular-data-datagrid.d.ts +23 -33
- package/types/clr-angular-data-tree-view.d.ts +10 -1
- package/types/clr-angular-data.d.ts +4 -2136
- package/types/clr-angular-emphasis.d.ts +4 -220
- package/types/clr-angular-forms-combobox.d.ts +64 -11
- package/types/clr-angular-forms-common.d.ts +9 -9
- package/types/clr-angular-forms-datepicker.d.ts +8 -1
- package/types/clr-angular-forms-file-input.d.ts +6 -3
- package/types/clr-angular-forms.d.ts +26 -2062
- package/types/clr-angular-layout-nav.d.ts +6 -2
- package/types/clr-angular-layout-tabs.d.ts +1 -1
- package/types/clr-angular-layout.d.ts +6 -463
- package/types/clr-angular-popover-common.d.ts +38 -13
- package/types/clr-angular-popover-dropdown.d.ts +2 -1
- package/types/clr-angular-popover-signpost.d.ts +15 -7
- package/types/clr-angular-popover-tooltip.d.ts +1 -1
- package/types/clr-angular-popover.d.ts +7 -559
- package/types/clr-angular-stepper.d.ts +1 -1
- package/types/clr-angular-utils.d.ts +13 -175
- package/types/clr-angular-wizard.d.ts +92 -35
- package/types/clr-angular.d.ts +22 -10238
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clr-angular-forms.mjs","sources":["../../../projects/angular/forms/common/providers/control-id.service.ts","../../../projects/angular/forms/common/providers/container-id.service.ts","../../../projects/angular/forms/common/abstract-control.ts","../../../projects/angular/forms/common/error.ts","../../../projects/angular/forms/common/helper.ts","../../../projects/angular/forms/common/if-control-state/control-state.enum.ts","../../../projects/angular/forms/common/providers/layout.service.ts","../../../projects/angular/forms/common/providers/ng-control.service.ts","../../../projects/angular/forms/common/label.ts","../../../projects/angular/forms/common/success.ts","../../../projects/angular/forms/common/providers/control-class.service.ts","../../../projects/angular/forms/common/abstract-container.ts","../../../projects/angular/forms/common/control-container.ts","../../../projects/angular/forms/common/providers/mark-control.service.ts","../../../projects/angular/forms/common/wrapped-control.ts","../../../projects/angular/forms/common/control.ts","../../../projects/angular/forms/common/form.ts","../../../projects/angular/forms/common/if-control-state/abstract-if-state.ts","../../../projects/angular/forms/common/if-control-state/if-error.ts","../../../projects/angular/forms/common/if-control-state/if-success.ts","../../../projects/angular/forms/common/layout.ts","../../../projects/angular/forms/common/common.module.ts","../../../projects/angular/forms/common/providers/focus.service.ts","../../../projects/angular/forms/common/index.ts","../../../projects/angular/forms/checkbox/checkbox-wrapper.ts","../../../projects/angular/forms/checkbox/checkbox.ts","../../../projects/angular/forms/checkbox/checkbox-container.ts","../../../projects/angular/forms/checkbox/checkbox.module.ts","../../../projects/angular/forms/checkbox/index.ts","../../../projects/angular/forms/combobox/providers/combobox-container.service.ts","../../../projects/angular/forms/combobox/combobox-container.ts","../../../projects/angular/forms/combobox/model/multi-select-combobox.model.ts","../../../projects/angular/forms/combobox/model/single-select-combobox.model.ts","../../../projects/angular/forms/combobox/option-selected.directive.ts","../../../projects/angular/forms/combobox/model/pseudo-focus.model.ts","../../../projects/angular/forms/combobox/providers/option-selection.service.ts","../../../projects/angular/forms/combobox/providers/combobox-focus-handler.service.ts","../../../projects/angular/forms/combobox/option.ts","../../../projects/angular/forms/combobox/options.ts","../../../projects/angular/forms/combobox/combobox.ts","../../../projects/angular/forms/combobox/combobox.html","../../../projects/angular/forms/combobox/option-items.directive.ts","../../../projects/angular/forms/combobox/option-group.ts","../../../projects/angular/forms/combobox/combobox.module.ts","../../../projects/angular/forms/combobox/index.ts","../../../projects/angular/forms/datalist/providers/datalist-id.service.ts","../../../projects/angular/forms/datalist/datalist.ts","../../../projects/angular/forms/datalist/datalist-container.ts","../../../projects/angular/forms/datalist/datalist-input.ts","../../../projects/angular/forms/datalist/datalist.module.ts","../../../projects/angular/forms/datalist/index.ts","../../../projects/angular/forms/datepicker/providers/date-form-control.service.ts","../../../projects/angular/forms/datepicker/model/day.model.ts","../../../projects/angular/forms/datepicker/utils/constants.ts","../../../projects/angular/forms/datepicker/utils/date-utils.ts","../../../projects/angular/forms/datepicker/providers/locale-helper.service.ts","../../../projects/angular/forms/datepicker/providers/date-io.service.ts","../../../projects/angular/forms/datepicker/model/calendar.model.ts","../../../projects/angular/forms/datepicker/providers/date-navigation.service.ts","../../../projects/angular/forms/datepicker/providers/datepicker-enabled.service.ts","../../../projects/angular/forms/datepicker/providers/view-manager.service.ts","../../../projects/angular/forms/datepicker/providers/datepicker-focus.service.ts","../../../projects/angular/forms/datepicker/monthpicker.ts","../../../projects/angular/forms/datepicker/model/year-range.model.ts","../../../projects/angular/forms/datepicker/yearpicker.ts","../../../projects/angular/forms/datepicker/model/day-view.model.ts","../../../projects/angular/forms/datepicker/model/calendar-view.model.ts","../../../projects/angular/forms/datepicker/day.ts","../../../projects/angular/forms/datepicker/calendar.ts","../../../projects/angular/forms/datepicker/calendar.html","../../../projects/angular/forms/datepicker/daypicker.ts","../../../projects/angular/forms/datepicker/daypicker.html","../../../projects/angular/forms/datepicker/datepicker-action-buttons.ts","../../../projects/angular/forms/datepicker/datepicker-view-manager.ts","../../../projects/angular/forms/datepicker/datepicker-view-manager.html","../../../projects/angular/forms/datepicker/date-container.ts","../../../projects/angular/forms/datepicker/date-input.ts","../../../projects/angular/forms/datepicker/date-single-input.ts","../../../projects/angular/forms/datepicker/date-start-input.ts","../../../projects/angular/forms/datepicker/date-end-input.ts","../../../projects/angular/forms/datepicker/date-input.validator.ts","../../../projects/angular/forms/datepicker/datepicker.module.ts","../../../projects/angular/forms/datepicker/index.ts","../../../projects/angular/forms/file-input/file-input.helpers.ts","../../../projects/angular/forms/file-input/file-messages.ts","../../../projects/angular/forms/file-input/file-messages-template.ts","../../../projects/angular/forms/file-input/file-list.ts","../../../projects/angular/forms/file-input/file-input-container.ts","../../../projects/angular/forms/file-input/file-input.ts","../../../projects/angular/forms/file-input/file-input-validator.ts","../../../projects/angular/forms/file-input/file-input-validator-errors.ts","../../../projects/angular/forms/file-input/file-input-value-accessor.ts","../../../projects/angular/forms/file-input/file-input.module.ts","../../../projects/angular/forms/file-input/index.ts","../../../projects/angular/forms/input/input-container.ts","../../../projects/angular/forms/input/input.ts","../../../projects/angular/forms/input/input.module.ts","../../../projects/angular/forms/input/index.ts","../../../projects/angular/forms/number-input/number-input-container.ts","../../../projects/angular/forms/number-input/number-input.ts","../../../projects/angular/forms/number-input/number-input.module.ts","../../../projects/angular/forms/number-input/index.ts","../../../projects/angular/forms/password/password-container.ts","../../../projects/angular/forms/password/password.ts","../../../projects/angular/forms/password/password.module.ts","../../../projects/angular/forms/password/index.ts","../../../projects/angular/forms/radio/radio-wrapper.ts","../../../projects/angular/forms/radio/radio.ts","../../../projects/angular/forms/radio/radio-container.ts","../../../projects/angular/forms/radio/radio.module.ts","../../../projects/angular/forms/radio/index.ts","../../../projects/angular/forms/select/select-container.ts","../../../projects/angular/forms/select/select.ts","../../../projects/angular/forms/select/select.module.ts","../../../projects/angular/forms/select/index.ts","../../../projects/angular/forms/textarea/textarea-container.ts","../../../projects/angular/forms/textarea/textarea.ts","../../../projects/angular/forms/textarea/textarea.module.ts","../../../projects/angular/forms/textarea/index.ts","../../../projects/angular/forms/range/range-container.ts","../../../projects/angular/forms/range/range.ts","../../../projects/angular/forms/range/range.module.ts","../../../projects/angular/forms/range/index.ts","../../../projects/angular/forms/forms.module.ts","../../../projects/angular/forms/index.ts","../../../projects/angular/forms/clr-angular-forms.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 { BehaviorSubject, Observable } from 'rxjs';\n\nlet counter = 0;\n\n@Injectable()\nexport class ControlIdService {\n private _id = 'clr-form-control-' + ++counter;\n private _idChange = new BehaviorSubject(this._id);\n\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value;\n this._idChange.next(value);\n }\n\n get idChange(): Observable<string> {\n return this._idChange.asObservable();\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';\n\nlet counter = 0;\n\n/**\n * @TODO No idea why I need to use provideIn .. without I'm getting error that\n * ContainerIdService is not defined - But this must be optional service!?\n *\n * There is something wrong - will come back to investigate it when I have more time\n *\n */\n@Injectable()\nexport class ContainerIdService {\n private _id = `clr-form-container-${++counter}`;\n private _idChange = new BehaviorSubject(this._id);\n\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value;\n this._idChange.next(value);\n }\n\n get idChange(): Observable<string> {\n return this._idChange.asObservable();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Optional } from '@angular/core';\n\nimport { ContainerIdService } from './providers/container-id.service';\nimport { ControlIdService } from './providers/control-id.service';\n\nexport const CONTROL_SUFFIX: { [key: string]: string | null } = {\n HELPER: 'helper',\n ERROR: 'error',\n SUCCESS: 'success',\n NONE: null,\n};\n\n@Directive()\nexport abstract class ClrAbstractControl {\n /**\n * Hold the suffix for the ID\n */\n controlIdSuffix = 'abstract';\n\n protected constructor(\n @Optional() protected controlIdService: ControlIdService,\n @Optional() protected containerIdService: ContainerIdService\n ) {}\n\n get id(): string {\n /**\n * The order of witch the id will be pick is:\n * - Container ID (Wrapper arround multiple Controls like, Checkbox, Radio, ...)\n * - Control ID (Single Control wrapper like Input, Textarea, Password, ...)\n * - None\n */\n if (this.containerIdService) {\n return `${this.containerIdService.id}-${this.controlIdSuffix}`;\n }\n\n if (this.controlIdService) {\n return `${this.controlIdService.id}-${this.controlIdSuffix}`;\n }\n\n return null;\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, Optional } from '@angular/core';\n\nimport { ClrAbstractControl, CONTROL_SUFFIX } from './abstract-control';\nimport { ContainerIdService } from './providers/container-id.service';\nimport { ControlIdService } from './providers/control-id.service';\n\n@Component({\n selector: 'clr-control-error',\n template: `<ng-content></ng-content>`,\n host: {\n '[class.clr-subtext]': 'true',\n '[class.error]': 'true',\n '[attr.id]': 'id',\n },\n standalone: false,\n})\nexport class ClrControlError extends ClrAbstractControl {\n override controlIdSuffix = CONTROL_SUFFIX.ERROR;\n\n constructor(\n @Optional() protected override controlIdService: ControlIdService,\n @Optional() protected override containerIdService: ContainerIdService\n ) {\n super(controlIdService, containerIdService);\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, Optional } from '@angular/core';\n\nimport { ClrAbstractControl, CONTROL_SUFFIX } from './abstract-control';\nimport { ContainerIdService } from './providers/container-id.service';\nimport { ControlIdService } from './providers/control-id.service';\n\n@Component({\n selector: 'clr-control-helper',\n template: `<ng-content></ng-content>`,\n host: {\n '[class.clr-subtext]': 'true',\n '[attr.id]': 'id',\n },\n standalone: false,\n})\nexport class ClrControlHelper extends ClrAbstractControl {\n override controlIdSuffix = CONTROL_SUFFIX.HELPER;\n\n constructor(\n @Optional() protected override controlIdService: ControlIdService,\n @Optional() protected override containerIdService: ContainerIdService\n ) {\n super(controlIdService, containerIdService);\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 CONTROL_STATE {\n VALID = 'VALID',\n INVALID = 'INVALID',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\nexport enum ClrFormLayout {\n VERTICAL = 'vertical',\n HORIZONTAL = 'horizontal',\n COMPACT = 'compact',\n}\n\n@Injectable()\nexport class LayoutService {\n readonly minLabelSize = 1;\n readonly maxLabelSize = 12;\n\n layout: ClrFormLayout | string = ClrFormLayout.HORIZONTAL;\n\n // This is basically a replacement for Object.values(), which IE11 and Node <9 don't support :(\n // String enums cannot be reverse-mapped, meaning ClrFormLayout['COMPACT'] does not return 'compact' so\n // this exists to deal with this little caveat to get the list of the values as an array.\n private layoutValues: string[] = Object.keys(ClrFormLayout).map(key => (ClrFormLayout as Record<string, any>)[key]);\n private _labelSize = 2;\n\n get labelSize(): number {\n return this._labelSize;\n }\n set labelSize(size: number) {\n if (this.labelSizeIsValid(size)) {\n this._labelSize = size;\n }\n }\n\n get layoutClass(): string {\n return `clr-form-${this.layout}`;\n }\n\n isVertical(): boolean {\n return this.layout === ClrFormLayout.VERTICAL;\n }\n\n isHorizontal(): boolean {\n return this.layout === ClrFormLayout.HORIZONTAL;\n }\n\n isCompact(): boolean {\n return this.layout === ClrFormLayout.COMPACT;\n }\n\n isValid(layout: string): boolean {\n return this.layoutValues.indexOf(layout) > -1;\n }\n\n labelSizeIsValid(labelSize: number): boolean {\n return Number.isInteger(labelSize) && labelSize >= this.minLabelSize && labelSize <= this.maxLabelSize;\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 { NgControl } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\n\nimport { ClrAbstractContainer } from '../abstract-container';\n\nexport interface Helpers {\n show?: boolean;\n showInvalid?: boolean;\n showValid?: boolean;\n showHelper?: boolean;\n}\n\n@Injectable()\nexport class NgControlService {\n container: ClrAbstractContainer;\n private _controls: NgControl[] = [];\n\n // Observable to subscribe to the control, since its not available immediately for projected content\n private _controlsChanges = new Subject<NgControl[]>();\n\n get controls() {\n return this._controls;\n }\n\n get controlsChanges(): Observable<NgControl[]> {\n return this._controlsChanges.asObservable();\n }\n\n get hasMultipleControls() {\n return this._controls?.length > 1;\n }\n\n addControl(control: NgControl) {\n this._controls.push(control);\n\n this.emitControlsChange(this._controls);\n }\n\n emitControlsChange(controls: NgControl[]) {\n this._controlsChanges.next(controls);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n ContentChild,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { ClrSignpost } from '@clr/angular/popover/signpost';\nimport { Subscription } from 'rxjs';\n\nimport { ControlIdService } from './providers/control-id.service';\nimport { LayoutService } from './providers/layout.service';\nimport { NgControlService } from './providers/ng-control.service';\n\n@Directive({\n selector: 'label',\n standalone: false,\n})\nexport class ClrControlLabel implements OnInit, OnDestroy {\n @Input('id') idInput: string;\n @HostBinding('attr.id') idAttr: string;\n\n @Input('for') @HostBinding('attr.for') forAttr: string;\n\n @ContentChild(ClrSignpost, { read: ElementRef }) private signpost: ElementRef;\n private enableGrid = true;\n private subscriptions: Subscription[] = [];\n\n constructor(\n @Optional() private controlIdService: ControlIdService,\n @Optional() private layoutService: LayoutService,\n @Optional() private ngControlService: NgControlService,\n private renderer: Renderer2,\n private el: ElementRef<HTMLLabelElement>\n ) {}\n\n get labelText(): string {\n return this.el.nativeElement && this.el.nativeElement.textContent;\n }\n\n ngOnInit() {\n // Prevent id attributes from being removed by the `undefined` host binding.\n // This happens when a `label` is used outside of a control container and other use cases.\n this.idAttr = this.idInput;\n\n // Only add the clr-control-label if it is inside a control container\n if (this.controlIdService || this.ngControlService) {\n this.renderer.addClass(this.el.nativeElement, 'clr-control-label');\n }\n // Only set the grid column classes if we are in the right context and if they aren't already set\n if (\n this.enableGrid &&\n this.layoutService &&\n !this.layoutService.isVertical() &&\n this.el.nativeElement &&\n this.el.nativeElement.className.indexOf('clr-col') < 0\n ) {\n this.renderer.addClass(this.el.nativeElement, 'clr-col-12');\n this.renderer.addClass(this.el.nativeElement, `clr-col-md-${this.layoutService.labelSize}`);\n }\n if (this.controlIdService && !this.forAttr) {\n this.subscriptions.push(\n this.controlIdService.idChange.subscribe(id => {\n this.forAttr = id;\n this.idAttr = this.idInput || `${id}-label`;\n })\n );\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n disableGrid() {\n this.enableGrid = false;\n }\n\n /**\n * Allowing signposts inside labels to work without disabling default behavior. <label> is spreading a click event to its children so signposts get\n * automatically closed once clicked inside a <label>.\n * @param event\n */\n @HostListener('click', ['$event'])\n private onClick(event) {\n this.preventDefaultOnSignpostTarget(event);\n }\n\n private preventDefaultOnSignpostTarget(event) {\n if (this.signpost && this.signpost.nativeElement && this.signpost.nativeElement.contains(event.target)) {\n event.preventDefault();\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, Optional } from '@angular/core';\n\nimport { ClrAbstractControl, CONTROL_SUFFIX } from './abstract-control';\nimport { ContainerIdService } from './providers/container-id.service';\nimport { ControlIdService } from './providers/control-id.service';\n\n@Component({\n selector: 'clr-control-success',\n template: `<ng-content></ng-content>`,\n host: {\n '[class.clr-subtext]': 'true',\n '[class.success]': 'true',\n '[attr.id]': 'id',\n },\n standalone: false,\n})\nexport class ClrControlSuccess extends ClrAbstractControl {\n override controlIdSuffix = CONTROL_SUFFIX.SUCCESS;\n\n constructor(\n @Optional() protected override controlIdService: ControlIdService,\n @Optional() protected override containerIdService: ContainerIdService\n ) {\n super(controlIdService, containerIdService);\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, Optional, Renderer2 } from '@angular/core';\n\nimport { LayoutService } from './layout.service';\nimport { CONTROL_STATE } from '../if-control-state/control-state.enum';\n\nconst CLASS_ERROR = 'clr-error';\nconst CLASS_SUCCESS = 'clr-success';\n\n@Injectable()\nexport class ControlClassService {\n className = '';\n\n constructor(@Optional() private layoutService: LayoutService) {}\n\n controlClass(state: string, grid = false, additional = '') {\n const controlClasses = [this.className, additional];\n\n switch (state) {\n case CONTROL_STATE.VALID:\n controlClasses.push(CLASS_SUCCESS);\n break;\n case CONTROL_STATE.INVALID:\n controlClasses.push(CLASS_ERROR);\n break;\n }\n\n if (grid && this.layoutService && this.className.indexOf('clr-col') === -1) {\n controlClasses.push(`clr-col-md-${this.layoutService.maxLabelSize - this.layoutService.labelSize} clr-col-12`);\n }\n return controlClasses.join(' ').trim();\n }\n\n // We want to remove the column classes from the input up to the container\n initControlClass(renderer: Renderer2, element: HTMLElement) {\n if (element && element.className) {\n const klasses = element.className.split(' ');\n const controlKlasses = [];\n\n klasses.forEach(klass => {\n if (klass.startsWith('clr-')) {\n controlKlasses.push(klass);\n }\n\n if (klass.startsWith('clr-col')) {\n renderer.removeClass(element, klass);\n }\n });\n\n this.className = controlKlasses.join(' ').trim();\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 { ContentChild, Directive, OnDestroy, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { ClrControlError } from './error';\nimport { ClrControlHelper } from './helper';\nimport { CONTROL_STATE } from './if-control-state/control-state.enum';\nimport { ClrControlLabel } from './label';\nimport { ControlClassService } from './providers/control-class.service';\nimport { LayoutService } from './providers/layout.service';\nimport { NgControlService } from './providers/ng-control.service';\nimport { ClrControlSuccess } from './success';\n\n@Directive()\nexport abstract class ClrAbstractContainer implements OnDestroy {\n @ContentChild(ClrControlLabel, { static: false }) label: ClrControlLabel;\n @ContentChild(ClrControlSuccess) controlSuccessComponent: ClrControlSuccess;\n @ContentChild(ClrControlError) controlErrorComponent: ClrControlError;\n @ContentChild(ClrControlHelper) controlHelperComponent: ClrControlHelper;\n\n controls: NgControl[] = [];\n\n protected subscriptions: Subscription[] = [];\n\n constructor(\n @Optional() protected layoutService: LayoutService,\n protected controlClassService: ControlClassService,\n protected ngControlService: NgControlService\n ) {\n this.subscriptions.push(\n ngControlService.controlsChanges.subscribe(controls => {\n this.controls = controls;\n })\n );\n\n ngControlService.container = this;\n }\n\n get control() {\n return this.controls[0];\n }\n\n /**\n * @NOTE\n * Helper control is a bit different than the others, it must be always visible:\n * - Labels and instructions must always accompany forms and are persistent.\n * - The recommendation here is to always have helper text or anything instructions visible.\n * - The expectation is to have error text + helper text in the errored state. this way all users will have the helper text information always available.\n */\n get showHelper(): boolean {\n /**\n * @NOTE\n * Saving the previous version in case something is changed. We'll return always true so we can be flexible\n * and keep the condition per components.\n *\n * return (\n * Helper Component exist and the state of the form is NONE (not touched)\n * (!!this.controlHelperComponent && (!this.touched || this.state === CONTROL_STATE.NONE)) ||\n * or there is no success component but the state of the form is VALID - show helper information\n * (!!this.controlSuccessComponent === false && this.state === CONTROL_STATE.VALID) ||\n * or there is no error component but the state of the form is INVALID - show helper information\n * (!!this.controlErrorComponent === false && this.state === CONTROL_STATE.INVALID)\n * );\n */\n return Boolean(this.controlHelperComponent);\n }\n\n /**\n * We gonna set the helper control state, after all or most of the components\n * are ready - also this will trigger some initial flows into wrappers and controls,\n * like locating IDs and setting attributes.\n */\n get helpers() {\n return {\n show: this.showInvalid || this.showHelper || this.showValid,\n showInvalid: this.showInvalid,\n showHelper: this.showHelper,\n showValid: this.showValid,\n };\n }\n\n get showValid(): boolean {\n return this.touched && this.state === CONTROL_STATE.VALID && this.successMessagePresent;\n }\n\n get showInvalid(): boolean {\n return this.touched && this.state === CONTROL_STATE.INVALID && this.errorMessagePresent;\n }\n\n protected get successMessagePresent() {\n return !!this.controlSuccessComponent;\n }\n\n protected get errorMessagePresent() {\n return !!this.controlErrorComponent;\n }\n\n private get touched() {\n return !!this.controls?.some(control => control.touched);\n }\n\n private get state() {\n const controlStatuses = this.controls.map((control: NgControl) => {\n return control.status;\n });\n\n // These status values are mutually exclusive, so a control\n // cannot be both valid AND invalid or invalid AND disabled.\n // if else order is important!\n if (controlStatuses.includes(CONTROL_STATE.INVALID)) {\n return CONTROL_STATE.INVALID;\n } else if (controlStatuses.includes(CONTROL_STATE.VALID)) {\n return CONTROL_STATE.VALID;\n } else {\n return null;\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n\n controlClass() {\n /**\n * Decide what subtext to display:\n * - container is valid but no success component is implemented - use helper class\n * - container is valid and success component is implemented - use success class\n * - Pass form control state and return string of classes to be applied to the container.\n */\n const currentState = this.touched ? this.state : null;\n\n return this.controlClassService.controlClass(currentState, this.addGrid());\n }\n\n addGrid() {\n return this.layoutService && !this.layoutService.isVertical();\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\nimport { ClrAbstractContainer } from './abstract-container';\nimport { ControlClassService } from './providers/control-class.service';\nimport { ControlIdService } from './providers/control-id.service';\nimport { NgControlService } from './providers/ng-control.service';\n\n@Component({\n selector: 'clr-control-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-input-wrapper\">\n <ng-content></ng-content>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService],\n standalone: false,\n})\nexport class ClrControlContainer extends ClrAbstractContainer {}\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 MarkControlService {\n private _touched = new Subject<void>();\n\n get touchedChange(): Observable<void> {\n return this._touched.asObservable();\n }\n\n markAsTouched() {\n this._touched.next();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n InjectionToken,\n Injector,\n Input,\n KeyValueDiffer,\n KeyValueDiffers,\n OnDestroy,\n OnInit,\n Renderer2,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { HostWrapper } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\n\nimport { CONTROL_SUFFIX } from './abstract-control';\nimport { ContainerIdService } from './providers/container-id.service';\nimport { ControlClassService } from './providers/control-class.service';\nimport { ControlIdService } from './providers/control-id.service';\nimport { MarkControlService } from './providers/mark-control.service';\nimport { NgControlService } from './providers/ng-control.service';\n\nexport enum CHANGE_KEYS {\n FORM = 'form',\n MODEL = 'model',\n}\n\n@Directive()\nexport class WrappedFormControl<W> implements OnInit, DoCheck, OnDestroy {\n _id: string;\n\n protected controlIdService: ControlIdService;\n protected ngControlService: NgControlService;\n protected index = 0;\n protected subscriptions: Subscription[] = [];\n\n private controlClassService: ControlClassService;\n private markControlService: MarkControlService;\n private containerIdService: ContainerIdService;\n private _containerInjector: Injector;\n private differs: KeyValueDiffers;\n private differ: KeyValueDiffer<any, any>;\n\n // I lost way too much time trying to make this work without injecting the ViewContainerRef and the Injector,\n // I'm giving up. So we have to inject these two manually for now.\n constructor(\n protected vcr: ViewContainerRef,\n protected wrapperType: Type<W>,\n injector: Injector,\n private ngControl: NgControl | null,\n protected renderer: Renderer2,\n protected el: ElementRef<HTMLElement>\n ) {\n if (injector) {\n this.ngControlService = injector.get(NgControlService, null);\n this.markControlService = injector.get(MarkControlService, null);\n this.differs = injector.get(KeyValueDiffers, null);\n }\n\n if (this.markControlService) {\n this.subscriptions.push(\n this.markControlService.touchedChange.subscribe(() => {\n this.markAsTouched();\n })\n );\n }\n }\n\n @Input()\n @HostBinding()\n get id() {\n return this._id;\n }\n set id(value: string) {\n this._id = value;\n if (this.controlIdService) {\n this.controlIdService.id = value;\n }\n }\n\n @HostBinding('attr.aria-describedby')\n private get ariaDescribedById(): string | null {\n const helpers = this.ngControlService?.container?.helpers;\n\n if (!helpers?.show) {\n return null;\n }\n\n const elementId = this.containerIdService?.id || this.controlIdService?.id;\n /**\n * If ContainerIdService or ControlIdService are missing don't try to guess\n * Don't set anything.\n */\n if (!elementId) {\n return null;\n }\n\n /**\n * As the helper text is now always visible. If we have error/success then we should use both ids.\n */\n const describedByIds = [`${elementId}-${CONTROL_SUFFIX.HELPER}`];\n if (helpers.showInvalid) {\n describedByIds.push(`${elementId}-${CONTROL_SUFFIX.ERROR}`);\n } else if (helpers.showValid) {\n describedByIds.push(`${elementId}-${CONTROL_SUFFIX.SUCCESS}`);\n }\n\n return describedByIds.join(' ');\n }\n\n ngOnInit() {\n this._containerInjector = new HostWrapper(this.wrapperType, this.vcr, this.index);\n this.controlIdService = this._containerInjector.get(ControlIdService);\n\n this.injectControlClassService(this._containerInjector);\n\n /**\n * not all containers will provide `ContainerIdService`\n */\n this.containerIdService = this._containerInjector.get(ContainerIdService, null);\n\n if (this._id) {\n this.controlIdService.id = this._id;\n } else {\n this._id = this.controlIdService.id;\n }\n\n // 4 possible variations\n // 1. NO ngControlService and NO ngControl\n // 2. NO ngControlService and YES ngControl\n // 3. YES ngControlService and NO ngControl\n // 4. YES ngControlService and YES ngControl\n\n if (this.ngControl) {\n this.differ = this.differs.find(this.ngControl).create();\n }\n\n if (this.ngControlService && this.ngControl) {\n this.ngControlService.addControl(this.ngControl);\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n this.triggerDoCheck(this.differ, this.ngControl);\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub?.unsubscribe());\n }\n\n // blur HostListener decorator MUST be 1 and on the parent.\n // overrides MUST NOT have HostListener decorator.\n @HostListener('blur')\n triggerValidation() {\n if (this.ngControl?.control?.markAsTouched) {\n this.ngControl.control.markAsTouched();\n }\n }\n\n // @TODO This method has a try/catch due to an unknown issue that came when building the clrToggle feature\n // We need to figure out why this fails for the ClrToggle scenario but works for Date picker...\n // To see the error, remove the try/catch here and run the ClrToggle suite to see issues getting the container\n // injector in time, and this ONLY HAPPENS in tests and not in dev/prod mode.\n protected getProviderFromContainer<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T {\n try {\n return this._containerInjector.get(token, notFoundValue);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return notFoundValue;\n }\n }\n\n private injectControlClassService(injector: Injector) {\n if (!this.controlClassService) {\n this.controlClassService = injector.get(ControlClassService, null);\n if (this.controlClassService) {\n this.controlClassService.initControlClass(this.renderer, this.el.nativeElement);\n }\n }\n }\n\n private triggerDoCheck(differ: KeyValueDiffer<any, any>, ngControl: NgControl) {\n if (differ) {\n const changes = differ.diff(ngControl);\n if (changes) {\n changes.forEachChangedItem(change => {\n if (\n (change.key === CHANGE_KEYS.FORM || change.key === CHANGE_KEYS.MODEL) &&\n change.currentValue !== change.previousValue\n ) {\n if (this.ngControlService) {\n this.ngControlService.emitControlsChange(this.ngControlService.controls);\n }\n\n this.triggerValidation();\n }\n });\n }\n }\n }\n\n private markAsTouched(): void {\n if (this.ngControlService && this.ngControlService.hasMultipleControls) {\n this.ngControlService.controls.forEach((ngControl: NgControl) => {\n ngControl.control.markAsTouched();\n ngControl.control.updateValueAndValidity();\n });\n\n return;\n }\n\n if (this.ngControl) {\n this.ngControl.control.markAsTouched();\n this.ngControl.control.updateValueAndValidity();\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 { Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { ClrControlContainer } from './control-container';\nimport { WrappedFormControl } from './wrapped-control';\n\n@Directive({\n selector: '[clrControl]',\n host: { '[class.clr-input]': 'true' },\n standalone: false,\n})\nexport class ClrControl extends WrappedFormControl<ClrControlContainer> {\n protected override index = 1;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLElement>\n ) {\n super(vcr, ClrControlContainer, injector, control, renderer, el);\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 { ContentChildren, Directive, HostListener, Input, QueryList } from '@angular/core';\n\nimport { ClrControlLabel } from './label';\nimport { LayoutService } from './providers/layout.service';\nimport { MarkControlService } from './providers/mark-control.service';\n\n@Directive({\n selector: '[clrForm]',\n providers: [LayoutService, MarkControlService],\n host: {\n '[class.clr-form]': 'true',\n '[class.clr-form-horizontal]': 'layoutService.isHorizontal()',\n '[class.clr-form-compact]': 'layoutService.isCompact()',\n },\n standalone: false,\n})\nexport class ClrForm {\n @ContentChildren(ClrControlLabel, { descendants: true }) labels: QueryList<ClrControlLabel>;\n\n constructor(\n public layoutService: LayoutService,\n private markControlService: MarkControlService\n ) {}\n\n @Input('clrLabelSize')\n set labelSize(size: number | string) {\n const sizeNumber = parseInt(size as string, 10) || 2;\n this.layoutService.labelSize = sizeNumber;\n }\n\n @HostListener('submit')\n onFormSubmit() {\n this.markAsTouched();\n }\n\n // Trying to avoid adding an input and keep this backwards compatible at the same time\n markAsTouched() {\n this.markControlService.markAsTouched();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Optional } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\nimport { merge, of, tap } from 'rxjs';\nimport { startWith, switchMap } from 'rxjs/operators';\n\nimport { NgControlService } from '../providers/ng-control.service';\n\n@Directive()\nexport abstract class AbstractIfState {\n protected displayedContent = false;\n protected controls: NgControl[];\n\n protected constructor(@Optional() protected ngControlService: NgControlService) {\n if (ngControlService) {\n ngControlService.controlsChanges\n .pipe(\n tap(controls => {\n this.controls = controls;\n }),\n switchMap(controls => {\n if (!controls || controls.length === 0) {\n return [];\n }\n\n const statusStreams = controls.map(c => this.getControlStatusChangesObservable(c));\n\n return merge(...statusStreams);\n }),\n takeUntilDestroyed()\n )\n .subscribe(status => {\n this.handleState(status);\n });\n }\n }\n\n protected handleState(_state: any): void {\n /* overwrite in implementation to handle status change */\n }\n\n private getControlStatusChangesObservable(control: NgControl) {\n if (!control.statusChanges) {\n return of(null);\n }\n\n return control.statusChanges.pipe(startWith(control.status));\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, EmbeddedViewRef, Input, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { AbstractIfState } from './abstract-if-state';\nimport { CONTROL_STATE } from './control-state.enum';\nimport { NgControlService } from '../providers/ng-control.service';\n\n@Directive({\n selector: '[clrIfError]',\n standalone: false,\n})\nexport class ClrIfError extends AbstractIfState {\n @Input('clrIfError') error: string;\n\n private embeddedViewRef: EmbeddedViewRef<any>;\n\n constructor(\n @Optional() ngControlService: NgControlService,\n private template: TemplateRef<any>,\n private container: ViewContainerRef\n ) {\n super(ngControlService);\n\n if (!ngControlService) {\n throw new Error('clrIfError can only be used within a form control container element like clr-input-container');\n }\n }\n /**\n * @param state CONTROL_STATE\n */\n protected override handleState(state: CONTROL_STATE) {\n if (this.error && !!this.controls?.length) {\n const invalidControl = this.controls?.filter(control => control.hasError(this.error))[0];\n this.displayError(!!invalidControl, invalidControl);\n } else {\n this.displayError(CONTROL_STATE.INVALID === state);\n }\n }\n\n private displayError(invalid: boolean, control = this.controls[0]) {\n /* if no container do nothing */\n if (!this.container) {\n return;\n }\n if (invalid) {\n if (this.displayedContent === false) {\n this.embeddedViewRef = this.container.createEmbeddedView(this.template, {\n error: control.getError(this.error),\n });\n this.displayedContent = true;\n } else if (this.embeddedViewRef && this.embeddedViewRef.context) {\n // if view is already rendered, update the error object to keep it in sync\n this.embeddedViewRef.context.error = control.getError(this.error);\n }\n } else {\n this.container.clear();\n this.displayedContent = false;\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 { Directive, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { AbstractIfState } from './abstract-if-state';\nimport { CONTROL_STATE } from './control-state.enum';\nimport { NgControlService } from '../providers/ng-control.service';\n\n@Directive({\n selector: '[clrIfSuccess]',\n standalone: false,\n})\nexport class ClrIfSuccess extends AbstractIfState {\n constructor(\n @Optional() ngControlService: NgControlService,\n private template: TemplateRef<any>,\n private container: ViewContainerRef\n ) {\n super(ngControlService);\n\n if (!ngControlService) {\n throw new Error('ClrIfSuccess can only be used within a form control container element like clr-input-container');\n }\n }\n\n /**\n * @param state CONTROL_STATE\n */\n protected override handleState(state: CONTROL_STATE) {\n const isValid = CONTROL_STATE.VALID === state;\n\n if (isValid && !this.displayedContent) {\n this.container.createEmbeddedView(this.template);\n } else if (!isValid && this.container) {\n this.container.clear();\n }\n this.displayedContent = isValid;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Input, OnInit } from '@angular/core';\n\nimport { ClrFormLayout, LayoutService } from './providers/layout.service';\n\n@Directive({\n selector: '[clrForm][clrLayout]',\n standalone: false,\n})\nexport class ClrLayout implements OnInit {\n @Input('clrLayout') layout: ClrFormLayout | string;\n\n constructor(public layoutService: LayoutService) {}\n\n ngOnInit() {\n // Only set the layout if it is a valid option\n if (this.layout && this.layoutService.isValid(this.layout)) {\n this.layoutService.layout = this.layout;\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 } from '@angular/core';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\n\nimport { ClrControl } from './control';\nimport { ClrControlContainer } from './control-container';\nimport { ClrControlError } from './error';\nimport { ClrForm } from './form';\nimport { ClrControlHelper } from './helper';\nimport { ClrIfError } from './if-control-state/if-error';\nimport { ClrIfSuccess } from './if-control-state/if-success';\nimport { ClrControlLabel } from './label';\nimport { ClrLayout } from './layout';\nimport { ClrControlSuccess } from './success';\n\n@NgModule({\n imports: [CommonModule, ClrIcon],\n declarations: [\n ClrControlLabel,\n ClrControlError,\n ClrControlSuccess,\n ClrControlHelper,\n ClrIfError,\n ClrIfSuccess,\n ClrForm,\n ClrLayout,\n ClrControlContainer,\n ClrControl,\n ],\n exports: [\n ClrControlLabel,\n ClrControlError,\n ClrControlSuccess,\n ClrControlHelper,\n ClrIfError,\n ClrIfSuccess,\n ClrForm,\n ClrLayout,\n ClrControlContainer,\n ClrControl,\n ClrIcon,\n ],\n})\nexport class ClrCommonFormsModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon);\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';\n\n@Injectable()\nexport class FormsFocusService {\n private _focused = new BehaviorSubject(false);\n get focusChange(): Observable<boolean> {\n return this._focused.asObservable();\n }\n set focused(state: boolean) {\n this._focused.next(state);\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 './abstract-container';\nexport * from './common.module';\nexport * from './control';\nexport * from './control-container';\nexport * from './error';\nexport * from './form';\nexport * from './helper';\nexport * from './if-control-state/if-error';\nexport * from './if-control-state/if-success';\nexport * from './if-control-state/abstract-if-state';\nexport * from './label';\nexport * from './layout';\nexport * from './providers/container-id.service';\nexport * from './providers/control-class.service';\nexport * from './providers/control-id.service';\nexport * from './providers/focus.service';\nexport * from './providers/layout.service';\nexport * from './providers/mark-control.service';\nexport * from './providers/ng-control.service';\nexport * from './success';\nexport * from './wrapped-control';\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, forwardRef, Inject, InjectionToken, OnDestroy, OnInit } from '@angular/core';\nimport { ClrControlLabel, ControlIdService } from '@clr/angular/forms/common';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { ClrCheckbox } from './checkbox';\n\nexport const IS_TOGGLE = new InjectionToken<BehaviorSubject<boolean>>('IS_TOGGLE');\nexport function isToggleFactory() {\n return new BehaviorSubject<boolean>(false);\n}\nexport const IS_TOGGLE_PROVIDER = { provide: IS_TOGGLE, useFactory: isToggleFactory };\n\n@Component({\n selector: 'clr-checkbox-wrapper,clr-toggle-wrapper',\n template: `\n <ng-content select=\"[clrCheckbox],[clrToggle]\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n @if (!label) {\n <label></label>\n }\n `,\n host: {\n '[class.clr-checkbox-wrapper]': '!toggle',\n '[class.clr-checkbox-wrapper-disabled]': 'checkbox?.controlDisabled',\n '[class.clr-toggle-wrapper]': 'toggle',\n },\n providers: [ControlIdService, IS_TOGGLE_PROVIDER],\n standalone: false,\n})\nexport class ClrCheckboxWrapper implements OnInit, OnDestroy {\n @ContentChild(ClrControlLabel, { static: true }) label: ClrControlLabel;\n @ContentChild(forwardRef(() => ClrCheckbox), { static: true }) checkbox: ClrCheckbox;\n toggle = false;\n private subscriptions: Subscription[] = [];\n\n constructor(@Inject(IS_TOGGLE) toggleService: BehaviorSubject<boolean>) {\n this.subscriptions.push(\n toggleService.subscribe(state => {\n this.toggle = state;\n })\n );\n }\n\n ngOnInit() {\n if (this.label) {\n this.label.disableGrid();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Attribute, Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ClrCheckboxWrapper, IS_TOGGLE } from './checkbox-wrapper';\n\n/**\n * This implements both the clrCheckbox and clrToggle functionality, since they are both just checkboxes with different\n * visual styling. The challenge is that the container needs to know which selector was used, which the @Attribute\n * decorator gets for us to determine if the toggle is used, and emits a value to the wrapper container to tell it\n * there is a toggle switch instead.\n */\n@Directive({\n selector: '[clrCheckbox],[clrToggle]',\n host: {\n '[attr.role]': 'toggle !== null ? \"switch\" : null',\n },\n standalone: false,\n})\nexport class ClrCheckbox extends WrappedFormControl<ClrCheckboxWrapper> {\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n private control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLInputElement>,\n @Attribute('clrToggle') protected toggle: string\n ) {\n super(vcr, ClrCheckboxWrapper, injector, control, renderer, el);\n }\n\n get controlDisabled() {\n return this.control?.disabled;\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n const toggleService = this.getProviderFromContainer<BehaviorSubject<boolean>>(IS_TOGGLE, null);\n\n if (toggleService && this.toggle !== null) {\n toggleService.next(true);\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 { AfterContentInit, Component, ContentChildren, Input, Optional, QueryList } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ContainerIdService,\n ControlClassService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\nimport { ClrCheckbox } from './checkbox';\n\n@Component({\n selector: 'clr-checkbox-container,clr-toggle-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [class.clr-control-inline]=\"clrInline\" [ngClass]=\"controlClass()\">\n <ng-content select=\"clr-checkbox-wrapper,clr-toggle-wrapper\"></ng-content>\n @if (showHelper) {\n <div class=\"clr-subtext-wrapper\">\n <ng-content select=\"clr-control-helper\"></ng-content>\n </div>\n }\n @if (showInvalid || showValid) {\n <div class=\"clr-subtext-wrapper\">\n @if (showInvalid) {\n <cds-icon\n class=\"clr-validate-icon\"\n shape=\"exclamation-circle\"\n status=\"danger\"\n aria-hidden=\"true\"\n ></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'allCheckboxesDisabled',\n '[class.clr-row]': 'addGrid()',\n '[attr.role]': 'role',\n },\n providers: [NgControlService, ControlClassService, ContainerIdService],\n standalone: false,\n})\nexport class ClrCheckboxContainer extends ClrAbstractContainer implements AfterContentInit {\n role: string;\n\n @ContentChildren(ClrCheckbox, { descendants: true }) checkboxes: QueryList<ClrCheckbox>;\n\n private inline = false;\n\n constructor(\n @Optional() protected override layoutService: LayoutService,\n protected override controlClassService: ControlClassService,\n protected override ngControlService: NgControlService\n ) {\n super(layoutService, controlClassService, ngControlService);\n }\n\n /*\n * Here we want to support the following cases\n * clrInline - true by presence\n * clrInline=\"true|false\" - unless it is explicitly false, strings are considered true\n * [clrInline]=\"true|false\" - expect a boolean\n */\n @Input()\n get clrInline() {\n return this.inline;\n }\n set clrInline(value: boolean | string) {\n if (typeof value === 'string') {\n this.inline = value === 'false' ? false : true;\n } else {\n this.inline = !!value;\n }\n }\n\n protected get allCheckboxesDisabled() {\n if (!this.controls?.length) {\n return false;\n }\n\n return this.controls.every(control => control.disabled);\n }\n\n ngAfterContentInit() {\n this.setAriaRoles();\n }\n\n private setAriaRoles() {\n this.role = this.checkboxes?.length ? 'group' : null;\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 } from '@angular/core';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\nimport { ClrHostWrappingModule } from '@clr/angular/utils';\n\nimport { ClrCheckbox } from './checkbox';\nimport { ClrCheckboxContainer } from './checkbox-container';\nimport { ClrCheckboxWrapper } from './checkbox-wrapper';\n\n@NgModule({\n imports: [CommonModule, ClrIcon, ClrCommonFormsModule, ClrHostWrappingModule],\n declarations: [ClrCheckbox, ClrCheckboxContainer, ClrCheckboxWrapper],\n exports: [ClrCommonFormsModule, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxWrapper],\n})\nexport class ClrCheckboxModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon);\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 './checkbox';\nexport * from './checkbox-container';\nexport * from './checkbox-wrapper';\nexport * from './checkbox.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\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ComboboxContainerService {\n labelOffset = 0;\n labelText: 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 { AfterContentInit, AfterViewInit, Component, ElementRef, Optional, ViewChild } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\nimport { ComboboxContainerService } from './providers/combobox-container.service';\n@Component({\n selector: 'clr-combobox-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\" #controlContainer>\n <ng-content select=\"clr-combobox\"></ng-content>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-combobox-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService, ComboboxContainerService],\n standalone: false,\n})\nexport class ClrComboboxContainer extends ClrAbstractContainer implements AfterContentInit, AfterViewInit {\n @ViewChild('controlContainer') controlContainer: ElementRef<HTMLElement>;\n\n constructor(\n @Optional() layoutService: LayoutService,\n controlClassService: ControlClassService,\n ngControlService: NgControlService,\n private containerService: ComboboxContainerService,\n private el: ElementRef<HTMLElement>\n ) {\n super(layoutService, controlClassService, ngControlService);\n }\n\n ngAfterContentInit() {\n if (this.label) {\n this.containerService.labelText = this.label.labelText;\n }\n }\n\n ngAfterViewInit() {\n this.containerService.labelOffset =\n this.controlContainer.nativeElement.offsetHeight - this.el.nativeElement.offsetHeight;\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 { ComboboxModel } from './combobox.model';\n\nexport class MultiSelectComboboxModel<T> implements ComboboxModel<T> {\n model: T[];\n displayField: string;\n\n containsItem(item: T): boolean {\n if (this.model) {\n if (this.displayField && typeof item === 'object') {\n const includes = this.model.some(modelItem => {\n return modelItem[this.displayField] === item[this.displayField];\n });\n return includes;\n } else {\n return this.model.includes(item);\n }\n }\n return false;\n }\n\n select(item: T): void {\n this.addItem(item);\n }\n\n unselect(item: T): void {\n this.removeItem(item);\n }\n\n isEmpty(): boolean {\n return !(this.model && this.model.length > 0);\n }\n\n pop(): T {\n let item;\n if (this.model && this.model.length > 0) {\n item = this.model[this.model.length - 1];\n this.removeItem(item);\n }\n return item;\n }\n\n toString(displayField?: string, index = -1): string {\n let displayString = '';\n\n if (this.model) {\n // If the model is array, we can use a specific item from it, to retrieve the display value.\n if (index > -1) {\n if (this.model[index]) {\n // If we have a defined display field, we'll use it's value as display value\n if (displayField && (this.model[index] as any)[displayField]) {\n displayString += (this.model[index] as any)[displayField];\n } else {\n // If we don't have a defined display field, we'll use the toString representation of the\n // item as display value.\n displayString += this.model[index].toString();\n }\n }\n } else {\n this.model.forEach((model: T) => {\n // If we have a defined display field, we'll use it's value as display value\n if (displayField && (model as any)[displayField]) {\n displayString += (model as any)[displayField];\n } else {\n // If we don't have a defined display field, we'll use the toString representation of the\n // model as display value.\n displayString += model.toString();\n }\n displayString += ' ';\n });\n }\n }\n\n return displayString.trim();\n }\n\n private addItem(item: T) {\n if (!this.containsItem(item)) {\n this.model = this.model || [];\n this.model.push(item);\n }\n }\n\n private removeItem(item: T) {\n if (this.model === null || this.model === undefined) {\n return;\n }\n\n const index = this.model.indexOf(item);\n\n if (index > -1) {\n this.model.splice(index, 1);\n }\n\n // we intentionally set the model to null for form validation\n if (this.model.length === 0) {\n this.model = null;\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 { ComboboxModel } from './combobox.model';\n\nexport class SingleSelectComboboxModel<T> implements ComboboxModel<T> {\n model: T;\n\n containsItem(item: T): boolean {\n return this.model === item;\n }\n\n select(item: T): void {\n this.model = item;\n }\n\n unselect(item: T): void {\n if (this.containsItem(item)) {\n this.model = null;\n }\n }\n\n isEmpty(): boolean {\n return !this.model;\n }\n\n pop(): T {\n const item = this.model;\n this.model = null;\n return item;\n }\n\n toString(displayField?: string): string {\n if (!this.model) {\n return '';\n }\n if (displayField && (this.model as any)[displayField]) {\n return (this.model as any)[displayField];\n } else {\n return this.model.toString();\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 { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[clrOptionSelected]',\n standalone: false,\n})\nexport class ClrOptionSelected<T> {\n @Input('clrOptionSelected') selected: T;\n\n constructor(public template: TemplateRef<{ $implicit: T }>) {}\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 { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SingleSelectComboboxModel } from './single-select-combobox.model';\n\nexport class PseudoFocusModel<T> extends SingleSelectComboboxModel<T> {\n private _focusChanged = new BehaviorSubject<T>(null);\n get focusChanged(): Observable<T> {\n return this._focusChanged.asObservable();\n }\n\n override select(item: T): void {\n if (this.model !== item) {\n this.model = item;\n this._focusChanged.next(item);\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 { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\n\nimport { ComboboxModel } from '../model/combobox.model';\nimport { MultiSelectComboboxModel } from '../model/multi-select-combobox.model';\n\n@Injectable()\nexport class OptionSelectionService<T> {\n loading = false;\n editable = false;\n filtering = true;\n selectionModel: ComboboxModel<T>;\n inputChanged: Observable<string>;\n\n // Display all options on first open, even if filter text exists.\n // https://github.com/vmware-clarity/ng-clarity/issues/386\n showAllOptions = true;\n\n private _currentInput = '';\n private _displayField: string;\n private _inputChanged = new BehaviorSubject('');\n private _selectionChanged = new ReplaySubject<ComboboxModel<T>>(1);\n\n constructor() {\n this.inputChanged = this._inputChanged.asObservable();\n }\n\n get displayField() {\n return this._displayField;\n }\n set displayField(value: string) {\n this._displayField = value;\n if (this.selectionModel) {\n this.selectionModel.displayField = value;\n }\n }\n\n get currentInput(): string {\n return this._currentInput;\n }\n set currentInput(input) {\n // clear value in single selection model when input is empty\n if (input === '' && !this.multiselectable) {\n this.setSelectionValue(null);\n }\n this._currentInput = input;\n this._inputChanged.next(input);\n }\n\n // This observable is for notifying the ClrOption to update its\n // selection by comparing the value\n get selectionChanged(): Observable<ComboboxModel<T>> {\n return this._selectionChanged.asObservable();\n }\n\n get multiselectable(): boolean {\n return this.selectionModel instanceof MultiSelectComboboxModel;\n }\n\n select(item: T) {\n if (item === null || item === undefined || this.selectionModel.containsItem(item)) {\n return;\n }\n this.selectionModel.select(item);\n this._selectionChanged.next(this.selectionModel);\n }\n\n toggle(item: T) {\n if (item === null || item === undefined) {\n return;\n }\n if (this.selectionModel.containsItem(item)) {\n this.selectionModel.unselect(item);\n } else {\n this.selectionModel.select(item);\n }\n this._selectionChanged.next(this.selectionModel);\n }\n\n unselect(item: T) {\n if (item === null || item === undefined || !this.selectionModel.containsItem(item)) {\n return;\n }\n this.selectionModel.unselect(item);\n this._selectionChanged.next(this.selectionModel);\n }\n\n // TODO: Add support for trackBy and compareFn\n setSelectionValue(value: T | T[]): void {\n // NOTE: Currently we assume that no 2 options will have the same value\n // but Eudes and I discussed that this is a possibility but we will handle\n // this later\n\n // if selection is undefined, or its value hasn't changed, or changing from null <-> undefined, that's not really changing so we return\n if (!this.selectionModel || this.selectionModel.model === value || (!this.selectionModel.model && !value)) {\n return;\n }\n\n this.selectionModel.model = value;\n this._selectionChanged.next(this.selectionModel);\n }\n\n parseStringToModel(value: string): T {\n if (this.displayField) {\n return {\n [this.displayField]: value,\n } as T;\n }\n return value as T;\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 { ChangeDetectorRef, Inject, Injectable, PLATFORM_ID, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { ArrowKeyDirection, customFocusableItemProvider, Keys, normalizeKey } from '@clr/angular/utils';\nimport { take } from 'rxjs/operators';\n\nimport { OptionSelectionService } from './option-selection.service';\nimport { PseudoFocusModel } from '../model/pseudo-focus.model';\n\n@Injectable()\nexport class ComboboxFocusHandler<T> {\n // We need a Change Detector from the related component, so we can update it on Blur\n // (which is needed because of Edge specific lifecycle mis-behavior)\n componentCdRef: ChangeDetectorRef;\n pseudoFocus: PseudoFocusModel<OptionData<T>> = new PseudoFocusModel<OptionData<T>>();\n\n private renderer: Renderer2;\n private _trigger: HTMLElement;\n private _listbox: HTMLElement;\n private _textInput: HTMLElement;\n private optionData: OptionData<T>[] = [];\n\n constructor(\n rendererFactory: RendererFactory2,\n private popoverService: ClrPopoverService,\n private selectionService: OptionSelectionService<T>,\n @Inject(PLATFORM_ID) private platformId: any\n ) {\n this.handleFocusSubscription();\n // Direct renderer injection can be problematic and leads to failing tests at least\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n get trigger() {\n return this._trigger;\n }\n set trigger(el: HTMLElement) {\n this._trigger = el;\n this.addFocusOnBlurListener(el);\n }\n\n get listbox() {\n return this._listbox;\n }\n set listbox(el: HTMLElement) {\n this._listbox = el;\n this.addFocusOnBlurListener(el);\n }\n\n get textInput() {\n return this._textInput;\n }\n set textInput(el: HTMLElement) {\n this._textInput = el;\n this.renderer.listen(el, 'keydown', event => !this.handleTextInput(event));\n this.addFocusOnBlurListener(el);\n }\n\n focusInput() {\n if (this.textInput && isPlatformBrowser(this.platformId)) {\n this.textInput.focus({ preventScroll: true });\n }\n }\n\n focusFirstActive() {\n if (this.optionData.length > 0) {\n if (this.selectionService.selectionModel.isEmpty()) {\n this.pseudoFocus.select(this.optionData[0]);\n } else {\n let firstActive: T;\n if (this.selectionService.multiselectable) {\n firstActive = (this.selectionService.selectionModel.model as T[])[0];\n } else {\n firstActive = this.selectionService.selectionModel.model as T;\n }\n const activeProxy = this.optionData.find(option => option.value === firstActive);\n if (activeProxy) {\n // active element is visible\n this.pseudoFocus.select(activeProxy);\n } else {\n // we have active element, but it's filtered out\n this.pseudoFocus.select(this.optionData[0]);\n }\n this.scrollIntoSelectedModel('auto');\n }\n }\n }\n\n addOptionValues(options: OptionData<T>[]) {\n this.optionData = options;\n }\n\n private handleFocusSubscription() {\n this.popoverService.openChange.subscribe(open => {\n if (!open) {\n this.pseudoFocus.model = null;\n }\n });\n }\n\n private moveFocusTo(direction: ArrowKeyDirection) {\n let index = this.optionData.findIndex(option => option.equals(this.pseudoFocus.model));\n if (direction === ArrowKeyDirection.UP) {\n if (index === -1 || index === 0) {\n index = this.optionData.length - 1;\n } else {\n index--;\n }\n } else if (direction === ArrowKeyDirection.DOWN) {\n if (index === -1 || index === this.optionData.length - 1) {\n index = 0;\n } else {\n index++;\n }\n }\n this.pseudoFocus.select(this.optionData[index]);\n this.scrollIntoSelectedModel();\n }\n\n private openAndMoveTo(direction: ArrowKeyDirection) {\n if (!this.popoverService.open) {\n this.popoverService.openChange.pipe(take(1)).subscribe(open => {\n if (open) {\n this.moveFocusTo(direction);\n }\n });\n this.popoverService.open = true;\n } else {\n this.moveFocusTo(direction);\n }\n }\n\n // this service is only interested in keys that may move the focus\n private handleTextInput(event: KeyboardEvent): boolean {\n let preventDefault = false;\n const key = normalizeKey(event.key);\n if (event) {\n switch (key) {\n case Keys.Enter:\n if (this.popoverService.open && this.pseudoFocus.model) {\n if (this.selectionService.multiselectable) {\n this.selectionService.toggle(this.pseudoFocus.model.value);\n } else {\n this.selectionService.select(this.pseudoFocus.model.value);\n }\n preventDefault = true;\n }\n break;\n case Keys.Space:\n if (!this.popoverService.open) {\n this.popoverService.open = true;\n preventDefault = true;\n }\n break;\n case Keys.ArrowUp:\n this.preventViewportScrolling(event);\n this.openAndMoveTo(ArrowKeyDirection.UP);\n preventDefault = true;\n break;\n case Keys.ArrowDown:\n this.preventViewportScrolling(event);\n this.openAndMoveTo(ArrowKeyDirection.DOWN);\n preventDefault = true;\n break;\n default:\n // Any other keypress\n if (\n event.key !== Keys.Tab &&\n !(this.selectionService.multiselectable && event.key === Keys.Backspace) &&\n !(event.key === Keys.Escape) &&\n !this.popoverService.open\n ) {\n this.popoverService.open = true;\n }\n break;\n }\n }\n return preventDefault;\n }\n\n private scrollIntoSelectedModel(behavior: ScrollBehavior = 'smooth') {\n if (this.pseudoFocus.model && this.pseudoFocus.model.el) {\n this.pseudoFocus.model.el.scrollIntoView({ behavior, block: 'center', inline: 'nearest' });\n }\n }\n\n private preventViewportScrolling(event: KeyboardEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private addFocusOnBlurListener(el: HTMLElement) {\n if (isPlatformBrowser(this.platformId)) {\n this.renderer.listen(el, 'blur', event => {\n if (this.focusOutOfComponent(event)) {\n this.popoverService.open = false;\n // Workaround for popover close-on-outside-click timing issues in Edge browser\n if (this.componentCdRef) {\n this.componentCdRef.detectChanges();\n }\n }\n });\n }\n }\n\n private focusOutOfComponent(event: FocusEvent): boolean {\n // event.relatedTarget is null in IE11. In that case we use document.activeElement\n // which points to the element that becomes active as the blur event occurs on the input.\n const target = (event.relatedTarget || document.activeElement) as Node;\n return !(this.textInput.contains(target) || this.trigger.contains(target) || this.listbox.contains(target));\n }\n}\n\nexport const COMBOBOX_FOCUS_HANDLER_PROVIDER = customFocusableItemProvider(ComboboxFocusHandler);\n\nexport class OptionData<T> {\n el: HTMLElement;\n\n constructor(\n public id: string,\n public value: T\n ) {}\n\n equals(other: OptionData<T>): boolean {\n if (!other) {\n return false;\n }\n return this.id === other.id && this.value === other.value;\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, ElementRef, HostBinding, HostListener, Input, OnInit } from '@angular/core';\nimport { ClrCommonStringsService, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ComboboxFocusHandler, OptionData as OptionProxy } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n@Component({\n selector: 'clr-option',\n template: `\n <ng-content></ng-content>\n @if (selected) {\n <span class=\"clr-sr-only\">{{ commonStrings.keys.comboboxSelected }}</span>\n }\n `,\n host: {\n '[class.clr-combobox-option]': 'true',\n '[attr.role]': '\"option\"',\n // Do not remove. Or click-selection will not work.\n '[attr.tabindex]': '-1',\n '[attr.id]': 'optionId',\n },\n standalone: false,\n})\nexport class ClrOption<T> implements OnInit {\n // A proxy with only the necessary data to be used for a11y and the focus handler service.\n optionProxy: OptionProxy<T> = new OptionProxy(null, null);\n\n private _id: string;\n private _value: T;\n\n constructor(\n public elRef: ElementRef<HTMLElement>,\n public commonStrings: ClrCommonStringsService,\n private focusHandler: ComboboxFocusHandler<T>,\n private optionSelectionService: OptionSelectionService<T>\n ) {\n this.optionProxy.el = elRef.nativeElement;\n }\n\n @Input('id')\n get optionId() {\n return this._id;\n }\n set optionId(id: string) {\n this._id = id;\n this.optionProxy.id = this._id;\n }\n\n @Input('clrValue')\n get value(): T {\n return this._value;\n }\n set value(value: T) {\n this._value = value;\n this.optionProxy.value = value;\n }\n\n @HostBinding('class.active')\n get selected() {\n return (\n this.optionSelectionService.selectionModel && this.optionSelectionService.selectionModel.containsItem(this.value)\n );\n }\n\n @HostBinding('class.clr-focus')\n get focusClass() {\n return this.focusHandler.pseudoFocus.containsItem(this.optionProxy);\n }\n\n ngOnInit() {\n if (!this._id) {\n this._id = 'clr-option-' + uniqueIdFactory();\n this.optionProxy.id = this._id;\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.optionSelectionService.multiselectable) {\n this.optionSelectionService.toggle(this.value);\n } else {\n this.optionSelectionService.select(this.value);\n }\n // As the popover stays open in multi-select mode now, we have to take focus back to the input\n // This way we achieve two things:\n // - do not lose focus\n // - we're still able to use onBlur for \"outside-click\" handling\n this.focusHandler.focusInput();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n DOCUMENT,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n} from '@angular/core';\nimport { ClrPopoverService, POPOVER_HOST_ANCHOR } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, ClrLoadingState, IF_ACTIVE_ID, LoadingListener } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\n\nimport { ClrOption } from './option';\nimport { ComboboxFocusHandler } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\nlet nbOptionsComponents = 0;\n\n@Component({\n selector: 'clr-options',\n template: `\n @if (optionSelectionService.loading) {\n <div class=\"clr-combobox-options-loading\">\n <clr-spinner clrInline>\n {{ commonStrings.keys.loading }}\n </clr-spinner>\n <span class=\"clr-combobox-options-text\">\n {{ searchText(optionSelectionService.currentInput) }}\n </span>\n </div>\n }\n\n <!-- Rendered if data set is empty -->\n @if (emptyOptions) {\n <div [id]=\"noResultsElementId\" role=\"option\">\n <span class=\"clr-combobox-options-empty-text\">\n {{ commonStrings.keys.comboboxNoResults }}\n </span>\n </div>\n }\n\n <!--Option Groups and Options will be projected here-->\n <ng-content></ng-content>\n `,\n providers: [{ provide: LoadingListener, useExisting: ClrOptions }],\n host: {\n '[class.clr-combobox-options]': 'true',\n '[class.clr-combobox-options-hidden]': 'emptyOptions && editable',\n '[attr.role]': '\"listbox\"',\n '[id]': 'optionsId',\n },\n standalone: false,\n})\nexport class ClrOptions<T> implements AfterViewInit, LoadingListener, OnDestroy {\n @Input('id') optionsId: string;\n\n loading = false;\n _items: QueryList<ClrOption<T>>;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n public optionSelectionService: OptionSelectionService<T>,\n @Inject(IF_ACTIVE_ID) public id: number,\n public el: ElementRef<HTMLElement>,\n public commonStrings: ClrCommonStringsService,\n private focusHandler: ComboboxFocusHandler<T>,\n private popoverService: ClrPopoverService,\n @Optional()\n @Inject(POPOVER_HOST_ANCHOR)\n parentHost: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private document: any\n ) {\n if (!parentHost) {\n throw new Error('clr-options should only be used inside of a clr-combobox');\n }\n\n if (!this.optionsId) {\n this.optionsId = 'clr-options-' + nbOptionsComponents++;\n }\n }\n\n @ContentChildren(ClrOption, { descendants: true })\n get items(): QueryList<ClrOption<T>> {\n return this._items;\n }\n set items(items: QueryList<ClrOption<T>>) {\n this._items = items;\n this.focusHandler.addOptionValues(this._items.map(option => option.optionProxy));\n }\n\n /**\n * Tests if the list of options is empty, meaning it doesn't contain any items\n */\n get emptyOptions() {\n return !this.optionSelectionService.loading && this.items.length === 0;\n }\n\n get editable() {\n return this.optionSelectionService.editable;\n }\n\n get noResultsElementId() {\n return `${this.optionsId}-no-results`;\n }\n\n ngAfterViewInit() {\n this.focusHandler.listbox = this.el.nativeElement;\n\n this.subscriptions.push(\n this.items.changes.subscribe(items => {\n if (items.length) {\n setTimeout(() => {\n this.focusHandler.focusFirstActive();\n });\n } else {\n this.focusHandler.pseudoFocus.pop();\n }\n })\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n searchText(input: string) {\n return this.commonStrings.parse(this.commonStrings.keys.comboboxSearching, { INPUT: input });\n }\n\n loadingStateChange(state: ClrLoadingState): void {\n this.loading = state === ClrLoadingState.LOADING;\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 AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Injector,\n Input,\n Optional,\n Output,\n PLATFORM_ID,\n Renderer2,\n Self,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\nimport {\n ClrPopoverHostDirective,\n ClrPopoverPosition,\n ClrPopoverService,\n ClrPopoverType,\n} from '@clr/angular/popover/common';\nimport {\n ClrCommonStringsService,\n ClrLoadingState,\n FOCUS_SERVICE_PROVIDER,\n IF_ACTIVE_ID_PROVIDER,\n Keys,\n LoadingListener,\n} from '@clr/angular/utils';\n\nimport { ClrComboboxContainer } from './combobox-container';\nimport { ComboboxModel } from './model/combobox.model';\nimport { MultiSelectComboboxModel } from './model/multi-select-combobox.model';\nimport { SingleSelectComboboxModel } from './model/single-select-combobox.model';\nimport { ClrOptionSelected } from './option-selected.directive';\nimport { ClrOptions } from './options';\nimport { ComboboxContainerService } from './providers/combobox-container.service';\nimport { COMBOBOX_FOCUS_HANDLER_PROVIDER, ComboboxFocusHandler } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\n@Component({\n selector: 'clr-combobox',\n templateUrl: './combobox.html',\n providers: [\n OptionSelectionService,\n { provide: LoadingListener, useExisting: ClrCombobox },\n IF_ACTIVE_ID_PROVIDER,\n FOCUS_SERVICE_PROVIDER,\n COMBOBOX_FOCUS_HANDLER_PROVIDER,\n ],\n hostDirectives: [ClrPopoverHostDirective],\n host: {\n '[class.aria-required]': 'true',\n '[class.clr-combobox]': 'true',\n '[class.clr-combobox-disabled]': 'control?.disabled',\n },\n standalone: false,\n})\nexport class ClrCombobox<T>\n extends WrappedFormControl<ClrComboboxContainer>\n implements ControlValueAccessor, LoadingListener, AfterContentInit\n{\n @Input('placeholder') placeholder = '';\n\n @Output('clrInputChange') clrInputChange = new EventEmitter<string>(false);\n @Output('clrOpenChange') clrOpenChange = this.popoverService.openChange;\n\n /**\n * This output should be used to set up a live region using aria-live and populate it with updates that reflect each combobox change.\n */\n @Output('clrSelectionChange') clrSelectionChange = this.optionSelectionService.selectionChanged;\n\n @ViewChild('textboxInput') textbox: ElementRef<HTMLInputElement>;\n @ViewChild('trigger') trigger: ElementRef<HTMLButtonElement>;\n @ContentChild(ClrOptionSelected) optionSelected: ClrOptionSelected<T>;\n\n focused = false;\n\n popoverPosition = ClrPopoverPosition.BOTTOM_LEFT;\n\n protected override index = 1;\n\n protected popoverType = ClrPopoverType.DROPDOWN;\n\n @ContentChild(ClrOptions) private options: ClrOptions<T>;\n\n private _searchText = '';\n private onTouchedCallback: () => any;\n private onChangeCallback: (model: T | T[]) => any;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n public control: NgControl,\n protected override renderer: Renderer2,\n protected override el: ElementRef<HTMLElement>,\n public optionSelectionService: OptionSelectionService<T>,\n public commonStrings: ClrCommonStringsService,\n private popoverService: ClrPopoverService,\n @Optional() private containerService: ComboboxContainerService,\n @Inject(PLATFORM_ID) private platformId: any,\n private focusHandler: ComboboxFocusHandler<T>,\n private cdr: ChangeDetectorRef\n ) {\n super(vcr, ClrComboboxContainer, injector, control, renderer, el);\n if (control) {\n control.valueAccessor = this;\n }\n\n // default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used\n optionSelectionService.selectionModel = new SingleSelectComboboxModel<T>();\n this.updateControlValue();\n }\n\n @Input('clrEditable')\n get editable() {\n return this.optionSelectionService.editable;\n }\n set editable(value: boolean) {\n this.optionSelectionService.editable = value;\n }\n\n @Input('clrMulti')\n get multiSelect() {\n return this.optionSelectionService.multiselectable;\n }\n set multiSelect(value: boolean | string) {\n if (value) {\n this.optionSelectionService.selectionModel = new MultiSelectComboboxModel<T>();\n } else {\n // in theory, setting this again should not cause errors even though we already set it in constructor,\n // since the initial call to writeValue (caused by [ngModel] input) should happen after this\n this.optionSelectionService.selectionModel = new SingleSelectComboboxModel<T>();\n }\n this.updateControlValue();\n }\n\n // Override the id of WrappedFormControl, as we want to move it to the embedded input.\n // Otherwise, the label/component connection does not work and screen readers do not read the label.\n override get id() {\n return this.controlIdService.id + '-combobox';\n }\n override set id(id: string) {\n super.id = id;\n }\n\n get searchText(): string {\n return this._searchText;\n }\n set searchText(text: string) {\n // if input text has changed since last time, fire a change event so application can react to it\n if (text !== this._searchText) {\n if (this.popoverService.open) {\n this.optionSelectionService.showAllOptions = false;\n }\n this._searchText = text;\n this.clrInputChange.emit(this.searchText);\n }\n // We need to trigger this even if unchanged, so the option-items directive will update its list\n // based on the \"showAllOptions\" variable which may have changed in the openChange subscription below.\n // The option-items directive does not listen to openChange, but it listens to currentInput changes.\n this.optionSelectionService.currentInput = this.searchText;\n }\n\n get openState(): boolean {\n return this.popoverService.open;\n }\n\n get multiSelectModel(): T[] {\n if (!this.multiSelect) {\n throw Error('multiSelectModel is not available in single selection context');\n }\n return (this.optionSelectionService.selectionModel as MultiSelectComboboxModel<T>).model;\n }\n\n get ariaControls(): string {\n return this.options?.optionsId;\n }\n\n get ariaOwns(): string {\n return this.options?.optionsId;\n }\n\n get ariaDescribedBySelection(): string {\n return 'selection-' + this.id;\n }\n\n get displayField(): string {\n return this.optionSelectionService.displayField;\n }\n\n private get disabled() {\n return this.control?.disabled;\n }\n\n ngAfterContentInit() {\n this.initializeSubscriptions();\n\n // Initialize with preselected value\n if (!this.optionSelectionService.selectionModel.isEmpty()) {\n this.updateInputValue(this.optionSelectionService.selectionModel);\n }\n }\n\n ngAfterViewInit() {\n this.focusHandler.componentCdRef = this.cdr;\n this.focusHandler.textInput = this.textbox.nativeElement;\n this.focusHandler.trigger = this.trigger.nativeElement;\n // The text input is the actual element we are wrapping\n // This assignment is needed by the wrapper, so it can set\n // the aria properties on the input element, not on the component.\n this.el = this.textbox;\n }\n\n @HostListener('keydown', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n // if BACKSPACE in multiselect mode, delete the last pill if text is empty\n if (this.multiSelect) {\n const multiModel: T[] = this.optionSelectionService.selectionModel.model as T[];\n switch (event.key) {\n case Keys.Backspace:\n if (!this._searchText.length) {\n if (multiModel && multiModel.length > 0) {\n const lastItem: T = multiModel[multiModel.length - 1];\n this.control?.control.markAsTouched();\n this.optionSelectionService.unselect(lastItem);\n }\n }\n break;\n case Keys.Enter:\n if (this.editable && this._searchText.length > 0 && this.options.emptyOptions) {\n const parsedInput = this.optionSelectionService.parseStringToModel(this._searchText);\n this.control?.control.markAsTouched();\n this.optionSelectionService.select(parsedInput);\n this.searchText = '';\n }\n break;\n }\n }\n }\n\n inputId(): string {\n return this.controlIdService.id;\n }\n\n loadingStateChange(state: ClrLoadingState): void {\n this.optionSelectionService.loading = state === ClrLoadingState.LOADING;\n\n if (state !== ClrLoadingState.LOADING && isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.popoverService?.resetPositions();\n });\n this.focusFirstActive();\n }\n }\n\n unselect(item: T) {\n if (!this.disabled) {\n this.optionSelectionService.unselect(item);\n }\n }\n\n onBlur(event) {\n if (!event.relatedTarget || !this.options.el?.nativeElement.contains(event.relatedTarget)) {\n this.onTouchedCallback?.();\n this.triggerValidation();\n this.focused = false;\n }\n }\n\n onFocus() {\n this.focused = true;\n\n // fix for \"expression changed\" error when focus is returned to a combobox after a modal is closed\n // https://github.com/vmware-clarity/ng-clarity/issues/663\n this.cdr.detectChanges();\n }\n\n onChange() {\n if (this.editable && !this.multiSelect && this.options.emptyOptions) {\n const parsedInput = this.optionSelectionService.parseStringToModel(this._searchText);\n this.optionSelectionService.setSelectionValue(parsedInput);\n }\n }\n\n getSelectionAriaLabel() {\n if (this.containerService && this.containerService.labelText) {\n return `${this.containerService.labelText} ${this.commonStrings.keys.comboboxSelection}`;\n }\n return this.commonStrings.keys.comboboxSelection;\n }\n\n focusFirstActive() {\n setTimeout(() => {\n this.focusHandler.focusFirstActive();\n });\n }\n\n writeValue(value: T | T[]): void {\n this.optionSelectionService.selectionModel.model = value;\n this.updateInputValue(this.optionSelectionService.selectionModel);\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouchedCallback = onTouched;\n }\n\n registerOnChange(onChange: any): void {\n this.onChangeCallback = onChange;\n }\n\n getActiveDescendant() {\n const model = this.focusHandler.pseudoFocus.model;\n return model ? model.id : this.options?.noResultsElementId;\n }\n\n setDisabledState(): void {\n // do nothing\n }\n\n onWrapperClick(event) {\n if (this.disabled) {\n return;\n }\n this.focusHandler.focusInput();\n if (this.editable || (!this.editable && this.trigger.nativeElement.contains(event.target))) {\n this.popoverService.toggleWithEvent(event);\n }\n }\n\n private initializeSubscriptions(): void {\n this.subscriptions.push(\n this.optionSelectionService.selectionChanged.subscribe((newSelection: ComboboxModel<T>) => {\n this.updateInputValue(newSelection);\n if (!this.multiSelect && newSelection && !newSelection.isEmpty()) {\n this.popoverService.open = false;\n }\n this.updateControlValue();\n\n if (this.multiSelect) {\n setTimeout(() => {\n this.popoverService?.updatePosition();\n });\n }\n })\n );\n\n this.subscriptions.push(\n this.popoverService.openChange.subscribe(open => {\n if (this.editable && !this.multiSelect) {\n if (this.searchText) {\n this.optionSelectionService.showAllOptions = false;\n this.optionSelectionService.currentInput = this.searchText;\n }\n return;\n }\n if (open) {\n this.focusFirstActive();\n } else {\n this.optionSelectionService.showAllOptions = true;\n }\n if (this.multiSelect) {\n this.searchText = '';\n } else {\n this.searchText = this.getDisplayNames(this.optionSelectionService.selectionModel.model)[0] || '';\n }\n })\n );\n }\n\n private updateInputValue(model: ComboboxModel<T>) {\n if (!this.multiSelect) {\n this.searchText = model.model ? this.getDisplayNames(model.model)[0] : '';\n if (this.searchText) {\n this.optionSelectionService.currentInput = this.searchText;\n }\n }\n }\n\n private updateControlValue() {\n if (this.onChangeCallback) {\n this.onChangeCallback(this.optionSelectionService.selectionModel.model);\n }\n }\n\n private getDisplayNames(model: T | T[]) {\n if (this.displayField) {\n if (!Array.isArray(model)) {\n model = [model];\n }\n return model.map(item => (item ? (item as any)[this.displayField] : null));\n }\n return [this.optionSelectionService.selectionModel.model];\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<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\nwidth of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"onWrapperClick($event)\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"(control?.control.touched && control?.invalid)\"\n [class.disabled]=\"control?.disabled\"\n>\n @if (multiSelect && optionSelectionService.selectionModel.model && multiSelectModel.length > 0) {\n <span\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n class=\"clr-combobox-pills\"\n >\n @for (item of multiSelectModel; track item; let i = $index) {\n <span class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n @if (optionSelected) {\n <ng-container\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n ></ng-container>\n }\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n }\n </span>\n }\n\n <input\n #textboxInput\n type=\"text\"\n role=\"combobox\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus()\"\n (change)=\"onChange()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\nAdditionally 'outsideClickToClose' has complex handling that's necessary\nto be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState; at popoverPosition; type: popoverType;\">\n <ng-content></ng-content>\n</div>\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 { NgForOf, NgForOfContext } from '@angular/common';\nimport {\n Directive,\n DoCheck,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n TemplateRef,\n TrackByFunction,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { OptionSelectionService } from './providers/option-selection.service';\n@Directive({\n selector: '[clrOptionItems][clrOptionItemsOf]',\n standalone: false,\n})\nexport class ClrOptionItems<T> implements DoCheck, OnDestroy {\n private iterableProxy: NgForOf<T>;\n private _rawItems: T[];\n private filteredItems: T[];\n private subscriptions: Subscription[] = [];\n private filter = '';\n private _filterField: string;\n private differ: IterableDiffer<T> | null = null;\n\n constructor(\n public template: TemplateRef<NgForOfContext<T>>,\n private differs: IterableDiffers,\n private optionService: OptionSelectionService<T>,\n vcr: ViewContainerRef\n ) {\n this.iterableProxy = new NgForOf<T>(vcr, template, differs);\n this.subscriptions.push(\n optionService.inputChanged.subscribe(filter => {\n this.filter = filter;\n if (optionService.filtering) {\n this.updateItems();\n }\n })\n );\n }\n\n @Input('clrOptionItemsOf')\n set rawItems(items: T[]) {\n this._rawItems = items ? items : [];\n this.updateItems();\n }\n\n @Input('clrOptionItemsTrackBy')\n set trackBy(value: TrackByFunction<T>) {\n this.iterableProxy.ngForTrackBy = value;\n }\n\n @Input('clrOptionItemsField')\n set field(field: string) {\n this._filterField = field;\n this.optionService.displayField = field;\n }\n\n get hasResults() {\n // explicity return `undefined` instead of `false` if the answer is not known\n return this.filteredItems ? this.filteredItems.length : undefined;\n }\n\n ngDoCheck() {\n if (!this.differ) {\n this.differ = this.differs.find(this.filteredItems).create(this.iterableProxy.ngForTrackBy);\n }\n if (this.differ) {\n const changes = this.differ.diff(this.filteredItems);\n if (changes) {\n this.iterableProxy.ngDoCheck();\n }\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n private updateItems() {\n if (!this._rawItems || this.filter === undefined || this.filter === null) {\n return;\n }\n\n const normalizedFilterValue = normalizeValue(this.filter);\n\n if (this.optionService.showAllOptions) {\n this.filteredItems = this._rawItems;\n } else if (this._filterField) {\n this.filteredItems = this._rawItems.filter(item => {\n const objValue = (item as any)[this._filterField];\n return objValue ? normalizeValue(objValue).includes(normalizedFilterValue) : false;\n });\n } else {\n // Filter by all item object values\n this.filteredItems = this._rawItems.filter(item => {\n if (typeof item !== 'object') {\n return normalizeValue(item).includes(normalizedFilterValue);\n }\n const objValues = Object.values(item).filter(value => {\n return value !== null && value !== undefined ? normalizeValue(value).includes(normalizedFilterValue) : false;\n });\n return objValues.length > 0;\n });\n }\n this.iterableProxy.ngForOf = this.filteredItems;\n }\n}\n\nfunction normalizeValue(value: any) {\n return value\n .toString()\n .normalize('NFD')\n .replace(/\\p{Diacritic}/gu, '')\n .toLowerCase();\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 { uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ClrOptionItems } from './option-items.directive';\n\n@Component({\n selector: 'clr-option-group',\n host: {\n '[attr.role]': '\"group\"',\n '[attr.aria-labelledby]': 'labelId',\n '[style.display]': 'clrOptionItems.hasResults ? undefined : \"none\"',\n },\n template: `\n <span [id]=\"labelId\" class=\"clr-option-group-label\" role=\"presentation\">{{ label }}</span>\n <ng-content></ng-content>\n `,\n standalone: false,\n})\nexport class ClrOptionGroup<T> {\n @Input('clrOptionGroupLabel') label: string;\n\n @ContentChild(ClrOptionItems) protected clrOptionItems: ClrOptionItems<T>;\n\n protected labelId = uniqueIdFactory();\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 } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport {\n angleIcon,\n checkCircleIcon,\n ClarityIcons,\n ClrIcon,\n exclamationCircleIcon,\n windowCloseIcon,\n} from '@clr/angular/icon';\nimport { ÇlrClrPopoverModuleNext } from '@clr/angular/popover/common';\nimport { ClrSpinnerModule } from '@clr/angular/progress/spinner';\nimport { ClrConditionalModule, ClrKeyFocusModule } from '@clr/angular/utils';\n\nimport { ClrCombobox } from './combobox';\nimport { ClrComboboxContainer } from './combobox-container';\nimport { ClrOption } from './option';\nimport { ClrOptionGroup } from './option-group';\nimport { ClrOptionItems } from './option-items.directive';\nimport { ClrOptionSelected } from './option-selected.directive';\nimport { ClrOptions } from './options';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ClrIcon,\n ClrKeyFocusModule,\n ClrCommonFormsModule,\n ClrConditionalModule,\n ÇlrClrPopoverModuleNext,\n ClrSpinnerModule,\n ],\n declarations: [\n ClrCombobox,\n ClrComboboxContainer,\n ClrOptions,\n ClrOption,\n ClrOptionGroup,\n ClrOptionSelected,\n ClrOptionItems,\n ],\n exports: [\n ClrCommonFormsModule,\n ClrCombobox,\n ClrComboboxContainer,\n ClrOptions,\n ClrOption,\n ClrOptionGroup,\n ClrOptionSelected,\n ClrConditionalModule,\n ClrOptionItems,\n ],\n})\nexport class ClrComboboxModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon, angleIcon, windowCloseIcon);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './combobox.module';\nexport * from './combobox-container';\nexport * from './combobox';\nexport * from './options';\nexport * from './option';\nexport * from './option-group';\nexport * from './option-items.directive';\nexport * from './option-selected.directive';\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';\n\nlet counter = 0;\n\n@Injectable()\nexport class DatalistIdService {\n private _id = 'clr-datalist-' + ++counter;\n private _idChange = new BehaviorSubject(this._id);\n\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value;\n this._idChange.next(value);\n }\n\n get idChange(): Observable<string> {\n return this._idChange.asObservable();\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 { AfterContentInit, Directive, Input, Optional } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DatalistIdService } from './providers/datalist-id.service';\n\n@Directive({\n selector: 'datalist',\n host: {\n '[id]': 'datalistId',\n },\n standalone: false,\n})\nexport class ClrDatalist implements AfterContentInit {\n datalistId: string;\n\n private subscriptions: Subscription[] = [];\n\n constructor(@Optional() private datalistIdService: DatalistIdService) {}\n\n @Input()\n set id(idValue: string) {\n if (!!idValue && this.datalistIdService) {\n this.datalistId = idValue;\n this.datalistIdService.id = idValue;\n } else if (idValue) {\n this.datalistId = idValue;\n }\n }\n\n ngAfterContentInit() {\n if (!this.datalistIdService) {\n return;\n }\n this.subscriptions.push(this.datalistIdService.idChange.subscribe(id => (this.datalistId = id)));\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, Optional } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n FormsFocusService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\nimport { DatalistIdService } from './providers/datalist-id.service';\n\n@Component({\n selector: 'clr-datalist-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-input-wrapper\">\n <div class=\"clr-input-group\" [class.clr-focus]=\"focus\" #datalist>\n <ng-content select=\"[clrDatalistInput]\"></ng-content>\n <ng-content select=\"datalist\"></ng-content>\n <cds-icon shape=\"angle\" class=\"clr-datalist-caret\" direction=\"down\" (click)=\"showPicker(datalist)\"></cds-icon>\n </div>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [ControlClassService, ControlIdService, FormsFocusService, NgControlService, DatalistIdService],\n standalone: false,\n})\nexport class ClrDatalistContainer extends ClrAbstractContainer {\n focus = false;\n\n constructor(\n controlClassService: ControlClassService,\n @Optional() layoutService: LayoutService,\n ngControlService: NgControlService,\n focusService: FormsFocusService\n ) {\n super(layoutService, controlClassService, ngControlService);\n\n this.subscriptions.push(focusService.focusChange.subscribe(state => (this.focus = state)));\n }\n\n showPicker(datalist: HTMLElement) {\n const datalistInput = datalist.querySelector('input[clrDatalistInput]') as HTMLInputElement;\n if (datalistInput) {\n datalistInput.focus();\n datalistInput.showPicker();\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 {\n AfterContentInit,\n Directive,\n ElementRef,\n HostListener,\n Injector,\n Optional,\n Renderer2,\n Self,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { FormsFocusService, WrappedFormControl } from '@clr/angular/forms/common';\n\nimport { ClrDatalistContainer } from './datalist-container';\nimport { DatalistIdService } from './providers/datalist-id.service';\n\n@Directive({\n selector: '[clrDatalistInput]',\n host: {\n '[class.clr-input]': 'true',\n '[attr.list]': 'listValue',\n },\n standalone: false,\n})\nexport class ClrDatalistInput extends WrappedFormControl<ClrDatalistContainer> implements AfterContentInit {\n listValue: string;\n\n constructor(\n @Optional() private focusService: FormsFocusService,\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLInputElement>,\n private datalistIdService: DatalistIdService\n ) {\n super(vcr, ClrDatalistContainer, injector, control, renderer, el);\n\n if (!focusService) {\n throw new Error('clrDatalist requires being wrapped in <clr-datalist-container>');\n }\n }\n\n ngAfterContentInit() {\n // Subscriptions is inherited from WrappedFormControl, unsubscribe is handled there\n this.subscriptions.push(this.datalistIdService.idChange.subscribe(id => (this.listValue = id)));\n }\n\n @HostListener('focus')\n triggerFocus() {\n if (this.focusService) {\n this.focusService.focused = true;\n }\n }\n\n override triggerValidation() {\n super.triggerValidation();\n if (this.focusService) {\n this.focusService.focused = false;\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 } from '@angular/core';\nimport { ClrInputModule } from '@clr/angular/forms/input';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\n\nimport { ClrDatalist } from './datalist';\nimport { ClrDatalistContainer } from './datalist-container';\nimport { ClrDatalistInput } from './datalist-input';\n\n@NgModule({\n imports: [CommonModule, ClrInputModule, ClrIcon],\n declarations: [ClrDatalist, ClrDatalistInput, ClrDatalistContainer],\n exports: [ClrDatalist, ClrDatalistInput, ClrDatalistContainer],\n})\nexport class ClrDatalistModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon);\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 './datalist';\nexport * from './datalist-input';\nexport * from './datalist-container';\nexport * from './datalist.module';\nexport * from './providers/datalist-id.service';\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 DateFormControlService {\n disabled: boolean;\n\n private _touchedChange = new Subject<void>();\n private _dirtyChange = new Subject<void>();\n\n get touchedChange(): Observable<void> {\n return this._touchedChange.asObservable();\n }\n\n get dirtyChange(): Observable<void> {\n return this._dirtyChange.asObservable();\n }\n\n markAsTouched(): void {\n this._touchedChange.next();\n }\n\n markAsDirty(): void {\n this._dirtyChange.next();\n }\n\n // friendly wrapper\n setDisabled(state: boolean) {\n this.disabled = state;\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 class DayModel {\n constructor(\n readonly year: number,\n readonly month: number,\n readonly date: number\n ) {}\n\n /**\n * Checks if the passed CalendarDate is equal to itself.\n */\n isEqual(day: DayModel) {\n if (day) {\n return this.year === day.year && this.month === day.month && this.date === day.date;\n }\n return false;\n }\n\n toDate(): Date {\n return new Date(this.year, this.month, this.date);\n }\n\n /**\n * Returns a new DayModel which is incremented based on the value passed.\n */\n incrementBy(value: number): DayModel {\n // Creating new Javascript Date object to increment because\n // it will automatically take care of switching to next or previous\n // months & years without we having to worry about it.\n const date: Date = new Date(this.year, this.month, this.date + value);\n return new DayModel(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n /**\n * Clones the current day model.\n */\n clone(): DayModel {\n return new DayModel(this.year, this.month, this.date);\n }\n\n toComparisonString(): string {\n return `${this.year}${this.pad(this.month)}${this.pad(this.date)}`;\n }\n\n toDateString(): string {\n return this.toDate().toLocaleDateString(undefined, {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n }\n\n /**\n * Compares the dates and returns boolean value based on the value passed\n */\n isBefore(day: DayModel, dayInclusive = false) {\n return dayInclusive\n ? this.toDate().getTime() <= day?.toDate().getTime()\n : this.toDate().getTime() < day?.toDate().getTime();\n }\n\n /**\n * Compares the dates and returns boolean value based on the value passed\n */\n isAfter(day: DayModel, dayInclusive = false) {\n return dayInclusive\n ? this.toDate().getTime() >= day?.toDate().getTime()\n : this.toDate().getTime() > day?.toDate().getTime();\n }\n\n private pad(num: number): string {\n return num < 10 ? `0${num}` : `${num}`;\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/**\n * This is the en-001 short locale date format. Setting as default.\n */\nexport const DEFAULT_LOCALE_FORMAT = 'dd/MM/y';\n\n// https://en.wikipedia.org/wiki/Date_format_by_country\nexport const LITTLE_ENDIAN_REGEX = /d+.+m+.+y+/i;\nexport const MIDDLE_ENDIAN_REGEX = /m+.+d+.+y+/i;\n// No need for BIG_ENDIAN_REGEX because anything that doesn't satisfy the above 2\n// is automatically BIG_ENDIAN\n\nexport const DELIMITER_REGEX = /d+|m+|y+/i;\n\nexport const USER_INPUT_REGEX = /\\d+/g;\n\nexport const MOBILE_USERAGENT_REGEX = /Mobi/i;\n\nexport const RTL_REGEX = /\\u200f/g;\n\nexport const YEAR = 'YYYY';\nexport const MONTH = 'MM';\nexport const DATE = 'DD';\n\nexport type FormatType = 'LITTLE_ENDIAN' | 'MIDDLE_ENDIAN' | 'BIG_ENDIAN';\n\nexport type InputDateDisplayFormat = {\n readonly name: FormatType;\n readonly format: [string, string, string];\n};\n\nexport const LITTLE_ENDIAN: InputDateDisplayFormat = {\n name: 'LITTLE_ENDIAN',\n format: [DATE, MONTH, YEAR],\n};\n\nexport const MIDDLE_ENDIAN: InputDateDisplayFormat = {\n name: 'MIDDLE_ENDIAN',\n format: [MONTH, DATE, YEAR],\n};\n\nexport const BIG_ENDIAN: InputDateDisplayFormat = {\n name: 'BIG_ENDIAN',\n format: [YEAR, MONTH, DATE],\n};\n\nexport const NO_OF_DAYS_IN_A_WEEK = 7;\nexport const NO_OF_ROWS_IN_CALENDAR_VIEW = 6;\nexport const TOTAL_DAYS_IN_DAYS_VIEW: number = NO_OF_DAYS_IN_A_WEEK * NO_OF_ROWS_IN_CALENDAR_VIEW;\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 { WeekDay } from '@angular/common';\n\n/**\n * Returns the number of days in a month.\n */\nexport function getNumberOfDaysInTheMonth(year: number, month: number): number {\n // If we go to the next month, but use a day of 0, it returns the last day from the previous month\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * Returns the day for the corresponding date where 0 represents Sunday.\n */\nexport function getDay(year: number, month: number, date: number): WeekDay {\n return new Date(year, month, date).getDay();\n}\n\n/**\n * Takes in a year and if it is a 2 digit year, returns the corresponding 4 digit year.\n * Window of 80 years before and 20 years after the present year.\n * Credit: https://github.com/globalizejs/globalize/blob/e1b31cd6a4f1cff75b185b68b7a32220aac5196f/src/date/parse.js\n */\nexport function parseToFourDigitYear(year: number): number {\n if (year > 9999 || (year > 100 && year < 999) || year < 10) {\n return -1;\n }\n if (year > 999) {\n return year;\n }\n const currYear: number = new Date().getFullYear();\n const century: number = Math.floor(currYear / 100) * 100;\n let result: number = year + century;\n if (result > currYear + 20) {\n result = result - 100;\n }\n return result;\n}\n\nexport function datesAreEqual(date1: Date, date2: Date) {\n if (date1 instanceof Date && date2 instanceof Date) {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n } else {\n return false;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n FormatWidth,\n FormStyle,\n getLocaleDateFormat,\n getLocaleDayNames,\n getLocaleFirstDayOfWeek,\n getLocaleMonthNames,\n TranslationWidth,\n} from '@angular/common';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\n\nimport { ClrDayOfWeek } from '../interfaces/day-of-week.interface';\n\n/**\n * This service extracts the Angular CLDR data needed by the datepicker.\n */\n@Injectable()\nexport class LocaleHelperService {\n private _firstDayOfWeek = 0;\n private _localeDays: ReadonlyArray<ClrDayOfWeek>;\n private _localeMonthsAbbreviated: ReadonlyArray<string>;\n private _localeMonthsWide: ReadonlyArray<string>;\n private _localeDateFormat: string;\n\n constructor(@Inject(LOCALE_ID) public locale: string) {\n this.initializeLocaleData();\n }\n\n get firstDayOfWeek(): number {\n return this._firstDayOfWeek;\n }\n\n get localeDays(): ReadonlyArray<ClrDayOfWeek> {\n return this._localeDays;\n }\n\n // leave for backward compatibility\n get localeDaysNarrow(): ReadonlyArray<string> {\n return this._localeDays.map(day => day.narrow);\n }\n\n get localeMonthsAbbreviated(): ReadonlyArray<string> {\n return this._localeMonthsAbbreviated;\n }\n\n get localeMonthsWide(): ReadonlyArray<string> {\n return this._localeMonthsWide;\n }\n\n get localeDateFormat(): string {\n return this._localeDateFormat;\n }\n\n /**\n * Initializes the locale data.\n */\n private initializeLocaleData(): void {\n // Order in which these functions is called is very important.\n this.initializeFirstDayOfWeek();\n this.initializeLocaleDateFormat();\n this.initializeLocaleMonthsAbbreviated();\n this.initializeLocaleMonthsWide();\n this.initializeLocaleDays();\n }\n\n /**\n * Initialize day names based on the locale.\n * eg: [{day: Sunday, narrow: S}, {day: Monday, narrow: M}...] for en-US.\n */\n private initializeLocaleDays(): void {\n // Get locale day names starting with Sunday\n const tempArr = [];\n const tempWideArr: string[] = getLocaleDayNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide).slice();\n const tempNarrowArr: string[] = getLocaleDayNames(\n this.locale,\n FormStyle.Standalone,\n TranslationWidth.Narrow\n ).slice();\n // Get first day of the week based on the locale\n const firstDayOfWeek: number = this.firstDayOfWeek;\n for (let i = 0; i < 7; i++) {\n tempArr.push({ day: tempWideArr[i], narrow: tempNarrowArr[i] });\n }\n // Rearrange the tempArr to start with the first day of the week based on the locale.\n if (firstDayOfWeek > 0) {\n const prevDays: { day: string; narrow: string }[] = tempArr.splice(0, firstDayOfWeek);\n tempArr.push(...prevDays);\n }\n this._localeDays = tempArr;\n }\n\n /**\n * Initializes the array of month names in the TranslationWidth.Abbreviated format.\n * e.g. `[Jan, Feb, ...]` for en-US\n */\n private initializeLocaleMonthsAbbreviated(): void {\n this._localeMonthsAbbreviated = getLocaleMonthNames(\n this.locale,\n FormStyle.Standalone,\n TranslationWidth.Abbreviated\n ).slice();\n }\n\n /**\n * Initializes the array of month names in the TranslationWidth.Wide format.\n * e.g. `[January, February, ...]` for en-US\n */\n private initializeLocaleMonthsWide(): void {\n this._localeMonthsWide = getLocaleMonthNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide).slice();\n }\n\n /**\n * Initializes the first day of the week based on the locale.\n */\n private initializeFirstDayOfWeek(): void {\n this._firstDayOfWeek = getLocaleFirstDayOfWeek(this.locale);\n }\n\n private initializeLocaleDateFormat(): void {\n this._localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\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 { Subject } from 'rxjs';\n\nimport { LocaleHelperService } from './locale-helper.service';\nimport { DateRange, DateRangeOption } from '../interfaces/date-range.interface';\nimport { DayModel } from '../model/day.model';\nimport {\n BIG_ENDIAN,\n DEFAULT_LOCALE_FORMAT,\n DELIMITER_REGEX,\n InputDateDisplayFormat,\n LITTLE_ENDIAN,\n LITTLE_ENDIAN_REGEX,\n MIDDLE_ENDIAN,\n MIDDLE_ENDIAN_REGEX,\n RTL_REGEX,\n USER_INPUT_REGEX,\n} from '../utils/constants';\nimport { getNumberOfDaysInTheMonth, parseToFourDigitYear } from '../utils/date-utils';\n\n@Injectable()\nexport class DateIOService {\n disabledDates: DateRange = {\n // This is the default range. It approximates the beginning of time to the end of time.\n // Unless a minDate or maxDate is set with the native HTML5 api the range is all dates\n // TODO: turn this into an Array of min/max ranges that allow configuration of multiple ranges.\n minDate: new DayModel(0, 0, 1),\n maxDate: new DayModel(9999, 11, 31),\n };\n\n cldrLocaleDateFormat: string = DEFAULT_LOCALE_FORMAT;\n minDateChange = new Subject<DayModel>();\n maxDateChange = new Subject<DayModel>();\n\n private dateRangeOptions;\n private localeDisplayFormat: InputDateDisplayFormat = LITTLE_ENDIAN;\n private delimiters: [string, string] = ['/', '/'];\n\n constructor(localeHelperService: LocaleHelperService) {\n this.cldrLocaleDateFormat = localeHelperService.localeDateFormat;\n this.initializeLocaleDisplayFormat();\n }\n\n get placeholderText(): string {\n const format: [string, string, string] = this.localeDisplayFormat.format;\n return format[0] + this.delimiters[0] + format[1] + this.delimiters[1] + format[2];\n }\n\n setMinDate(date: string): void {\n // NOTE: I'm expecting consumers to pass one of four things here:\n // A proper date string(2019-11-11), null, undefined or empty string ('')\n if (!date) {\n // attribute binding was removed, reset back to the beginning of time\n this.disabledDates.minDate = new DayModel(0, 0, 1);\n } else {\n const [year, month, day] = date.split('-').map(n => parseInt(n, 10));\n this.disabledDates.minDate = new DayModel(year, month - 1, day);\n }\n this.minDateChange.next(this.disabledDates.minDate);\n }\n\n setMaxDate(date: string): void {\n // NOTE: I'm expecting consumers to pass one of four things here:\n // A proper date string(2019-11-11), null, undefined or empty string ('')\n if (!date) {\n // attribute binding was removed, reset forward to the end of time\n this.disabledDates.maxDate = new DayModel(9999, 11, 31);\n } else {\n const [year, month, day] = date.split('-').map(n => parseInt(n, 10));\n this.disabledDates.maxDate = new DayModel(year, month - 1, day);\n }\n this.maxDateChange.next(this.disabledDates.maxDate);\n }\n\n setRangeOptions(rangeOptions: DateRangeOption[]) {\n const validatedRangeOption = this.validateDateRangeOptions(rangeOptions);\n this.dateRangeOptions = validatedRangeOption || [];\n }\n\n getRangeOptions() {\n return this.dateRangeOptions;\n }\n\n toLocaleDisplayFormatString(date: Date): string {\n if (date) {\n if (isNaN(date.getTime())) {\n return '';\n }\n const dateNo: number = date.getDate();\n const monthNo: number = date.getMonth() + 1;\n const dateStr: string = dateNo > 9 ? dateNo.toString() : '0' + dateNo;\n const monthStr: string = monthNo > 9 ? monthNo.toString() : '0' + monthNo;\n if (this.localeDisplayFormat === LITTLE_ENDIAN) {\n return dateStr + this.delimiters[0] + monthStr + this.delimiters[1] + date.getFullYear();\n } else if (this.localeDisplayFormat === MIDDLE_ENDIAN) {\n return monthStr + this.delimiters[0] + dateStr + this.delimiters[1] + date.getFullYear();\n } else {\n return date.getFullYear() + this.delimiters[0] + monthStr + this.delimiters[1] + dateStr;\n }\n }\n return '';\n }\n\n getDateValueFromDateString(date: string): Date {\n if (!date || typeof date !== 'string') {\n return null;\n }\n const dateParts: string[] = date.match(USER_INPUT_REGEX);\n if (!dateParts || dateParts.length !== 3) {\n return null;\n }\n const [firstPart, secondPart, thirdPart] = dateParts;\n if (this.localeDisplayFormat === LITTLE_ENDIAN) {\n // secondPart is month && firstPart is date\n return this.validateAndGetDate(thirdPart, secondPart, firstPart);\n } else if (this.localeDisplayFormat === MIDDLE_ENDIAN) {\n // firstPart is month && secondPart is date\n return this.validateAndGetDate(thirdPart, firstPart, secondPart);\n } else {\n // secondPart is month && thirdPart is date\n return this.validateAndGetDate(firstPart, secondPart, thirdPart);\n }\n }\n\n private validateDateRangeOptions(rangeOptions: DateRangeOption[]): DateRangeOption[] {\n const validOptions = [];\n rangeOptions?.forEach((rangeOption: DateRangeOption) => {\n if (\n rangeOption?.value?.length !== 2 ||\n Object.prototype.toString.call(rangeOption?.value[0]) !== '[object Date]' ||\n Object.prototype.toString.call(rangeOption?.value[1]) !== '[object Date]'\n ) {\n return;\n }\n validOptions.push(rangeOption);\n });\n return validOptions;\n }\n\n private initializeLocaleDisplayFormat(): void {\n const format: string = this.cldrLocaleDateFormat.toLocaleLowerCase();\n if (LITTLE_ENDIAN_REGEX.test(format)) {\n this.localeDisplayFormat = LITTLE_ENDIAN;\n } else if (MIDDLE_ENDIAN_REGEX.test(format)) {\n this.localeDisplayFormat = MIDDLE_ENDIAN;\n } else {\n // everything else is set to BIG-ENDIAN FORMAT\n this.localeDisplayFormat = BIG_ENDIAN;\n }\n this.extractDelimiters();\n }\n\n private extractDelimiters(): void {\n if (this.cldrLocaleDateFormat) {\n // Sanitize Date Format. Remove RTL characters.\n // FIXME: When we support RTL, remove this and handle it correctly.\n const localeFormat: string = this.cldrLocaleDateFormat.replace(RTL_REGEX, '');\n const delimiters: string[] = localeFormat.split(DELIMITER_REGEX);\n\n // NOTE: The split from the CLDR date format should always result\n // in an arary with 4 elements. The 1st and the 2nd values are the delimiters\n // we will use in order.\n // Eg: \"dd/MM/y\".split(/d+|m+|y+/i) results in [\"\", \"/\", \"/\", \"\"]\n if (delimiters && delimiters.length === 4) {\n this.delimiters = [delimiters[1], delimiters[2]];\n } else {\n console.error('Unexpected date format received. Delimiters extracted: ', delimiters);\n }\n }\n }\n\n /**\n * Checks if the month entered by the user is valid or not.\n * Note: Month is 0 based.\n */\n private isValidMonth(month: number): boolean {\n return month > -1 && month < 12;\n }\n\n /**\n * Checks if the date is valid depending on the year and month provided.\n */\n private isValidDate(year: number, month: number, date: number): boolean {\n return date > 0 && date <= getNumberOfDaysInTheMonth(year, month);\n }\n\n /**\n * Validates the parameters provided and returns the date.\n * If the parameters are not\n * valid then return null.\n * NOTE: (Month here is 1 based since the user has provided that as an input)\n */\n private validateAndGetDate(year: string, month: string, date: string): Date {\n // I don't know whats wrong with the TS compiler. It throws an error if I write\n // the below if statement. The error is:\n // Operator '!==' cannot be applied to types '2' and '4'\n // More info here: https://github.com/Microsoft/TypeScript/issues/12794#issuecomment-270342936\n /*\n if (year.length !== 2 || year.length !== 4) {\n return null;\n }\n */\n\n // Instead I have to write the logic like this x-(\n const y: number = +year;\n const m: number = +month - 1; // month is 0 based\n const d: number = +date;\n if (!this.isValidMonth(m) || !this.isValidDate(y, m, d)) {\n return null;\n }\n const result: number = parseToFourDigitYear(y);\n return result !== -1 ? new Date(result, m, d) : null;\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 { DayModel } from './day.model';\nimport { getNumberOfDaysInTheMonth } from '../utils/date-utils';\n\nexport class CalendarModel {\n days: DayModel[];\n\n constructor(\n readonly year: number,\n readonly month: number\n ) {\n this.initializeDaysInCalendar();\n }\n\n /**\n * Checks if the calendar passed is equal to the current calendar.\n */\n isEqual(calendar: CalendarModel) {\n if (calendar) {\n return this.year === calendar.year && this.month === calendar.month;\n }\n return false;\n }\n\n /**\n * Checks if a DayModel is in the Calendar\n */\n isDayInCalendar(day: DayModel): boolean {\n if (day) {\n return this.year === day.year && this.month === day.month;\n }\n return false;\n }\n\n /**\n * Returns CalendarModel of the previous month.\n */\n previousMonth(): CalendarModel {\n if (this.month === 0) {\n return new CalendarModel(this.year - 1, 11);\n } else {\n return new CalendarModel(this.year, this.month - 1);\n }\n }\n\n /**\n * Returns CalendarModel of the next month.\n */\n nextMonth(): CalendarModel {\n if (this.month === 11) {\n return new CalendarModel(this.year + 1, 0);\n } else {\n return new CalendarModel(this.year, this.month + 1);\n }\n }\n\n /**\n * Returns CalendarModel of the previous year.\n */\n previousYear(): CalendarModel {\n return new CalendarModel(this.year - 1, this.month);\n }\n\n /**\n * Returns CalendarModel of the next year.\n */\n nextYear(): CalendarModel {\n return new CalendarModel(this.year + 1, this.month);\n }\n\n /**\n * Populates the days array with the DayModels in the current Calendar.\n */\n private initializeDaysInCalendar(): void {\n const noOfDaysInCalendar: number = getNumberOfDaysInTheMonth(this.year, this.month);\n this.days = Array(noOfDaysInCalendar)\n .fill(null)\n .map((_date, index) => {\n return new DayModel(this.year, this.month, index + 1);\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, tap } from 'rxjs';\n\nimport { DateRangeInput } from '../interfaces/date-range.interface';\nimport { CalendarModel } from '../model/calendar.model';\nimport { DayModel } from '../model/day.model';\n\n/**\n * This service is responsible for:\n * 1. Initializing the displayed calendar.\n * 2. Moving the calendar to the next, previous or current months\n * 3. Managing the focused and selected day models.\n */\n@Injectable()\nexport class DateNavigationService {\n persistedDate: DayModel;\n persistedEndDate: DayModel;\n selectedDay: DayModel;\n selectedEndDay: DayModel;\n focusedDay: DayModel;\n hoveredDay: DayModel;\n hoveredMonth: number;\n hoveredYear: number;\n isRangePicker = false;\n hasActionButtons = false;\n\n private _displayedCalendar: CalendarModel;\n private _todaysFullDate: Date = new Date();\n private _today: DayModel;\n private _selectedDayChange = new Subject<DayModel>();\n private _selectedEndDayChange = new Subject<DayModel>();\n private _displayedCalendarChange = new Subject<void>();\n private _focusOnCalendarChange = new Subject<void>();\n private _refreshCalendarView = new Subject<void>();\n private _focusedDayChange = new Subject<DayModel>();\n\n get today(): DayModel {\n return this._today;\n }\n\n get displayedCalendar(): CalendarModel {\n return this._displayedCalendar;\n }\n\n get selectedDayChange(): Observable<DayModel> {\n return this._selectedDayChange.asObservable();\n }\n\n get selectedEndDayChange(): Observable<DayModel> {\n return this._selectedEndDayChange.asObservable();\n }\n\n /**\n * This observable lets the subscriber know that the displayed calendar has changed.\n */\n get displayedCalendarChange(): Observable<void> {\n return this._displayedCalendarChange.asObservable();\n }\n\n /**\n * This observable lets the subscriber know that the focus should be applied on the calendar.\n */\n get focusOnCalendarChange(): Observable<void> {\n return this._focusOnCalendarChange.asObservable();\n }\n\n /**\n * This observable lets the subscriber know that the focused day in the displayed calendar has changed.\n */\n get focusedDayChange(): Observable<DayModel> {\n return this._focusedDayChange.asObservable().pipe(tap((day: DayModel) => (this.focusedDay = day)));\n }\n\n /**\n * This observable lets the subscriber know that the displayed calendar has changed.\n */\n get refreshCalendarView(): Observable<void> {\n return this._refreshCalendarView.asObservable();\n }\n\n /**\n * Notifies that the selected day has changed so that the date can be emitted to the user.\n */\n notifySelectedDayChanged(dayObject: DayModel | DateRangeInput, { emitEvent } = { emitEvent: true }): void {\n if (this.isRangePicker) {\n const { startDate, endDate } = dayObject as DateRangeInput;\n if (startDate && endDate) {\n this.setSelectedDay(startDate, emitEvent);\n this.setSelectedEndDay(endDate, emitEvent);\n } else {\n if (endDate !== null) {\n this.setSelectedEndDay(endDate, emitEvent);\n }\n if (startDate !== null) {\n this.setSelectedDay(startDate, emitEvent);\n }\n }\n } else {\n const day = dayObject as DayModel;\n this.setSelectedDay(day, emitEvent);\n }\n this._refreshCalendarView.next();\n }\n\n /**\n * Initializes the calendar based on the selected day.\n */\n initializeCalendar(): void {\n this.focusedDay = null; // Can be removed later on the store focus\n this.initializeTodaysDate();\n if (this.selectedDay) {\n this._displayedCalendar = new CalendarModel(this.selectedDay.year, this.selectedDay.month);\n } else {\n this._displayedCalendar = new CalendarModel(this.today.year, this.today.month);\n }\n }\n\n changeMonth(month: number): void {\n this.setDisplayedCalendar(new CalendarModel(this._displayedCalendar.year, month));\n }\n\n changeYear(year: number): void {\n this.setDisplayedCalendar(new CalendarModel(year, this._displayedCalendar.month));\n }\n\n /**\n * Moves the displayed calendar to the next month.\n */\n moveToNextMonth(): void {\n this.setDisplayedCalendar(this._displayedCalendar.nextMonth());\n }\n\n /**\n * Moves the displayed calendar to the previous month.\n */\n moveToPreviousMonth(): void {\n this.setDisplayedCalendar(this._displayedCalendar.previousMonth());\n }\n\n /**\n * Moves the displayed calendar to the next year.\n */\n moveToNextYear(): void {\n this.setDisplayedCalendar(this._displayedCalendar.nextYear());\n }\n\n /**\n * Moves the displayed calendar to the previous year.\n */\n moveToPreviousYear(): void {\n this.setDisplayedCalendar(this._displayedCalendar.previousYear());\n }\n\n /**\n * Moves the displayed calendar to the current month and year.\n */\n moveToCurrentMonth(): void {\n if (!this.displayedCalendar.isDayInCalendar(this.today)) {\n this.setDisplayedCalendar(new CalendarModel(this.today.year, this.today.month));\n }\n this._focusOnCalendarChange.next();\n }\n\n moveToSpecificMonth(day: DayModel) {\n if (!this.displayedCalendar.isDayInCalendar(day)) {\n this.setDisplayedCalendar(new CalendarModel(day.year, day.month));\n }\n }\n\n incrementFocusDay(value: number): void {\n this.hoveredDay = this.focusedDay = this.focusedDay.incrementBy(value);\n if (this._displayedCalendar.isDayInCalendar(this.focusedDay)) {\n this._focusedDayChange.next(this.focusedDay);\n } else {\n this.setDisplayedCalendar(new CalendarModel(this.focusedDay.year, this.focusedDay.month));\n }\n this._focusOnCalendarChange.next();\n }\n\n resetSelectedDay() {\n this.selectedDay = this.persistedDate;\n this.selectedEndDay = this.persistedEndDate;\n }\n\n convertDateToDayModel(date: Date): DayModel {\n return new DayModel(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n private setSelectedDay(dayModel: DayModel | undefined, emitEvent): void {\n this.selectedDay = dayModel;\n if (emitEvent) {\n this._selectedDayChange.next(dayModel);\n }\n }\n\n private setSelectedEndDay(dayModel: DayModel | undefined, emitEvent): void {\n this.selectedEndDay = dayModel;\n if (emitEvent) {\n this._selectedEndDayChange.next(dayModel);\n }\n }\n\n // not a setter because i want this to remain private\n private setDisplayedCalendar(value: CalendarModel) {\n if (!this._displayedCalendar.isEqual(value)) {\n this._displayedCalendar = value;\n this._displayedCalendarChange.next();\n }\n }\n\n private initializeTodaysDate(): void {\n this._todaysFullDate = new Date();\n this._today = new DayModel(\n this._todaysFullDate.getFullYear(),\n this._todaysFullDate.getMonth(),\n this._todaysFullDate.getDate()\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 { DOCUMENT, Inject, Injectable } from '@angular/core';\nimport { DATEPICKER_ENABLE_BREAKPOINT } from '@clr/angular/utils';\n\nimport { MOBILE_USERAGENT_REGEX } from '../utils/constants';\n\n@Injectable()\nexport class DatepickerEnabledService {\n private _isUserAgentMobile = false;\n private _innerWidth: number;\n\n constructor(@Inject(DOCUMENT) private _document: any) {\n if (_document) {\n this._isUserAgentMobile = MOBILE_USERAGENT_REGEX.test(_document.defaultView.navigator.userAgent);\n this._innerWidth = _document.defaultView.innerWidth;\n }\n }\n\n /**\n * Returns if the calendar should be active or not.\n * If the user agent is mobile and the screen width is less than DATEPICKER_ACTIVE_BREAKPOINT\n * then the calendar is inactive.\n */\n get isEnabled(): boolean {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n // What they recommend is:\n //\"In summary, we recommend looking for the string 'Mobi'\n // anywhere in the User Agent to detect a mobile device.\"\n if (this._document) {\n if (this._innerWidth < DATEPICKER_ENABLE_BREAKPOINT && this._isUserAgentMobile) {\n return false;\n }\n }\n return 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\nimport { Injectable } from '@angular/core';\nimport { ClrPopoverPosition } from '@clr/angular/popover/common';\n\nconst enum DatepickerViewEnum {\n MONTHVIEW = 'MONTHVIEW',\n YEARVIEW = 'YEARVIEW',\n DAYVIEW = 'DAYVIEW',\n}\n\n/**\n * This service manages which view is visible in the datepicker popover.\n */\n@Injectable()\nexport class ViewManagerService {\n position = ClrPopoverPosition.BOTTOM_LEFT;\n\n private _currentView: DatepickerViewEnum = DatepickerViewEnum.DAYVIEW;\n\n get isDayView(): boolean {\n return this._currentView === DatepickerViewEnum.DAYVIEW;\n }\n\n get isYearView(): boolean {\n return this._currentView === DatepickerViewEnum.YEARVIEW;\n }\n\n get isMonthView(): boolean {\n return this._currentView === DatepickerViewEnum.MONTHVIEW;\n }\n\n changeToMonthView(): void {\n this._currentView = DatepickerViewEnum.MONTHVIEW;\n }\n\n changeToYearView(): void {\n this._currentView = DatepickerViewEnum.YEARVIEW;\n }\n\n changeToDayView(): void {\n this._currentView = DatepickerViewEnum.DAYVIEW;\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 { ElementRef, Inject, Injectable, NgZone, PLATFORM_ID } from '@angular/core';\nimport { filter, first } from 'rxjs/operators';\n\n/**\n * This service focuses the day that is focusable in the calendar.\n */\n@Injectable()\nexport class DatepickerFocusService {\n constructor(\n private _ngZone: NgZone,\n @Inject(PLATFORM_ID) private platformId: any\n ) {}\n\n focusCell(elRef: ElementRef<HTMLElement>): void {\n this._ngZone.runOutsideAngular(() => {\n this.ngZoneIsStableInBrowser().subscribe(() => {\n const focusEl = elRef.nativeElement.querySelector<HTMLElement>('[tabindex=\"0\"]');\n if (focusEl) {\n focusEl.focus();\n }\n });\n });\n }\n\n focusInput(element: HTMLInputElement): void {\n this._ngZone.runOutsideAngular(() => this.ngZoneIsStableInBrowser().subscribe(() => element.focus()));\n }\n\n elementIsFocused(element: HTMLInputElement) {\n return isPlatformBrowser(this.platformId) && document.activeElement === element;\n }\n\n private ngZoneIsStableInBrowser() {\n // Credit: Material: https://github.com/angular/material2/blob/master/src/lib/datepicker/calendar.ts\n return this._ngZone.onStable.asObservable().pipe(\n first(),\n filter(() => isPlatformBrowser(this.platformId))\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 { AfterViewInit, Component, ElementRef, HostListener } from '@angular/core';\nimport { ClrCommonStringsService, Keys, normalizeKey } from '@clr/angular/utils';\n\nimport { DateNavigationService } from './providers/date-navigation.service';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\nimport { LocaleHelperService } from './providers/locale-helper.service';\nimport { ViewManagerService } from './providers/view-manager.service';\n@Component({\n selector: 'clr-monthpicker',\n template: `\n <div class=\"calendar-header in-monthpicker\">\n <div class=\"year-view-switcher\">\n <button\n class=\"calendar-btn yearpicker-trigger\"\n type=\"button\"\n (click)=\"changeToYearView()\"\n [attr.aria-label]=\"yearAttrString\"\n [attr.title]=\"yearAttrString\"\n >\n {{ calendarYear }}\n </button>\n </div>\n <div class=\"calendar-switchers\">\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"previousYear()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerPreviousMonth\"\n >\n <cds-icon shape=\"angle\" direction=\"left\" [attr.title]=\"commonStrings.keys.datepickerPreviousMonth\"></cds-icon>\n </button>\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"currentYear()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerCurrentMonth\"\n >\n <cds-icon shape=\"event\" [attr.title]=\"commonStrings.keys.datepickerCurrentMonth\"></cds-icon>\n </button>\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"nextYear()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerNextMonth\"\n >\n <cds-icon shape=\"angle\" direction=\"right\" [attr.title]=\"commonStrings.keys.datepickerNextMonth\"></cds-icon>\n </button>\n </div>\n </div>\n <div class=\"months\">\n @for (month of monthNames; track month; let monthIndex = $index) {\n <button\n type=\"button\"\n class=\"calendar-btn month\"\n (click)=\"changeMonth(monthIndex)\"\n [class.is-selected]=\"isSelected(monthIndex)\"\n [class.is-start-range]=\"getIsRangeStartMonth(monthIndex)\"\n [class.is-end-range]=\"getIsRangeEndMonth(monthIndex)\"\n [class.in-range]=\"isInRange(monthIndex)\"\n [attr.tabindex]=\"getTabIndex(monthIndex)\"\n [class.is-today]=\"calendarYear === currentCalendarYear && monthIndex === currentCalendarMonth\"\n (mouseenter)=\"onHover(monthIndex)\"\n >\n {{ month }}\n </button>\n }\n </div>\n `,\n host: {\n '[class.monthpicker]': 'true',\n role: 'application',\n },\n standalone: false,\n})\nexport class ClrMonthpicker implements AfterViewInit {\n /**\n * Keeps track of the current focused month.\n */\n private _focusedMonthIndex: number;\n\n constructor(\n private _localeHelperService: LocaleHelperService,\n private _dateNavigationService: DateNavigationService,\n private _datepickerFocusService: DatepickerFocusService,\n private _elRef: ElementRef,\n private _viewManagerService: ViewManagerService,\n public commonStrings: ClrCommonStringsService\n ) {\n this._focusedMonthIndex = this.calendarMonthIndex;\n }\n /**\n * Gets the months array which is used to rendered the monthpicker view.\n * Months are in the TranslationWidth.Wide format.\n */\n get monthNames(): ReadonlyArray<string> {\n return this._localeHelperService.localeMonthsWide;\n }\n /**\n * Gets the month value of the Calendar.\n */\n get calendarMonthIndex(): number {\n return this._dateNavigationService.displayedCalendar.month;\n }\n\n /**\n * Gets the year which the user is currently on.\n */\n get calendarEndMonthIndex(): number {\n return this._dateNavigationService.selectedEndDay?.month;\n }\n\n get yearAttrString(): string {\n return this.commonStrings.parse(this.commonStrings.keys.datepickerSelectYearText, {\n CALENDAR_YEAR: this.calendarYear.toString(),\n });\n }\n\n /**\n * Returns the year value of the calendar.\n */\n get calendarYear(): number {\n return this._dateNavigationService.displayedCalendar.year;\n }\n\n get currentCalendarYear(): number {\n return new Date().getFullYear();\n }\n\n get currentCalendarMonth(): number {\n return new Date().getMonth();\n }\n\n getIsRangeStartMonth(monthIndex: number): boolean {\n return (\n this._dateNavigationService.isRangePicker &&\n this.calendarYear === this._dateNavigationService.selectedDay?.year &&\n monthIndex === this._dateNavigationService.selectedDay?.month\n );\n }\n\n getIsRangeEndMonth(monthIndex: number): boolean {\n return (\n this._dateNavigationService.isRangePicker &&\n this.calendarYear === this._dateNavigationService.selectedEndDay?.year &&\n monthIndex === this._dateNavigationService.selectedEndDay?.month\n );\n }\n\n /**\n * Calls the ViewManagerService to change to the yearpicker view.\n */\n changeToYearView(): void {\n this._viewManagerService.changeToYearView();\n }\n\n /**\n * Focuses on the current calendar month when the View is initialized.\n */\n ngAfterViewInit() {\n this._datepickerFocusService.focusCell(this._elRef);\n }\n\n /**\n * Handles the Keyboard arrow navigation for the monthpicker.\n */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n // NOTE: Didn't move this to the date navigation service because\n // the logic is fairly simple and it didn't make sense for me\n // to create extra observables just to move this logic to the service.\n if (event) {\n const key = normalizeKey(event.key);\n if (key === Keys.ArrowUp && this._focusedMonthIndex > 1) {\n event.preventDefault();\n this._focusedMonthIndex -= 2;\n this._datepickerFocusService.focusCell(this._elRef);\n } else if (key === Keys.ArrowDown && this._focusedMonthIndex < 10) {\n event.preventDefault();\n this._focusedMonthIndex += 2;\n this._datepickerFocusService.focusCell(this._elRef);\n } else if (key === Keys.ArrowRight && this._focusedMonthIndex < 11) {\n event.preventDefault();\n this._focusedMonthIndex++;\n this._datepickerFocusService.focusCell(this._elRef);\n } else if (key === Keys.ArrowLeft && this._focusedMonthIndex > 0) {\n event.preventDefault();\n this._focusedMonthIndex--;\n this._datepickerFocusService.focusCell(this._elRef);\n }\n }\n }\n\n isSelected(monthIndex: number): boolean {\n return (\n (this._dateNavigationService.selectedDay?.year === this.calendarYear &&\n monthIndex === this._dateNavigationService.selectedDay?.month) ||\n (this._dateNavigationService.selectedEndDay?.year === this.calendarYear &&\n monthIndex === this.calendarEndMonthIndex)\n );\n }\n\n /**\n * Calls the DateNavigationService to update the hovered month value of the calendar\n */\n onHover(monthIndex: number): void {\n this._dateNavigationService.hoveredMonth = monthIndex;\n }\n\n /**\n * Calls the DateNavigationService to update the month value of the calendar.\n * Also changes the view to the daypicker.\n */\n changeMonth(monthIndex: number) {\n this._dateNavigationService.changeMonth(monthIndex);\n this._viewManagerService.changeToDayView();\n }\n\n /**\n * Compares the month passed to the focused month and returns the tab index.\n */\n getTabIndex(monthIndex: number): number {\n return monthIndex === this._focusedMonthIndex ? 0 : -1;\n }\n\n /**\n * Calls the DateNavigationService to move to the next month.\n */\n nextYear(): void {\n this._dateNavigationService.moveToNextYear();\n }\n\n /**\n * Calls the DateNavigationService to move to the previous month.\n */\n previousYear(): void {\n this._dateNavigationService.moveToPreviousYear();\n }\n\n /**\n * Calls the DateNavigationService to move to the current month.\n */\n currentYear(): void {\n this._dateNavigationService.moveToCurrentMonth();\n }\n\n /**\n * Applicable only to date range picker\n * Compares the month passed is in between the start and end date range\n */\n isInRange(monthIndex: number): boolean {\n if (!this._dateNavigationService.isRangePicker) {\n return false;\n }\n if (this._dateNavigationService.selectedDay && this._dateNavigationService.selectedEndDay) {\n return (\n (this.calendarYear === this._dateNavigationService.selectedDay.year &&\n monthIndex > this._dateNavigationService.selectedDay.month &&\n this.calendarYear === this._dateNavigationService.selectedEndDay.year &&\n monthIndex < this._dateNavigationService.selectedEndDay.month) ||\n (this._dateNavigationService.selectedDay.year !== this._dateNavigationService.selectedEndDay.year &&\n this.calendarYear === this._dateNavigationService.selectedDay.year &&\n monthIndex > this._dateNavigationService.selectedDay.month) ||\n (this._dateNavigationService.selectedDay.year !== this._dateNavigationService.selectedEndDay.year &&\n this.calendarYear === this._dateNavigationService.selectedEndDay.year &&\n monthIndex < this._dateNavigationService.selectedEndDay.month) ||\n (this.calendarYear > this._dateNavigationService.selectedDay.year &&\n this.calendarYear < this._dateNavigationService.selectedEndDay.year)\n );\n } else if (this._dateNavigationService.selectedDay && !this._dateNavigationService.selectedEndDay) {\n return (\n (this.calendarYear === this._dateNavigationService.selectedDay.year &&\n monthIndex > this._dateNavigationService.selectedDay.month &&\n monthIndex < this._dateNavigationService.hoveredMonth) ||\n (this.calendarYear > this._dateNavigationService.selectedDay.year &&\n monthIndex < this._dateNavigationService.hoveredMonth)\n );\n } else {\n return false;\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\nconst YEARS_TO_DISPLAY = 10;\n\nexport class YearRangeModel {\n yearRange: number[] = [];\n\n constructor(private readonly year: number) {\n this.generateYearRange();\n }\n\n /**\n * Gets the number in the middle of the range.\n */\n get middleYear(): number {\n return this.yearRange[Math.floor(this.yearRange.length / 2)];\n }\n\n /**\n * Generates the YearRangeModel for the next decade.\n */\n nextDecade(): YearRangeModel {\n return new YearRangeModel(this.year + 10);\n }\n\n /**\n * Generates the YearRangeModel for the previous decade.\n */\n previousDecade(): YearRangeModel {\n return new YearRangeModel(this.year - 10);\n }\n\n /**\n * Generates the YearRangeModel for the current decade.\n */\n currentDecade(): YearRangeModel {\n return new YearRangeModel(new Date().getFullYear());\n }\n\n /**\n * Checks if the value is in the YearRangeModel.\n */\n inRange(value: number): boolean {\n return this.yearRange.indexOf(value) > -1;\n }\n\n /**\n * Generates the year range based on the year parameter.\n * eg: If 2018 is passed the output will be [2010, 2011, ..., 2019]\n */\n private generateYearRange() {\n const remainder: number = this.year % YEARS_TO_DISPLAY;\n const floor: number = this.year - remainder;\n const ceil: number = floor + YEARS_TO_DISPLAY;\n this.yearRange = this.generateRange(floor, ceil);\n }\n\n /**\n * Function which generate a range of numbers from floor to ceil.\n */\n private generateRange(floor: number, ceil: number): number[] {\n return Array.from({ length: ceil - floor }, (_v, k) => k + floor);\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 { AfterViewInit, Component, ElementRef, HostListener } from '@angular/core';\nimport { ClrCommonStringsService, Keys, normalizeKey } from '@clr/angular/utils';\n\nimport { YearRangeModel } from './model/year-range.model';\nimport { DateNavigationService } from './providers/date-navigation.service';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\nimport { ViewManagerService } from './providers/view-manager.service';\n\n@Component({\n selector: 'clr-yearpicker',\n template: `\n <div class=\"calendar-header\">\n <div class=\"calendar-pickers\">\n <button class=\"calendar-btn yearpicker-trigger year-range\" type=\"button\" (click)=\"changeToDayView()\">\n {{ yearRangeModel.yearRange[0] }} - {{ yearRangeModel.yearRange[yearRangeModel.yearRange.length - 1] }}\n </button>\n </div>\n <div class=\"year-switchers\">\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"previousDecade()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerPreviousDecade\"\n >\n <cds-icon\n shape=\"angle\"\n direction=\"left\"\n [attr.title]=\"commonStrings.keys.datepickerPreviousDecade\"\n ></cds-icon>\n </button>\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"currentDecade()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerCurrentDecade\"\n >\n <cds-icon shape=\"event\" [attr.title]=\"commonStrings.keys.datepickerCurrentDecade\"></cds-icon>\n </button>\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"nextDecade()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerNextDecade\"\n >\n <cds-icon shape=\"angle\" direction=\"right\" [attr.title]=\"commonStrings.keys.datepickerNextDecade\"></cds-icon>\n </button>\n </div>\n </div>\n\n <div class=\"years\">\n @for (year of yearRangeModel.yearRange; track year) {\n <button\n type=\"button\"\n class=\"calendar-btn year\"\n [attr.tabindex]=\"getTabIndex(year)\"\n [class.is-selected]=\"year === selectedStartYear || year === selectedEndYear\"\n [class.is-start-range]=\"getIsRangeStartYear(year)\"\n [class.is-end-range]=\"getIsRangeEndYear(year)\"\n [class.in-range]=\"isInRange(year)\"\n [class.is-today]=\"isCurrentCalendarYear(year)\"\n (click)=\"changeYear(year)\"\n (mouseenter)=\"onHover(year)\"\n >\n {{ year }}\n </button>\n }\n </div>\n `,\n host: {\n '[class.yearpicker]': 'true',\n role: 'application',\n },\n standalone: false,\n})\nexport class ClrYearpicker implements AfterViewInit {\n /**\n * YearRangeModel which is used to build the YearPicker view.\n */\n yearRangeModel: YearRangeModel;\n\n /**\n * Keeps track of the current focused year.\n */\n private _focusedYear: number;\n\n constructor(\n private _dateNavigationService: DateNavigationService,\n private _viewManagerService: ViewManagerService,\n private _datepickerFocusService: DatepickerFocusService,\n private _elRef: ElementRef<HTMLElement>,\n public commonStrings: ClrCommonStringsService\n ) {\n this.yearRangeModel = new YearRangeModel(this.calendarYear);\n this._focusedYear = this.calendarYear;\n }\n\n get selectedStartYear(): number {\n return this._dateNavigationService.selectedDay?.year;\n }\n\n get selectedEndYear(): number {\n return this._dateNavigationService.selectedEndDay?.year;\n }\n\n /**\n * Gets the year which the user is currently on.\n */\n get calendarYear(): number {\n return this._dateNavigationService.displayedCalendar.year;\n }\n\n isCurrentCalendarYear(year: number): boolean {\n return year === new Date().getFullYear();\n }\n\n getIsRangeStartYear(year: number): boolean {\n return this._dateNavigationService.isRangePicker && year === this._dateNavigationService.selectedDay?.year;\n }\n\n getIsRangeEndYear(year: number): boolean {\n return this._dateNavigationService.isRangePicker && year === this._dateNavigationService.selectedEndDay?.year;\n }\n\n /**\n * Focuses on the current calendar year when the View is initialized.\n */\n ngAfterViewInit() {\n this._datepickerFocusService.focusCell(this._elRef);\n }\n\n /**\n * Handles the Keyboard arrow navigation for the yearpicker.\n */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n // NOTE: Didn't move this to the date navigation service because\n // the logic is fairly simple and it didn't make sense for me\n // to create extra observables just to move this logic to the service.\n if (event) {\n const key = normalizeKey(event.key);\n if (key === Keys.ArrowUp) {\n event.preventDefault();\n this.incrementFocusYearBy(-2);\n } else if (key === Keys.ArrowDown) {\n event.preventDefault();\n this.incrementFocusYearBy(2);\n } else if (key === Keys.ArrowRight) {\n event.preventDefault();\n this.incrementFocusYearBy(1);\n } else if (key === Keys.ArrowLeft) {\n event.preventDefault();\n this.incrementFocusYearBy(-1);\n }\n }\n }\n\n /**\n * Calls the DateNavigationService to update the year value of the calendar.\n * Also changes the view to the daypicker.\n */\n changeYear(year: number): void {\n this._dateNavigationService.changeYear(year);\n this._viewManagerService.changeToDayView();\n }\n\n /**\n * Calls the DateNavigationService to update the hovered year value of the calendar\n */\n onHover(year: number): void {\n this._dateNavigationService.hoveredYear = year;\n }\n\n /**\n * Updates the YearRangeModel to the previous decade.\n */\n previousDecade(): void {\n this.yearRangeModel = this.yearRangeModel.previousDecade();\n // Year in the yearpicker is not focused because while navigating to a different decade,\n // you want the focus to remain on the decade switcher arrows.\n }\n\n /**\n * Updates the YearRangeModel to the current decade.\n */\n currentDecade(): void {\n if (!this.yearRangeModel.inRange(this._dateNavigationService.today.year)) {\n this.yearRangeModel = this.yearRangeModel.currentDecade();\n }\n this._datepickerFocusService.focusCell(this._elRef);\n }\n\n /**\n * Updates the YearRangeModel to the next decade.\n */\n nextDecade(): void {\n this.yearRangeModel = this.yearRangeModel.nextDecade();\n // Year in the yearpicker is not focused because while navigating to a different decade,\n // you want the focus to remain on the decade switcher arrows.\n }\n\n /**\n * Compares the year passed to the focused year and returns the tab index.\n */\n getTabIndex(year: number): number {\n if (!this.yearRangeModel.inRange(this._focusedYear)) {\n if (this.yearRangeModel.inRange(this.calendarYear)) {\n this._focusedYear = this.calendarYear;\n } else if (this.yearRangeModel.inRange(this.selectedEndYear)) {\n this._focusedYear = this.selectedEndYear;\n } else {\n this._focusedYear = this.yearRangeModel.middleYear;\n }\n }\n return this._focusedYear === year ? 0 : -1;\n }\n\n /**\n * Applicable only to date range picker\n * Compares the year passed is in between the start and end date range\n */\n isInRange(year: number): boolean {\n if (!this._dateNavigationService.isRangePicker) {\n return false;\n }\n if (this._dateNavigationService.selectedDay?.year && this.selectedEndYear) {\n return year > this.selectedStartYear && year < this.selectedEndYear;\n } else if (this._dateNavigationService.selectedDay?.year && !this.selectedEndYear) {\n return year > this.selectedStartYear && year < this._dateNavigationService.hoveredYear;\n } else {\n return false;\n }\n }\n\n changeToDayView() {\n this._viewManagerService.changeToDayView();\n }\n\n /**\n * Increments the focus year by the value passed. Updates the YearRangeModel if the\n * new value is not in the current decade.\n */\n private incrementFocusYearBy(value: number): void {\n this._focusedYear = this._focusedYear + value;\n if (!this.yearRangeModel.inRange(this._focusedYear)) {\n if (value > 0) {\n this.yearRangeModel = this.yearRangeModel.nextDecade();\n } else {\n this.yearRangeModel = this.yearRangeModel.previousDecade();\n }\n }\n this._datepickerFocusService.focusCell(this._elRef);\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 { DayModel } from './day.model';\n\nexport class DayViewModel {\n constructor(\n public dayModel: DayModel,\n public isTodaysDate: boolean = false,\n public isExcluded: boolean = false,\n public isDisabled: boolean = false,\n public isSelected: boolean = false,\n public isFocusable: boolean = false,\n public isRangeStartDay: boolean = false,\n public isRangeEndDay: boolean = false\n ) {}\n\n /**\n * Gets the tab index based on the isFocusable flag.\n */\n get tabIndex(): number {\n return this.isFocusable ? 0 : -1;\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 { CalendarModel } from './calendar.model';\nimport { DayViewModel } from './day-view.model';\nimport { DayModel } from './day.model';\nimport { DateRange } from '../interfaces/date-range.interface';\nimport { NO_OF_DAYS_IN_A_WEEK, NO_OF_ROWS_IN_CALENDAR_VIEW, TOTAL_DAYS_IN_DAYS_VIEW } from '../utils/constants';\nimport { getDay } from '../utils/date-utils';\n\nexport class CalendarViewModel {\n private currMonthDayViews: DayViewModel[] = [];\n private _calendarView: DayViewModel[][];\n\n constructor(\n public calendar: CalendarModel,\n public selectedDay: DayModel,\n public selectedEndDay: DayModel,\n private focusableDay: DayModel,\n private today: DayModel,\n public firstDayOfWeek: number,\n private excludedDates: DateRange\n ) {\n this.initializeCalendarView();\n }\n\n /**\n * DayViewModel matrix. Size 6x7\n */\n get calendarView(): DayViewModel[][] {\n return this._calendarView;\n }\n\n /**\n * Updates the focusable day in the calendar.\n */\n updateFocusableDay(day: DayModel): void {\n this.setFocusableFlag(this.focusableDay, false);\n this.setFocusableFlag(day, true);\n this.focusableDay = day;\n }\n\n /**\n * Updates the selected day in the calendar\n */\n updateSelectedDay(day: DayModel | undefined): void {\n this.setSelectedDay(this.selectedDay, false);\n this.selectedDay = day;\n this.setSelectedDay(day, true);\n }\n\n /**\n * Updates the selected end day in the calendar\n */\n updateSelectedEndDay(day: DayModel | undefined): void {\n this.setSelectedDay(this.selectedEndDay, false);\n this.selectedEndDay = day;\n this.setSelectedDay(day, true);\n }\n\n /**\n * Generates a 6x7 matrix of DayViewModel based on the Calendar.\n * The 6x7 matrix is structured according to the first day of the week.\n * 6 rows to accommodate months which might have dates spanning over 6 weeks.\n * 7 columns because there are 7 days in a week :P :D\n */\n private initializeCalendarView(): void {\n // Generate prev and next month calendar models.\n const prevMonthCalendar: CalendarModel = this.calendar.previousMonth();\n const nextMonthCalendar: CalendarModel = this.calendar.nextMonth();\n\n // Get no of days from prev and next months.\n const daysFromPrevMonthInCalView: number = this.numDaysFromPrevMonthInCalView(\n this.calendar.year,\n this.calendar.month\n );\n const daysFromNextMonthInCalView: number =\n TOTAL_DAYS_IN_DAYS_VIEW - (this.calendar.days.length + daysFromPrevMonthInCalView);\n\n // Generate prev, curr and next day view models\n let prevMonthDayViews: DayViewModel[] = [];\n let nextMonthDayViews: DayViewModel[] = [];\n\n if (daysFromPrevMonthInCalView > 0) {\n prevMonthDayViews = this.generateDayViewModels(\n prevMonthCalendar.days.slice(-1 * daysFromPrevMonthInCalView),\n true,\n false\n );\n }\n\n this.currMonthDayViews = this.generateDayViewModels(this.calendar.days, false, true);\n\n if (daysFromNextMonthInCalView > 0) {\n nextMonthDayViews = this.generateDayViewModels(\n nextMonthCalendar.days.slice(0, daysFromNextMonthInCalView),\n true,\n false\n );\n }\n\n // Generate calendar view and initialize flags\n this._calendarView = this.generateCalendarView(prevMonthDayViews, this.currMonthDayViews, nextMonthDayViews);\n this.initializeSelectedDay();\n this.initializeFocusableDay();\n }\n\n private isDateExcluded(date: DayModel) {\n const { minDate, maxDate }: DateRange = this.excludedDates;\n const from = minDate.toComparisonString();\n const to = maxDate.toComparisonString();\n const today = date.toComparisonString();\n\n return !(today >= from && today <= to);\n }\n\n /**\n * Generates a DayViewModel array based on the DayModel passed\n */\n private generateDayViewModels(days: DayModel[], isExcluded: boolean, isCurrentCalendar: boolean): DayViewModel[] {\n const dayViews: DayViewModel[] = days.map(day => {\n return new DayViewModel(day, false, isExcluded, this.isDateExcluded(day), false, false);\n });\n if (isCurrentCalendar && this.calendar.isDayInCalendar(this.today)) {\n dayViews[this.today.date - 1].isTodaysDate = true;\n }\n return dayViews;\n }\n\n /**\n * Gets the first day of the current month to figure out how many dates of previous month\n * are needed to complete the Calendar View based on the first day of the week.\n * eg: Assuming locale en-US, the first day of the week is Sunday,\n * if first day of the current month lands on Wednesday, then\n * (this.getDay function would return 3 since\n * first day of the week is 0), we need the 3 days from the previous month.\n */\n private numDaysFromPrevMonthInCalView(currentYear: number, currentMonth: number): number {\n const firstDayOfCurrMonth: number = getDay(currentYear, currentMonth, 1);\n\n if (firstDayOfCurrMonth >= this.firstDayOfWeek) {\n return firstDayOfCurrMonth - this.firstDayOfWeek;\n } else {\n return NO_OF_DAYS_IN_A_WEEK + firstDayOfCurrMonth - this.firstDayOfWeek;\n }\n }\n\n /**\n * Checks if the Day passed is in the CalendarView.\n */\n private isDayInCalendarView(day: DayModel): boolean {\n if (!this.calendar.isDayInCalendar(day)) {\n return false;\n }\n return true;\n }\n\n /**\n * Using the DayViewModels from the previous, current and next month, this function\n * generates the CalendarView.\n */\n private generateCalendarView(prev: DayViewModel[], curr: DayViewModel[], next: DayViewModel[]): DayViewModel[][] {\n const combinationArr: DayViewModel[] = [...prev, ...curr, ...next];\n\n const calendarView: DayViewModel[][] = [];\n for (let i = 0; i < NO_OF_ROWS_IN_CALENDAR_VIEW; i++) {\n calendarView[i] = combinationArr.slice(i * NO_OF_DAYS_IN_A_WEEK, (i + 1) * NO_OF_DAYS_IN_A_WEEK);\n }\n return calendarView;\n }\n\n /**\n * Initialize the selected day if the day is in the calendar.\n */\n private initializeSelectedDay(): void {\n this.setSelectedDay(this.selectedDay, true);\n this.setSelectedDay(this.selectedEndDay, true);\n }\n\n /**\n * Initializes the focusable day if the day is in the calendar. If focusable day is not set, then\n * we check for the selected day. If selected day is not set then check if today is in the current\n * calendar. If not then just set the 15th of the current calendar month.\n */\n private initializeFocusableDay(): void {\n if (this.focusableDay && this.isDayInCalendarView(this.focusableDay)) {\n this.setFocusableFlag(this.focusableDay, true);\n } else if (this.selectedDay && this.isDayInCalendarView(this.selectedDay)) {\n this.setFocusableFlag(this.selectedDay, true);\n this.focusableDay = this.selectedDay.clone();\n } else if (this.selectedEndDay && this.isDayInCalendarView(this.selectedEndDay)) {\n this.setFocusableFlag(this.selectedEndDay, true);\n this.focusableDay = this.selectedEndDay.clone();\n } else if (this.isDayInCalendarView(this.today)) {\n this.setFocusableFlag(this.today, true);\n this.focusableDay = this.today.clone();\n } else {\n this.focusableDay = new DayModel(this.calendar.year, this.calendar.month, 15);\n this.setFocusableFlag(this.focusableDay, true);\n }\n }\n\n private setFocusableFlag(day: DayModel, flag: boolean): void {\n if (day) {\n this.currMonthDayViews[day.date - 1].isFocusable = flag;\n }\n }\n\n private setSelectedDay(day: DayModel, flag: boolean) {\n if (day && this.isDayInCalendarView(day)) {\n this.currMonthDayViews[day?.date - 1].isSelected = flag;\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, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { DayViewModel } from './model/day-view.model';\nimport { DayModel } from './model/day.model';\nimport { DateNavigationService } from './providers/date-navigation.service';\n\n@Component({\n selector: 'clr-day',\n template: `\n <button\n class=\"day-btn\"\n type=\"button\"\n [class.is-today]=\"dayView.isTodaysDate\"\n [class.is-excluded]=\"dayView.isExcluded\"\n [class.is-disabled]=\"dayView.isDisabled\"\n [class.is-selected]=\"dayView.isSelected\"\n [class.in-range]=\"isInRange()\"\n [class.is-start-range]=\"isRangeStartDay\"\n [class.is-end-range]=\"isRangeEndDay\"\n [attr.tabindex]=\"dayView.tabIndex\"\n (click)=\"selectDay()\"\n (focus)=\"onDayViewFocus()\"\n [attr.aria-current]=\"dayView.isTodaysDate ? 'date' : 'false'\"\n [attr.aria-label]=\"dayString\"\n [attr.aria-selected]=\"dayView.isSelected\"\n >\n {{ dayView.dayModel.date }}\n </button>\n `,\n host: { '[class.day]': 'true' },\n standalone: false,\n})\nexport class ClrDay {\n @Output('selectDay') onSelectDay = new EventEmitter<DayModel>();\n\n private _dayView: DayViewModel;\n\n constructor(\n private _dateNavigationService: DateNavigationService,\n private commonStrings: ClrCommonStringsService\n ) {}\n\n /**\n * DayViewModel input which is used to build the Day View.\n */\n\n @Input('clrDayView')\n get dayView(): DayViewModel {\n return this._dayView;\n }\n set dayView(day: DayViewModel) {\n this._dayView = day;\n }\n\n get dayString(): string {\n return this.dayView.isSelected\n ? this.commonStrings.parse(this.commonStrings.keys.datepickerSelectedLabel, {\n FULL_DATE: this._dayView.dayModel.toDateString(),\n })\n : this._dayView.dayModel.toDateString();\n }\n\n get isRangeStartDay(): boolean {\n return (\n this._dateNavigationService.isRangePicker &&\n this.dayView?.dayModel?.toComparisonString() === this._dateNavigationService.selectedDay?.toComparisonString()\n );\n }\n\n get isRangeEndDay(): boolean {\n return (\n this._dateNavigationService.isRangePicker &&\n this.dayView?.dayModel?.toComparisonString() === this._dateNavigationService.selectedEndDay?.toComparisonString()\n );\n }\n\n /**\n * Calls the DateNavigationService to update the hovered day value of the calendar\n */\n @HostListener('mouseenter')\n hoverListener(): void {\n if (!this.dayView.isDisabled) {\n this._dateNavigationService.hoveredDay = this.dayView.dayModel;\n }\n }\n\n /**\n * Updates the focusedDay in the DateNavigationService when the ClrDay is focused.\n */\n onDayViewFocus() {\n this._dateNavigationService.focusedDay = this.dayView.dayModel;\n }\n\n /**\n * Updates the selectedDay when the ClrDay is selected and closes the datepicker popover.\n */\n selectDay(): void {\n if (this.dayView.isDisabled) {\n return;\n }\n const day: DayModel = this.dayView.dayModel;\n this.onSelectDay.emit(day);\n }\n\n /**\n * Applicable only to date range picker\n * Compares whether the day is in between the start and end date range\n */\n isInRange(): boolean {\n if (!this._dateNavigationService.isRangePicker) {\n return false;\n }\n if (this._dateNavigationService.selectedDay && this._dateNavigationService.selectedEndDay) {\n return (\n this._dayView.dayModel?.isAfter(this._dateNavigationService.selectedDay) &&\n this._dayView.dayModel?.isBefore(this._dateNavigationService.selectedEndDay)\n );\n } else if (this._dateNavigationService.selectedDay && !this._dateNavigationService.selectedEndDay) {\n return (\n this._dayView.dayModel?.isAfter(this._dateNavigationService.selectedDay) &&\n this._dayView.dayModel?.isBefore(this._dateNavigationService.hoveredDay, true)\n );\n } else {\n return false;\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, ElementRef, HostListener, OnDestroy } from '@angular/core';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { Keys, normalizeKey } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\n\nimport { DateRangeInput } from './interfaces/date-range.interface';\nimport { ClrDayOfWeek } from './interfaces/day-of-week.interface';\nimport { CalendarViewModel } from './model/calendar-view.model';\nimport { CalendarModel } from './model/calendar.model';\nimport { DayModel } from './model/day.model';\nimport { DateFormControlService } from './providers/date-form-control.service';\nimport { DateIOService } from './providers/date-io.service';\nimport { DateNavigationService } from './providers/date-navigation.service';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\nimport { LocaleHelperService } from './providers/locale-helper.service';\nimport { NO_OF_DAYS_IN_A_WEEK } from './utils/constants';\n\n@Component({\n selector: 'clr-calendar',\n templateUrl: './calendar.html',\n standalone: false,\n})\nexport class ClrCalendar implements OnDestroy {\n /**\n * Calendar View Model to generate the Calendar.\n */\n calendarViewModel: CalendarViewModel;\n\n private _subs: Subscription[] = [];\n\n constructor(\n private _localeHelperService: LocaleHelperService,\n private _dateNavigationService: DateNavigationService,\n private _datepickerFocusService: DatepickerFocusService,\n private _dateIOService: DateIOService,\n private _elRef: ElementRef<HTMLElement>,\n private _dateFormControlService: DateFormControlService,\n private _popoverService: ClrPopoverService\n ) {\n this.generateCalendarView();\n this.initializeSubscriptions();\n }\n\n /**\n * Gets the locale days according to the TranslationWidth.Narrow format.\n */\n get localeDays(): ReadonlyArray<ClrDayOfWeek> {\n return this._localeHelperService.localeDays;\n }\n\n get calendar(): CalendarModel {\n return this._dateNavigationService.displayedCalendar;\n }\n\n get selectedDay(): DayModel {\n return this._dateNavigationService.selectedDay;\n }\n\n get selectedEndDay(): DayModel {\n return this._dateNavigationService.selectedEndDay;\n }\n\n get focusedDay(): DayModel {\n return this._dateNavigationService.focusedDay;\n }\n\n get today(): DayModel {\n return this._dateNavigationService.today;\n }\n\n /**\n * Focuses on the focusable day when the Calendar View is initialized.\n */\n ngAfterViewInit() {\n this._datepickerFocusService.focusCell(this._elRef);\n }\n\n /**\n * Unsubscribe from subscriptions.\n */\n ngOnDestroy(): void {\n this._subs.forEach((sub: Subscription) => sub.unsubscribe());\n }\n\n /**\n * Delegates Keyboard arrow navigation to the DateNavigationService.\n */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (event && this.focusedDay) {\n switch (normalizeKey(event.key)) {\n case Keys.ArrowUp:\n event.preventDefault();\n this._dateNavigationService.incrementFocusDay(-1 * NO_OF_DAYS_IN_A_WEEK);\n break;\n case Keys.ArrowDown:\n event.preventDefault();\n this._dateNavigationService.incrementFocusDay(NO_OF_DAYS_IN_A_WEEK);\n break;\n case Keys.ArrowLeft:\n event.preventDefault();\n this._dateNavigationService.incrementFocusDay(-1);\n break;\n case Keys.ArrowRight:\n event.preventDefault();\n this._dateNavigationService.incrementFocusDay(1);\n break;\n default:\n break; // No default case. ESLint x-(\n }\n }\n }\n\n setSelectedDay(day: DayModel) {\n const hasActionButtons = this._dateNavigationService.hasActionButtons;\n const selectedDates: DayModel | DateRangeInput = this.updateCalendarViewModal(day);\n this._dateNavigationService.notifySelectedDayChanged(selectedDates, { emitEvent: !hasActionButtons });\n if (!hasActionButtons) {\n this._dateFormControlService.markAsDirty();\n this.validateAndCloseDatePicker();\n }\n }\n\n /**\n * Initialize subscriptions to:\n * 1. update the calendar view model.\n * 2. update the focusable day in the calendar view model.\n * 3. focus on the focusable day in the calendar.\n */\n private initializeSubscriptions(): void {\n this._subs.push(\n this._dateNavigationService.displayedCalendarChange.subscribe(() => {\n this.generateCalendarView();\n })\n );\n\n this._subs.push(\n this._dateNavigationService.focusedDayChange.subscribe((focusedDay: DayModel) => {\n this.calendarViewModel.updateFocusableDay(focusedDay);\n })\n );\n\n this._subs.push(\n this._dateNavigationService.focusOnCalendarChange.subscribe(() => {\n this._datepickerFocusService.focusCell(this._elRef);\n })\n );\n\n this._subs.push(\n this._dateNavigationService.refreshCalendarView.subscribe(() => {\n this.refreshCalendarViewModal();\n })\n );\n }\n\n private validateAndCloseDatePicker() {\n if (\n (this._dateNavigationService.isRangePicker &&\n this._dateNavigationService.selectedDay &&\n this._dateNavigationService.selectedEndDay) ||\n (!this._dateNavigationService.isRangePicker && this._dateNavigationService.selectedDay)\n ) {\n this._popoverService.open = false;\n }\n }\n\n private updateCalendarViewModal(day: DayModel): DayModel | DateRangeInput {\n const startDate = this.calendarViewModel.selectedDay || null,\n isRangePicker = this._dateNavigationService.isRangePicker;\n let endDate = this.calendarViewModel.selectedEndDay || null;\n\n if (isRangePicker) {\n if (!startDate || (!!startDate && !!endDate) || (!!startDate && day?.isBefore(startDate))) {\n this.calendarViewModel.updateSelectedDay(day);\n if (endDate) {\n endDate = undefined;\n this.calendarViewModel.updateSelectedEndDay(endDate);\n }\n } else {\n this.calendarViewModel.updateSelectedEndDay(day);\n }\n } else {\n this.calendarViewModel.updateSelectedDay(day);\n }\n\n return isRangePicker\n ? { startDate: this.calendarViewModel.selectedDay, endDate: this.calendarViewModel.selectedEndDay }\n : this.calendarViewModel.selectedDay;\n }\n\n private refreshCalendarViewModal() {\n this.calendarViewModel.updateSelectedDay(this._dateNavigationService.selectedDay);\n if (this._dateNavigationService.isRangePicker) {\n this.calendarViewModel.updateSelectedEndDay(this._dateNavigationService.selectedEndDay);\n }\n }\n\n /**\n * Generates the Calendar View based on the calendar retrieved from the DateNavigationService.\n */\n private generateCalendarView(): void {\n this.calendarViewModel = new CalendarViewModel(\n this.calendar,\n this.selectedDay,\n this.selectedEndDay,\n this.focusedDay,\n this.today,\n this._localeHelperService.firstDayOfWeek,\n this._dateIOService.disabledDates\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<table class=\"calendar-table\" role=\"presentation\">\n <tr class=\"calendar-row weekdays\">\n @for (day of localeDays; track day) {\n <th class=\"calendar-cell weekday\">\n <span [attr.aria-label]=\"day.day\">{{day.narrow}}</span>\n </th>\n }\n </tr>\n @for (row of calendarViewModel.calendarView; track row) {\n <tr class=\"calendar-row\">\n @for (dayView of row; track dayView) {\n <td class=\"calendar-cell\">\n <clr-day [clrDayView]=\"dayView\" (selectDay)=\"setSelectedDay($event)\"></clr-day>\n </td>\n }\n </tr>\n }\n</table>\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';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { DateNavigationService } from './providers/date-navigation.service';\nimport { LocaleHelperService } from './providers/locale-helper.service';\nimport { ViewManagerService } from './providers/view-manager.service';\n\n@Component({\n selector: 'clr-daypicker',\n templateUrl: './daypicker.html',\n host: { '[class.daypicker]': 'true', role: 'application' },\n standalone: false,\n})\nexport class ClrDaypicker {\n constructor(\n private _viewManagerService: ViewManagerService,\n private _dateNavigationService: DateNavigationService,\n private _localeHelperService: LocaleHelperService,\n public commonStrings: ClrCommonStringsService\n ) {}\n\n get monthAttrString(): string {\n return this.commonStrings.parse(this.commonStrings.keys.datepickerSelectMonthText, {\n CALENDAR_MONTH: this.calendarMonth,\n });\n }\n\n get yearAttrString(): string {\n return this.commonStrings.parse(this.commonStrings.keys.datepickerSelectYearText, {\n CALENDAR_YEAR: this.calendarYear.toString(),\n });\n }\n\n /**\n * Returns the month value of the calendar in the TranslationWidth.Abbreviated format.\n */\n get calendarMonth(): string {\n return this._localeHelperService.localeMonthsAbbreviated[this._dateNavigationService.displayedCalendar.month];\n }\n\n /**\n * Returns the year value of the calendar.\n */\n get calendarYear(): number {\n return this._dateNavigationService.displayedCalendar.year;\n }\n\n /**\n * Calls the ViewManagerService to change to the monthpicker view.\n */\n changeToMonthView(): void {\n this._viewManagerService.changeToMonthView();\n }\n\n /**\n * Calls the ViewManagerService to change to the yearpicker view.\n */\n changeToYearView(): void {\n this._viewManagerService.changeToYearView();\n }\n\n /**\n * Calls the DateNavigationService to move to the next month.\n */\n nextMonth(): void {\n this._dateNavigationService.moveToNextMonth();\n }\n\n /**\n * Calls the DateNavigationService to move to the previous month.\n */\n previousMonth(): void {\n this._dateNavigationService.moveToPreviousMonth();\n }\n\n /**\n * Calls the DateNavigationService to move to the current month.\n */\n currentMonth(): void {\n this._dateNavigationService.moveToCurrentMonth();\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<div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n<div class=\"calendar-header\">\n <div class=\"calendar-pickers\">\n <button\n class=\"calendar-btn monthpicker-trigger\"\n type=\"button\"\n (click)=\"changeToMonthView()\"\n [attr.aria-label]=\"monthAttrString\"\n [attr.title]=\"monthAttrString\"\n >\n {{calendarMonth}}\n </button>\n <button\n class=\"calendar-btn yearpicker-trigger\"\n type=\"button\"\n (click)=\"changeToYearView()\"\n [attr.aria-label]=\"yearAttrString\"\n [attr.title]=\"yearAttrString\"\n >\n {{calendarYear}}\n </button>\n </div>\n <div class=\"calendar-switchers\">\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"previousMonth()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerPreviousMonth\"\n >\n <cds-icon shape=\"angle\" direction=\"left\" [attr.title]=\"commonStrings.keys.datepickerPreviousMonth\"></cds-icon>\n </button>\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"currentMonth()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerCurrentMonth\"\n >\n <cds-icon shape=\"event\" [attr.title]=\"commonStrings.keys.datepickerCurrentMonth\"></cds-icon>\n </button>\n <button\n class=\"calendar-btn switcher\"\n type=\"button\"\n (click)=\"nextMonth()\"\n [attr.aria-label]=\"commonStrings.keys.datepickerNextMonth\"\n >\n <cds-icon shape=\"angle\" direction=\"right\" [attr.title]=\"commonStrings.keys.datepickerNextMonth\"></cds-icon>\n </button>\n </div>\n</div>\n<clr-calendar></clr-calendar>\n<div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\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';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { DateFormControlService } from './providers/date-form-control.service';\nimport { DateNavigationService } from './providers/date-navigation.service';\n\n@Component({\n selector: 'clr-datepicker-actions',\n template: `\n <button class=\"btn btn-outline\" (click)=\"cancel()\">{{ commonStrings.keys.cancel }}</button>\n <button class=\"btn btn-primary\" (click)=\"apply()\">{{ commonStrings.keys.apply }}</button>\n `,\n host: {\n '[class.datepicker-actions]': 'true',\n },\n standalone: false,\n})\nexport class ClrDatepickerActions {\n constructor(\n protected commonStrings: ClrCommonStringsService,\n private popoverService: ClrPopoverService,\n private dateNavigationService: DateNavigationService,\n private dateFormControlService: DateFormControlService\n ) {}\n\n protected apply() {\n if (\n this.dateNavigationService.isRangePicker &&\n this.dateNavigationService.selectedDay &&\n this.dateNavigationService.selectedEndDay\n ) {\n this.dateNavigationService.notifySelectedDayChanged({\n startDate: this.dateNavigationService.selectedDay,\n endDate: this.dateNavigationService.selectedEndDay,\n });\n this.dateFormControlService.markAsDirty();\n } else if (!this.dateNavigationService.isRangePicker && this.dateNavigationService.selectedDay) {\n this.dateNavigationService.notifySelectedDayChanged(this.dateNavigationService.selectedDay);\n this.dateFormControlService.markAsDirty();\n }\n this.popoverService.open = false;\n }\n\n protected cancel() {\n this.dateNavigationService.resetSelectedDay();\n this.popoverService.open = false;\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';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { DateIOService } from './providers/date-io.service';\nimport { DateNavigationService } from './providers/date-navigation.service';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\nimport { ViewManagerService } from './providers/view-manager.service';\n\n@Component({\n selector: 'clr-datepicker-view-manager',\n templateUrl: './datepicker-view-manager.html',\n providers: [DatepickerFocusService],\n host: {\n '[class.datepicker]': 'true',\n '[class.has-range-option]': 'hasRangeOptions',\n '[class.has-action-buttons]': 'hasActionButtons',\n '[attr.aria-modal]': 'true',\n '[attr.aria-label]': 'commonStrings.keys.datepickerDialogLabel',\n role: 'dialog',\n },\n standalone: false,\n})\nexport class ClrDatepickerViewManager {\n constructor(\n public commonStrings: ClrCommonStringsService,\n private viewManagerService: ViewManagerService,\n private dateNavigationService: DateNavigationService,\n private dateIOService: DateIOService\n ) {}\n\n /**\n * Returns if the current view is the monthpicker.\n */\n get isMonthView(): boolean {\n return this.viewManagerService.isMonthView;\n }\n\n /**\n * Returns if the current view is the yearpicker.\n */\n get isYearView(): boolean {\n return this.viewManagerService.isYearView;\n }\n\n /**\n * Returns if the current view is the daypicker.\n */\n get isDayView(): boolean {\n return this.viewManagerService.isDayView;\n }\n\n get hasRangeOptions() {\n return !!this.dateNavigationService?.isRangePicker && !!this.dateRangeOptions?.length;\n }\n\n protected get hasActionButtons() {\n return this.dateNavigationService.hasActionButtons;\n }\n\n protected get dateRangeOptions() {\n return this.dateIOService.getRangeOptions();\n }\n\n onRangeOptionSelect(selectedRange) {\n const startDate = this.dateNavigationService.convertDateToDayModel(selectedRange?.value[0]),\n endDate = this.dateNavigationService.convertDateToDayModel(selectedRange?.value[1]);\n this.dateNavigationService.notifySelectedDayChanged({ startDate, endDate }, { emitEvent: !this.hasActionButtons });\n this.dateNavigationService.moveToSpecificMonth(startDate);\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@if (hasRangeOptions) {\n<clr-vertical-nav class=\"clr-date-range-picker-nav\">\n @for (option of dateRangeOptions; track option) {\n <a\n clrVerticalNavLink\n href=\"javascript:void(0)\"\n [attr.aria-label]=\"option?.label\"\n tabindex=\"0\"\n (keyup.enter)=\"onRangeOptionSelect(option)\"\n (click)=\"onRangeOptionSelect(option)\"\n >\n {{option.label}}\n </a>\n }\n</clr-vertical-nav>\n<ng-container *ngTemplateOutlet=\"calendarView\"></ng-container>\n} @else {\n<div class=\"datepicker-view-manager\">\n @if (isMonthView) {\n <clr-monthpicker></clr-monthpicker>\n } @if (isYearView) {\n <clr-yearpicker></clr-yearpicker>\n } @if (isDayView) {\n <clr-daypicker></clr-daypicker>\n } @if (hasActionButtons) {\n <clr-datepicker-actions></clr-datepicker-actions>\n }\n</div>\n}\n\n<ng-template #calendarView>\n <div class=\"datepicker-view-manager\">\n @if (isMonthView) {\n <clr-monthpicker></clr-monthpicker>\n } @if (isYearView) {\n <clr-yearpicker></clr-yearpicker>\n } @if (isDayView) {\n <clr-daypicker></clr-daypicker>\n } @if (hasActionButtons) {\n <clr-datepicker-actions></clr-datepicker-actions>\n }\n </div>\n</ng-template>\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 { AfterViewInit, Component, ElementRef, Input, Optional, Renderer2, ViewChild } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n FormsFocusService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\nimport {\n ClrPopoverHostDirective,\n ClrPopoverPosition,\n ClrPopoverService,\n ClrPopoverType,\n DROPDOWN_POSITIONS,\n} from '@clr/angular/popover/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\nimport { startWith } from 'rxjs/operators';\n\nimport { DayModel } from './model/day.model';\nimport { DateFormControlService } from './providers/date-form-control.service';\nimport { DateIOService } from './providers/date-io.service';\nimport { DateNavigationService } from './providers/date-navigation.service';\nimport { DatepickerEnabledService } from './providers/datepicker-enabled.service';\nimport { LocaleHelperService } from './providers/locale-helper.service';\nimport { ViewManagerService } from './providers/view-manager.service';\n\n@Component({\n selector: 'clr-date-container, clr-date-range-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-input-wrapper\" clrPopoverAnchor>\n <div class=\"clr-input-group\" [class.clr-focus]=\"focus\">\n <!-- render range inputs only if using clr-date-range-container -->\n @if (isRangePicker) {\n <ng-content select=\"[clrStartDate]\"></ng-content>\n <span class=\"date-range-separator\">-</span>\n <ng-content select=\"[clrEndDate]\"></ng-content>\n }\n <!-- no @if for the singe-date input because it breaks the \"auto-wrapped\" date picker -->\n <ng-content select=\"[clrDate]\"></ng-content>\n @if (isEnabled) {\n <button\n #actionButton\n type=\"button\"\n clrPopoverOpenCloseButton\n class=\"clr-input-group-icon-action\"\n [disabled]=\"isInputDateDisabled\"\n >\n <cds-icon status=\"info\" shape=\"calendar\"></cds-icon>\n </button>\n }\n <clr-datepicker-view-manager\n *clrPopoverContent=\"\n open;\n at: popoverPosition;\n type: popoverType;\n outsideClickToClose: true;\n scrollToClose: true\n \"\n cdkTrapFocus\n ></clr-datepicker-view-manager>\n </div>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n providers: [\n ControlIdService,\n LocaleHelperService,\n ControlClassService,\n FormsFocusService,\n NgControlService,\n DateIOService,\n DateNavigationService,\n DatepickerEnabledService,\n DateFormControlService,\n ViewManagerService,\n ],\n hostDirectives: [ClrPopoverHostDirective],\n host: {\n '[class.clr-date-container]': 'true',\n '[class.clr-form-control-disabled]': 'isInputDateDisabled',\n '[class.clr-form-control]': 'true',\n '[class.clr-row]': 'addGrid()',\n },\n standalone: false,\n})\nexport class ClrDateContainer extends ClrAbstractContainer implements AfterViewInit {\n focus = false;\n\n protected popoverType = ClrPopoverType.DROPDOWN;\n private toggleButton: ElementRef<HTMLButtonElement>;\n\n constructor(\n protected renderer: Renderer2,\n protected elem: ElementRef,\n private popoverService: ClrPopoverService,\n private dateNavigationService: DateNavigationService,\n private datepickerEnabledService: DatepickerEnabledService,\n private dateFormControlService: DateFormControlService,\n private dateIOService: DateIOService,\n public commonStrings: ClrCommonStringsService,\n focusService: FormsFocusService,\n private viewManagerService: ViewManagerService,\n protected override controlClassService: ControlClassService,\n @Optional() protected override layoutService: LayoutService,\n protected override ngControlService: NgControlService\n ) {\n super(layoutService, controlClassService, ngControlService);\n\n this.subscriptions.push(\n focusService.focusChange.subscribe(state => {\n this.focus = state;\n })\n );\n\n this.subscriptions.push(\n popoverService.openChange.subscribe(() => {\n dateFormControlService.markAsTouched();\n })\n );\n\n if (dateNavigationService) {\n const tagName = elem.nativeElement.tagName.toLowerCase();\n dateNavigationService.hasActionButtons = dateNavigationService.isRangePicker =\n tagName === 'clr-date-range-container';\n }\n }\n\n /**\n * For date range picker actions buttons are shown by default\n */\n @Input('showActionButtons')\n set showActionButtons(flag: boolean) {\n if (this.dateNavigationService.isRangePicker && !flag) {\n console.error('Error! The date range picker requires action buttons, [showActionButtons] cannot be turned off.');\n } else {\n this.dateNavigationService.hasActionButtons = flag;\n }\n }\n\n @Input('clrPosition')\n set clrPosition(position: string | ClrPopoverPosition) {\n if (!position) {\n return;\n }\n\n const posIndex = DROPDOWN_POSITIONS.indexOf(position as ClrPopoverPosition);\n\n if (posIndex === -1) {\n return;\n }\n\n this.viewManagerService.position = DROPDOWN_POSITIONS[posIndex];\n }\n\n @Input()\n set rangeOptions(rangeOptions) {\n this.dateIOService.setRangeOptions(rangeOptions);\n }\n\n @Input()\n set min(dateString: string) {\n if (this.dateNavigationService.isRangePicker) {\n this.dateIOService.setMinDate(dateString);\n } else {\n console.error(\n 'Error! The date container [min] input only works for date range pickers. Use the native `min` attribute/property for single-date inputs.'\n );\n }\n }\n\n @Input()\n set max(dateString: string) {\n if (this.dateNavigationService.isRangePicker) {\n this.dateIOService.setMaxDate(dateString);\n } else {\n console.error(\n 'Error! The date container [max] input only works for date range pickers. Use the native `max` attribute/property for single-date inputs.'\n );\n }\n }\n\n @ViewChild('actionButton')\n set actionButton(button: ElementRef<HTMLButtonElement>) {\n this.toggleButton = button;\n }\n\n get popoverPosition(): ClrPopoverPosition {\n return this.viewManagerService.position;\n }\n\n get open() {\n return this.popoverService.open;\n }\n\n /**\n * Returns if the Datepicker is enabled or not. If disabled, hides the datepicker trigger.\n */\n get isEnabled(): boolean {\n return this.datepickerEnabledService.isEnabled;\n }\n\n /**\n * Return if Datepicker is diabled or not as Form Control\n */\n get isInputDateDisabled(): boolean {\n /* clrForm wrapper or without clrForm */\n return (\n (this.control && this.control.disabled) || (this.dateFormControlService && this.dateFormControlService.disabled)\n );\n }\n\n protected get isRangePicker(): boolean {\n return this.dateNavigationService.isRangePicker;\n }\n\n ngAfterViewInit(): void {\n this.dateRangeStructuralChecks();\n this.subscriptions.push(\n this.popoverService.openChange.subscribe(open => {\n if (open) {\n this.initializeCalendar();\n } else {\n this.toggleButton.nativeElement.focus();\n this.dateNavigationService.resetSelectedDay();\n }\n })\n );\n\n this.subscriptions.push(this.listenForDateChanges());\n }\n\n /**\n * Return the label for the toggle button.\n * If there's a selected date, the date is included in the label.\n */\n private getToggleButtonLabel(day: DayModel): string {\n if (day) {\n const formattedDate = this.dateIOService.toLocaleDisplayFormatString(day.toDate());\n\n return this.commonStrings.parse(this.commonStrings.keys.datepickerToggleChangeDateLabel, {\n SELECTED_DATE: formattedDate,\n });\n }\n return this.commonStrings.keys.datepickerToggleChooseDateLabel;\n }\n\n private listenForDateChanges() {\n // because date-input.ts initializes the input in ngAfterViewInit,\n // using a databound attribute to change the button labels results in ExpressionChangedAfterItHasBeenCheckedError.\n // so instead, update the attribute directly on the element\n return this.dateNavigationService.selectedDayChange\n .pipe(startWith(this.dateNavigationService.selectedDay))\n .subscribe(day => {\n if (this.isEnabled) {\n const label = this.getToggleButtonLabel(day);\n const toggleEl = this.toggleButton.nativeElement;\n this.renderer.setAttribute(toggleEl, 'aria-label', label);\n this.renderer.setAttribute(toggleEl, 'title', label);\n }\n });\n }\n\n /**\n * Processes the user input and Initializes the Calendar everytime the datepicker popover is open.\n */\n private initializeCalendar(): void {\n this.dateNavigationService.initializeCalendar();\n }\n\n private dateRangeStructuralChecks() {\n if (this.dateNavigationService.isRangePicker) {\n const inputs: HTMLElement[] = Array.from(this.elem.nativeElement.querySelectorAll('input'));\n if (inputs.some(input => input.classList.contains('clr-date-input'))) {\n console.error('Error! clr-date-range-container must contain clrStartDate and clrEndDate inputs');\n }\n if (!inputs.some(input => input.classList.contains('clr-date-start-input'))) {\n console.error('Error! clr-date-range-container must contain clrStartDate input');\n }\n if (!inputs.some(input => input.classList.contains('clr-date-end-input'))) {\n console.error('Error! clr-date-range-container must contain clrEndDate input');\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\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n PLATFORM_ID,\n Renderer2,\n Self,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { FormsFocusService, WrappedFormControl } from '@clr/angular/forms/common';\nimport { isBooleanAttributeSet } from '@clr/angular/utils';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ClrDateContainer } from './date-container';\nimport { DayModel } from './model/day.model';\nimport { DateFormControlService } from './providers/date-form-control.service';\nimport { DateIOService } from './providers/date-io.service';\nimport { DateNavigationService } from './providers/date-navigation.service';\nimport { DatepickerEnabledService } from './providers/datepicker-enabled.service';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\nimport { datesAreEqual } from './utils/date-utils';\n\n// There are four ways the datepicker value is set\n// 1. Value set by user typing into text input as a string ex: '01/28/2015'\n// 2. Value set explicitly by Angular Forms APIs as a string ex: '01/28/2015'\n// 3. Value set by user via datepicker UI as a Date Object\n// 4. Value set via `clrDate` input as a Date Object\n\n@Directive()\nexport abstract class ClrDateInputBase\n extends WrappedFormControl<ClrDateContainer>\n implements OnInit, AfterViewInit, OnDestroy\n{\n static ngAcceptInputType_date: Date | null | string;\n\n @Input() placeholder: string;\n\n protected override index = 1;\n\n private initialClrDateInputValue: Date;\n private previousDateChange: Date;\n\n protected abstract dateChange: EventEmitter<Date>;\n\n constructor(\n viewContainerRef: ViewContainerRef,\n injector: Injector,\n protected override el: ElementRef<HTMLInputElement>,\n protected override renderer: Renderer2,\n @Self()\n @Optional()\n protected control: NgControl,\n @Optional() @Inject(forwardRef(() => ClrDateContainer)) private container: ClrDateContainer,\n @Optional() protected dateIOService: DateIOService,\n @Optional() protected dateNavigationService: DateNavigationService,\n @Optional() private datepickerEnabledService: DatepickerEnabledService,\n @Optional() private dateFormControlService: DateFormControlService,\n @Inject(PLATFORM_ID) private platformId: any,\n @Optional() private focusService: FormsFocusService,\n protected datepickerFocusService: DatepickerFocusService\n ) {\n super(viewContainerRef, ClrDateContainer, injector, control, renderer, el);\n }\n\n get disabled() {\n if (this.dateFormControlService) {\n return this.dateFormControlService.disabled || !!this.control?.control?.disabled;\n }\n return null;\n }\n\n @Input('disabled')\n @HostBinding('disabled')\n set disabled(value: boolean | string) {\n if (this.dateFormControlService) {\n this.dateFormControlService.setDisabled(isBooleanAttributeSet(value));\n }\n }\n\n @HostBinding('attr.placeholder')\n get placeholderText(): string {\n return this.placeholder ? this.placeholder : this.dateIOService.placeholderText;\n }\n\n @HostBinding('attr.type')\n get inputType(): string {\n return isPlatformBrowser(this.platformId) && this.usingNativeDatepicker() ? 'date' : 'text';\n }\n\n protected abstract get userSelectedDayChange(): Observable<DayModel>;\n\n override ngOnInit() {\n super.ngOnInit();\n this.populateServicesFromContainerComponent();\n\n this.subscriptions.push(\n this.listenForUserSelectedDayChanges(),\n this.listenForControlValueChanges(),\n this.listenForTouchChanges(),\n this.listenForDirtyChanges(),\n this.listenForInputRefocus()\n );\n }\n\n ngAfterViewInit() {\n // I don't know why I have to do this but after using the new HostWrapping Module I have to delay the processing\n // of the initial Input set by the user to here. If I do not 2 issues occur:\n // 1. The Input setter is called before ngOnInit. ngOnInit initializes the services without which the setter fails.\n // 2. The Renderer doesn't work before ngAfterViewInit (It used to before the new HostWrapping Module for some reason).\n // I need the renderer to set the value property on the input to make sure that if the user has supplied a Date\n // input object, we reflect it with the right date on the input field using the IO service. I am not sure if\n // these are major issues or not but just noting them down here.\n this.processInitialInputs();\n }\n\n @HostListener('focus')\n setFocusStates() {\n this.setFocus(true);\n }\n\n override triggerValidation() {\n super.triggerValidation();\n this.setFocus(false);\n }\n\n @HostListener('change', ['$event.target'])\n onValueChange(target: HTMLInputElement) {\n const validDateValue = this.dateIOService.getDateValueFromDateString(target.value);\n if (this.usingClarityDatepicker() && validDateValue) {\n this.updateDate(validDateValue, true);\n } else if (this.usingNativeDatepicker()) {\n const [year, month, day] = target.value.split('-');\n this.updateDate(new Date(+year, +month - 1, +day), true);\n } else {\n this.emitDateOutput(null);\n }\n }\n\n protected datepickerHasFormControl() {\n return !!this.control;\n }\n\n protected setDate(date: Date | string) {\n if (typeof date === 'string') {\n date = new Date(date);\n }\n\n if (this.previousDateChange !== date) {\n this.updateDate(date);\n }\n\n if (!this.initialClrDateInputValue) {\n this.initialClrDateInputValue = date;\n }\n }\n\n protected triggerControlInputValidation() {\n if (this.datepickerHasFormControl()) {\n this.control.control?.updateValueAndValidity({ emitEvent: false });\n this.control.control?.setErrors(this.control.control.errors);\n }\n }\n\n private usingClarityDatepicker() {\n return this.datepickerEnabledService.isEnabled;\n }\n\n private usingNativeDatepicker() {\n return !this.datepickerEnabledService.isEnabled;\n }\n\n private setFocus(focus: boolean) {\n if (this.focusService) {\n this.focusService.focused = focus;\n }\n }\n\n private populateServicesFromContainerComponent() {\n if (!this.container) {\n this.dateIOService = this.getProviderFromContainer(DateIOService);\n this.dateNavigationService = this.getProviderFromContainer(DateNavigationService);\n this.datepickerEnabledService = this.getProviderFromContainer(DatepickerEnabledService);\n this.dateFormControlService = this.getProviderFromContainer(DateFormControlService);\n }\n }\n\n private processInitialInputs() {\n if (this.datepickerHasFormControl()) {\n this.updateDate(this.dateIOService.getDateValueFromDateString(this.control.value));\n } else {\n this.updateDate(this.initialClrDateInputValue);\n }\n }\n\n private updateDate(value: Date, setByUserInteraction = false) {\n const date = this.getValidDateValueFromDate(value);\n if (setByUserInteraction) {\n this.emitDateOutput(date);\n } else {\n this.previousDateChange = date;\n }\n\n if (this.dateNavigationService) {\n const dayModel = date ? new DayModel(date.getFullYear(), date.getMonth(), date.getDate()) : null;\n\n this.updateDayModel(dayModel);\n }\n\n this.updateInput(date);\n }\n\n private updateInput(date: Date) {\n if (date) {\n const dateString = this.dateIOService.toLocaleDisplayFormatString(date);\n if (this.usingNativeDatepicker()) {\n // valueAsDate expects UTC, date from input is time-zoned\n date.setMinutes(date.getMinutes() - date.getTimezoneOffset());\n this.renderer.setProperty(this.el.nativeElement, 'valueAsDate', date);\n } else if (this.datepickerHasFormControl() && dateString !== this.control.value) {\n this.control.control.setValue(dateString);\n } else {\n this.renderer.setProperty(this.el.nativeElement, 'value', dateString);\n }\n this.validateDateRange();\n } else {\n this.renderer.setProperty(this.el.nativeElement, 'value', '');\n }\n }\n\n private getValidDateValueFromDate(date: Date) {\n if (this.dateIOService) {\n const dateString = this.dateIOService.toLocaleDisplayFormatString(date);\n return this.dateIOService.getDateValueFromDateString(dateString);\n } else {\n return null;\n }\n }\n\n private emitDateOutput(date: Date) {\n if (!datesAreEqual(date, this.previousDateChange)) {\n this.dateChange.emit(date);\n this.previousDateChange = date;\n } else if (!date && this.previousDateChange) {\n this.dateChange.emit(null);\n this.previousDateChange = null;\n }\n }\n\n private listenForControlValueChanges() {\n if (this.datepickerHasFormControl()) {\n return this.control.valueChanges\n .pipe(\n // only update date value if not being set by user\n filter(() => !this.datepickerFocusService.elementIsFocused(this.el.nativeElement))\n )\n .subscribe((value: string) => this.updateDate(this.dateIOService.getDateValueFromDateString(value)));\n } else {\n return null;\n }\n }\n\n private listenForUserSelectedDayChanges() {\n return this.userSelectedDayChange.subscribe(dayModel => this.updateDate(dayModel?.toDate(), true));\n }\n\n private listenForTouchChanges() {\n return this.dateFormControlService.touchedChange\n .pipe(filter(() => this.datepickerHasFormControl()))\n .subscribe(() => this.control.control.markAsTouched());\n }\n\n private listenForDirtyChanges() {\n return this.dateFormControlService.dirtyChange\n .pipe(filter(() => this.datepickerHasFormControl()))\n .subscribe(() => this.control.control.markAsDirty());\n }\n\n private listenForInputRefocus() {\n return this.dateNavigationService.selectedDayChange\n .pipe(filter(date => !!date && !this.dateNavigationService.isRangePicker))\n .subscribe(() => this.datepickerFocusService.focusInput(this.el.nativeElement));\n }\n\n /**\n * In case of date range error, both start & end date field validation has to be triggered\n * if either of the field gets updated\n */\n private validateDateRange() {\n if (this.dateNavigationService.isRangePicker) {\n const controls = this.ngControlService?.controls;\n const isValid = this.dateNavigationService.selectedDay?.isBefore(this.dateNavigationService.selectedEndDay, true);\n if (isValid && controls?.some(control => control.hasError('range'))) {\n controls.forEach((ngControl: NgControl) => {\n ngControl?.control?.updateValueAndValidity({ emitEvent: false });\n });\n }\n }\n }\n\n protected abstract updateDayModel(dayModel: DayModel): void;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ClrDateInputBase } from './date-input';\nimport { DayModel } from './model/day.model';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\n\n@Directive({\n selector: '[clrDate]',\n host: {\n '[class.clr-input]': 'true',\n '[class.clr-date-input]': 'true',\n },\n providers: [DatepickerFocusService],\n standalone: false,\n})\nexport class ClrDateInput extends ClrDateInputBase {\n @Output('clrDateChange') override dateChange = new EventEmitter<Date>(false);\n\n @Input('clrDate')\n set date(date: Date | string) {\n this.setDate(date);\n }\n\n @Input()\n set min(dateString: string) {\n this.dateIOService.setMinDate(dateString);\n }\n\n @Input()\n set max(dateString: string) {\n this.dateIOService.setMaxDate(dateString);\n }\n\n protected override get userSelectedDayChange() {\n return this.dateNavigationService.selectedDayChange;\n }\n\n protected override updateDayModel(dayModel: DayModel) {\n this.dateNavigationService.persistedDate = this.dateNavigationService.selectedDay = dayModel;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\nimport { ClrDateInputBase } from './date-input';\nimport { DayModel } from './model/day.model';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\n\n@Directive({\n selector: '[clrStartDate]',\n host: {\n '[class.clr-input]': 'true',\n '[class.clr-date-start-input]': 'true',\n '[style.text-align]': \"'right'\",\n },\n providers: [DatepickerFocusService],\n standalone: false,\n})\nexport class ClrStartDateInput extends ClrDateInputBase {\n @Output('clrStartDateChange') override dateChange = new EventEmitter<Date>(false);\n\n @Input('inputWidth') inputWidth = 13;\n\n @Input('clrStartDate')\n set date(date: Date | string) {\n this.setDate(date);\n }\n\n @HostBinding('attr.size')\n get inputSize() {\n return this.inputWidth;\n }\n\n protected override get userSelectedDayChange() {\n return this.dateNavigationService.selectedDayChange;\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this.subscriptions.push(this.dateIOService.minDateChange.subscribe(() => this.triggerControlInputValidation()));\n }\n\n protected override updateDayModel(dayModel: DayModel) {\n this.dateNavigationService.persistedDate = this.dateNavigationService.selectedDay = dayModel;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\nimport { ClrDateInputBase } from './date-input';\nimport { DayModel } from './model/day.model';\nimport { DatepickerFocusService } from './providers/datepicker-focus.service';\n\n@Directive({\n selector: '[clrEndDate]',\n host: {\n '[class.clr-input]': 'true',\n '[class.clr-date-end-input]': 'true',\n },\n providers: [DatepickerFocusService],\n standalone: false,\n})\nexport class ClrEndDateInput extends ClrDateInputBase {\n @Output('clrEndDateChange') override dateChange = new EventEmitter<Date>(false);\n\n @Input('inputWidth') inputWidth = 13;\n\n @Input('clrEndDate')\n set date(date: Date | string) {\n this.setDate(date);\n }\n\n @HostBinding('attr.size')\n get inputSize() {\n return this.inputWidth;\n }\n\n protected override get userSelectedDayChange() {\n return this.dateNavigationService.selectedEndDayChange;\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this.subscriptions.push(this.dateIOService.maxDateChange.subscribe(() => this.triggerControlInputValidation()));\n }\n\n protected override updateDayModel(dayModel: DayModel) {\n this.dateNavigationService.persistedEndDate = this.dateNavigationService.selectedEndDay = dayModel;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Optional } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\nimport { DateIOService } from './providers/date-io.service';\nimport { DateNavigationService } from './providers/date-navigation.service';\n\n@Directive({\n selector: '[clrDate], [clrStartDate], [clrEndDate]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ClrDateInputValidator, multi: true }],\n standalone: false,\n})\nexport class ClrDateInputValidator implements Validator {\n constructor(@Optional() private dateIOService: DateIOService) {}\n\n validate(control: AbstractControl): ValidationErrors {\n if (this.dateIOService) {\n const value = this.dateIOService.getDateValueFromDateString(control.value);\n const minDate = this.dateIOService.disabledDates.minDate.toDate();\n const maxDate = this.dateIOService.disabledDates.maxDate.toDate();\n\n if (value && value < minDate) {\n return { min: { min: minDate.toLocaleDateString(), actual: value.toLocaleDateString() } };\n } else if (value && value > maxDate) {\n return { max: { max: maxDate.toLocaleDateString(), actual: value.toLocaleDateString() } };\n }\n }\n\n return null;\n }\n}\n\n@Directive({\n selector: '[clrStartDate]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ClrStartDateInputValidator, multi: true }],\n standalone: false,\n})\nexport class ClrStartDateInputValidator implements Validator {\n constructor(\n @Optional() private dateIOService: DateIOService,\n @Optional() private dateNavigationService: DateNavigationService\n ) {}\n\n validate(control: AbstractControl): ValidationErrors {\n if (this.dateIOService) {\n const value = this.dateIOService.getDateValueFromDateString(control.value);\n const endDate = this.dateNavigationService?.selectedEndDay?.toDate();\n\n if (value && endDate && value > endDate) {\n return { range: { startDate: value, endDate } };\n }\n }\n\n return null;\n }\n}\n\n@Directive({\n selector: '[clrEndDate]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ClrEndDateInputValidator, multi: true }],\n standalone: false,\n})\nexport class ClrEndDateInputValidator implements Validator {\n constructor(\n @Optional() private dateIOService: DateIOService,\n @Optional() private dateNavigationService: DateNavigationService\n ) {}\n\n validate(control: AbstractControl): ValidationErrors {\n if (this.dateIOService) {\n const value = this.dateIOService.getDateValueFromDateString(control.value);\n const startDate = this.dateNavigationService?.selectedDay?.toDate();\n\n if (value && startDate && value < startDate) {\n return { range: { startDate, endDate: value } };\n }\n }\n\n return null;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport {\n angleIcon,\n calendarIcon,\n checkCircleIcon,\n ClarityIcons,\n ClrIcon,\n eventIcon,\n exclamationCircleIcon,\n} from '@clr/angular/icon';\nimport { ClrVerticalNavModule } from '@clr/angular/layout/vertical-nav';\nimport { ÇlrClrPopoverModuleNext } from '@clr/angular/popover/common';\nimport { CdkTrapFocusModule, ClrConditionalModule, ClrHostWrappingModule } from '@clr/angular/utils';\n\nimport { ClrCalendar } from './calendar';\nimport { ClrDateContainer } from './date-container';\nimport { ClrEndDateInput } from './date-end-input';\nimport { ClrDateInputValidator, ClrEndDateInputValidator, ClrStartDateInputValidator } from './date-input.validator';\nimport { ClrDateInput } from './date-single-input';\nimport { ClrStartDateInput } from './date-start-input';\nimport { ClrDatepickerActions } from './datepicker-action-buttons';\nimport { ClrDatepickerViewManager } from './datepicker-view-manager';\nimport { ClrDay } from './day';\nimport { ClrDaypicker } from './daypicker';\nimport { ClrMonthpicker } from './monthpicker';\nimport { ClrYearpicker } from './yearpicker';\n\nexport const CLR_DATEPICKER_DIRECTIVES: Type<any>[] = [\n ClrDateInput,\n ClrDay,\n ClrDateContainer,\n ClrDateInputValidator,\n ClrStartDateInput,\n ClrEndDateInput,\n ClrStartDateInputValidator,\n ClrEndDateInputValidator,\n ClrDatepickerViewManager,\n ClrMonthpicker,\n ClrYearpicker,\n ClrDaypicker,\n ClrCalendar,\n ClrDatepickerActions,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n CdkTrapFocusModule,\n ClrHostWrappingModule,\n ClrConditionalModule,\n ÇlrClrPopoverModuleNext,\n ClrIcon,\n ClrCommonFormsModule,\n ClrVerticalNavModule,\n ],\n declarations: [CLR_DATEPICKER_DIRECTIVES],\n exports: [CLR_DATEPICKER_DIRECTIVES],\n})\nexport class ClrDatepickerModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon, angleIcon, eventIcon, calendarIcon);\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 './date-input';\nexport * from './date-single-input';\nexport * from './date-start-input';\nexport * from './date-end-input';\nexport * from './date-input.validator';\nexport * from './date-container';\nexport * from './datepicker-view-manager';\nexport * from './daypicker';\nexport * from './monthpicker';\nexport * from './yearpicker';\nexport * from './calendar';\nexport * from './day';\nexport * from './datepicker-action-buttons';\n\nexport * from './datepicker.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 function buildFileList(files: File[]) {\n const dataTransfer = new DataTransfer();\n\n for (const file of files) {\n dataTransfer.items.add(file);\n }\n\n return dataTransfer.files;\n}\n\nexport function selectFiles(fileInputElement: HTMLInputElement, files: File[] | FileList) {\n fileInputElement.files = files instanceof FileList ? files : buildFileList(files);\n fileInputElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));\n}\n\nexport function clearFiles(fileInputElement: HTMLInputElement) {\n fileInputElement.value = '';\n fileInputElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, inject, InjectionToken } from '@angular/core';\n\nimport { ClrFileMessagesTemplateContext } from './file-messages-template';\n\nexport const CLR_FILE_MESSAGES_TEMPLATE_CONTEXT = new InjectionToken<ClrFileMessagesTemplateContext>(\n 'ClrFileMessagesTemplateContext'\n);\n\n@Component({\n selector: 'clr-file-info',\n template: `<ng-content></ng-content>`,\n host: {\n '[class.clr-subtext]': 'true',\n },\n standalone: false,\n})\nexport class ClrFileInfo {}\n\n@Component({\n selector: 'clr-file-success',\n // We check for success here so that consumers don't have to.\n template: `@if (context.success) {\n <ng-content></ng-content>\n }`,\n host: {\n '[style.display]': 'context.success ? \"inline-block\" : \"none\"',\n '[class.clr-subtext]': 'true',\n '[class.success]': 'true',\n },\n standalone: false,\n})\nexport class ClrFileSuccess {\n protected readonly context: ClrFileMessagesTemplateContext = inject(CLR_FILE_MESSAGES_TEMPLATE_CONTEXT);\n}\n\n@Component({\n selector: 'clr-file-error',\n // The host should have an `@if` or `@if` that checks for the relevant error.\n template: `<ng-content></ng-content>`,\n host: {\n '[class.clr-subtext]': 'true',\n '[class.error]': 'true',\n },\n standalone: false,\n})\nexport class ClrFileError {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, inject, TemplateRef } from '@angular/core';\n\nimport { ClrFileAcceptError, ClrFileMaxFileSizeError, ClrFileMinFileSizeError } from './file-input-validator-errors';\n\nexport interface ClrSingleFileValidationErrors {\n accept?: ClrFileAcceptError;\n minFileSize?: ClrFileMinFileSizeError;\n maxFileSize?: ClrFileMaxFileSizeError;\n}\n\nexport interface ClrFileMessagesTemplateContext {\n $implicit: File;\n success: boolean;\n errors: ClrSingleFileValidationErrors;\n}\n\n@Directive({\n selector: 'ng-template[clr-file-messages]',\n standalone: false,\n})\nexport class ClrFileMessagesTemplate {\n readonly templateRef: TemplateRef<ClrFileMessagesTemplateContext> = inject(TemplateRef);\n\n static ngTemplateContextGuard(\n directive: ClrFileMessagesTemplate,\n context: unknown\n ): context is ClrFileMessagesTemplateContext {\n return 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\nimport { Component, ContentChild, inject, Injector } from '@angular/core';\nimport { NgControlService } from '@clr/angular/forms/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { ClrFileInputContainer } from './file-input-container';\nimport { ClrFileListValidationErrors } from './file-input-validator-errors';\nimport { selectFiles } from './file-input.helpers';\nimport { CLR_FILE_MESSAGES_TEMPLATE_CONTEXT } from './file-messages';\nimport {\n ClrFileMessagesTemplate,\n ClrFileMessagesTemplateContext,\n ClrSingleFileValidationErrors,\n} from './file-messages-template';\n\n@Component({\n selector: 'clr-file-list',\n template: `\n @for (file of files; track file) {\n @if (createFileMessagesTemplateContext(file); as fileMessagesTemplateContext) {\n <div\n role=\"listitem\"\n class=\"clr-file-list-item\"\n [ngClass]=\"{\n 'clr-error': !fileMessagesTemplateContext.success,\n 'clr-success': fileMessagesTemplateContext.success,\n }\"\n >\n <div class=\"clr-file-label-and-status-icon\">\n <span class=\"label clr-file-label\">\n {{ file.name }}\n <button\n class=\"btn btn-sm btn-link-neutral btn-icon clr-file-clear-button\"\n [attr.aria-label]=\"getClearFileLabel(file.name)\"\n (click)=\"clearFile(file)\"\n >\n <cds-icon shape=\"times\"></cds-icon>\n </button>\n </span>\n <cds-icon\n class=\"clr-validate-icon\"\n [shape]=\"fileMessagesTemplateContext.success ? 'check-circle' : 'exclamation-circle'\"\n [status]=\"fileMessagesTemplateContext.success ? 'success' : 'danger'\"\n aria-hidden=\"true\"\n ></cds-icon>\n </div>\n @if (fileMessagesTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"fileMessagesTemplate.templateRef\"\n [ngTemplateOutletContext]=\"fileMessagesTemplateContext\"\n [ngTemplateOutletInjector]=\"createFileMessagesTemplateInjector(fileMessagesTemplateContext)\"\n ></ng-container>\n }\n </div>\n }\n }\n `,\n host: {\n '[attr.role]': '\"list\"',\n '[class.clr-file-list]': 'true',\n },\n standalone: false,\n})\nexport class ClrFileList {\n @ContentChild(ClrFileMessagesTemplate) protected readonly fileMessagesTemplate: ClrFileMessagesTemplate;\n\n private readonly injector = inject(Injector);\n private readonly commonStrings = inject(ClrCommonStringsService);\n private readonly ngControlService = inject(NgControlService, { optional: true });\n private readonly fileInputContainer = inject(ClrFileInputContainer, { optional: true });\n\n constructor() {\n if (!this.ngControlService || !this.fileInputContainer) {\n throw new Error('The clr-file-list component can only be used within a clr-file-input-container.');\n }\n }\n\n protected get files() {\n if (!this.fileInputContainer.fileInput) {\n return [];\n }\n\n const fileInputElement = this.fileInputContainer.fileInput.elementRef.nativeElement;\n\n return Array.from(fileInputElement.files).sort((a, b) => a.name.localeCompare(b.name));\n }\n\n protected getClearFileLabel(filename: string) {\n return this.commonStrings.parse(this.commonStrings.keys.clearFile, {\n FILE: filename,\n });\n }\n\n protected clearFile(fileToRemove: File) {\n if (!this.fileInputContainer.fileInput) {\n return;\n }\n\n const fileInputElement = this.fileInputContainer.fileInput.elementRef.nativeElement;\n const files = Array.from(fileInputElement.files);\n const newFiles = files.filter(file => file !== fileToRemove);\n\n selectFiles(fileInputElement, newFiles);\n this.fileInputContainer.focusBrowseButton();\n }\n\n protected createFileMessagesTemplateContext(file: File): ClrFileMessagesTemplateContext {\n const fileInputErrors: ClrFileListValidationErrors = this.ngControlService.controls[0].errors || {};\n\n const errors: ClrSingleFileValidationErrors = {\n accept: fileInputErrors.accept?.find(error => error.name === file.name),\n minFileSize: fileInputErrors.minFileSize?.find(error => error.name === file.name),\n maxFileSize: fileInputErrors.maxFileSize?.find(error => error.name === file.name),\n };\n\n const success = Object.values(errors).every(error => !error);\n\n return { $implicit: file, success, errors };\n }\n\n protected createFileMessagesTemplateInjector(fileMessagesTemplateContext: ClrFileMessagesTemplateContext) {\n return Injector.create({\n parent: this.injector,\n providers: [{ provide: CLR_FILE_MESSAGES_TEMPLATE_CONTEXT, useValue: fileMessagesTemplateContext }],\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, ElementRef, forwardRef, inject, Input, ViewChild } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n NgControlService,\n} from '@clr/angular/forms/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { ClrFileInput } from './file-input';\nimport { selectFiles } from './file-input.helpers';\nimport { ClrFileList } from './file-list';\nimport { ClrFileError, ClrFileSuccess } from './file-messages';\n\n@Component({\n selector: 'clr-file-input-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-file-input-wrapper\">\n <ng-content select=\"[clrFileInput]\"></ng-content>\n\n <!-- file input to handle adding new files to selection when file list is present (prevent replacing selected files on the main file input) -->\n @if (fileList) {\n <input\n #fileListFileInput\n type=\"file\"\n class=\"clr-file-input\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (change)=\"addFilesToSelection(fileListFileInput.files)\"\n />\n }\n\n <button\n #browseButton\n type=\"button\"\n class=\"btn btn-sm clr-file-input-browse-button\"\n [attr.aria-describedby]=\"browseButtonDescribedBy\"\n [disabled]=\"disabled\"\n (click)=\"browse()\"\n >\n <cds-icon shape=\"folder-open\"></cds-icon>\n <span class=\"clr-file-input-browse-button-text\">{{ browseButtonText }}</span>\n </button>\n @if (!fileList && fileInput?.selection?.fileCount) {\n <button\n type=\"button\"\n class=\"btn btn-sm clr-file-input-clear-button\"\n [attr.aria-label]=\"fileInput?.selection?.clearFilesButtonLabel\"\n (click)=\"clearSelectedFiles()\"\n >\n <cds-icon shape=\"times\" status=\"neutral\"></cds-icon>\n </button>\n }\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n\n <!-- If this is present, this file input becomes an \"advanced\" file input. -->\n <ng-container>\n <div class=\"clr-file-list-break\"></div>\n <ng-content select=\"clr-file-list\"></ng-content>\n </ng-container>\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService],\n standalone: false,\n})\nexport class ClrFileInputContainer extends ClrAbstractContainer {\n @Input('clrButtonLabel') customButtonLabel: string;\n\n @ContentChild(forwardRef(() => ClrFileInput)) readonly fileInput: ClrFileInput;\n @ContentChild(forwardRef(() => ClrFileList)) protected readonly fileList: ClrFileList;\n\n @ViewChild('browseButton') private browseButtonElementRef: ElementRef<HTMLButtonElement>;\n @ViewChild('fileListFileInput') private fileListFileInputElementRef: ElementRef<HTMLInputElement>;\n\n // These are for the \"message present\" override properties\n @ContentChild(ClrFileSuccess) private readonly fileSuccessComponent: ClrFileSuccess;\n @ContentChild(ClrFileError) private readonly fileErrorComponent: ClrFileError;\n\n private readonly commonStrings = inject(ClrCommonStringsService);\n\n protected get accept() {\n return this.fileInput.elementRef.nativeElement.accept;\n }\n\n protected get multiple() {\n return this.fileInput.elementRef.nativeElement.multiple;\n }\n\n protected get disabled() {\n return this.fileInput.elementRef.nativeElement.disabled || (this.control && this.control.disabled);\n }\n\n protected get browseButtonText() {\n const selectionButtonLabel = this.fileList ? undefined : this.fileInput?.selection?.buttonLabel;\n\n return selectionButtonLabel || this.customButtonLabel || this.commonStrings.keys.browse;\n }\n\n protected get browseButtonDescribedBy() {\n return `${this.label?.forAttr} ${this.fileInput.elementRef.nativeElement.getAttribute('aria-describedby')}`;\n }\n\n protected override get successMessagePresent() {\n return super.successMessagePresent || !!this.fileSuccessComponent;\n }\n\n protected override get errorMessagePresent() {\n return super.errorMessagePresent || !!this.fileErrorComponent;\n }\n\n focusBrowseButton() {\n this.browseButtonElementRef.nativeElement.focus();\n }\n\n protected browse() {\n const fileInputElementRef =\n this.fileList && this.multiple ? this.fileListFileInputElementRef : this.fileInput.elementRef;\n\n fileInputElementRef.nativeElement.click();\n }\n\n protected clearSelectedFiles() {\n this.fileInput.elementRef.nativeElement.value = '';\n this.fileInput.elementRef.nativeElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));\n\n this.focusBrowseButton();\n }\n\n protected addFilesToSelection(newFiles: FileList) {\n if (!newFiles.length) {\n return;\n }\n\n // start with new files\n const mergedFiles = [...newFiles];\n\n // add existing files if a new file doesn't have the same name\n for (const existingFile of this.fileInput.elementRef.nativeElement.files) {\n if (!mergedFiles.some(file => file.name === existingFile.name)) {\n mergedFiles.push(existingFile);\n }\n }\n\n // update file selection\n selectFiles(this.fileInput.elementRef.nativeElement, mergedFiles);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Injector,\n Optional,\n Renderer2,\n Self,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\n\nimport { ClrFileInputContainer } from './file-input-container';\n\nexport interface ClrFileInputSelection {\n fileCount: number;\n buttonLabel: string;\n clearFilesButtonLabel: string;\n}\n\n@Directive({\n selector: 'input[type=\"file\"][clrFileInput]',\n host: {\n tabindex: '-1', // Remove the hidden file `input` element from the tab order because the browse `button` replaces it.\n 'aria-hidden': 'true', // Remove the hidden file `input` element from the accessibility tree because the browse `button` replaces it.\n '[class.clr-file-input]': 'true',\n },\n standalone: false,\n})\nexport class ClrFileInput extends WrappedFormControl<ClrFileInputContainer> {\n selection: ClrFileInputSelection = undefined;\n\n constructor(\n injector: Injector,\n renderer: Renderer2,\n viewContainerRef: ViewContainerRef,\n readonly elementRef: ElementRef<HTMLInputElement>,\n @Self() @Optional() private readonly control: NgControl,\n private readonly commonStrings: ClrCommonStringsService\n ) {\n super(viewContainerRef, ClrFileInputContainer, injector, control, renderer, elementRef);\n }\n\n @HostBinding('disabled')\n protected get disabled() {\n return this.elementRef.nativeElement.disabled || (this.control && this.control.disabled);\n }\n\n @HostListener('change')\n private handleChange() {\n this.updateSelection();\n }\n\n private updateSelection() {\n const files = this.elementRef.nativeElement.files;\n let selectionButtonLabel: string;\n let clearFilesButtonLabel: string;\n\n if (files?.length === 1) {\n const filename = files[0].name;\n\n selectionButtonLabel = filename;\n\n clearFilesButtonLabel = this.commonStrings.parse(this.commonStrings.keys.clearFile, {\n FILE: filename,\n });\n } else if (files?.length > 1) {\n const fileCount = files.length.toString();\n\n selectionButtonLabel = this.commonStrings.parse(this.commonStrings.keys.fileCount, {\n COUNT: fileCount,\n });\n\n clearFilesButtonLabel = this.commonStrings.parse(this.commonStrings.keys.clearFiles, {\n COUNT: fileCount,\n });\n }\n\n this.selection = {\n fileCount: files.length,\n buttonLabel: selectionButtonLabel,\n clearFilesButtonLabel,\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 { Directive, ElementRef, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\nimport { ClrFileListValidationErrors } from './file-input-validator-errors';\n\n@Directive({\n selector: 'input[type=\"file\"][clrFileInput]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ClrFileInputValidator, multi: true }],\n standalone: false,\n})\nexport class ClrFileInputValidator implements Validator {\n @Input('clrMinFileSize') minFileSize: number;\n @Input('clrMaxFileSize') maxFileSize: number;\n\n constructor(private readonly elementRef: ElementRef<HTMLInputElement>) {}\n\n validate(control: AbstractControl<FileList>): ValidationErrors {\n const files = control.value;\n const fileInputElement = this.elementRef.nativeElement;\n\n const errors: ClrFileListValidationErrors = {};\n\n // required validation (native attribute)\n if (fileInputElement.required && files?.length === 0) {\n errors.required = true;\n }\n\n const accept = fileInputElement.accept ? fileInputElement.accept.split(',').map(type => type.trim()) : null;\n\n if (files?.length > 0 && (accept || this.minFileSize || this.maxFileSize)) {\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n\n // accept validation (native attribute)\n if (accept && accept.length) {\n if (!this.validateAccept(file, accept)) {\n errors.accept = errors.accept || [];\n errors.accept.push({\n name: file.name,\n accept,\n type: file.type || '',\n extension: this.getSuffixByDepth(file.name, 2), // last up to 2 parts for reporting\n });\n }\n }\n\n // min file validation (custom input)\n if (this.minFileSize && file.size < this.minFileSize) {\n errors.minFileSize = errors.minFileSize || [];\n errors.minFileSize.push({ name: file.name, minFileSize: this.minFileSize, actualFileSize: file.size });\n }\n\n // max file validation (custom input)\n if (this.maxFileSize && file.size > this.maxFileSize) {\n errors.maxFileSize = errors.maxFileSize || [];\n errors.maxFileSize.push({ name: file.name, maxFileSize: this.maxFileSize, actualFileSize: file.size });\n }\n }\n }\n\n return Object.keys(errors).length ? errors : null;\n }\n\n private getSuffixByDepth(filename: string, depth: number): string {\n const match = filename.toLowerCase().match(new RegExp(`(\\\\.[^.]+){1,${depth}}$`, 'i'));\n return match ? match[0] : '';\n }\n\n private validateAccept(file: File, acceptList: string[]): boolean {\n const name = file.name.toLowerCase();\n const type = (file.type || '').toLowerCase();\n\n for (const entryRaw of acceptList) {\n const entry = entryRaw.trim().toLowerCase();\n if (!entry) {\n continue;\n }\n\n // Extension check\n if (entry.startsWith('.')) {\n const depth = (entry.match(/\\./g) || []).length;\n if (this.getSuffixByDepth(name, depth) === entry) {\n return true;\n }\n continue;\n }\n\n // MIME check\n if (entry.endsWith('/*')) {\n const prefix = entry.slice(0, entry.length - 1); // keep trailing slash\n if (type.startsWith(prefix)) {\n return true;\n }\n } else if (entry.includes('/') && type === entry) {\n return true;\n }\n }\n\n return false;\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 interface ClrFileListValidationErrors {\n required?: boolean;\n accept?: ClrFileAcceptError[];\n minFileSize?: ClrFileMinFileSizeError[];\n maxFileSize?: ClrFileMaxFileSizeError[];\n}\n\nexport interface ClrFileAcceptError {\n /**\n * The name of the selected file.\n */\n name: string;\n\n /**\n * The file types that are accepted by the file input.\n */\n accept: string[];\n\n /**\n * The actual MIME type of the selected file.\n */\n type: string;\n\n /**\n * The actual extension of the selected file.\n */\n extension: string;\n}\n\nexport interface ClrFileMinFileSizeError {\n /**\n * The name of the selected file.\n */\n name: string;\n\n /**\n * The minimum file size that is accepted by the file input.\n */\n minFileSize: number;\n\n /**\n * The actual size of the selected file.\n */\n actualFileSize: number;\n}\n\nexport interface ClrFileMaxFileSizeError {\n /**\n * The name of the selected file.\n */\n name: string;\n\n /**\n * The maximum file size that is accepted by the file input.\n */\n maxFileSize: number;\n\n /**\n * The actual size of the selected file.\n */\n actualFileSize: number;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, HostListener } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { clearFiles, selectFiles } from './file-input.helpers';\n\n@Directive({\n selector: 'input[type=\"file\"][clrFileInput]',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ClrFileInputValueAccessor, multi: true }],\n standalone: false,\n})\nexport class ClrFileInputValueAccessor implements ControlValueAccessor {\n constructor(private readonly elementRef: ElementRef<HTMLInputElement>) {}\n\n writeValue(value: FileList) {\n if (value !== undefined && value !== null && !(value instanceof FileList)) {\n throw new Error('The value of a file input control must be a FileList.');\n }\n\n if (value) {\n selectFiles(this.elementRef.nativeElement, value);\n } else if (this.elementRef.nativeElement.files.length) {\n clearFiles(this.elementRef.nativeElement);\n }\n }\n\n registerOnChange(fn: (value: FileList) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n @HostListener('change')\n private handleChange() {\n this.onTouched();\n this.onChange(this.elementRef.nativeElement.files);\n }\n\n private onChange = (_value: FileList) => {};\n\n private onTouched = () => {};\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 } from '@angular/core';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { ClarityIcons, ClrIcon, folderOpenIcon } from '@clr/angular/icon';\n\nimport { ClrFileInput } from './file-input';\nimport { ClrFileInputContainer } from './file-input-container';\nimport { ClrFileInputValidator } from './file-input-validator';\nimport { ClrFileInputValueAccessor } from './file-input-value-accessor';\nimport { ClrFileList } from './file-list';\nimport { ClrFileError, ClrFileInfo, ClrFileSuccess } from './file-messages';\nimport { ClrFileMessagesTemplate } from './file-messages-template';\n\n@NgModule({\n imports: [CommonModule, ClrIcon, ClrCommonFormsModule],\n declarations: [\n ClrFileInput,\n ClrFileInputContainer,\n ClrFileInputValidator,\n ClrFileInputValueAccessor,\n ClrFileList,\n ClrFileMessagesTemplate,\n ClrFileInfo,\n ClrFileSuccess,\n ClrFileError,\n ],\n exports: [\n ClrCommonFormsModule,\n ClrFileInput,\n ClrFileInputContainer,\n ClrFileInputValidator,\n ClrFileInputValueAccessor,\n ClrFileList,\n ClrFileMessagesTemplate,\n ClrFileInfo,\n ClrFileSuccess,\n ClrFileError,\n ],\n})\nexport class ClrFileInputModule {\n constructor() {\n ClarityIcons.addIcons(folderOpenIcon);\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 './file-input';\nexport * from './file-input-validator';\nexport * from './file-input-validator-errors';\nexport * from './file-input-value-accessor';\nexport * from './file-input-container';\nexport * from './file-list';\nexport * from './file-messages-template';\nexport * from './file-messages';\nexport * from './file-input.module';\nexport * from './file-input.helpers';\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';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\n@Component({\n selector: 'clr-input-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-input-wrapper\">\n <div class=\"clr-input-group\">\n <ng-content select=\"[clrInputPrefix]\"></ng-content>\n <ng-content select=\"[clrInput]\"></ng-content>\n <ng-content select=\"[clrInputSuffix]\"></ng-content>\n </div>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService],\n standalone: false,\n})\nexport class ClrInputContainer extends ClrAbstractContainer {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\n\nimport { ClrInputContainer } from './input-container';\n\n@Directive({\n selector: '[clrInput]',\n host: { '[class.clr-input]': 'true' },\n standalone: false,\n})\nexport class ClrInput extends WrappedFormControl<ClrInputContainer> {\n protected override index = 1;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLInputElement>\n ) {\n super(vcr, ClrInputContainer, injector, control, renderer, el);\n if (this.el.nativeElement.getAttribute('type') === 'number') {\n console.warn(`Warning: Inputs of type \"number\" should utilize the number-input component for proper handling.\\n\n Example usage:\n <clr-number-input-container>\n <label>Number Input</label>\n <input clrNumberInput type=\"number\"/>\n </clr-number-input-container>\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\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\n\nimport { ClrInput } from './input';\nimport { ClrInputContainer } from './input-container';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ClrIcon, ClrCommonFormsModule],\n declarations: [ClrInput, ClrInputContainer],\n exports: [ClrCommonFormsModule, ClrInput, ClrInputContainer],\n})\nexport class ClrInputModule {\n constructor() {\n ClarityIcons.addIcons(\n exclamationCircleIcon,\n checkCircleIcon // caret\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\nexport * from './input';\nexport * from './input-container';\nexport * from './input.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\nimport { Component, ContentChild, forwardRef, Optional } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n FormsFocusService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\nimport { ClrNumberInput } from './number-input';\n\n@Component({\n selector: 'clr-number-input-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-number-input-wrapper\">\n <div class=\"clr-input-group\" [class.clr-focus]=\"focus\">\n <ng-content select=\"[clrNumberInput]\"></ng-content>\n <div class=\"clr-input-group-actions\" (focusout)=\"focusOut()\">\n <button\n type=\"button\"\n class=\"clr-input-group-icon-action\"\n (click)=\"input.stepDown()\"\n [disabled]=\"control?.disabled\"\n >\n <cds-icon shape=\"minus\" size=\"sm\"></cds-icon>\n </button>\n <div class=\"clr-number-input-separator\"></div>\n <button\n type=\"button\"\n class=\"clr-input-group-icon-action\"\n (click)=\"input.stepUp()\"\n [disabled]=\"control?.disabled\"\n >\n <cds-icon shape=\"plus\" size=\"sm\"></cds-icon>\n </button>\n </div>\n </div>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-form-control-readonly]': 'input.readonly',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [FormsFocusService, NgControlService, ControlIdService, ControlClassService],\n standalone: false,\n})\nexport class ClrNumberInputContainer extends ClrAbstractContainer {\n focus = false;\n\n @ContentChild(forwardRef(() => ClrNumberInput)) protected readonly input: ClrNumberInput;\n\n constructor(\n controlClassService: ControlClassService,\n @Optional() layoutService: LayoutService,\n ngControlService: NgControlService,\n focusService: FormsFocusService\n ) {\n super(layoutService, controlClassService, ngControlService);\n\n this.subscriptions.push(focusService.focusChange.subscribe(state => (this.focus = state)));\n }\n\n focusOut() {\n this.input.dispatchBlur();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n Directive,\n ElementRef,\n HostListener,\n Injector,\n Optional,\n Renderer2,\n Self,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { FormsFocusService, WrappedFormControl } from '@clr/angular/forms/common';\n\nimport { ClrNumberInputContainer } from './number-input-container';\n\n@Directive({\n selector: 'input[type=\"number\"][clrNumberInput]',\n host: { '[class.clr-input]': 'true', '[class.clr-number-input]': 'true' },\n standalone: false,\n})\nexport class ClrNumberInput extends WrappedFormControl<ClrNumberInputContainer> {\n protected override index = 1;\n\n constructor(\n @Optional() private focusService: FormsFocusService,\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n private control: NgControl,\n renderer: Renderer2,\n protected override el: ElementRef<HTMLInputElement>\n ) {\n super(vcr, ClrNumberInputContainer, injector, control, renderer, el);\n\n if (!focusService) {\n throw new Error('clrNumberInput requires being wrapped in <clr-number-input-container>');\n }\n }\n\n get readonly() {\n return this.el.nativeElement.getAttribute('readonly') !== null;\n }\n\n @HostListener('focus')\n triggerFocus() {\n if (!this.readonly && this.focusService) {\n this.focusService.focused = true;\n }\n }\n\n override triggerValidation() {\n if (!this.readonly) {\n super.triggerValidation();\n if (this.focusService) {\n this.focusService.focused = false;\n }\n }\n }\n\n stepUp(): void {\n this.el.nativeElement.stepUp();\n this.dispatchStepChangeEvents();\n this.control.control.markAllAsTouched();\n }\n\n stepDown(): void {\n this.el.nativeElement.stepDown();\n this.dispatchStepChangeEvents();\n this.control.control.markAllAsTouched();\n }\n\n dispatchBlur() {\n this.el.nativeElement.dispatchEvent(new Event('blur', { bubbles: true, cancelable: true }));\n }\n\n private dispatchStepChangeEvents() {\n this.el.nativeElement.dispatchEvent(new Event('input', { bubbles: true, cancelable: true }));\n this.el.nativeElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: 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\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon, minusIcon, plusIcon } from '@clr/angular/icon';\n\nimport { ClrNumberInput } from './number-input';\nimport { ClrNumberInputContainer } from './number-input-container';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ClrIcon, ClrCommonFormsModule],\n declarations: [ClrNumberInput, ClrNumberInputContainer],\n exports: [ClrCommonFormsModule, ClrNumberInput, ClrNumberInputContainer],\n})\nexport class ClrNumberInputModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon, minusIcon, plusIcon);\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 './number-input';\nexport * from './number-input-container';\nexport * from './number-input.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\nimport { Component, Inject, InjectionToken, Input, Optional } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n FormsFocusService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const TOGGLE_SERVICE = new InjectionToken<BehaviorSubject<boolean>>(undefined);\nexport function ToggleServiceFactory() {\n return new BehaviorSubject<boolean>(false);\n}\nexport const TOGGLE_SERVICE_PROVIDER = { provide: TOGGLE_SERVICE, useFactory: ToggleServiceFactory };\n\n@Component({\n selector: 'clr-password-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-input-wrapper\">\n <div class=\"clr-input-group\" [class.clr-focus]=\"focus\">\n <ng-content select=\"[clrPassword]\"></ng-content>\n @if (clrToggle) {\n <button (click)=\"toggle()\" [disabled]=\"control?.disabled\" class=\"clr-input-group-icon-action\" type=\"button\">\n <cds-icon class=\"clr-password-eye-icon\" [shape]=\"show ? 'eye-hide' : 'eye'\"></cds-icon>\n <span class=\"clr-sr-only\">\n {{ show ? hidePasswordText(label?.labelText) : showPasswordText(label?.labelText) }}\n </span>\n </button>\n }\n </div>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService, FormsFocusService, TOGGLE_SERVICE_PROVIDER],\n standalone: false,\n})\nexport class ClrPasswordContainer extends ClrAbstractContainer {\n show = false;\n focus = false;\n\n private _toggle = true;\n\n constructor(\n @Optional() layoutService: LayoutService,\n controlClassService: ControlClassService,\n ngControlService: NgControlService,\n public focusService: FormsFocusService,\n @Inject(TOGGLE_SERVICE) private toggleService: BehaviorSubject<boolean>,\n public commonStrings: ClrCommonStringsService\n ) {\n super(layoutService, controlClassService, ngControlService);\n\n /* The unsubscribe is handle inside the ClrAbstractContainer */\n this.subscriptions.push(\n focusService.focusChange.subscribe(state => {\n this.focus = state;\n })\n );\n }\n\n @Input('clrToggle')\n get clrToggle() {\n return this._toggle;\n }\n set clrToggle(state: boolean) {\n this._toggle = state;\n if (!state) {\n this.show = false;\n }\n }\n\n toggle() {\n this.show = !this.show;\n this.toggleService.next(this.show);\n }\n\n showPasswordText(label: string) {\n return this.commonStrings.parse(this.commonStrings.keys.passwordShow, { LABEL: label });\n }\n\n hidePasswordText(label: string) {\n return this.commonStrings.parse(this.commonStrings.keys.passwordHide, { LABEL: label });\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { FormsFocusService, WrappedFormControl } from '@clr/angular/forms/common';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ClrPasswordContainer, TOGGLE_SERVICE } from './password-container';\n\n@Directive({\n selector: '[clrPassword]',\n host: { '[class.clr-input]': 'true' },\n standalone: false,\n})\nexport class ClrPassword extends WrappedFormControl<ClrPasswordContainer> implements OnInit, OnDestroy {\n protected override index = 1;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLInputElement>,\n @Optional() private focusService: FormsFocusService,\n @Optional()\n @Inject(TOGGLE_SERVICE)\n toggleService: BehaviorSubject<boolean>\n ) {\n super(vcr, ClrPasswordContainer, injector, control, renderer, el);\n\n if (!focusService) {\n throw new Error('clrPassword requires being wrapped in <clr-password-container>');\n }\n\n this.subscriptions.push(\n toggleService.subscribe(toggle => {\n renderer.setProperty(el.nativeElement, 'type', toggle ? 'text' : 'password');\n })\n );\n }\n\n @HostListener('focus')\n triggerFocus() {\n if (this.focusService) {\n this.focusService.focused = true;\n }\n }\n\n override triggerValidation() {\n super.triggerValidation();\n if (this.focusService) {\n this.focusService.focused = false;\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 } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon, eyeHideIcon, eyeIcon } from '@clr/angular/icon';\n\nimport { ClrPassword } from './password';\nimport { ClrPasswordContainer } from './password-container';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ClrIcon, ClrCommonFormsModule],\n declarations: [ClrPassword, ClrPasswordContainer],\n exports: [ClrCommonFormsModule, ClrPassword, ClrPasswordContainer],\n})\nexport class ClrPasswordModule {\n constructor() {\n ClarityIcons.addIcons(eyeHideIcon, eyeIcon, exclamationCircleIcon, checkCircleIcon);\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 './password';\nexport * from './password-container';\nexport * from './password.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\nimport { Component, ContentChild, OnInit } from '@angular/core';\nimport { ClrControlLabel, ControlIdService } from '@clr/angular/forms/common';\n\n@Component({\n selector: 'clr-radio-wrapper',\n template: `\n <ng-content select=\"[clrRadio]\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n @if (!label) {\n <label></label>\n }\n `,\n host: {\n '[class.clr-radio-wrapper]': 'true',\n },\n providers: [ControlIdService],\n standalone: false,\n})\nexport class ClrRadioWrapper implements OnInit {\n @ContentChild(ClrControlLabel, { static: true }) label: ClrControlLabel;\n\n ngOnInit() {\n if (this.label) {\n this.label.disableGrid();\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 { Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\n\nimport { ClrRadioWrapper } from './radio-wrapper';\n\n@Directive({\n selector: '[clrRadio]',\n standalone: false,\n})\nexport class ClrRadio extends WrappedFormControl<ClrRadioWrapper> {\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLInputElement>\n ) {\n super(vcr, ClrRadioWrapper, injector, control, renderer, el);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Input,\n Optional,\n QueryList,\n} from '@angular/core';\nimport {\n ClrAbstractContainer,\n ClrControlLabel,\n ContainerIdService,\n ControlClassService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\nimport { uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ClrRadio } from './radio';\n\n@Component({\n selector: 'clr-radio-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [class.clr-control-inline]=\"clrInline\" [ngClass]=\"controlClass()\">\n <ng-content select=\"clr-radio-wrapper\"></ng-content>\n @if (showHelper) {\n <div class=\"clr-subtext-wrapper\">\n <ng-content select=\"clr-control-helper\"></ng-content>\n </div>\n }\n @if (showValid || showInvalid) {\n <div class=\"clr-subtext-wrapper\">\n @if (showInvalid) {\n <cds-icon\n class=\"clr-validate-icon\"\n shape=\"exclamation-circle\"\n status=\"danger\"\n aria-hidden=\"true\"\n ></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n '[attr.role]': 'role',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n },\n providers: [NgControlService, ControlClassService, ContainerIdService],\n standalone: false,\n})\nexport class ClrRadioContainer extends ClrAbstractContainer implements AfterContentInit {\n role: string;\n ariaLabelledBy: string;\n\n @ContentChildren(ClrRadio, { descendants: true }) radios: QueryList<ClrRadio>;\n @ContentChild(ClrControlLabel, { read: ElementRef, static: true }) groupLabel: ElementRef<HTMLElement>;\n\n private inline = false;\n private _generatedId = uniqueIdFactory();\n\n constructor(\n @Optional() protected override layoutService: LayoutService,\n protected override controlClassService: ControlClassService,\n protected override ngControlService: NgControlService\n ) {\n super(layoutService, controlClassService, ngControlService);\n }\n\n /*\n * Here we want to support the following cases\n * clrInline - true by presence\n * clrInline=\"true|false\" - unless it is explicitly false, strings are considered true\n * [clrInline]=\"true|false\" - expect a boolean\n */\n @Input()\n get clrInline() {\n return this.inline;\n }\n set clrInline(value: boolean | string) {\n if (typeof value === 'string') {\n this.inline = value === 'false' ? false : true;\n } else {\n this.inline = !!value;\n }\n }\n\n ngAfterContentInit() {\n this.setAriaRoles();\n this.setAriaLabelledBy();\n }\n\n private setAriaRoles() {\n this.role = this.radios.length ? 'radiogroup' : null;\n }\n\n private setAriaLabelledBy() {\n const _id = this.groupLabel?.nativeElement.getAttribute('id');\n if (!_id) {\n this.groupLabel?.nativeElement.setAttribute('id', this._generatedId);\n this.ariaLabelledBy = this.radios.length ? this._generatedId : null;\n } else {\n this.ariaLabelledBy = this.radios.length ? _id : null;\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 } from '@angular/core';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\nimport { ClrHostWrappingModule } from '@clr/angular/utils';\n\nimport { ClrRadio } from './radio';\nimport { ClrRadioContainer } from './radio-container';\nimport { ClrRadioWrapper } from './radio-wrapper';\n\n@NgModule({\n imports: [CommonModule, ClrCommonFormsModule, ClrHostWrappingModule, ClrIcon],\n declarations: [ClrRadio, ClrRadioContainer, ClrRadioWrapper],\n exports: [ClrCommonFormsModule, ClrRadio, ClrRadioContainer, ClrRadioWrapper],\n})\nexport class ClrRadioModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon);\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 './radio';\nexport * from './radio-container';\nexport * from './radio-wrapper';\nexport * from './radio.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\nimport { Component, ContentChild, Optional } from '@angular/core';\nimport { SelectMultipleControlValueAccessor } from '@angular/forms';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\n@Component({\n selector: 'clr-select-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div [ngClass]=\"wrapperClass()\">\n <ng-content select=\"[clrSelect]\"></ng-content>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService],\n standalone: false,\n})\nexport class ClrSelectContainer extends ClrAbstractContainer {\n @ContentChild(SelectMultipleControlValueAccessor, { static: false }) multiple: SelectMultipleControlValueAccessor;\n\n constructor(\n @Optional() protected override layoutService: LayoutService,\n protected override controlClassService: ControlClassService,\n protected override ngControlService: NgControlService\n ) {\n super(layoutService, controlClassService, ngControlService);\n }\n\n private get multi() {\n return this.control?.valueAccessor instanceof SelectMultipleControlValueAccessor;\n }\n\n wrapperClass() {\n return this.multi ? 'clr-multiselect-wrapper' : 'clr-select-wrapper';\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\n\nimport { ClrSelectContainer } from './select-container';\n\n@Directive({\n selector: '[clrSelect]',\n host: { '[class.clr-select]': 'true' },\n standalone: false,\n})\nexport class ClrSelect extends WrappedFormControl<ClrSelectContainer> {\n protected override index = 1;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLSelectElement>\n ) {\n super(vcr, ClrSelectContainer, injector, control, renderer, el);\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 } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\n\nimport { ClrSelect } from './select';\nimport { ClrSelectContainer } from './select-container';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ClrIcon, ClrCommonFormsModule],\n declarations: [ClrSelect, ClrSelectContainer],\n exports: [ClrCommonFormsModule, ClrSelect, ClrSelectContainer],\n})\nexport class ClrSelectModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon);\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 './select';\nexport * from './select-container';\nexport * from './select.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\nimport { Component } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\n@Component({\n selector: 'clr-textarea-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-textarea-wrapper\">\n <ng-content select=\"[clrTextarea]\"></ng-content>\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService],\n standalone: false,\n})\nexport class ClrTextareaContainer extends ClrAbstractContainer {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\n\nimport { ClrTextareaContainer } from './textarea-container';\n\n@Directive({\n selector: '[clrTextarea]',\n host: { '[class.clr-textarea]': 'true' },\n standalone: false,\n})\nexport class ClrTextarea extends WrappedFormControl<ClrTextareaContainer> {\n protected override index = 1;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLTextAreaElement>\n ) {\n super(vcr, ClrTextareaContainer, injector, control, renderer, el);\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 } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\n\nimport { ClrTextarea } from './textarea';\nimport { ClrTextareaContainer } from './textarea-container';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ClrIcon, ClrCommonFormsModule],\n declarations: [ClrTextarea, ClrTextareaContainer],\n exports: [ClrCommonFormsModule, ClrTextarea, ClrTextareaContainer],\n})\nexport class ClrTextareaModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon);\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 './textarea';\nexport * from './textarea-container';\nexport * from './textarea.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\nimport { Component, Input, Optional, Renderer2 } from '@angular/core';\nimport {\n ClrAbstractContainer,\n ControlClassService,\n ControlIdService,\n LayoutService,\n NgControlService,\n} from '@clr/angular/forms/common';\n\n@Component({\n selector: 'clr-range-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n <div class=\"clr-range-wrapper\" [class.progress-fill]=\"hasProgress\">\n <ng-content select=\"[clrRange]\"></ng-content>\n @if (hasProgress) {\n <span class=\"fill-input\" [style.width]=\"getRangeProgressFillWidth()\"></span>\n }\n @if (showInvalid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n }\n @if (showValid) {\n <cds-icon class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n }\n </div>\n @if (showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.clr-form-control]': 'true',\n '[class.clr-form-control-disabled]': 'control?.disabled',\n '[class.clr-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService],\n standalone: false,\n})\nexport class ClrRangeContainer extends ClrAbstractContainer {\n private _hasProgress = false;\n private lastRangeProgressFillWidth: string;\n\n constructor(\n @Optional() layoutService: LayoutService,\n controlClassService: ControlClassService,\n ngControlService: NgControlService,\n private renderer: Renderer2,\n private idService: ControlIdService\n ) {\n super(layoutService, controlClassService, ngControlService);\n }\n\n @Input('clrRangeHasProgress')\n get hasProgress() {\n return this._hasProgress;\n }\n set hasProgress(val: boolean) {\n const valBool = !!val;\n if (valBool !== this._hasProgress) {\n this._hasProgress = valBool;\n }\n }\n\n getRangeProgressFillWidth(): string {\n const input = this.selectRangeElement();\n\n if (!input) {\n return this.lastRangeProgressFillWidth;\n }\n\n const inputWidth = input.offsetWidth;\n const inputMinValue = +input.min;\n let inputMaxValue = +input.max;\n\n if (inputMinValue === 0 && inputMaxValue === 0) {\n inputMaxValue = 100;\n }\n\n const inputMiddle = (inputMinValue + inputMaxValue) / 2;\n const inputValue = !!this.control && this.control.value !== undefined ? this.control.value : inputMiddle;\n const valueAsPercent = ((inputValue - inputMinValue) * 100) / (inputMaxValue - inputMinValue);\n\n this.lastRangeProgressFillWidth = (valueAsPercent * inputWidth) / 100 + 'px';\n\n return this.lastRangeProgressFillWidth;\n }\n\n private selectRangeElement() {\n try {\n return this.renderer.selectRootElement('[clrRange]#' + this.idService.id);\n } catch {\n return undefined;\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 { Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\n\nimport { ClrRangeContainer } from './range-container';\n\n@Directive({\n selector: '[clrRange]',\n host: { '[class.clr-range]': 'true' },\n standalone: false,\n})\nexport class ClrRange extends WrappedFormControl<ClrRangeContainer> {\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n control: NgControl,\n renderer: Renderer2,\n el: ElementRef<HTMLInputElement>\n ) {\n super(vcr, ClrRangeContainer, injector, control, renderer, el);\n }\n\n // Notes: We need an output here EventEmitter for the value\n // Does this implementation also need a display for the value?\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 } from '@angular/core';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { checkCircleIcon, ClarityIcons, ClrIcon, exclamationCircleIcon } from '@clr/angular/icon';\nimport { ClrHostWrappingModule } from '@clr/angular/utils';\n\nimport { ClrRange } from './range';\nimport { ClrRangeContainer } from './range-container';\n\n@NgModule({\n imports: [CommonModule, ClrCommonFormsModule, ClrHostWrappingModule, ClrIcon],\n declarations: [ClrRange, ClrRangeContainer],\n exports: [ClrCommonFormsModule, ClrRange, ClrRangeContainer],\n})\nexport class ClrRangeModule {\n constructor() {\n ClarityIcons.addIcons(exclamationCircleIcon, checkCircleIcon);\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 './range';\nexport * from './range-container';\nexport * from './range.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\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ClrCheckboxModule } from '@clr/angular/forms/checkbox';\nimport { ClrComboboxModule } from '@clr/angular/forms/combobox';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { ClrDatalistModule } from '@clr/angular/forms/datalist';\nimport { ClrDatepickerModule } from '@clr/angular/forms/datepicker';\nimport { ClrFileInputModule } from '@clr/angular/forms/file-input';\nimport { ClrInputModule } from '@clr/angular/forms/input';\nimport { ClrNumberInputModule } from '@clr/angular/forms/number-input';\nimport { ClrPasswordModule } from '@clr/angular/forms/password';\nimport { ClrRadioModule } from '@clr/angular/forms/radio';\nimport { ClrRangeModule } from '@clr/angular/forms/range';\nimport { ClrSelectModule } from '@clr/angular/forms/select';\nimport { ClrTextareaModule } from '@clr/angular/forms/textarea';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n ClrCommonFormsModule,\n ClrCheckboxModule,\n ClrComboboxModule,\n ClrDatepickerModule,\n ClrFileInputModule,\n ClrInputModule,\n ClrPasswordModule,\n ClrRadioModule,\n ClrSelectModule,\n ClrTextareaModule,\n ClrRangeModule,\n ClrDatalistModule,\n ClrNumberInputModule,\n ],\n})\nexport class ClrFormsModule {}\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 './common/index';\nexport * from './checkbox/index';\nexport * from './combobox/index';\nexport * from './datalist/index';\nexport * from './datepicker/index';\nexport * from './file-input/index';\nexport * from './input/index';\nexport * from './number-input/index';\nexport * from './password/index';\nexport * from './radio/index';\nexport * from './select/index';\nexport * from './textarea/index';\nexport * from './range/index';\nexport * from './forms.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["counter","i1.ControlIdService","i2.ContainerIdService","i2.LayoutService","i3.NgControlService","i1.LayoutService","i2.ControlClassService","i2","i3.ClrControlLabel","i1","i2.MarkControlService","i1.NgControlService","ControlIdService","ClrControlLabel","WrappedFormControl","ClrAbstractContainer","NgControlService","ControlClassService","ContainerIdService","ClrCommonFormsModule","i2.ComboboxContainerService","i3","i4","OptionProxy","i2.ComboboxFocusHandler","i3.OptionSelectionService","i1.OptionSelectionService","i3.ComboboxFocusHandler","i6.ComboboxFocusHandler","i7","i8","ÇlrClrPopoverModuleNext","i1.DatalistIdService","FormsFocusService","i3.DatalistIdService","ClrInputModule","i1.LocaleHelperService","i2.DateNavigationService","i3.DatepickerFocusService","i4.ViewManagerService","i5","i6","i1.DateNavigationService","i2.ViewManagerService","i4.DateIOService","i5.DateFormControlService","i7.ClrDay","i1.ViewManagerService","i3.LocaleHelperService","i6.ClrCalendar","i3.DateNavigationService","i4.DateFormControlService","i7.ClrMonthpicker","i8.ClrYearpicker","i9.ClrDaypicker","i10.ClrDatepickerActions","i3.DatepickerEnabledService","i5.DateIOService","i8.ViewManagerService","i9","i10","i11.ClrDatepickerViewManager","i2.DateIOService","i4.DatepickerEnabledService","i7.DatepickerFocusService","i1.DateIOService","ClrCheckboxModule","ClrComboboxModule","ClrDatepickerModule","ClrFileInputModule","ClrPasswordModule","ClrRadioModule","ClrSelectModule","ClrTextareaModule","ClrRangeModule","ClrDatalistModule","ClrNumberInputModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clr-angular-forms.mjs","sources":["../../../projects/angular/forms/forms.module.ts","../../../projects/angular/forms/index.ts","../../../projects/angular/forms/clr-angular-forms.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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ClrCheckboxModule } from '@clr/angular/forms/checkbox';\nimport { ClrComboboxModule } from '@clr/angular/forms/combobox';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { ClrDatalistModule } from '@clr/angular/forms/datalist';\nimport { ClrDatepickerModule } from '@clr/angular/forms/datepicker';\nimport { ClrFileInputModule } from '@clr/angular/forms/file-input';\nimport { ClrInputModule } from '@clr/angular/forms/input';\nimport { ClrNumberInputModule } from '@clr/angular/forms/number-input';\nimport { ClrPasswordModule } from '@clr/angular/forms/password';\nimport { ClrRadioModule } from '@clr/angular/forms/radio';\nimport { ClrRangeModule } from '@clr/angular/forms/range';\nimport { ClrSelectModule } from '@clr/angular/forms/select';\nimport { ClrTextareaModule } from '@clr/angular/forms/textarea';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n ClrCommonFormsModule,\n ClrCheckboxModule,\n ClrComboboxModule,\n ClrDatepickerModule,\n ClrFileInputModule,\n ClrInputModule,\n ClrPasswordModule,\n ClrRadioModule,\n ClrSelectModule,\n ClrTextareaModule,\n ClrRangeModule,\n ClrDatalistModule,\n ClrNumberInputModule,\n ],\n})\nexport class ClrFormsModule {}\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 '@clr/angular/forms/common';\nexport * from '@clr/angular/forms/checkbox';\nexport * from '@clr/angular/forms/combobox';\nexport * from '@clr/angular/forms/datalist';\nexport * from '@clr/angular/forms/datepicker';\nexport * from '@clr/angular/forms/file-input';\nexport * from '@clr/angular/forms/input';\nexport * from '@clr/angular/forms/number-input';\nexport * from '@clr/angular/forms/password';\nexport * from '@clr/angular/forms/radio';\nexport * from '@clr/angular/forms/select';\nexport * from '@clr/angular/forms/textarea';\nexport * from '@clr/angular/forms/range';\nexport * from './forms.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;MAoCU,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAd,cAAc,EAAA,OAAA,EAAA,CAjBf,YAAY,CAAA,EAAA,OAAA,EAAA,CAEpB,oBAAoB;YACpB,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,iBAAiB;YACjB,oBAAoB,CAAA,EAAA,CAAA,CAAA;+GAGX,cAAc,EAAA,OAAA,EAAA,CAjBf,YAAY,EAEpB,oBAAoB;YACpB,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,iBAAiB;YACjB,oBAAoB,CAAA,EAAA,CAAA,CAAA;;2FAGX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,iBAAiB;wBACjB,iBAAiB;wBACjB,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,iBAAiB;wBACjB,cAAc;wBACd,iBAAiB;wBACjB,oBAAoB;AACrB,qBAAA;AACF,iBAAA;;;ACxCD;;;;;AAKG;;ACLH;;AAEG;;;;"}
|