primeng
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primeng) [
{"version":3,"file":"primeng-cascadeselect.mjs","sources":["../../src/app/components/cascadeselect/cascadeselect.ts","../../src/app/components/cascadeselect/primeng-cascadeselect.ts"],"sourcesContent":["import { AnimationEvent } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n NgModule,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { OverlayOptions, OverlayService, PrimeNGConfig, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { Overlay, OverlayModule } from 'primeng/overlay';\nimport { RippleModule } from 'primeng/ripple';\nimport { ObjectUtils } from 'primeng/utils';\n\nexport const CASCADESELECT_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CascadeSelect),\n multi: true\n};\n\n@Component({\n selector: 'p-cascadeSelectSub',\n template: `\n <ul class=\"p-cascadeselect-panel p-cascadeselect-items\" [ngClass]=\"{ 'p-cascadeselect-panel-root': root }\" role=\"listbox\" aria-orientation=\"horizontal\">\n <ng-template ngFor let-option [ngForOf]=\"options\" let-i=\"index\">\n <li [ngClass]=\"getItemClass(option)\" role=\"none\">\n <div class=\"p-cascadeselect-item-content\" (click)=\"onOptionClick($event, option)\" tabindex=\"0\" (keydown)=\"onKeyDown($event, option, i)\" pRipple>\n <ng-container *ngIf=\"optionTemplate; else defaultOptionTemplate\">\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option }\"></ng-container>\n </ng-container>\n <ng-template #defaultOptionTemplate>\n <span class=\"p-cascadeselect-item-text\">{{ getOptionLabelToRender(option) }}</span>\n </ng-template>\n <span class=\"p-cascadeselect-group-icon pi pi-angle-right\" *ngIf=\"isOptionGroup(option)\"></span>\n </div>\n <p-cascadeSelectSub\n *ngIf=\"isOptionGroup(option) && isOptionActive(option)\"\n class=\"p-cascadeselect-sublist\"\n [selectionPath]=\"selectionPath\"\n [options]=\"getOptionGroupChildren(option)\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [level]=\"level + 1\"\n (onSelect)=\"onOptionSelect($event)\"\n (onOptionGroupSelect)=\"onOptionGroupSelect()\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [optionGroupChildren]=\"optionGroupChildren\"\n [parentActive]=\"isOptionActive(option)\"\n [dirty]=\"dirty\"\n [optionTemplate]=\"optionTemplate\"\n >\n </p-cascadeSelectSub>\n </li>\n </ng-template>\n </ul>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CascadeSelectSub implements OnInit {\n @Input() selectionPath: any[];\n\n @Input() options: any[];\n\n @Input() optionGroupChildren: any[];\n\n @Input() optionTemplate: TemplateRef<any>;\n\n @Input() level: number = 0;\n\n @Input() optionLabel: string;\n\n @Input() optionValue: string;\n\n @Input() optionGroupLabel: string;\n\n @Input() dirty: boolean;\n\n @Input() root: boolean;\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onGroupSelect: EventEmitter<any> = new EventEmitter();\n\n @Input() get parentActive(): boolean {\n return this._parentActive;\n }\n set parentActive(val) {\n if (!val) {\n this.activeOption = null;\n }\n\n this._parentActive = val;\n }\n\n activeOption: any = null;\n\n _parentActive: boolean;\n\n cascadeSelect: CascadeSelect;\n\n constructor(@Inject(forwardRef(() => CascadeSelect)) cascadeSelect, private el: ElementRef) {\n this.cascadeSelect = cascadeSelect as CascadeSelect;\n }\n\n ngOnInit() {\n if (this.selectionPath && this.options && !this.dirty) {\n for (let option of this.options) {\n if (this.selectionPath.includes(option)) {\n this.activeOption = option;\n break;\n }\n }\n }\n\n if (!this.root) {\n this.position();\n }\n }\n\n onOptionClick(event, option) {\n if (this.isOptionGroup(option)) {\n this.activeOption = this.activeOption === option ? null : option;\n\n this.onGroupSelect.emit({\n originalEvent: event,\n value: option\n });\n } else {\n this.onSelect.emit({\n originalEvent: event,\n value: this.getOptionValue(option)\n });\n }\n }\n\n onOptionSelect(event) {\n this.onSelect.emit(event);\n }\n\n onOptionGroupSelect(event) {\n this.onGroupSelect.emit(event);\n }\n\n getOptionLabel(option) {\n return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : option;\n }\n\n getOptionValue(option) {\n return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : option;\n }\n\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel) : null;\n }\n\n getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren[this.level]);\n }\n\n isOptionGroup(option) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[this.level]);\n }\n\n getOptionLabelToRender(option) {\n return this.isOptionGroup(option) ? this.getOptionGroupLabel(option) : this.getOptionLabel(option);\n }\n\n getItemClass(option) {\n return {\n 'p-cascadeselect-item': true,\n 'p-cascadeselect-item-group': this.isOptionGroup(option),\n 'p-cascadeselect-item-active p-highlight': this.isOptionActive(option)\n };\n }\n\n isOptionActive(option) {\n return this.activeOption === option;\n }\n\n onKeyDown(event, option, index) {\n let listItem = event.currentTarget.parentElement;\n\n switch (event.key) {\n case 'Down':\n case 'ArrowDown':\n var nextItem = this.el.nativeElement.children[0].children[index + 1];\n if (nextItem) {\n nextItem.children[0].focus();\n }\n\n event.preventDefault();\n break;\n\n case 'Up':\n case 'ArrowUp':\n var prevItem = this.el.nativeElement.children[0].children[index - 1];\n if (prevItem) {\n prevItem.children[0].focus();\n }\n\n event.preventDefault();\n break;\n\n case 'Right':\n case 'ArrowRight':\n if (this.isOptionGroup(option)) {\n if (this.isOptionActive(option)) {\n listItem.children[1].children[0].children[0].children[0].focus();\n } else {\n this.activeOption = option;\n }\n }\n\n event.preventDefault();\n break;\n\n case 'Left':\n case 'ArrowLeft':\n this.activeOption = null;\n\n var parentList = listItem.parentElement.parentElement.parentElement;\n if (parentList) {\n parentList.children[0].focus();\n }\n\n event.preventDefault();\n break;\n\n case 'Enter':\n this.onOptionClick(event, option);\n\n event.preventDefault();\n break;\n\n case 'Tab':\n case 'Escape':\n this.cascadeSelect.hide();\n\n event.preventDefault();\n break;\n }\n }\n\n position() {\n const parentItem = this.el.nativeElement.parentElement;\n const containerOffset = DomHandler.getOffset(parentItem);\n const viewport = DomHandler.getViewport();\n const sublistWidth = this.el.nativeElement.children[0].offsetParent ? this.el.nativeElement.children[0].offsetWidth : DomHandler.getHiddenElementOuterWidth(this.el.nativeElement.children[0]);\n const itemOuterWidth = DomHandler.getOuterWidth(parentItem.children[0]);\n\n if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {\n this.el.nativeElement.children[0].style.left = '-200%';\n }\n }\n}\n\n@Component({\n selector: 'p-cascadeSelect',\n template: `\n <div #container [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input\n #focusInput\n type=\"text\"\n [attr.id]=\"inputId\"\n readonly\n [disabled]=\"disabled\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n [attr.tabindex]=\"tabindex\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"overlayVisible\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.label]=\"inputLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n </div>\n <span [ngClass]=\"labelClass()\">\n <ng-container *ngIf=\"valueTemplate; else defaultValueTemplate\">\n <ng-container *ngTemplateOutlet=\"valueTemplate; context: { $implicit: value, placeholder: placeholder }\"></ng-container>\n </ng-container>\n <ng-template #defaultValueTemplate>\n {{ label() }}\n </ng-template>\n </span>\n <i *ngIf=\"filled && !disabled && showClear\" class=\"p-cascadeselect-clear-icon pi pi-times\" (click)=\"clear($event)\"></i>\n <div class=\"p-cascadeselect-trigger\" role=\"button\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"overlayVisible\">\n <span class=\"p-cascadeselect-trigger-icon pi pi-chevron-down\"></span>\n </div>\n <p-overlay\n #overlay\n [(visible)]=\"overlayVisible\"\n [options]=\"overlayOptions\"\n [target]=\"'@parent'\"\n [appendTo]=\"appendTo\"\n [showTransitionOptions]=\"showTransitionOptions\"\n [hideTransitionOptions]=\"hideTransitionOptions\"\n (onAnimationDone)=\"onOverlayAnimationDone($event)\"\n (onBeforeShow)=\"onBeforeShow.emit($event)\"\n (onShow)=\"onShow.emit($event)\"\n (onBeforeHide)=\"onBeforeHide.emit($event)\"\n (onHide)=\"onHide.emit($event)\"\n >\n <ng-template pTemplate=\"content\">\n <div #panel class=\"p-cascadeselect-panel p-component\" [class]=\"panelStyleClass\" [ngStyle]=\"panelStyle\">\n <div class=\"p-cascadeselect-items-wrapper\">\n <p-cascadeSelectSub\n [options]=\"options\"\n [selectionPath]=\"selectionPath\"\n class=\"p-cascadeselect-items\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [level]=\"0\"\n [optionTemplate]=\"optionTemplate\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [optionGroupChildren]=\"optionGroupChildren\"\n (onSelect)=\"onOptionSelect($event)\"\n (onGroupSelect)=\"onOptionGroupSelect($event)\"\n [dirty]=\"dirty\"\n [root]=\"true\"\n >\n </p-cascadeSelectSub>\n </div>\n </div>\n </ng-template>\n </p-overlay>\n </div>\n `,\n host: {\n class: 'p-element p-inputwrapper',\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-inputwrapper-focus]': 'focused || overlayVisible',\n '[class.p-cascadeselect-clearable]': 'showClear && !disabled'\n },\n providers: [CASCADESELECT_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./cascadeselect.css']\n})\nexport class CascadeSelect implements OnInit, AfterContentInit {\n @Input() styleClass: string;\n\n @Input() style: any;\n\n @Input() options: any[];\n\n @Input() optionLabel: string;\n\n @Input() optionValue: string;\n\n @Input() optionGroupLabel: string;\n\n @Input() optionGroupChildren: any[];\n\n @Input() placeholder: string;\n\n @Input() value: string;\n\n @Input() dataKey: string;\n\n @Input() inputId: string;\n\n @Input() tabindex: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() inputLabel: string;\n\n @Input() ariaLabel: string;\n\n @Input() appendTo: any;\n\n @Input() disabled: boolean;\n\n @Input() rounded: boolean;\n\n @Input() showClear: boolean = false;\n\n @Input() panelStyleClass: string;\n\n @Input() panelStyle: object;\n\n @Input() overlayOptions: OverlayOptions;\n\n @ViewChild('focusInput') focusInputEl: ElementRef;\n\n @ViewChild('container') containerEl: ElementRef;\n\n @ViewChild('panel') panelEl: ElementRef;\n\n @ViewChild('overlay') overlayViewChild: Overlay;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onGroupChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n\n @Output() onBeforeShow: EventEmitter<any> = new EventEmitter();\n\n @Output() onBeforeHide: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n /* @deprecated */\n _showTransitionOptions: string;\n @Input() get showTransitionOptions(): string {\n return this._showTransitionOptions;\n }\n set showTransitionOptions(val: string) {\n this._showTransitionOptions = val;\n console.warn('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n\n /* @deprecated */\n _hideTransitionOptions: string;\n @Input() get hideTransitionOptions(): string {\n return this._hideTransitionOptions;\n }\n set hideTransitionOptions(val: string) {\n this._hideTransitionOptions = val;\n console.warn('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n\n selectionPath: any = null;\n\n focused: boolean = false;\n\n filled: boolean = false;\n\n overlayVisible: boolean = false;\n\n dirty: boolean = false;\n\n valueTemplate: TemplateRef<any>;\n\n optionTemplate: TemplateRef<any>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n constructor(private el: ElementRef, private cd: ChangeDetectorRef, private config: PrimeNGConfig, public overlayService: OverlayService) {}\n\n ngOnInit() {\n this.updateSelectionPath();\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'value':\n this.valueTemplate = item.template;\n break;\n case 'option':\n this.optionTemplate = item.template;\n break;\n }\n });\n }\n\n onOptionSelect(event) {\n this.value = event.value;\n this.updateSelectionPath();\n this.onModelChange(this.value);\n this.onChange.emit(event);\n this.hide();\n this.focusInputEl.nativeElement.focus();\n }\n\n onOptionGroupSelect(event) {\n this.dirty = true;\n this.onGroupChange.emit(event);\n }\n\n getOptionLabel(option) {\n return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : option;\n }\n\n getOptionValue(option) {\n return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : option;\n }\n\n getOptionGroupChildren(optionGroup, level) {\n return ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren[level]);\n }\n\n isOptionGroup(option, level) {\n return Object.prototype.hasOwnProperty.call(option, this.optionGroupChildren[level]);\n }\n\n updateSelectionPath() {\n let path;\n if (this.value != null && this.options) {\n for (let option of this.options) {\n path = this.findModelOptionInGroup(option, 0);\n if (path) {\n break;\n }\n }\n }\n\n this.selectionPath = path;\n this.updateFilledState();\n }\n\n updateFilledState() {\n this.filled = !(this.selectionPath == null || this.selectionPath.length == 0);\n }\n\n findModelOptionInGroup(option, level) {\n if (this.isOptionGroup(option, level)) {\n let selectedOption;\n for (let childOption of this.getOptionGroupChildren(option, level)) {\n selectedOption = this.findModelOptionInGroup(childOption, level + 1);\n if (selectedOption) {\n selectedOption.unshift(option);\n return selectedOption;\n }\n }\n } else if (ObjectUtils.equals(this.value, this.getOptionValue(option), this.dataKey)) {\n return [option];\n }\n\n return null;\n }\n\n show() {\n this.overlayVisible = true;\n }\n\n hide() {\n this.overlayVisible = false;\n this.cd.markForCheck();\n }\n\n clear(event) {\n this.value = null;\n this.selectionPath = null;\n this.updateFilledState();\n this.onClear.emit();\n this.onModelChange(this.value);\n event.stopPropagation();\n this.cd.markForCheck();\n }\n\n onClick(event) {\n if (this.disabled) {\n return;\n }\n\n if (!this.overlayViewChild?.el?.nativeElement?.contains(event.target)) {\n if (this.overlayVisible) {\n this.hide();\n } else {\n this.show();\n }\n\n this.focusInputEl.nativeElement.focus();\n }\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n onOverlayAnimationDone(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n this.dirty = false;\n break;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.updateSelectionPath();\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n label() {\n if (this.selectionPath) {\n return this.getOptionLabel(this.selectionPath[this.selectionPath.length - 1]);\n }\n\n return this.placeholder || 'p-emptylabel';\n }\n\n onKeyDown(event) {\n switch (event.code) {\n case 'Down':\n case 'ArrowDown':\n if (this.overlayVisible) {\n DomHandler.findSingle(this.panelEl.nativeElement, '.p-cascadeselect-item').children[0].focus();\n } else if (event.altKey && this.options && this.options.length) {\n this.show();\n }\n event.preventDefault();\n break;\n\n case 'Space':\n case 'Enter':\n if (!this.overlayVisible) this.show();\n else this.hide();\n\n event.preventDefault();\n break;\n\n case 'Tab':\n case 'Escape':\n if (this.overlayVisible) {\n this.hide();\n event.preventDefault();\n }\n break;\n }\n }\n\n containerClass() {\n return {\n 'p-cascadeselect p-component p-inputwrapper': true,\n 'p-disabled': this.disabled,\n 'p-focus': this.focused\n };\n }\n\n labelClass() {\n return {\n 'p-cascadeselect-label': true,\n 'p-inputtext': true,\n 'p-placeholder': this.label() === this.placeholder,\n 'p-cascadeselect-label-empty': !this.value && (this.label() === 'p-emptylabel' || this.label().length === 0)\n };\n }\n}\n\n@NgModule({\n imports: [CommonModule, OverlayModule, SharedModule, RippleModule],\n exports: [CascadeSelect, OverlayModule, CascadeSelectSub, SharedModule],\n declarations: [CascadeSelect, CascadeSelectSub]\n})\nexport class CascadeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}