@tapsellorg/angular-material-library
Version:
Angular library for Tapsell
1 lines • 6.53 kB
Source Map (JSON)
{"version":3,"file":"tapsellorg-angular-material-library-src-lib-select-all-options.mjs","sources":["../../projects/pegah-library/src/lib/select-all-options/select-all-options.directive.ts","../../projects/pegah-library/src/lib/select-all-options/select-all-options.module.ts","../../projects/pegah-library/src/lib/select-all-options/tapsellorg-angular-material-library-src-lib-select-all-options.ts"],"sourcesContent":["import { AfterViewInit, ContentChildren, Directive, input, QueryList } from '@angular/core';\nimport { MatOption } from '@angular/material/core';\nimport { MatSelect } from '@angular/material/select';\n\n@Directive({\n selector: '[pghSelectAllOptions]',\n exportAs: 'allOption',\n standalone: false,\n})\nexport class PghSelectAllOptionsDirective implements AfterViewInit {\n @ContentChildren(MatOption) matOptions!: QueryList<MatOption>;\n valueForAll = input<any | undefined>(undefined, {\n alias: 'pghValueForOptionAll',\n });\n private allOption?: MatOption;\n selected = false;\n constructor(private matSelect: MatSelect) {}\n\n ngAfterViewInit() {\n this.handleSelectionChange();\n this.onOptionsChange();\n this.matOptions.changes.subscribe(() => {\n this.onOptionsChange();\n });\n }\n\n private handleSelectionChange() {\n this.matSelect.optionSelectionChanges.subscribe(\n ({ isUserInput, source: { selected, value } }) => {\n if (!isUserInput) return;\n\n if (value === this.valueForAll()) {\n this.selected = selected;\n this.onSelectAllOptions(selected);\n } else {\n this.onSelectOtherOptions(selected);\n }\n },\n );\n }\n\n private onOptionsChange() {\n this.matOptions.forEach(o => {\n if (o.value === this.valueForAll()) {\n this.allOption = o;\n }\n });\n }\n\n onSelectAllOptions(selected: boolean) {\n this.matOptions.forEach(o => {\n if (selected) {\n o.select();\n } else {\n o.deselect();\n }\n });\n this.setValueOfControlForOptionAll();\n }\n\n onSelectOtherOptions(selected: boolean) {\n if (selected) {\n const areAllOptionsSelect = this.matOptions\n .map(o => o)\n .every(o => o.selected || o === this.allOption);\n\n if (areAllOptionsSelect) {\n this.allOption?.select();\n this.setValueOfControlForOptionAll();\n }\n } else if (this.allOption?.selected) {\n this.allOption?.deselect();\n }\n }\n\n private setValueOfControlForOptionAll() {\n this.matSelect.ngControl?.control!.setValue(this.valueForAll(), {\n emitModelToViewChange: false,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { PghArrayJoinModule } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { PghSelectAllOptionsDirective } from './select-all-options.directive';\n\n@NgModule({\n declarations: [PghSelectAllOptionsDirective],\n imports: [\n CommonModule,\n MatSelectModule,\n ReactiveFormsModule,\n FormsModule,\n MatFormFieldModule,\n PghArrayJoinModule,\n ],\n exports: [PghSelectAllOptionsDirective],\n})\nexport class PghSelectAllOptionsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}