{"version":3,"file":"pepperi-addons-ngx-lib-select-panel.mjs","sources":["../../../projects/ngx-lib/select-panel/select-panel.component.ts","../../../projects/ngx-lib/select-panel/select-panel.component.html","../../../projects/ngx-lib/select-panel/select-panel.module.ts","../../../projects/ngx-lib/select-panel/public-api.ts","../../../projects/ngx-lib/select-panel/pepperi-addons-ngx-lib-select-panel.ts"],"sourcesContent":["import { Component,OnDestroy,Input,Output,EventEmitter,Renderer2,ElementRef, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DEFAULT_HORIZONTAL_ALIGNMENT, IPepOption, PepCustomizationService, PepHorizontalAlignment, PepLayoutType, PepSelectField, PepGuid } from '@pepperi-addons/ngx-lib'; \nimport { IPepSelectionOption } from './select-panel.model';\n\n/**\n * This is a button component that support pepperi theme\n * style & state & sizes\n *\n * @export\n * @class PepSelectPanelComponent\n * @implements {OnDestroy}\n */\n@Component({\n    selector: 'pep-select-panel',\n    templateUrl: './select-panel.component.html',\n    styleUrls: ['./select-panel.component.scss', './select-panel.component.theme.scss'],\n})\nexport class PepSelectPanelComponent implements OnDestroy {\n    \n    @Input() form: FormGroup = null;\n    @Input() layoutType: PepLayoutType = 'form';\n\n    @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n    @Input() renderTitle = true;\n    @Input() showTitle = true; \n    @Input() label = '';\n\n    @Input() mandatory = false;\n    @Input() disabled = false;\n    @Input() classNames = '';\n\n    @Input() isMultiSelect = false;\n    \n    private _numOfCol = 1;\n    @Input() \n    set numOfCol(value: number){\n        if (!value) {\n            value = 1;\n        }\n\n        this._numOfCol = value; \n        this.setNumOfColumns();\n    }\n    \n    private _value = '';\n    @Input()\n    set value(value: string) {\n        if (!value) {\n            value = '';\n        }\n\n        this._value = value;\n    }\n    get value(): string {\n        return this._value;\n    }\n\n    private _options: Array<IPepOption> = [];\n    @Input() \n    set options(value: Array<IPepOption>) {\n        if (!value) {\n            value = [];\n        }\n        \n        this._options = value;\n        this.initOptionsMap();\n    }\n    get options(): Array<IPepOption> {\n        return this._options;\n    }\n\n    public groupName = PepGuid.newGuid();\n\n    @Output()\n    valueChange: EventEmitter<string> = new EventEmitter<string>();\n    @ViewChild('selectPanel', { static: true }) selectPanel: ElementRef;\n    \n    public optionsMap: Array<IPepSelectionOption> = [];\n\n    constructor(private renderer: Renderer2, private customizationService: PepCustomizationService, private element: ElementRef) { }\n\n    private setDefaultForm(): void {\n        const pepField = new PepSelectField({\n            //key: this.key,\n            value: this.value,\n            mandatory: this.mandatory,\n            readonly: false,\n            disabled: this.disabled,\n        });\n        this.form = this.customizationService.getDefaultFromGroup(pepField);\n    }\n\n    ngOnInit(): void {\n        if (this.form === null) {\n            this.setDefaultForm();\n        }\n    }\n\n    ngAfterViewInit() {\n        this.setNumOfColumns();\n        this.initOptionsMap();\n      }\n\n    ngOnDestroy(): void {\n        // if (this.buttonClick) {\n        //     this.buttonClick.unsubscribe();\n        // }\n    }\n\n    setNumOfColumns(){\n        this.renderer.setStyle(this.selectPanel.nativeElement, 'columns', ('auto '+this._numOfCol.toString()));\n    }\n\n    initOptionsMap(): void {\n        this.optionsMap = [];\n        //push checked option to the returned array;\n        this.options.forEach(opt => {\n            this.optionsMap.push({'key': opt.key, 'value': opt.value, 'isChecked': this.isChecked(opt)});\n        });\n    }\n\n    selectionChange(option, event: any): void {\n       if(this.isMultiSelect){\n        let tmpArr = this.value?.length ? this.value.split(';') : [];\n        if (!tmpArr.includes(option.key)){\n                tmpArr.push(option.key);\n            }\n            else{\n                //remove the option from the returned array;\n                tmpArr = tmpArr.filter((key) => { return  key !== option.key});\n            }\n            this.value = tmpArr.length ? tmpArr.join(';') : '';\n           \n       }\n       else{\n            this.value = option.key;\n       }\n       this.valueChange.emit(this.value);\n       this.initOptionsMap();\n    }\n\n    isChecked(option: any){\n        return this.value.indexOf(option.key) > -1 ;\n    }\n\n}\n","<ng-container [formGroup]=\"form\">\n    <pep-field-title *ngIf=\"renderTitle\" \n        [label]=\"label\" \n        [mandatory]=\"mandatory\"\n        [disabled]=\"disabled\" \n        [xAlignment]=\"xAlignment\" \n        [showTitle]=\"showTitle\">\n    </pep-field-title>\n    <div #selectPanel class=\"select-panel\" [ngClass]=\"{'disable': disabled }\">\n        <div class=\"optCont\" [title]=\"option.value\"  *ngFor=\"let option of optionsMap\">\n            <ng-container *ngTemplateOutlet=\"isMultiSelect == true ? multiBlock : singleBlock; context: { option }\"></ng-container>\n        </div>\n    </div>\n</ng-container>\n\n    <ng-template #singleBlock let-option=\"option\">\n        <mat-radio-button \n            [name]=\"groupName\"\n            [class]=\"'pep-radio-button md'\" \n            [disabled]=\"disabled\"\n            [checked]=\"option?.isChecked\"\n            (change)=\"selectionChange(option, $event)\">\n            {{option.value}}\n        </mat-radio-button>\n    </ng-template>\n\n    <ng-template #multiBlock let-option=\"option\">\n        <mat-checkbox\n            [name]=\"groupName\"\n            [class]=\"'md'\"\n            [disabled]=\"disabled\" \n            [checked]=\"option.isChecked\"\n            (change)=\"selectionChange(option, $event)\">\n            {{option.value}}\n        </mat-checkbox>\n    </ng-template>\n\n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PepIconModule } from '@pepperi-addons/ngx-lib/icon';\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\nimport { PepSelectPanelComponent } from './select-panel.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        // Material modules\n        MatCommonModule,\n        MatCheckboxModule,\n        MatRadioModule,\n        MatInputModule,\n        MatFormFieldModule,\n        MatButtonModule,\n        MatIconModule,\n        // ngx-lib modules\n        PepNgxLibModule,\n        PepIconModule,\n        PepFieldTitleModule,\n    ],\n    exports: [PepSelectPanelComponent],\n    declarations: [PepSelectPanelComponent],\n})\nexport class PepSelectPanelModule {}\n","/*\n * Public API Surface of ngx-lib/select-panel\n */\nexport * from './select-panel.module';\nexport * from './select-panel.component';\nexport * from './select-panel.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}