list-selection-input 15.0.4
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/README.md +24 -0
- package/esm2022/lib/list-selection-demo/list-selection-demo.component.mjs +167 -0
- package/esm2022/lib/list-selection-input/list-selection-input.component.mjs +265 -0
- package/esm2022/lib/list-selection-input.module.mjs +101 -0
- package/esm2022/lib/models/index.mjs +6 -0
- package/esm2022/lib/models/selection-basic.model.mjs +10 -0
- package/esm2022/lib/models/selection-item.model.mjs +12 -0
- package/esm2022/lib/multi-selection-demo/multi-selection-demo.component.mjs +167 -0
- package/esm2022/lib/pipes/remove-underscore.pipe.mjs +17 -0
- package/esm2022/list-selection-input.mjs +5 -0
- package/esm2022/public-api.mjs +10 -0
- package/fesm2022/list-selection-input.mjs +729 -0
- package/fesm2022/list-selection-input.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/list-selection-demo/list-selection-demo.component.d.ts +54 -0
- package/lib/list-selection-input/list-selection-input.component.d.ts +53 -0
- package/lib/list-selection-input.module.d.ts +27 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/selection-basic.model.d.ts +10 -0
- package/lib/models/selection-item.model.d.ts +14 -0
- package/lib/multi-selection-demo/multi-selection-demo.component.d.ts +54 -0
- package/lib/pipes/remove-underscore.pipe.d.ts +7 -0
- package/list-selection-input-15.0.4.tgz +0 -0
- package/package.json +25 -0
- package/public-api.d.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-selection-input.mjs","sources":["../../../projects/list-selection-input/src/lib/models/selection-basic.model.ts","../../../projects/list-selection-input/src/lib/models/selection-item.model.ts","../../../projects/list-selection-input/src/lib/models/index.ts","../../../projects/list-selection-input/src/lib/pipes/remove-underscore.pipe.ts","../../../projects/list-selection-input/src/lib/list-selection-input/list-selection-input.component.ts","../../../projects/list-selection-input/src/lib/list-selection-input/list-selection-input.component.html","../../../projects/list-selection-input/src/lib/list-selection-demo/list-selection-demo.component.ts","../../../projects/list-selection-input/src/lib/list-selection-demo/list-selection-demo.component.html","../../../projects/list-selection-input/src/lib/multi-selection-demo/multi-selection-demo.component.ts","../../../projects/list-selection-input/src/lib/multi-selection-demo/multi-selection-demo.component.html","../../../projects/list-selection-input/src/lib/list-selection-input.module.ts","../../../projects/list-selection-input/src/public-api.ts","../../../projects/list-selection-input/src/list-selection-input.ts"],"sourcesContent":["export interface SelectionBasicInterface {\n id: number|string;\n value: string;\n}\n\nexport class SelectionBasic implements SelectionBasicInterface {\n\n constructor(\n public id = 0,\n public value = '',\n ) {}\n\n static adapt(item?: any) {\n\n return new SelectionBasic(\n item?.id,\n (item?.value) ? item.value : item,\n );\n }\n\n}\n","export interface SelectionItemInterface {\n id: number|string;\n value: string;\n disabled?: boolean;\n selected?: boolean;\n}\n\nexport class SelectionItem implements SelectionItemInterface {\n\n constructor(\n public id = crypto.randomUUID(),\n public value = '',\n public disabled?: boolean,\n public selected?: boolean,\n ) {}\n\n static adapt(item?: any) {\n\n return new SelectionItem(\n item?.id,\n (item?.value) ? item.value : item,\n (item?.disabled) ? true : false,\n (item?.selected) ? true : false,\n );\n }\n\n}\n","/*\n * Public API Surface of selections\n */\n\nexport * from './selection-basic.model';\nexport * from './selection-item.model';\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'removeUnderscore',\n standalone: true\n})\nexport class RemoveUnderscorePipe implements PipeTransform {\n transform(value: string): string {\n return value? value.replace(/_/g, \" \") : value;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef, inject } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormBuilder, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validators } from '@angular/forms';\n\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { MatSelectChange } from '@angular/material/select';\nimport { SelectionItem } from '../models/selection-item.model';\n\n\n@Component({\n selector: 'app-list-selection-input',\n templateUrl: './list-selection-input.component.html',\n styleUrls: ['./list-selection-input.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ListSelectionInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ListSelectionInputComponent),\n multi: true\n }\n ]\n})\nexport class ListSelectionInputComponent implements OnInit, ControlValueAccessor {\n\n fb = inject( FormBuilder)\n\n selectionControl = this.fb.control<any>([], Validators.required)\n\n @Input() label?: string\n @Input() placeholder?: string\n\n private _minSelection = 0\n @Input() set minSelection(value: number) {\n this._minSelection = (value) ? value : 0\n }\n\n get minSelection() {\n return this._minSelection\n }\n\n private _maxSelection = 0\n @Input() set maxSelection(value: number) {\n this._maxSelection = (value) ? value : 0\n }\n\n get maxSelection() {\n return this._maxSelection\n }\n\n private _multiple = false\n @Input() set multiple(value: boolean|undefined) {\n this._multiple = (value) ? value : false\n }\n\n get multiple() {\n return this._multiple\n }\n\n get isValid() {\n return this.isValidRange(this.data)\n }\n\n defaultDisabled: SelectionItem[] = []\n\n @Input() appearance: MatFormFieldAppearance = 'outline'\n\n private _data: (any|string)[] = []\n @Input() set data(value: any[]) {\n\n this.isObjects = this.hasObjects(value)\n this._data = (value) ? value.map(item => SelectionItem.adapt(item)) : []\n\n const selectedObjects = this.data.filter(item => item.selected).map(item => item.value)\n this.defaultDisabled = (!this.defaultDisabled) ? this.data.map(item => SelectionItem.adapt(item)).filter(item => item.disabled) : this.defaultDisabled\n\n if(this.multiple) {\n const selected = (selectedObjects) ? selectedObjects : this.findFirst(selectedObjects)\n this.selectionControl.patchValue(selected, { emitEvent: false })\n } else {\n const selected = (selectedObjects.length === 0 && value.length > 0) ? [value[0]] : this.findFirst(selectedObjects)\n this.selectionControl.patchValue(selected, { emitEvent: false })\n }\n\n }\n\n get data() {\n return this._data\n }\n\n\n @Output() selectionChange = new EventEmitter()\n\n disabled = false\n\n formInitialized = false\n\n isArray = (obj: any) => Array.isArray(obj)\n hasObjects = (obj: any) => (this.isArray(obj) && obj.length > 0) ? this.isObject(obj[0]) : false\n isObject = (obj: any) => typeof obj === 'object' && obj !== null && !Array.isArray(obj)\n\n findFirst = (obj: string[]) => {\n const found = this.data.find(item => obj.includes(item.value))\n return (found) ? found.value : null\n }\n\n onChange: any = () => {}\n onTouch: any = () => {}\n\n isObjects = false\n\n invalid = false\n\n updateSelection = (newData: any[]) => newData.filter(item => !item.selected).map(item => {\n const dis = this.defaultDisabled.map(item => item.value)\n return (dis.includes(item.value)) ? item.disabled = true : item.disabled = false\n })\n\n constructor() { }\n\n ngOnInit() {\n\n if(this.multiple) {\n\n this.defaultDisabled = this.data.filter(item => item.disabled)\n\n if (this.minSelection > 0 && this.minSelection > this.maxSelection) {\n this.minSelection = this.maxSelection !== 0 ? this.maxSelection : this.minSelection;\n } else if (this.maxSelection > 0 && this.maxSelection < this.minSelection) {\n this.maxSelection = this.minSelection;\n }\n\n this.maxSelection = this.maxSelection || this.data.length;\n\n }\n\n }\n\n ngAfterViewInit(): void {\n this.formInitialized = true\n }\n\n writeValue(value: string[]){\n\n const selected = (this.isArray(value) && value.length > 1) ? this.findFirst(value) : value\n\n this.data\n .map(item => {\n item.selected = (value && value.includes(item.value)) ? true : false\n return item\n })\n\n if(selected) {\n\n if(this.multiple) {\n this.selectionControl.patchValue(value, { emitEvent: false })\n } else {\n if(!value || value.length === 0) return\n this.selectionControl.patchValue(this.findFirst(value), { emitEvent: false })\n this.selectionControl.markAsDirty({ onlySelf: true })\n }\n\n }\n\n if(this.formInitialized && !this.selectionControl.pristine) {\n if(value === null) this.selectionControl.reset()\n this.selectionControl.markAsDirty({ onlySelf: true })\n this.selectionControl.markAllAsTouched()\n } else if(this.formInitialized && this.selectionControl.pristine) {\n if(value === null) this.selectionControl.reset()\n }\n\n this.formInitialized = true\n\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n\n const isRequired = control.hasValidator(Validators.required) ? true : false\n\n let errors = { 'minRequired': false, 'maxExceeded': false }\n\n if(!isRequired) this.selectionControl.clearValidators()\n if(this.minSelection > 0) this.selectionControl.addValidators(Validators.minLength(this.minSelection))\n\n const hasValue = (!this.selectionControl.value || this.selectionControl.value?.length === 0)\n\n if(this.minSelection > 0) {\n const hasMin = (this.selectionControl.value?.length+1 <= this.minSelection) ? true : false\n errors.minRequired = hasMin\n }\n\n if(this.maxSelection > 0) {\n const hasMax = (this.selectionControl.value?.length >= this.maxSelection) ? true : false\n errors.maxExceeded = hasMax\n }\n\n const hasErrors = this.selectedValues(errors, true).length > 0\n const values = this.selectedValues(this.selectionControl.value || [], true).length\n const hasValues = (this.minSelection > 0 && values > this.minSelection) || (this.maxSelection > 0 && values < this.maxSelection)\n\n const finalErrors = (isRequired && !hasValues && hasErrors) ? errors : null\n\n return finalErrors\n\n }\n\n registerOnChange(fn: any){\n this.onChange = fn\n }\n\n registerOnTouched(fn: any){\n this.onTouch = fn\n }\n\n setDisabledState?(isDisabled: boolean) {\n\n this.disabled = isDisabled\n\n if(this.disabled) {\n this.selectionControl.disable()\n } else {\n this.selectionControl.enable()\n }\n\n }\n\n onSelection(selection: MatSelectChange|any) {\n\n this.invalid = false\n\n if(this.multiple) {\n\n const checkboxSelected = selection.value\n\n const newData = this.data.map(item => SelectionItem.adapt(item))\n\n newData.map(item => item.selected = checkboxSelected.includes(item.value) ? true : false)\n\n if(this.isValidRange(newData)) this.data = newData\n\n const curSelected = this.data.filter(item => item.selected).length\n const prevSelected = newData.filter(item => item.selected).length\n\n if(curSelected > this.maxSelection) {\n this.updateSelection(newData)\n } else {\n\n if(prevSelected < curSelected) {\n this.updateSelection(newData)\n } else {\n\n if(curSelected >= this.maxSelection) {\n\n const dis = this.defaultDisabled.map(item => item.value)\n\n newData.filter(item => !item.selected).map(item => {\n return item.disabled = (dis.includes(item.value)) ? item.disabled : !item.disabled\n })\n\n } else {\n this.updateSelection(newData)\n }\n\n }\n\n }\n\n this.data = newData\n\n const sel = this.data.filter(item => item.selected).map(item => item.value)\n this.selectionControl.patchValue(sel, { emitEvent: false })\n\n }\n\n selection = (selection?.value) ? selection.value : selection\n\n const selected = (this.multiple) ? this.isArray(selection) ? selection : [selection] : [selection]\n const data = this.data.map(({ id, value }) => ({id, value}))\n const newData = data.filter((item: any) => selected.includes(item.value))\n const selectedData = (this.isObjects) ? newData : newData.map(({ value }) => value)\n\n this.selectionControl.markAllAsTouched()\n\n this.selectionChange.emit(data)\n this.onChange(selectedData)\n\n }\n\n findControlDisabled(control: string) {\n const found = this.data.find(item => item.value === control)\n const disabled = (found?.disabled) ? found.disabled : false\n return disabled\n }\n\n isValidRange(data: any[]) {\n\n const selected = data.filter(item => item.selected).length\n\n if(this.multiple) {\n\n const isMin = (this.minSelection !== 0) ? selected >= this.minSelection : true\n const isMax = (this.maxSelection !== 0) ? selected <= this.maxSelection : true\n\n return isMin && isMax\n\n } else {\n return selected > 0\n }\n\n }\n\n selectedValues(obj: any, state = false) {\n return Object.entries(obj).filter(([key, value]) => value === state).map(([key, _]) => key)\n }\n\n}\n","<div style=\"display: flex; flex-direction: column;\">\n <div style=\"margin-bottom: .5rem; display: flex; flex-direction: column;\">\n <mat-label style=\"font-size: larger;\">\n {{ label }}\n </mat-label>\n </div>\n <ng-container *ngIf=\"data && data.length > 0; else NODATA\">\n <mat-form-field\n style=\"display: flex;\"\n [appearance]=\"appearance\"\n >\n <mat-select\n [formControl]=\"selectionControl\"\n (selectionChange)=\"onSelection($event)\"\n [multiple]=\"multiple\"\n [placeholder]=\"placeholder||''\"\n >\n <mat-option\n *ngFor=\"let option of data\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{option.value}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-template #NODATA>\n <div class=\"wrapper\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n\n","import { Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'app-list-selection-demo',\n templateUrl: './list-selection-demo.component.html',\n styleUrls: ['./list-selection-demo.component.scss']\n})\nexport class ListSelectionInputDemoComponent implements OnInit {\n\n fb = inject(FormBuilder)\n\n data_1 = [\n { id: 11, value: 'Telus' },\n { id: 12, value: 'AT&T', disabled: true },\n { id: 14, value: 'Bell', selected: true},\n { id: 63, value: 'Rogers', selected: true }\n ]\n\n data_2 = ['Telus', 'AT&T', 'Bell', 'Rogers']\n\n // SELECTIONS\n selectionControl_1 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_2 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_3 = this.fb.control<string[]|null>(null, Validators.required)\n\n selectionControl_4 = this.fb.control<string[]|null>(null)\n selectionControl_5 = this.fb.control<string[]|null>(null)\n\n selectionControl_6 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_7 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_8 = this.fb.control<string[]|null>(null, Validators.required)\n\n //CHANGE DETECTION\n changeDetection_1 = this.fb.control(false)\n changeDetection_2 = this.fb.control(false)\n changeDetection_3 = this.fb.control(false)\n changeDetection_4 = this.fb.control(false)\n changeDetection_5 = this.fb.control(false)\n changeDetection_6 = this.fb.control(false)\n changeDetection_7 = this.fb.control(false)\n changeDetection_8 = this.fb.control(false)\n\n data: any = this.data_2\n\n constructor() { }\n\n ngOnInit() {\n\n // SELECTIONS\n this.selectionControl_1.valueChanges.subscribe(data => {\n if(this.changeDetection_1.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_2.valueChanges.subscribe(data => {\n if(this.changeDetection_2.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_3.valueChanges.subscribe(data => {\n if(this.changeDetection_3.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_4.valueChanges.subscribe(data => {\n if(this.changeDetection_4.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_5.valueChanges.subscribe(data => {\n if(this.changeDetection_5.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_6.valueChanges.subscribe(data => {\n if(this.changeDetection_6.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_7.valueChanges.subscribe(data => {\n if(this.changeDetection_7.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_8.valueChanges.subscribe(data => {\n if(this.changeDetection_8.value) console.log('CHANGE:',data)\n })\n\n }\n\n onPerformPatch() {\n this.selectionControl_1.patchValue(['Bell'])\n this.selectionControl_2.patchValue(['AT&T'])\n this.selectionControl_3.patchValue(['Telus'])\n this.selectionControl_4.patchValue(['Rogers'])\n\n this.selectionControl_5.patchValue(['Bell'])\n this.selectionControl_6.patchValue(['AT&T'])\n this.selectionControl_7.patchValue(['Telus'])\n this.selectionControl_8.patchValue(['Rogers'])\n }\n\n onChangeDataType(type: string) {\n if(type === 'strings') {\n this.data = this.data_2 //strings\n } else {\n this.data = this.data_1 //objects\n }\n }\n\n // DISABLE\n onDisabled_1(disable: boolean) {\n\n if(disable) {\n this.selectionControl_1.disable()\n } else {\n this.selectionControl_1.enable()\n }\n\n }\n\n onDisabled_2(disable: boolean) {\n\n if(disable) {\n this.selectionControl_2.disable()\n } else {\n this.selectionControl_2.enable()\n }\n\n }\n\n onDisabled_3(disable: boolean) {\n\n if(disable) {\n this.selectionControl_3.disable()\n } else {\n this.selectionControl_3.enable()\n }\n\n }\n\n onDisabled_4(disable: boolean) {\n\n if(disable) {\n this.selectionControl_4.disable()\n } else {\n this.selectionControl_4.enable()\n }\n\n }\n\n onDisabled_5(disable: boolean) {\n\n if(disable) {\n this.selectionControl_5.disable()\n } else {\n this.selectionControl_5.enable()\n }\n\n }\n\n onDisabled_6(disable: boolean) {\n\n if(disable) {\n this.selectionControl_6.disable()\n } else {\n this.selectionControl_6.enable()\n }\n\n }\n\n onDisabled_7(disable: boolean) {\n\n if(disable) {\n this.selectionControl_7.disable()\n } else {\n this.selectionControl_7.enable()\n }\n\n }\n\n onDisabled_8(disable: boolean) {\n\n if(disable) {\n this.selectionControl_8.disable()\n } else {\n this.selectionControl_8.enable()\n }\n\n }\n}\n","<div style=\"display: flex;\">\n <h1>List Selection FormControl</h1>\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"strings\" checked=\"true\">Strings</mat-button-toggle>\n <mat-button-toggle value=\"objects\" checked=\"false\">Objects</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n</div>\n\n<h3>No Data - Projection of Error</h3>\n<app-list-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-list-selection-input>\n\n<div style=\"margin-top: 2rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Single Selection - {{ varTypes.value | uppercase }}</h3>\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-list-selection-input>\n <div *ngIf=\"error1.checked\">\n <mat-error *ngIf=\"selectionControl_1.hasError('minRequired')\">You must have a minimun of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_1.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_1.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error1>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n No Label or Placeholder<br>\n Required<br>\n Valid {{ selectionControl_1.valid }}<br>\n </div>\n </div>\n\n <div style=\"margin-top: 2rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n label=\"Providers\"\n placeholder=\"Select Provider\"\n ></app-list-selection-input>\n <div *ngIf=\"error2.checked\">\n <mat-error *ngIf=\"selectionControl_2.hasError('minRequired')\">You must have a minimum of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_2.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_2.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error2>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_2(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Label and Placeholder<br>\n Required<br>\n Valid {{ selectionControl_2.valid }}<br>\n </div>\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_3.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_3\"\n label=\"Providers\"\n placeholder=\"Select Provider\"\n appearance=\"fill\"\n ></app-list-selection-input>\n <div *ngIf=\"error3.checked\">\n <mat-error *ngIf=\"selectionControl_3.hasError('minRequired')\">You must have a minimum of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_3.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_3.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_3\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error3>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable3 (change)=\"onDisabled_3(disable3.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Label and Placeholder<br>\n Appearance is Fill<br>\n Required<br>\n Valid {{ selectionControl_3.valid }}<br>\n </div>\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n</div>\n\n","import { Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'app-list-multi-selection-demo',\n templateUrl: './multi-selection-demo.component.html',\n styleUrls: ['./multi-selection-demo.component.scss']\n})\nexport class ListMultiSelectionDemoComponent implements OnInit {\n\n fb = inject(FormBuilder)\n\n data_1 = [\n { id: 11, value: 'Telus' },\n { id: 12, value: 'AT&T', disabled: true },\n { id: 14, value: 'Bell', selected: true},\n { id: 63, value: 'Rogers', selected: true }\n ]\n\n data_2 = ['Telus', 'AT&T', 'Bell', 'Rogers']\n\n // SELECTIONS\n selectionControl_1 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_2 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_3 = this.fb.control<string[]|null>(null, Validators.required)\n\n selectionControl_4 = this.fb.control<string[]|null>(null)\n selectionControl_5 = this.fb.control<string[]|null>(null)\n\n selectionControl_6 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_7 = this.fb.control<string[]|null>(null, Validators.required)\n selectionControl_8 = this.fb.control<string[]|null>(null, Validators.required)\n\n //CHANGE DETECTION\n changeDetection_1 = this.fb.control(false)\n changeDetection_2 = this.fb.control(false)\n changeDetection_3 = this.fb.control(false)\n changeDetection_4 = this.fb.control(false)\n changeDetection_5 = this.fb.control(false)\n changeDetection_6 = this.fb.control(false)\n changeDetection_7 = this.fb.control(false)\n changeDetection_8 = this.fb.control(false)\n\n data: any = this.data_2\n\n constructor() { }\n\n ngOnInit() {\n\n // SELECTIONS\n this.selectionControl_1.valueChanges.subscribe(data => {\n if(this.changeDetection_1.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_2.valueChanges.subscribe(data => {\n if(this.changeDetection_2.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_3.valueChanges.subscribe(data => {\n if(this.changeDetection_3.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_4.valueChanges.subscribe(data => {\n if(this.changeDetection_4.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_5.valueChanges.subscribe(data => {\n if(this.changeDetection_5.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_6.valueChanges.subscribe(data => {\n if(this.changeDetection_6.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_7.valueChanges.subscribe(data => {\n if(this.changeDetection_7.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_8.valueChanges.subscribe(data => {\n if(this.changeDetection_8.value) console.log('CHANGE:',data)\n })\n\n }\n\n onPerformPatch() {\n this.selectionControl_1.patchValue(['Bell'])\n this.selectionControl_2.patchValue(['AT&T'])\n this.selectionControl_3.patchValue(['Telus'])\n this.selectionControl_4.patchValue(['Rogers'])\n\n this.selectionControl_5.patchValue(['Bell'])\n this.selectionControl_6.patchValue(['AT&T'])\n this.selectionControl_7.patchValue(['Telus'])\n this.selectionControl_8.patchValue(['Rogers'])\n }\n\n onChangeDataType(type: string) {\n if(type === 'strings') {\n this.data = this.data_2 //strings\n } else {\n this.data = this.data_1 //objects\n }\n }\n\n // DISABLE\n onDisabled_1(disable: boolean) {\n\n if(disable) {\n this.selectionControl_1.disable()\n } else {\n this.selectionControl_1.enable()\n }\n\n }\n\n onDisabled_2(disable: boolean) {\n\n if(disable) {\n this.selectionControl_2.disable()\n } else {\n this.selectionControl_2.enable()\n }\n\n }\n\n onDisabled_3(disable: boolean) {\n\n if(disable) {\n this.selectionControl_3.disable()\n } else {\n this.selectionControl_3.enable()\n }\n\n }\n\n onDisabled_4(disable: boolean) {\n\n if(disable) {\n this.selectionControl_4.disable()\n } else {\n this.selectionControl_4.enable()\n }\n\n }\n\n onDisabled_5(disable: boolean) {\n\n if(disable) {\n this.selectionControl_5.disable()\n } else {\n this.selectionControl_5.enable()\n }\n\n }\n\n onDisabled_6(disable: boolean) {\n\n if(disable) {\n this.selectionControl_6.disable()\n } else {\n this.selectionControl_6.enable()\n }\n\n }\n\n onDisabled_7(disable: boolean) {\n\n if(disable) {\n this.selectionControl_7.disable()\n } else {\n this.selectionControl_7.enable()\n }\n\n }\n\n onDisabled_8(disable: boolean) {\n\n if(disable) {\n this.selectionControl_8.disable()\n } else {\n this.selectionControl_8.enable()\n }\n\n }\n}\n","<div style=\"display: flex;\">\n <h1>Multi List Selection FormControl</h1>\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"strings\" checked=\"true\">Strings</mat-button-toggle>\n <mat-button-toggle value=\"objects\" checked=\"false\">Objects</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n</div>\n\n<h3>No Data - Projection of Error</h3>\n<app-list-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-list-selection-input>\n\n<div style=\"margin-top: 2rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Multi Selection - {{ varTypes.value | uppercase }}</h3>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_4.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_4\"\n [multiple]=\"true\"\n ></app-list-selection-input>\n <div *ngIf=\"error4.checked\">\n <mat-error *ngIf=\"selectionControl_4.hasError('minRequired')\">You must have a minimum of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_4.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_4.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_4\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error4>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable4 (change)=\"onDisabled_4(disable4.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n No Label and Placeholder<br>\n Not Required<br>\n Valid {{ selectionControl_4.valid }}<br>\n </div>\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_5.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [formControl]=\"selectionControl_5\"\n [multiple]=\"true\"\n [data]=\"data\"\n label=\"Sample Selection\"\n placeholder=\"Select Provider\"\n ></app-list-selection-input>\n <div *ngIf=\"error5.checked\">\n <mat-error *ngIf=\"selectionControl_5.hasError('minRequired')\">You must have a minimum of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_5.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_5.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_5\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error5>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable5 (change)=\"onDisabled_5(disable5.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Label and Placeholder<br>\n Not Required<br>\n Valid {{ selectionControl_5.valid }}<br>\n </div>\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_6.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [formControl]=\"selectionControl_6\"\n [multiple]=\"true\"\n [data]=\"data\"\n placeholder=\"Select Provider\"\n [minSelection]=\"2\"\n ></app-list-selection-input>\n <div *ngIf=\"error6.checked\">\n <mat-error *ngIf=\"selectionControl_6.hasError('minRequired')\">You must have a minimum of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_6.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_6.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_6\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error6>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable6 (change)=\"onDisabled_6(disable6.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Placeholder<br>\n Required<br>\n Minimum of 2 Required<br>\n Valid {{ selectionControl_6.valid }}<br>\n </div>\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_7.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [formControl]=\"selectionControl_7\"\n [multiple]=\"true\"\n [data]=\"data\"\n [maxSelection]=\"2\"\n placeholder=\"Select Provider\"\n ></app-list-selection-input>\n <div *ngIf=\"error7.checked\">\n <mat-error *ngIf=\"selectionControl_7.hasError('minRequired')\">You must have a minimum of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_7.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_7.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_7\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error7>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable7 (change)=\"onDisabled_7(disable7.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Placeholder<br>\n Required<br>\n Maximum of 2 Required<br>\n Valid {{ selectionControl_7.valid }}<br>\n </div>\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_8.reset()\">Reset</button>\n </div>\n <app-list-selection-input\n [formControl]=\"selectionControl_8\"\n [multiple]=\"true\"\n [data]=\"data\"\n [minSelection]=\"1\"\n [maxSelection]=\"2\"\n placeholder=\"Select Provider\"\n ></app-list-selection-input>\n <div *ngIf=\"error8.checked\">\n <mat-error *ngIf=\"selectionControl_8.hasError('minRequired')\">You must have a minimum of 1 selected</mat-error>\n <mat-error *ngIf=\"selectionControl_8.hasError('maxExceeded')\">maximum reached</mat-error>\n <mat-error *ngIf=\"selectionControl_8.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_8\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error8>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable8 (change)=\"onDisabled_8(disable8.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Placeholder<br>\n Required<br>\n Minimum of 1 Required<br>\n Maximum of 2 Required<br>\n Valid {{ selectionControl_8.valid }}<br>\n </div>\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\n\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { ListMultiSelectionDemoComponent, ListSelectionInputComponent, ListSelectionInputDemoComponent, RemoveUnderscorePipe } from '../public-api';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatSliderModule,\n MatButtonModule,\n MatIconModule,\n MatFormFieldModule,\n MatToolbarModule,\n MatCheckboxModule,\n MatMenuModule,\n MatButtonToggleModule,\n MatDividerModule,\n MatRadioModule,\n MatInputModule,\n MatAutocompleteModule,\n RemoveUnderscorePipe,\n MatSelectModule,\n MatOptionModule,\n MatSlideToggleModule,\n ],\n declarations: [\n ListSelectionInputDemoComponent,\n ListMultiSelectionDemoComponent,\n ListSelectionInputComponent,\n ],\n exports: [\n ListSelectionInputDemoComponent,\n ListMultiSelectionDemoComponent,\n ListSelectionInputComponent,\n ]\n})\nexport class ListSelectionInputModule { }\n","/*\n * Public API Surface of checkbox-selection-input\n */\n\nexport * from './lib/models/index';\n\nexport * from './lib/pipes/remove-underscore.pipe';\n\nexport * from './lib/list-selection-demo/list-selection-demo.component';\nexport * from './lib/multi-selection-demo/multi-selection-demo.component';\n\nexport * from './lib/list-selection-input/list-selection-input.component';\n\nexport * from './lib/list-selection-input.module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i5","i8.ListSelectionInputComponent"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ListSelectionInputDemoComponent implements OnInit {
|
|
5
|
+
fb: FormBuilder;
|
|
6
|
+
data_1: ({
|
|
7
|
+
id: number;
|
|
8
|
+
value: string;
|
|
9
|
+
disabled?: undefined;
|
|
10
|
+
selected?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
id: number;
|
|
13
|
+
value: string;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
selected?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
id: number;
|
|
18
|
+
value: string;
|
|
19
|
+
selected: boolean;
|
|
20
|
+
disabled?: undefined;
|
|
21
|
+
})[];
|
|
22
|
+
data_2: string[];
|
|
23
|
+
selectionControl_1: import("@angular/forms").FormControl<string[] | null>;
|
|
24
|
+
selectionControl_2: import("@angular/forms").FormControl<string[] | null>;
|
|
25
|
+
selectionControl_3: import("@angular/forms").FormControl<string[] | null>;
|
|
26
|
+
selectionControl_4: import("@angular/forms").FormControl<string[] | null>;
|
|
27
|
+
selectionControl_5: import("@angular/forms").FormControl<string[] | null>;
|
|
28
|
+
selectionControl_6: import("@angular/forms").FormControl<string[] | null>;
|
|
29
|
+
selectionControl_7: import("@angular/forms").FormControl<string[] | null>;
|
|
30
|
+
selectionControl_8: import("@angular/forms").FormControl<string[] | null>;
|
|
31
|
+
changeDetection_1: import("@angular/forms").FormControl<boolean | null>;
|
|
32
|
+
changeDetection_2: import("@angular/forms").FormControl<boolean | null>;
|
|
33
|
+
changeDetection_3: import("@angular/forms").FormControl<boolean | null>;
|
|
34
|
+
changeDetection_4: import("@angular/forms").FormControl<boolean | null>;
|
|
35
|
+
changeDetection_5: import("@angular/forms").FormControl<boolean | null>;
|
|
36
|
+
changeDetection_6: import("@angular/forms").FormControl<boolean | null>;
|
|
37
|
+
changeDetection_7: import("@angular/forms").FormControl<boolean | null>;
|
|
38
|
+
changeDetection_8: import("@angular/forms").FormControl<boolean | null>;
|
|
39
|
+
data: any;
|
|
40
|
+
constructor();
|
|
41
|
+
ngOnInit(): void;
|
|
42
|
+
onPerformPatch(): void;
|
|
43
|
+
onChangeDataType(type: string): void;
|
|
44
|
+
onDisabled_1(disable: boolean): void;
|
|
45
|
+
onDisabled_2(disable: boolean): void;
|
|
46
|
+
onDisabled_3(disable: boolean): void;
|
|
47
|
+
onDisabled_4(disable: boolean): void;
|
|
48
|
+
onDisabled_5(disable: boolean): void;
|
|
49
|
+
onDisabled_6(disable: boolean): void;
|
|
50
|
+
onDisabled_7(disable: boolean): void;
|
|
51
|
+
onDisabled_8(disable: boolean): void;
|
|
52
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListSelectionInputDemoComponent, never>;
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListSelectionInputDemoComponent, "app-list-selection-demo", never, {}, {}, never, never, false, never>;
|
|
54
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { AbstractControl, ControlValueAccessor, FormBuilder, ValidationErrors } from '@angular/forms';
|
|
3
|
+
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
4
|
+
import { MatSelectChange } from '@angular/material/select';
|
|
5
|
+
import { SelectionItem } from '../models/selection-item.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class ListSelectionInputComponent implements OnInit, ControlValueAccessor {
|
|
8
|
+
fb: FormBuilder;
|
|
9
|
+
selectionControl: import("@angular/forms").FormControl<any>;
|
|
10
|
+
label?: string;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
private _minSelection;
|
|
13
|
+
set minSelection(value: number);
|
|
14
|
+
get minSelection(): number;
|
|
15
|
+
private _maxSelection;
|
|
16
|
+
set maxSelection(value: number);
|
|
17
|
+
get maxSelection(): number;
|
|
18
|
+
private _multiple;
|
|
19
|
+
set multiple(value: boolean | undefined);
|
|
20
|
+
get multiple(): boolean | undefined;
|
|
21
|
+
get isValid(): boolean;
|
|
22
|
+
defaultDisabled: SelectionItem[];
|
|
23
|
+
appearance: MatFormFieldAppearance;
|
|
24
|
+
private _data;
|
|
25
|
+
set data(value: any[]);
|
|
26
|
+
get data(): any[];
|
|
27
|
+
selectionChange: EventEmitter<any>;
|
|
28
|
+
disabled: boolean;
|
|
29
|
+
formInitialized: boolean;
|
|
30
|
+
isArray: (obj: any) => boolean;
|
|
31
|
+
hasObjects: (obj: any) => boolean;
|
|
32
|
+
isObject: (obj: any) => boolean;
|
|
33
|
+
findFirst: (obj: string[]) => any;
|
|
34
|
+
onChange: any;
|
|
35
|
+
onTouch: any;
|
|
36
|
+
isObjects: boolean;
|
|
37
|
+
invalid: boolean;
|
|
38
|
+
updateSelection: (newData: any[]) => boolean[];
|
|
39
|
+
constructor();
|
|
40
|
+
ngOnInit(): void;
|
|
41
|
+
ngAfterViewInit(): void;
|
|
42
|
+
writeValue(value: string[]): void;
|
|
43
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
44
|
+
registerOnChange(fn: any): void;
|
|
45
|
+
registerOnTouched(fn: any): void;
|
|
46
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
47
|
+
onSelection(selection: MatSelectChange | any): void;
|
|
48
|
+
findControlDisabled(control: string): any;
|
|
49
|
+
isValidRange(data: any[]): boolean;
|
|
50
|
+
selectedValues(obj: any, state?: boolean): string[];
|
|
51
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListSelectionInputComponent, never>;
|
|
52
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListSelectionInputComponent, "app-list-selection-input", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minSelection": { "alias": "minSelection"; "required": false; }; "maxSelection": { "alias": "maxSelection"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, ["*"], false, never>;
|
|
53
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./list-selection-demo/list-selection-demo.component";
|
|
3
|
+
import * as i2 from "./multi-selection-demo/multi-selection-demo.component";
|
|
4
|
+
import * as i3 from "./list-selection-input/list-selection-input.component";
|
|
5
|
+
import * as i4 from "@angular/common";
|
|
6
|
+
import * as i5 from "@angular/forms";
|
|
7
|
+
import * as i6 from "@angular/material/slider";
|
|
8
|
+
import * as i7 from "@angular/material/button";
|
|
9
|
+
import * as i8 from "@angular/material/icon";
|
|
10
|
+
import * as i9 from "@angular/material/form-field";
|
|
11
|
+
import * as i10 from "@angular/material/toolbar";
|
|
12
|
+
import * as i11 from "@angular/material/checkbox";
|
|
13
|
+
import * as i12 from "@angular/material/menu";
|
|
14
|
+
import * as i13 from "@angular/material/button-toggle";
|
|
15
|
+
import * as i14 from "@angular/material/divider";
|
|
16
|
+
import * as i15 from "@angular/material/radio";
|
|
17
|
+
import * as i16 from "@angular/material/input";
|
|
18
|
+
import * as i17 from "@angular/material/autocomplete";
|
|
19
|
+
import * as i18 from "./pipes/remove-underscore.pipe";
|
|
20
|
+
import * as i19 from "@angular/material/select";
|
|
21
|
+
import * as i20 from "@angular/material/core";
|
|
22
|
+
import * as i21 from "@angular/material/slide-toggle";
|
|
23
|
+
export declare class ListSelectionInputModule {
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListSelectionInputModule, never>;
|
|
25
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ListSelectionInputModule, [typeof i1.ListSelectionInputDemoComponent, typeof i2.ListMultiSelectionDemoComponent, typeof i3.ListSelectionInputComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.MatSliderModule, typeof i7.MatButtonModule, typeof i8.MatIconModule, typeof i9.MatFormFieldModule, typeof i10.MatToolbarModule, typeof i11.MatCheckboxModule, typeof i12.MatMenuModule, typeof i13.MatButtonToggleModule, typeof i14.MatDividerModule, typeof i15.MatRadioModule, typeof i16.MatInputModule, typeof i17.MatAutocompleteModule, typeof i18.RemoveUnderscorePipe, typeof i19.MatSelectModule, typeof i20.MatOptionModule, typeof i21.MatSlideToggleModule], [typeof i1.ListSelectionInputDemoComponent, typeof i2.ListMultiSelectionDemoComponent, typeof i3.ListSelectionInputComponent]>;
|
|
26
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ListSelectionInputModule>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface SelectionBasicInterface {
|
|
2
|
+
id: number | string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class SelectionBasic implements SelectionBasicInterface {
|
|
6
|
+
id: number;
|
|
7
|
+
value: string;
|
|
8
|
+
constructor(id?: number, value?: string);
|
|
9
|
+
static adapt(item?: any): SelectionBasic;
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SelectionItemInterface {
|
|
2
|
+
id: number | string;
|
|
3
|
+
value: string;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
selected?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class SelectionItem implements SelectionItemInterface {
|
|
8
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
9
|
+
value: string;
|
|
10
|
+
disabled?: boolean | undefined;
|
|
11
|
+
selected?: boolean | undefined;
|
|
12
|
+
constructor(id?: `${string}-${string}-${string}-${string}-${string}`, value?: string, disabled?: boolean | undefined, selected?: boolean | undefined);
|
|
13
|
+
static adapt(item?: any): SelectionItem;
|
|
14
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ListMultiSelectionDemoComponent implements OnInit {
|
|
5
|
+
fb: FormBuilder;
|
|
6
|
+
data_1: ({
|
|
7
|
+
id: number;
|
|
8
|
+
value: string;
|
|
9
|
+
disabled?: undefined;
|
|
10
|
+
selected?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
id: number;
|
|
13
|
+
value: string;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
selected?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
id: number;
|
|
18
|
+
value: string;
|
|
19
|
+
selected: boolean;
|
|
20
|
+
disabled?: undefined;
|
|
21
|
+
})[];
|
|
22
|
+
data_2: string[];
|
|
23
|
+
selectionControl_1: import("@angular/forms").FormControl<string[] | null>;
|
|
24
|
+
selectionControl_2: import("@angular/forms").FormControl<string[] | null>;
|
|
25
|
+
selectionControl_3: import("@angular/forms").FormControl<string[] | null>;
|
|
26
|
+
selectionControl_4: import("@angular/forms").FormControl<string[] | null>;
|
|
27
|
+
selectionControl_5: import("@angular/forms").FormControl<string[] | null>;
|
|
28
|
+
selectionControl_6: import("@angular/forms").FormControl<string[] | null>;
|
|
29
|
+
selectionControl_7: import("@angular/forms").FormControl<string[] | null>;
|
|
30
|
+
selectionControl_8: import("@angular/forms").FormControl<string[] | null>;
|
|
31
|
+
changeDetection_1: import("@angular/forms").FormControl<boolean | null>;
|
|
32
|
+
changeDetection_2: import("@angular/forms").FormControl<boolean | null>;
|
|
33
|
+
changeDetection_3: import("@angular/forms").FormControl<boolean | null>;
|
|
34
|
+
changeDetection_4: import("@angular/forms").FormControl<boolean | null>;
|
|
35
|
+
changeDetection_5: import("@angular/forms").FormControl<boolean | null>;
|
|
36
|
+
changeDetection_6: import("@angular/forms").FormControl<boolean | null>;
|
|
37
|
+
changeDetection_7: import("@angular/forms").FormControl<boolean | null>;
|
|
38
|
+
changeDetection_8: import("@angular/forms").FormControl<boolean | null>;
|
|
39
|
+
data: any;
|
|
40
|
+
constructor();
|
|
41
|
+
ngOnInit(): void;
|
|
42
|
+
onPerformPatch(): void;
|
|
43
|
+
onChangeDataType(type: string): void;
|
|
44
|
+
onDisabled_1(disable: boolean): void;
|
|
45
|
+
onDisabled_2(disable: boolean): void;
|
|
46
|
+
onDisabled_3(disable: boolean): void;
|
|
47
|
+
onDisabled_4(disable: boolean): void;
|
|
48
|
+
onDisabled_5(disable: boolean): void;
|
|
49
|
+
onDisabled_6(disable: boolean): void;
|
|
50
|
+
onDisabled_7(disable: boolean): void;
|
|
51
|
+
onDisabled_8(disable: boolean): void;
|
|
52
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListMultiSelectionDemoComponent, never>;
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListMultiSelectionDemoComponent, "app-list-multi-selection-demo", never, {}, {}, never, never, false, never>;
|
|
54
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class RemoveUnderscorePipe implements PipeTransform {
|
|
4
|
+
transform(value: string): string;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RemoveUnderscorePipe, never>;
|
|
6
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<RemoveUnderscorePipe, "removeUnderscore", true>;
|
|
7
|
+
}
|
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "list-selection-input",
|
|
3
|
+
"version": "15.0.4",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^15.2.0",
|
|
6
|
+
"@angular/core": "^15.2.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"module": "fesm2022/list-selection-input.mjs",
|
|
13
|
+
"typings": "index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./index.d.ts",
|
|
20
|
+
"esm2022": "./esm2022/list-selection-input.mjs",
|
|
21
|
+
"esm": "./esm2022/list-selection-input.mjs",
|
|
22
|
+
"default": "./fesm2022/list-selection-input.mjs"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './lib/models/index';
|
|
2
|
+
export * from './lib/pipes/remove-underscore.pipe';
|
|
3
|
+
export * from './lib/list-selection-demo/list-selection-demo.component';
|
|
4
|
+
export * from './lib/multi-selection-demo/multi-selection-demo.component';
|
|
5
|
+
export * from './lib/list-selection-input/list-selection-input.component';
|
|
6
|
+
export * from './lib/list-selection-input.module';
|