radio-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/checkbox-selection-input.module.mjs +97 -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/pipes/remove-underscore.pipe.mjs +17 -0
- package/esm2022/lib/radio-demo/radio-demo.component.mjs +75 -0
- package/esm2022/lib/radio-selection-input/radio-selection-input.component.mjs +131 -0
- package/esm2022/public-api.mjs +9 -0
- package/esm2022/radio-selection-input.mjs +5 -0
- package/fesm2022/radio-selection-input.mjs +343 -0
- package/fesm2022/radio-selection-input.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/checkbox-selection-input.module.d.ts +26 -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/pipes/remove-underscore.pipe.d.ts +7 -0
- package/lib/radio-demo/radio-demo.component.d.ts +36 -0
- package/lib/radio-selection-input/radio-selection-input.component.d.ts +34 -0
- package/package.json +25 -0
- package/public-api.d.ts +5 -0
- package/radio-selection-input-15.0.4.tgz +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# RadioSelectionInput
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project radio-selection-input` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project radio-selection-input`.
|
|
8
|
+
> Note: Don't forget to add `--project radio-selection-input` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build radio-selection-input` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build radio-selection-input`, go to the dist folder `cd dist/radio-selection-input` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test radio-selection-input` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MatSliderModule } from '@angular/material/slider';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
8
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
9
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
10
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
11
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
12
|
+
import { MatInputModule } from '@angular/material/input';
|
|
13
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
14
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
15
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
16
|
+
import { MatOptionModule } from '@angular/material/core';
|
|
17
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
18
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
19
|
+
import { RemoveUnderscorePipe, RadioSelectionInputComponent, RadioDemoComponent } from '../public-api';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
export class RadioSelectionInputModule {
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, declarations: [RadioSelectionInputComponent,
|
|
24
|
+
RadioDemoComponent], imports: [CommonModule,
|
|
25
|
+
FormsModule,
|
|
26
|
+
ReactiveFormsModule,
|
|
27
|
+
MatSliderModule,
|
|
28
|
+
MatButtonModule,
|
|
29
|
+
MatIconModule,
|
|
30
|
+
MatFormFieldModule,
|
|
31
|
+
MatCheckboxModule,
|
|
32
|
+
MatMenuModule,
|
|
33
|
+
MatRadioModule,
|
|
34
|
+
MatInputModule,
|
|
35
|
+
MatAutocompleteModule,
|
|
36
|
+
MatSlideToggleModule,
|
|
37
|
+
MatToolbarModule,
|
|
38
|
+
MatDividerModule,
|
|
39
|
+
MatSelectModule,
|
|
40
|
+
MatOptionModule,
|
|
41
|
+
MatButtonToggleModule,
|
|
42
|
+
RemoveUnderscorePipe], exports: [RadioSelectionInputComponent,
|
|
43
|
+
RadioDemoComponent] }); }
|
|
44
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, imports: [CommonModule,
|
|
45
|
+
FormsModule,
|
|
46
|
+
ReactiveFormsModule,
|
|
47
|
+
MatSliderModule,
|
|
48
|
+
MatButtonModule,
|
|
49
|
+
MatIconModule,
|
|
50
|
+
MatFormFieldModule,
|
|
51
|
+
MatCheckboxModule,
|
|
52
|
+
MatMenuModule,
|
|
53
|
+
MatRadioModule,
|
|
54
|
+
MatInputModule,
|
|
55
|
+
MatAutocompleteModule,
|
|
56
|
+
MatSlideToggleModule,
|
|
57
|
+
MatToolbarModule,
|
|
58
|
+
MatDividerModule,
|
|
59
|
+
MatSelectModule,
|
|
60
|
+
MatOptionModule,
|
|
61
|
+
MatButtonToggleModule] }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, decorators: [{
|
|
64
|
+
type: NgModule,
|
|
65
|
+
args: [{
|
|
66
|
+
imports: [
|
|
67
|
+
CommonModule,
|
|
68
|
+
FormsModule,
|
|
69
|
+
ReactiveFormsModule,
|
|
70
|
+
MatSliderModule,
|
|
71
|
+
MatButtonModule,
|
|
72
|
+
MatIconModule,
|
|
73
|
+
MatFormFieldModule,
|
|
74
|
+
MatCheckboxModule,
|
|
75
|
+
MatMenuModule,
|
|
76
|
+
MatRadioModule,
|
|
77
|
+
MatInputModule,
|
|
78
|
+
MatAutocompleteModule,
|
|
79
|
+
MatSlideToggleModule,
|
|
80
|
+
MatToolbarModule,
|
|
81
|
+
MatDividerModule,
|
|
82
|
+
MatSelectModule,
|
|
83
|
+
MatOptionModule,
|
|
84
|
+
MatButtonToggleModule,
|
|
85
|
+
RemoveUnderscorePipe,
|
|
86
|
+
],
|
|
87
|
+
declarations: [
|
|
88
|
+
RadioSelectionInputComponent,
|
|
89
|
+
RadioDemoComponent,
|
|
90
|
+
],
|
|
91
|
+
exports: [
|
|
92
|
+
RadioSelectionInputComponent,
|
|
93
|
+
RadioDemoComponent
|
|
94
|
+
]
|
|
95
|
+
}]
|
|
96
|
+
}] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtc2VsZWN0aW9uLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3JhZGlvLXNlbGVjdGlvbi1pbnB1dC9zcmMvbGliL2NoZWNrYm94LXNlbGVjdGlvbi1pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWlDdkcsTUFBTSxPQUFPLHlCQUF5QjsrR0FBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsaUJBUmxDLDRCQUE0QjtZQUM1QixrQkFBa0IsYUF0QmxCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixlQUFlO1lBQ2YsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsYUFBYTtZQUNiLGNBQWM7WUFDZCxjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLG9CQUFvQixhQU9wQiw0QkFBNEI7WUFDNUIsa0JBQWtCO2dIQUdULHlCQUF5QixZQTdCbEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsY0FBYztZQUNkLGNBQWM7WUFDZCxxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGVBQWU7WUFDZixxQkFBcUI7OzRGQVlaLHlCQUF5QjtrQkEvQnJDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLG9CQUFvQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsNEJBQTRCO3dCQUM1QixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcblxuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbmltcG9ydCB7IFJlbW92ZVVuZGVyc2NvcmVQaXBlLCBSYWRpb1NlbGVjdGlvbklucHV0Q29tcG9uZW50LCBSYWRpb0RlbW9Db21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFNsaWRlck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgIFJlbW92ZVVuZGVyc2NvcmVQaXBlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBSYWRpb1NlbGVjdGlvbklucHV0Q29tcG9uZW50LFxuICAgIFJhZGlvRGVtb0NvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJhZGlvU2VsZWN0aW9uSW5wdXRDb21wb25lbnQsXG4gICAgUmFkaW9EZW1vQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9TZWxlY3Rpb25JbnB1dE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of selections
|
|
3
|
+
*/
|
|
4
|
+
export * from './selection-basic.model';
|
|
5
|
+
export * from './selection-item.model';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWRpby1zZWxlY3Rpb24taW5wdXQvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNlbGVjdGlvbnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGlvbi1iYXNpYy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGlvbi1pdGVtLm1vZGVsJztcblxuXG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class SelectionBasic {
|
|
2
|
+
constructor(id = 0, value = '') {
|
|
3
|
+
this.id = id;
|
|
4
|
+
this.value = value;
|
|
5
|
+
}
|
|
6
|
+
static adapt(item) {
|
|
7
|
+
return new SelectionBasic(item?.id, (item?.value) ? item.value : item);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhc2ljLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFkaW8tc2VsZWN0aW9uLWlucHV0L3NyYy9saWIvbW9kZWxzL3NlbGVjdGlvbi1iYXNpYy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUNTLEtBQUssQ0FBQyxFQUNOLFFBQVEsRUFBRTtRQURWLE9BQUUsR0FBRixFQUFFLENBQUk7UUFDTixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQ2hCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsT0FBTyxJQUFJLGNBQWMsQ0FDdkIsSUFBSSxFQUFFLEVBQUUsRUFDUixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNsQyxDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25CYXNpY0ludGVyZmFjZSB7XG4gIGlkOiBudW1iZXJ8c3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uQmFzaWMgaW1wbGVtZW50cyBTZWxlY3Rpb25CYXNpY0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkID0gMCxcbiAgICBwdWJsaWMgdmFsdWUgPSAnJyxcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KSB7XG5cbiAgICByZXR1cm4gbmV3IFNlbGVjdGlvbkJhc2ljKFxuICAgICAgaXRlbT8uaWQsXG4gICAgICAoaXRlbT8udmFsdWUpID8gaXRlbS52YWx1ZSA6IGl0ZW0sXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class SelectionItem {
|
|
2
|
+
constructor(id = crypto.randomUUID(), value = '', disabled, selected) {
|
|
3
|
+
this.id = id;
|
|
4
|
+
this.value = value;
|
|
5
|
+
this.disabled = disabled;
|
|
6
|
+
this.selected = selected;
|
|
7
|
+
}
|
|
8
|
+
static adapt(item) {
|
|
9
|
+
return new SelectionItem(item?.id, (item?.value) ? item.value : item, (item?.disabled) ? true : false, (item?.selected) ? true : false);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWRpby1zZWxlY3Rpb24taW5wdXQvc3JjL2xpYi9tb2RlbHMvc2VsZWN0aW9uLWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFDUyxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFDeEIsUUFBUSxFQUFFLEVBQ1YsUUFBa0IsRUFDbEIsUUFBa0I7UUFIbEIsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNWLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUN4QixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE9BQU8sSUFBSSxhQUFhLENBQ3RCLElBQUksRUFBRSxFQUFFLEVBQ1IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDakMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUMvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ2hDLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbkl0ZW1JbnRlcmZhY2Uge1xuICBpZDogbnVtYmVyfHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25JdGVtIGltcGxlbWVudHMgU2VsZWN0aW9uSXRlbUludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICBwdWJsaWMgdmFsdWUgPSAnJyxcbiAgICBwdWJsaWMgZGlzYWJsZWQ/OiBib29sZWFuLFxuICAgIHB1YmxpYyBzZWxlY3RlZD86IGJvb2xlYW4sXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSkge1xuXG4gICAgcmV0dXJuIG5ldyBTZWxlY3Rpb25JdGVtKFxuICAgICAgaXRlbT8uaWQsXG4gICAgICAoaXRlbT8udmFsdWUpID8gaXRlbS52YWx1ZSA6IGl0ZW0sXG4gICAgICAoaXRlbT8uZGlzYWJsZWQpID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgKGl0ZW0/LnNlbGVjdGVkKSA/IHRydWUgOiBmYWxzZSxcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class RemoveUnderscorePipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
return value ? value.replace(/_/g, " ") : value;
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, isStandalone: true, name: "removeUnderscore" }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
name: 'removeUnderscore',
|
|
14
|
+
standalone: true
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXVuZGVyc2NvcmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhZGlvLXNlbGVjdGlvbi1pbnB1dC9zcmMvbGliL3BpcGVzL3JlbW92ZS11bmRlcnNjb3JlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxLQUFLLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDakQsQ0FBQzsrR0FIVSxvQkFBb0I7NkdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsa0JBQWtCO29CQUN4QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3JlbW92ZVVuZGVyc2NvcmUnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFJlbW92ZVVuZGVyc2NvcmVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWU/IHZhbHVlLnJlcGxhY2UoL18vZywgXCIgXCIpIDogdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
import * as i4 from "@angular/material/form-field";
|
|
8
|
+
import * as i5 from "@angular/material/slide-toggle";
|
|
9
|
+
import * as i6 from "@angular/material/divider";
|
|
10
|
+
import * as i7 from "@angular/material/button-toggle";
|
|
11
|
+
import * as i8 from "../radio-selection-input/radio-selection-input.component";
|
|
12
|
+
export class RadioDemoComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.fb = inject(FormBuilder);
|
|
15
|
+
this.data_1 = [
|
|
16
|
+
{ id: 11, value: 'Telus' },
|
|
17
|
+
{ id: 12, value: 'AT&T', disabled: true },
|
|
18
|
+
{ id: 14, value: 'Bell', selected: true },
|
|
19
|
+
{ id: 63, value: 'Rogers' }
|
|
20
|
+
];
|
|
21
|
+
this.data_2 = ['Telus', 'AT&T', 'Bell', 'Rogers'];
|
|
22
|
+
this.data = this.data_2;
|
|
23
|
+
this.selectionControl_1 = this.fb.control(null);
|
|
24
|
+
this.selectionControl_2 = this.fb.control(null, Validators.required);
|
|
25
|
+
this.changeDetection_1 = this.fb.control(null);
|
|
26
|
+
this.changeDetection_2 = this.fb.control(null);
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.selectionControl_1.valueChanges.subscribe(data => {
|
|
30
|
+
if (this.changeDetection_1.value)
|
|
31
|
+
console.log('CHANGE:', data);
|
|
32
|
+
});
|
|
33
|
+
this.selectionControl_2.valueChanges.subscribe(data => {
|
|
34
|
+
console.log('VALID:', this.selectionControl_2.valid);
|
|
35
|
+
if (this.changeDetection_2.value)
|
|
36
|
+
console.log('CHANGE:', data);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
// DISABLE
|
|
40
|
+
onDisabled_1(disable) {
|
|
41
|
+
if (disable) {
|
|
42
|
+
this.selectionControl_1.disable();
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.selectionControl_1.enable();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
onDisabled_2(disable) {
|
|
49
|
+
if (disable) {
|
|
50
|
+
this.selectionControl_2.disable();
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.selectionControl_2.enable();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
onPerformPatch() {
|
|
57
|
+
this.selectionControl_1.patchValue(['Bell']);
|
|
58
|
+
this.selectionControl_2.patchValue(['Rogers']);
|
|
59
|
+
}
|
|
60
|
+
onChangeDataType(type) {
|
|
61
|
+
if (type === 'strings') {
|
|
62
|
+
this.data = this.data_2;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.data = this.data_1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioDemoComponent, selector: "app-radio-selection-demo", ngImport: i0, template: "<div style=\"display: flex;\">\n <h1>Radio 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 <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-radio-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-radio-selection-input>\n\n<div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Radio Selection - {{ varTypes.value | uppercase }}</h3>\n\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-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-radio-selection-input>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</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 No Validation Required<br>\n Valid {{ selectionControl_1.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_2.reset()\">Reset</button>\n </div>\n <app-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n label=\"Providers\"\n placeholder=\"Placeholder Text\"\n ></app-radio-selection-input>\n <div *ngIf=\"error2.checked\">\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: 2rem;\">\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<br>\n Validation 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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i8.RadioSelectionInputComponent, selector: "app-radio-selection-input", inputs: ["label", "placeholder", "data"], outputs: ["selectionChange"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }] }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioDemoComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ selector: 'app-radio-selection-demo', template: "<div style=\"display: flex;\">\n <h1>Radio 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 <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-radio-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-radio-selection-input>\n\n<div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Radio Selection - {{ varTypes.value | uppercase }}</h3>\n\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-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-radio-selection-input>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</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 No Validation Required<br>\n Valid {{ selectionControl_1.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_2.reset()\">Reset</button>\n </div>\n <app-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n label=\"Providers\"\n placeholder=\"Placeholder Text\"\n ></app-radio-selection-input>\n <div *ngIf=\"error2.checked\">\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: 2rem;\">\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<br>\n Validation 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" }]
|
|
74
|
+
}], ctorParameters: function () { return []; } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZGVtby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWRpby1zZWxlY3Rpb24taW5wdXQvc3JjL2xpYi9yYWRpby1kZW1vL3JhZGlvLWRlbW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFkaW8tc2VsZWN0aW9uLWlucHV0L3NyYy9saWIvcmFkaW8tZGVtby9yYWRpby1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLGtCQUFrQjtJQXFCN0I7UUFuQkEsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUV4QixXQUFNLEdBQUc7WUFDUCxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUMxQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ3pDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUM7WUFDeEMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7U0FDM0IsQ0FBQTtRQUVELFdBQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBRTVDLFNBQUksR0FBUSxJQUFJLENBQUMsTUFBTSxDQUFBO1FBRXhCLHVCQUFrQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFhLElBQUksQ0FBQyxDQUFBO1FBQ3RELHVCQUFrQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFhLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFM0Usc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQWEsSUFBSSxDQUFDLENBQUE7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQWEsSUFBSSxDQUFDLENBQUE7SUFFckMsQ0FBQztJQUVqQixRQUFRO1FBRU4sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEQsSUFBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSztnQkFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUM5RCxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNwRCxJQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlELENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQztJQUVELFVBQVU7SUFDVixZQUFZLENBQUMsT0FBZ0I7UUFFM0IsSUFBRyxPQUFPLEVBQUU7WUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDbEM7YUFBTTtZQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUNqQztJQUVILENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZ0I7UUFFM0IsSUFBRyxPQUFPLEVBQUU7WUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDbEM7YUFBTTtZQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUNqQztJQUVILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsSUFBRyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1NBQ3hCO0lBQ0gsQ0FBQzsrR0FwRVUsa0JBQWtCO21HQUFsQixrQkFBa0IsZ0VDUi9CLG04RkE2RUE7OzRGRHJFYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yYWRpby1zZWxlY3Rpb24tZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1kZW1vLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8tZGVtby5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvRGVtb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG5cbiAgZGF0YV8xID0gW1xuICAgIHsgaWQ6IDExLCB2YWx1ZTogJ1RlbHVzJyB9LFxuICAgIHsgaWQ6IDEyLCB2YWx1ZTogJ0FUJlQnLCBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgIHsgaWQ6IDE0LCB2YWx1ZTogJ0JlbGwnLCBzZWxlY3RlZDogdHJ1ZX0sXG4gICAgeyBpZDogNjMsIHZhbHVlOiAnUm9nZXJzJyB9XG4gICBdXG5cbiAgIGRhdGFfMiA9IFsnVGVsdXMnLCAnQVQmVCcsICdCZWxsJywgJ1JvZ2VycyddXG5cbiAgIGRhdGE6IGFueSA9IHRoaXMuZGF0YV8yXG5cbiAgc2VsZWN0aW9uQ29udHJvbF8xID0gdGhpcy5mYi5jb250cm9sPGFueVtdfG51bGw+KG51bGwpXG4gIHNlbGVjdGlvbkNvbnRyb2xfMiA9IHRoaXMuZmIuY29udHJvbDxhbnlbXXxudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuXG4gIGNoYW5nZURldGVjdGlvbl8xID0gdGhpcy5mYi5jb250cm9sPGFueVtdfG51bGw+KG51bGwpXG4gIGNoYW5nZURldGVjdGlvbl8yID0gdGhpcy5mYi5jb250cm9sPGFueVtdfG51bGw+KG51bGwpXG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbF8xLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICBpZih0aGlzLmNoYW5nZURldGVjdGlvbl8xLnZhbHVlKSBjb25zb2xlLmxvZygnQ0hBTkdFOicsZGF0YSlcbiAgICB9KVxuXG4gICAgdGhpcy5zZWxlY3Rpb25Db250cm9sXzIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdWQUxJRDonLCB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMi52YWxpZClcbiAgICAgIGlmKHRoaXMuY2hhbmdlRGV0ZWN0aW9uXzIudmFsdWUpIGNvbnNvbGUubG9nKCdDSEFOR0U6JyxkYXRhKVxuICAgIH0pXG5cbiAgfVxuXG4gIC8vIERJU0FCTEVcbiAgb25EaXNhYmxlZF8xKGRpc2FibGU6IGJvb2xlYW4pIHtcblxuICAgIGlmKGRpc2FibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbF8xLmRpc2FibGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMS5lbmFibGUoKVxuICAgIH1cblxuICB9XG5cbiAgb25EaXNhYmxlZF8yKGRpc2FibGU6IGJvb2xlYW4pIHtcblxuICAgIGlmKGRpc2FibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbF8yLmRpc2FibGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMi5lbmFibGUoKVxuICAgIH1cblxuICB9XG5cbiAgb25QZXJmb3JtUGF0Y2goKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Db250cm9sXzEucGF0Y2hWYWx1ZShbJ0JlbGwnXSlcbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMi5wYXRjaFZhbHVlKFsnUm9nZXJzJ10pXG4gIH1cblxuICBvbkNoYW5nZURhdGFUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGlmKHR5cGUgPT09ICdzdHJpbmdzJykge1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhXzJcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhXzFcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gIDxoMT5SYWRpbyBGb3JtQ29udHJvbDwvaDE+XG4gIDxkaXYgc3R5bGU9XCJmbGV4OjE7IHRleHQtYWxpZ246IHJpZ2h0O1wiPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDJyZW07IGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcIj5cbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2xpY2spPVwib25QZXJmb3JtUGF0Y2goKVwiPlBhdGNoPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCAjdmFyVHlwZXM9XCJtYXRCdXR0b25Ub2dnbGVHcm91cFwiIChjaGFuZ2UpPVwib25DaGFuZ2VEYXRhVHlwZSh2YXJUeXBlcy52YWx1ZSlcIj5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwic3RyaW5nc1wiIGNoZWNrZWQ9XCJ0cnVlXCI+U3RyaW5nczwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cIm9iamVjdHNcIiBjaGVja2VkPVwiZmFsc2VcIj5PYmplY3RzPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxoMz5ObyBEYXRhIC0gUHJvamVjdGlvbiBvZiBFcnJvcjwvaDM+XG48YXBwLXJhZGlvLXNlbGVjdGlvbi1pbnB1dCBlcnJvcj1cIk5vIERhdGEgUHJvdmlkZWRcIj5cbiAgPGgzIHN0eWxlPVwiY29sb3I6IHJlZDsgbWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMDtcIj5ObyBEYXRhPC9oMz5cbjwvYXBwLXJhZGlvLXNlbGVjdGlvbi1pbnB1dD5cblxuPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IC41cmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbjwvZGl2PlxuXG48ZGl2PlxuICA8aDMgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwO1wiPlJhZGlvIFNlbGVjdGlvbiAtIHt7IHZhclR5cGVzLnZhbHVlIHwgdXBwZXJjYXNlIH19PC9oMz5cblxuICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICA8c3BhbiBzdHlsZT1cImZsZXg6MVwiPjwvc3Bhbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInNlbGVjdGlvbkNvbnRyb2xfMS5yZXNldCgpXCI+UmVzZXQ8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxhcHAtcmFkaW8tc2VsZWN0aW9uLWlucHV0XG4gICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgW2Zvcm1Db250cm9sXT1cInNlbGVjdGlvbkNvbnRyb2xfMVwiXG4gID48L2FwcC1yYWRpby1zZWxlY3Rpb24taW5wdXQ+XG4gIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDJyZW07IG1hcmdpbi10b3A6IDJyZW07XCI+XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgW2Zvcm1Db250cm9sXT1cImNoYW5nZURldGVjdGlvbl8xXCI+Q2hhbmdlIERldGVjdGlvbjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSAjZGlzYWJsZTEgKGNoYW5nZSk9XCJvbkRpc2FibGVkXzEoZGlzYWJsZTEuY2hlY2tlZClcIj5EaXNhYmxlPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDxzcGFuIHN0eWxlPVwiZmxleDoxXCI+PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW07XCI+XG4gICAgTm8gbGFiZWwgb3IgcGxhY2Vob2xkZXI8YnI+XG4gICAgTm8gVmFsaWRhdGlvbiBSZXF1aXJlZDxicj5cbiAgICBWYWxpZCB7eyBzZWxlY3Rpb25Db250cm9sXzEudmFsaWQgfX08YnI+XG4gIDwvZGl2PlxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogLjVyZW07IG1hcmdpbi1ib3R0b206IDFyZW07XCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXY+XG4gIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgIDxzcGFuIHN0eWxlPVwiZmxleDoxXCI+PC9zcGFuPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic2VsZWN0aW9uQ29udHJvbF8yLnJlc2V0KClcIj5SZXNldDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGFwcC1yYWRpby1zZWxlY3Rpb24taW5wdXRcbiAgICBbZGF0YV09XCJkYXRhXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwic2VsZWN0aW9uQ29udHJvbF8yXCJcbiAgICBsYWJlbD1cIlByb3ZpZGVyc1wiXG4gICAgcGxhY2Vob2xkZXI9XCJQbGFjZWhvbGRlciBUZXh0XCJcbiAgPjwvYXBwLXJhZGlvLXNlbGVjdGlvbi1pbnB1dD5cbiAgPGRpdiAqbmdJZj1cImVycm9yMi5jaGVja2VkXCI+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cInNlbGVjdGlvbkNvbnRyb2xfMi5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlRoaXMgZmllbGQgaXMgUmVxdWlyZWQ8L21hdC1lcnJvcj5cbiAgPC9kaXY+XG4gIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDJyZW07IG1hcmdpbi10b3A6IDJyZW07XCI+XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgW2Zvcm1Db250cm9sXT1cImNoYW5nZURldGVjdGlvbl8yXCI+Q2hhbmdlIERldGVjdGlvbjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSAjZXJyb3IyPkRpc3BsYXkgRXJyb3I8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgI2Rpc2FibGUyIChjaGFuZ2UpPVwib25EaXNhYmxlZF8yKGRpc2FibGUyLmNoZWNrZWQpXCI+RGlzYWJsZTwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8c3BhbiBzdHlsZT1cImZsZXg6MVwiPjwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtO1wiPlxuICAgIExhYmVsPGJyPlxuICAgIFZhbGlkYXRpb24gUmVxdWlyZWQ8YnI+XG4gICAgVmFsaWQge3sgc2VsZWN0aW9uQ29udHJvbF8yLnZhbGlkIH19PGJyPlxuICA8L2Rpdj5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IC41cmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, forwardRef, inject } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, FormBuilder, NG_VALIDATORS, Validators } from '@angular/forms';
|
|
3
|
+
import { Subscription } from 'rxjs';
|
|
4
|
+
import { SelectionItem } from '../models/selection-item.model';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "@angular/material/form-field";
|
|
9
|
+
import * as i4 from "@angular/material/radio";
|
|
10
|
+
export class RadioSelectionInputComponent {
|
|
11
|
+
set data(value) {
|
|
12
|
+
this.formInitialized = false;
|
|
13
|
+
this.isObjects = this.hasObjects(value);
|
|
14
|
+
this.raw = value;
|
|
15
|
+
this._data = (value) ? value.map(item => SelectionItem.adapt(item)) : [];
|
|
16
|
+
const selectedObjects = this.data.filter(item => item.selected).map(item => item.value);
|
|
17
|
+
const selected = (selectedObjects.length === 0) ? null : this.findFirst(selectedObjects);
|
|
18
|
+
this.selectionControl.patchValue(selected, { emitEvent: false });
|
|
19
|
+
}
|
|
20
|
+
get data() {
|
|
21
|
+
return this._data;
|
|
22
|
+
}
|
|
23
|
+
constructor() {
|
|
24
|
+
this.fb = inject(FormBuilder);
|
|
25
|
+
this.subscriptions = new Subscription();
|
|
26
|
+
this.selectionControl = this.fb.control(null, Validators.required);
|
|
27
|
+
this.formInitialized = false;
|
|
28
|
+
this.raw = [];
|
|
29
|
+
this.isObjects = false;
|
|
30
|
+
this._data = [];
|
|
31
|
+
this.selectionChange = new EventEmitter();
|
|
32
|
+
this.onChange = () => { };
|
|
33
|
+
this.onTouch = () => { };
|
|
34
|
+
this.isArray = (obj) => Array.isArray(obj);
|
|
35
|
+
this.isObject = (obj) => typeof obj === 'object' && obj !== null && !Array.isArray(obj);
|
|
36
|
+
this.hasObjects = (obj) => (this.isArray(obj) && obj.length > 0) ? this.isObject(obj[0]) : false;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.subscriptions.add(this.selectionControl.valueChanges
|
|
40
|
+
.subscribe((data) => {
|
|
41
|
+
this.onChange(data);
|
|
42
|
+
this.selectionChange.emit(data);
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
ngAfterViewInit() {
|
|
46
|
+
this.formInitialized = true;
|
|
47
|
+
}
|
|
48
|
+
findFirst(obj) {
|
|
49
|
+
const found = this.data.find(item => obj.includes(item.value));
|
|
50
|
+
return (found) ? found.value : null;
|
|
51
|
+
}
|
|
52
|
+
writeValue(value) {
|
|
53
|
+
const selected = Array.isArray(value) ? (value.length > 1) ? this.findFirst(value)[0] : [] : value;
|
|
54
|
+
this.data.map((item) => item.selected = value && value.includes(item.value) ? true : false);
|
|
55
|
+
if (selected !== null) {
|
|
56
|
+
if (!value)
|
|
57
|
+
return;
|
|
58
|
+
this.selectionControl.patchValue(selected, { emitEvent: false });
|
|
59
|
+
this.selectionControl.markAsDirty({ onlySelf: true });
|
|
60
|
+
}
|
|
61
|
+
if (this.formInitialized && !this.selectionControl.pristine) {
|
|
62
|
+
if (value === null)
|
|
63
|
+
this.selectionControl.reset();
|
|
64
|
+
this.selectionControl.markAsDirty({ onlySelf: true });
|
|
65
|
+
this.selectionControl.markAllAsTouched();
|
|
66
|
+
}
|
|
67
|
+
else if (this.formInitialized && this.selectionControl.pristine) {
|
|
68
|
+
if (value === null)
|
|
69
|
+
this.selectionControl.reset();
|
|
70
|
+
}
|
|
71
|
+
this.formInitialized = true;
|
|
72
|
+
}
|
|
73
|
+
validate(control) {
|
|
74
|
+
const isRequired = control.hasValidator(Validators.required) ? true : false;
|
|
75
|
+
if (!isRequired)
|
|
76
|
+
this.selectionControl.clearValidators();
|
|
77
|
+
const errors = (isRequired && !this.selectionControl.valid) ? { 'required': false } : null;
|
|
78
|
+
return errors;
|
|
79
|
+
}
|
|
80
|
+
registerOnChange(fn) {
|
|
81
|
+
this.onChange = fn;
|
|
82
|
+
}
|
|
83
|
+
registerOnTouched(fn) {
|
|
84
|
+
this.onTouch = fn;
|
|
85
|
+
}
|
|
86
|
+
setDisabledState(isDisabled) {
|
|
87
|
+
if (isDisabled) {
|
|
88
|
+
this.selectionControl.disable();
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.selectionControl.enable();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioSelectionInputComponent, selector: "app-radio-selection-input", inputs: { label: "label", placeholder: "placeholder", data: "data" }, outputs: { selectionChange: "selectionChange" }, providers: [
|
|
96
|
+
{
|
|
97
|
+
provide: NG_VALUE_ACCESSOR,
|
|
98
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
99
|
+
multi: true
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
provide: NG_VALIDATORS,
|
|
103
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
104
|
+
multi: true
|
|
105
|
+
}
|
|
106
|
+
], ngImport: i0, template: "<div style=\"display: flex; flex-direction: column;\">\n <mat-label style=\"padding-left: 1rem; font-size: larger;\">\n {{ label }}\n </mat-label>\n <mat-label style=\"padding-left: 1rem; color: grey;\">\n {{ placeholder }}\n </mat-label>\n <ng-container *ngIf=\"data.length > 0; else NODATA\">\n <mat-radio-group [formControl]=\"selectionControl\" class=\"container\">\n <mat-radio-button\n class=\"item\"\n color=\"primary\"\n *ngFor=\"let option of data\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{option.value}}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-template #NODATA>\n <div class=\"wrapper\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(192px,1fr));grid-auto-rows:minmax(auto,auto)}.item{flex:1 1 calc(33.33% - 2rem);margin:.25rem;margin-bottom:0;box-sizing:border-box;padding:.25rem;white-space:nowrap}.wrapper:not(:empty)+.default{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }] }); }
|
|
107
|
+
}
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputComponent, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{ selector: 'app-radio-selection-input', providers: [
|
|
111
|
+
{
|
|
112
|
+
provide: NG_VALUE_ACCESSOR,
|
|
113
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
114
|
+
multi: true
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
provide: NG_VALIDATORS,
|
|
118
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
119
|
+
multi: true
|
|
120
|
+
}
|
|
121
|
+
], template: "<div style=\"display: flex; flex-direction: column;\">\n <mat-label style=\"padding-left: 1rem; font-size: larger;\">\n {{ label }}\n </mat-label>\n <mat-label style=\"padding-left: 1rem; color: grey;\">\n {{ placeholder }}\n </mat-label>\n <ng-container *ngIf=\"data.length > 0; else NODATA\">\n <mat-radio-group [formControl]=\"selectionControl\" class=\"container\">\n <mat-radio-button\n class=\"item\"\n color=\"primary\"\n *ngFor=\"let option of data\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{option.value}}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-template #NODATA>\n <div class=\"wrapper\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(192px,1fr));grid-auto-rows:minmax(auto,auto)}.item{flex:1 1 calc(33.33% - 2rem);margin:.25rem;margin-bottom:0;box-sizing:border-box;padding:.25rem;white-space:nowrap}.wrapper:not(:empty)+.default{display:none}\n"] }]
|
|
122
|
+
}], ctorParameters: function () { return []; }, propDecorators: { label: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], placeholder: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], data: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], selectionChange: [{
|
|
129
|
+
type: Output
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tc2VsZWN0aW9uLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhZGlvLXNlbGVjdGlvbi1pbnB1dC9zcmMvbGliL3JhZGlvLXNlbGVjdGlvbi1pbnB1dC9yYWRpby1zZWxlY3Rpb24taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFkaW8tc2VsZWN0aW9uLWlucHV0L3NyYy9saWIvcmFkaW8tc2VsZWN0aW9uLWlucHV0L3JhZGlvLXNlbGVjdGlvbi1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBeUMsYUFBYSxFQUFvQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7O0FBbUIvRCxNQUFNLE9BQU8sNEJBQTRCO0lBZXZDLElBQWEsSUFBSSxDQUFDLEtBQVk7UUFFNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFD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QUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQzNELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztnQkFDM0QsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ3BCSCxzeUJBMEJBOzs0RkRKYSw0QkFBNEI7a0JBakJ4QyxTQUFTOytCQUNFLDJCQUEyQixhQUcxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDOzRCQUMzRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFTUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFPTyxJQUFJO3NCQUFoQixLQUFLO2dCQWtCSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybUJ1aWxkZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlbGVjdGlvbkl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvc2VsZWN0aW9uLWl0ZW0ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmFkaW8tc2VsZWN0aW9uLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLXNlbGVjdGlvbi1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLXNlbGVjdGlvbi1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvU2VsZWN0aW9uSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb1NlbGVjdGlvbklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvU2VsZWN0aW9uSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBmYiA9IGluamVjdCggRm9ybUJ1aWxkZXIpXG4gIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKClcblxuICBzZWxlY3Rpb25Db250cm9sID0gdGhpcy5mYi5jb250cm9sPHN0cmluZ3xudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nXG5cbiAgZm9ybUluaXRpYWxpemVkID0gZmFsc2VcbiAgcmF3OiBhbnlbXSA9IFtdXG4gIGlzT2JqZWN0cyA9IGZhbHNlXG5cbiAgcHJpdmF0ZSBfZGF0YTogKGFueXxzdHJpbmcpW10gPSBbXVxuICBASW5wdXQoKSBzZXQgZGF0YSh2YWx1ZTogYW55W10pIHtcblxuICAgIHRoaXMuZm9ybUluaXRpYWxpemVkID0gZmFsc2VcbiAgICB0aGlzLmlzT2JqZWN0cyA9IHRoaXMuaGFzT2JqZWN0cyh2YWx1ZSlcbiAgICB0aGlzLnJhdyA9IHZhbHVlXG4gICAgdGhpcy5fZGF0YSA9ICh2YWx1ZSkgPyB2YWx1ZS5tYXAoaXRlbSA9PiBTZWxlY3Rpb25JdGVtLmFkYXB0KGl0ZW0pKSA6IFtdXG5cbiAgICBjb25zdCBzZWxlY3RlZE9iamVjdHMgPSB0aGlzLmRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCkubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSlcbiAgICBjb25zdCBzZWxlY3RlZCA9IChzZWxlY3RlZE9iamVjdHMubGVuZ3RoID09PSAwKSA/IG51bGwgOiB0aGlzLmZpbmRGaXJzdChzZWxlY3RlZE9iamVjdHMpXG5cbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShzZWxlY3RlZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXG5cbiAgfVxuXG4gIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhXG4gIH1cblxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9XG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9XG5cbiAgaXNBcnJheSA9IChvYmo6IGFueSkgPT4gQXJyYXkuaXNBcnJheShvYmopXG4gIGlzT2JqZWN0ID0gKG9iajogYW55KSA9PiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkob2JqKVxuICBoYXNPYmplY3RzID0gKG9iajogYW55KSA9PiAodGhpcy5pc0FycmF5KG9iaikgJiYgb2JqLmxlbmd0aCA+IDApID8gdGhpcy5pc09iamVjdChvYmpbMF0pIDogZmFsc2VcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IHN0cmluZ3xudWxsKSA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoZGF0YSlcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChkYXRhKVxuICAgICAgfSlcbiAgICApXG5cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Jbml0aWFsaXplZCA9IHRydWVcbiAgfVxuXG4gIGZpbmRGaXJzdChvYmo6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmRhdGEuZmluZChpdGVtID0+IG9iai5pbmNsdWRlcyhpdGVtLnZhbHVlKSlcbiAgICByZXR1cm4gKGZvdW5kKSA/IGZvdW5kLnZhbHVlIDogbnVsbFxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKSB7XG5cbiAgICBjb25zdCBzZWxlY3RlZDogc3RyaW5nID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAodmFsdWUubGVuZ3RoID4gMSkgPyB0aGlzLmZpbmRGaXJzdCh2YWx1ZSlbMF0gOiBbXSA6IHZhbHVlXG5cbiAgICB0aGlzLmRhdGEubWFwKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkID0gdmFsdWUgJiYgdmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSkgPyB0cnVlIDogZmFsc2UpO1xuXG4gICAgaWYgKHNlbGVjdGVkICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVyblxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShzZWxlY3RlZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybUluaXRpYWxpemVkICYmICF0aGlzLnNlbGVjdGlvbkNvbnRyb2wucHJpc3RpbmUpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgdGhpcy5zZWxlY3Rpb25Db250cm9sLnJlc2V0KCk7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZvcm1Jbml0aWFsaXplZCAmJiB0aGlzLnNlbGVjdGlvbkNvbnRyb2wucHJpc3RpbmUpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgdGhpcy5zZWxlY3Rpb25Db250cm9sLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtSW5pdGlhbGl6ZWQgPSB0cnVlXG4gIH1cblxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcblxuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/IHRydWUgOiBmYWxzZVxuXG4gICAgaWYoIWlzUmVxdWlyZWQpIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKVxuICAgIGNvbnN0IGVycm9ycyA9IChpc1JlcXVpcmVkICYmICF0aGlzLnNlbGVjdGlvbkNvbnRyb2wudmFsaWQpID8geyAncmVxdWlyZWQnOiBmYWxzZSB9IDogbnVsbFxuXG4gICAgcmV0dXJuIGVycm9yc1xuXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpe1xuICAgIHRoaXMub25DaGFuZ2UgPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSl7XG4gICAgdGhpcy5vblRvdWNoID0gZm5cbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcblxuICAgIGlmKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5kaXNhYmxlKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLmVuYWJsZSgpXG4gICAgfVxuXG4gIH1cblxufVxuXG4iLCI8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cbiAgPG1hdC1sYWJlbCBzdHlsZT1cInBhZGRpbmctbGVmdDogMXJlbTsgZm9udC1zaXplOiBsYXJnZXI7XCI+XG4gICAge3sgbGFiZWwgfX1cbiAgPC9tYXQtbGFiZWw+XG4gIDxtYXQtbGFiZWwgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDFyZW07IGNvbG9yOiBncmV5O1wiPlxuICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gIDwvbWF0LWxhYmVsPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5sZW5ndGggPiAwOyBlbHNlIE5PREFUQVwiPlxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sXT1cInNlbGVjdGlvbkNvbnRyb2xcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICAgY2xhc3M9XCJpdGVtXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkYXRhXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgPlxuICAgICAgICB7e29wdGlvbi52YWx1ZX19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI05PREFUQT5cbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of checkbox-selection-input
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/models/index';
|
|
5
|
+
export * from './lib/pipes/remove-underscore.pipe';
|
|
6
|
+
export * from './lib/radio-demo/radio-demo.component';
|
|
7
|
+
export * from './lib/radio-selection-input/radio-selection-input.component';
|
|
8
|
+
export * from './lib/checkbox-selection-input.module';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3JhZGlvLXNlbGVjdGlvbi1pbnB1dC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkRBQTZELENBQUM7QUFFNUUsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY2hlY2tib3gtc2VsZWN0aW9uLWlucHV0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2luZGV4JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvcmVtb3ZlLXVuZGVyc2NvcmUucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3JhZGlvLWRlbW8vcmFkaW8tZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFkaW8tc2VsZWN0aW9uLWlucHV0L3JhZGlvLXNlbGVjdGlvbi1pbnB1dC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGVja2JveC1zZWxlY3Rpb24taW5wdXQubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tc2VsZWN0aW9uLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvcmFkaW8tc2VsZWN0aW9uLWlucHV0L3NyYy9yYWRpby1zZWxlY3Rpb24taW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Pipe, inject, EventEmitter, forwardRef, Component, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/forms';
|
|
4
|
+
import { FormBuilder, Validators, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i3$1 from '@angular/material/button';
|
|
8
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
9
|
+
import * as i3 from '@angular/material/form-field';
|
|
10
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
11
|
+
import * as i5 from '@angular/material/slide-toggle';
|
|
12
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
13
|
+
import * as i6 from '@angular/material/divider';
|
|
14
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
15
|
+
import * as i7 from '@angular/material/button-toggle';
|
|
16
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
17
|
+
import { Subscription } from 'rxjs';
|
|
18
|
+
import * as i4 from '@angular/material/radio';
|
|
19
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
20
|
+
import { MatSliderModule } from '@angular/material/slider';
|
|
21
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
22
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
23
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
24
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
25
|
+
import { MatInputModule } from '@angular/material/input';
|
|
26
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
27
|
+
import { MatOptionModule } from '@angular/material/core';
|
|
28
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
29
|
+
|
|
30
|
+
class SelectionBasic {
|
|
31
|
+
constructor(id = 0, value = '') {
|
|
32
|
+
this.id = id;
|
|
33
|
+
this.value = value;
|
|
34
|
+
}
|
|
35
|
+
static adapt(item) {
|
|
36
|
+
return new SelectionBasic(item?.id, (item?.value) ? item.value : item);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
class SelectionItem {
|
|
41
|
+
constructor(id = crypto.randomUUID(), value = '', disabled, selected) {
|
|
42
|
+
this.id = id;
|
|
43
|
+
this.value = value;
|
|
44
|
+
this.disabled = disabled;
|
|
45
|
+
this.selected = selected;
|
|
46
|
+
}
|
|
47
|
+
static adapt(item) {
|
|
48
|
+
return new SelectionItem(item?.id, (item?.value) ? item.value : item, (item?.disabled) ? true : false, (item?.selected) ? true : false);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/*
|
|
53
|
+
* Public API Surface of selections
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
class RemoveUnderscorePipe {
|
|
57
|
+
transform(value) {
|
|
58
|
+
return value ? value.replace(/_/g, " ") : value;
|
|
59
|
+
}
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
61
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, isStandalone: true, name: "removeUnderscore" }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, decorators: [{
|
|
64
|
+
type: Pipe,
|
|
65
|
+
args: [{
|
|
66
|
+
name: 'removeUnderscore',
|
|
67
|
+
standalone: true
|
|
68
|
+
}]
|
|
69
|
+
}] });
|
|
70
|
+
|
|
71
|
+
class RadioSelectionInputComponent {
|
|
72
|
+
set data(value) {
|
|
73
|
+
this.formInitialized = false;
|
|
74
|
+
this.isObjects = this.hasObjects(value);
|
|
75
|
+
this.raw = value;
|
|
76
|
+
this._data = (value) ? value.map(item => SelectionItem.adapt(item)) : [];
|
|
77
|
+
const selectedObjects = this.data.filter(item => item.selected).map(item => item.value);
|
|
78
|
+
const selected = (selectedObjects.length === 0) ? null : this.findFirst(selectedObjects);
|
|
79
|
+
this.selectionControl.patchValue(selected, { emitEvent: false });
|
|
80
|
+
}
|
|
81
|
+
get data() {
|
|
82
|
+
return this._data;
|
|
83
|
+
}
|
|
84
|
+
constructor() {
|
|
85
|
+
this.fb = inject(FormBuilder);
|
|
86
|
+
this.subscriptions = new Subscription();
|
|
87
|
+
this.selectionControl = this.fb.control(null, Validators.required);
|
|
88
|
+
this.formInitialized = false;
|
|
89
|
+
this.raw = [];
|
|
90
|
+
this.isObjects = false;
|
|
91
|
+
this._data = [];
|
|
92
|
+
this.selectionChange = new EventEmitter();
|
|
93
|
+
this.onChange = () => { };
|
|
94
|
+
this.onTouch = () => { };
|
|
95
|
+
this.isArray = (obj) => Array.isArray(obj);
|
|
96
|
+
this.isObject = (obj) => typeof obj === 'object' && obj !== null && !Array.isArray(obj);
|
|
97
|
+
this.hasObjects = (obj) => (this.isArray(obj) && obj.length > 0) ? this.isObject(obj[0]) : false;
|
|
98
|
+
}
|
|
99
|
+
ngOnInit() {
|
|
100
|
+
this.subscriptions.add(this.selectionControl.valueChanges
|
|
101
|
+
.subscribe((data) => {
|
|
102
|
+
this.onChange(data);
|
|
103
|
+
this.selectionChange.emit(data);
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
ngAfterViewInit() {
|
|
107
|
+
this.formInitialized = true;
|
|
108
|
+
}
|
|
109
|
+
findFirst(obj) {
|
|
110
|
+
const found = this.data.find(item => obj.includes(item.value));
|
|
111
|
+
return (found) ? found.value : null;
|
|
112
|
+
}
|
|
113
|
+
writeValue(value) {
|
|
114
|
+
const selected = Array.isArray(value) ? (value.length > 1) ? this.findFirst(value)[0] : [] : value;
|
|
115
|
+
this.data.map((item) => item.selected = value && value.includes(item.value) ? true : false);
|
|
116
|
+
if (selected !== null) {
|
|
117
|
+
if (!value)
|
|
118
|
+
return;
|
|
119
|
+
this.selectionControl.patchValue(selected, { emitEvent: false });
|
|
120
|
+
this.selectionControl.markAsDirty({ onlySelf: true });
|
|
121
|
+
}
|
|
122
|
+
if (this.formInitialized && !this.selectionControl.pristine) {
|
|
123
|
+
if (value === null)
|
|
124
|
+
this.selectionControl.reset();
|
|
125
|
+
this.selectionControl.markAsDirty({ onlySelf: true });
|
|
126
|
+
this.selectionControl.markAllAsTouched();
|
|
127
|
+
}
|
|
128
|
+
else if (this.formInitialized && this.selectionControl.pristine) {
|
|
129
|
+
if (value === null)
|
|
130
|
+
this.selectionControl.reset();
|
|
131
|
+
}
|
|
132
|
+
this.formInitialized = true;
|
|
133
|
+
}
|
|
134
|
+
validate(control) {
|
|
135
|
+
const isRequired = control.hasValidator(Validators.required) ? true : false;
|
|
136
|
+
if (!isRequired)
|
|
137
|
+
this.selectionControl.clearValidators();
|
|
138
|
+
const errors = (isRequired && !this.selectionControl.valid) ? { 'required': false } : null;
|
|
139
|
+
return errors;
|
|
140
|
+
}
|
|
141
|
+
registerOnChange(fn) {
|
|
142
|
+
this.onChange = fn;
|
|
143
|
+
}
|
|
144
|
+
registerOnTouched(fn) {
|
|
145
|
+
this.onTouch = fn;
|
|
146
|
+
}
|
|
147
|
+
setDisabledState(isDisabled) {
|
|
148
|
+
if (isDisabled) {
|
|
149
|
+
this.selectionControl.disable();
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.selectionControl.enable();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioSelectionInputComponent, selector: "app-radio-selection-input", inputs: { label: "label", placeholder: "placeholder", data: "data" }, outputs: { selectionChange: "selectionChange" }, providers: [
|
|
157
|
+
{
|
|
158
|
+
provide: NG_VALUE_ACCESSOR,
|
|
159
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
160
|
+
multi: true
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
provide: NG_VALIDATORS,
|
|
164
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
165
|
+
multi: true
|
|
166
|
+
}
|
|
167
|
+
], ngImport: i0, template: "<div style=\"display: flex; flex-direction: column;\">\n <mat-label style=\"padding-left: 1rem; font-size: larger;\">\n {{ label }}\n </mat-label>\n <mat-label style=\"padding-left: 1rem; color: grey;\">\n {{ placeholder }}\n </mat-label>\n <ng-container *ngIf=\"data.length > 0; else NODATA\">\n <mat-radio-group [formControl]=\"selectionControl\" class=\"container\">\n <mat-radio-button\n class=\"item\"\n color=\"primary\"\n *ngFor=\"let option of data\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{option.value}}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-template #NODATA>\n <div class=\"wrapper\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(192px,1fr));grid-auto-rows:minmax(auto,auto)}.item{flex:1 1 calc(33.33% - 2rem);margin:.25rem;margin-bottom:0;box-sizing:border-box;padding:.25rem;white-space:nowrap}.wrapper:not(:empty)+.default{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }] }); }
|
|
168
|
+
}
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputComponent, decorators: [{
|
|
170
|
+
type: Component,
|
|
171
|
+
args: [{ selector: 'app-radio-selection-input', providers: [
|
|
172
|
+
{
|
|
173
|
+
provide: NG_VALUE_ACCESSOR,
|
|
174
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
175
|
+
multi: true
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
provide: NG_VALIDATORS,
|
|
179
|
+
useExisting: forwardRef(() => RadioSelectionInputComponent),
|
|
180
|
+
multi: true
|
|
181
|
+
}
|
|
182
|
+
], template: "<div style=\"display: flex; flex-direction: column;\">\n <mat-label style=\"padding-left: 1rem; font-size: larger;\">\n {{ label }}\n </mat-label>\n <mat-label style=\"padding-left: 1rem; color: grey;\">\n {{ placeholder }}\n </mat-label>\n <ng-container *ngIf=\"data.length > 0; else NODATA\">\n <mat-radio-group [formControl]=\"selectionControl\" class=\"container\">\n <mat-radio-button\n class=\"item\"\n color=\"primary\"\n *ngFor=\"let option of data\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{option.value}}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-template #NODATA>\n <div class=\"wrapper\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(192px,1fr));grid-auto-rows:minmax(auto,auto)}.item{flex:1 1 calc(33.33% - 2rem);margin:.25rem;margin-bottom:0;box-sizing:border-box;padding:.25rem;white-space:nowrap}.wrapper:not(:empty)+.default{display:none}\n"] }]
|
|
183
|
+
}], ctorParameters: function () { return []; }, propDecorators: { label: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], placeholder: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], data: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], selectionChange: [{
|
|
190
|
+
type: Output
|
|
191
|
+
}] } });
|
|
192
|
+
|
|
193
|
+
class RadioDemoComponent {
|
|
194
|
+
constructor() {
|
|
195
|
+
this.fb = inject(FormBuilder);
|
|
196
|
+
this.data_1 = [
|
|
197
|
+
{ id: 11, value: 'Telus' },
|
|
198
|
+
{ id: 12, value: 'AT&T', disabled: true },
|
|
199
|
+
{ id: 14, value: 'Bell', selected: true },
|
|
200
|
+
{ id: 63, value: 'Rogers' }
|
|
201
|
+
];
|
|
202
|
+
this.data_2 = ['Telus', 'AT&T', 'Bell', 'Rogers'];
|
|
203
|
+
this.data = this.data_2;
|
|
204
|
+
this.selectionControl_1 = this.fb.control(null);
|
|
205
|
+
this.selectionControl_2 = this.fb.control(null, Validators.required);
|
|
206
|
+
this.changeDetection_1 = this.fb.control(null);
|
|
207
|
+
this.changeDetection_2 = this.fb.control(null);
|
|
208
|
+
}
|
|
209
|
+
ngOnInit() {
|
|
210
|
+
this.selectionControl_1.valueChanges.subscribe(data => {
|
|
211
|
+
if (this.changeDetection_1.value)
|
|
212
|
+
console.log('CHANGE:', data);
|
|
213
|
+
});
|
|
214
|
+
this.selectionControl_2.valueChanges.subscribe(data => {
|
|
215
|
+
console.log('VALID:', this.selectionControl_2.valid);
|
|
216
|
+
if (this.changeDetection_2.value)
|
|
217
|
+
console.log('CHANGE:', data);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
// DISABLE
|
|
221
|
+
onDisabled_1(disable) {
|
|
222
|
+
if (disable) {
|
|
223
|
+
this.selectionControl_1.disable();
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
this.selectionControl_1.enable();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
onDisabled_2(disable) {
|
|
230
|
+
if (disable) {
|
|
231
|
+
this.selectionControl_2.disable();
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
this.selectionControl_2.enable();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
onPerformPatch() {
|
|
238
|
+
this.selectionControl_1.patchValue(['Bell']);
|
|
239
|
+
this.selectionControl_2.patchValue(['Rogers']);
|
|
240
|
+
}
|
|
241
|
+
onChangeDataType(type) {
|
|
242
|
+
if (type === 'strings') {
|
|
243
|
+
this.data = this.data_2;
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
this.data = this.data_1;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
250
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioDemoComponent, selector: "app-radio-selection-demo", ngImport: i0, template: "<div style=\"display: flex;\">\n <h1>Radio 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 <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-radio-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-radio-selection-input>\n\n<div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Radio Selection - {{ varTypes.value | uppercase }}</h3>\n\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-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-radio-selection-input>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</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 No Validation Required<br>\n Valid {{ selectionControl_1.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_2.reset()\">Reset</button>\n </div>\n <app-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n label=\"Providers\"\n placeholder=\"Placeholder Text\"\n ></app-radio-selection-input>\n <div *ngIf=\"error2.checked\">\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: 2rem;\">\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<br>\n Validation 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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: RadioSelectionInputComponent, selector: "app-radio-selection-input", inputs: ["label", "placeholder", "data"], outputs: ["selectionChange"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }] }); }
|
|
251
|
+
}
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioDemoComponent, decorators: [{
|
|
253
|
+
type: Component,
|
|
254
|
+
args: [{ selector: 'app-radio-selection-demo', template: "<div style=\"display: flex;\">\n <h1>Radio 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 <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-radio-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-radio-selection-input>\n\n<div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Radio Selection - {{ varTypes.value | uppercase }}</h3>\n\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-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-radio-selection-input>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</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 No Validation Required<br>\n Valid {{ selectionControl_1.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_2.reset()\">Reset</button>\n </div>\n <app-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n label=\"Providers\"\n placeholder=\"Placeholder Text\"\n ></app-radio-selection-input>\n <div *ngIf=\"error2.checked\">\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: 2rem;\">\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<br>\n Validation 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" }]
|
|
255
|
+
}], ctorParameters: function () { return []; } });
|
|
256
|
+
|
|
257
|
+
class RadioSelectionInputModule {
|
|
258
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
259
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, declarations: [RadioSelectionInputComponent,
|
|
260
|
+
RadioDemoComponent], imports: [CommonModule,
|
|
261
|
+
FormsModule,
|
|
262
|
+
ReactiveFormsModule,
|
|
263
|
+
MatSliderModule,
|
|
264
|
+
MatButtonModule,
|
|
265
|
+
MatIconModule,
|
|
266
|
+
MatFormFieldModule,
|
|
267
|
+
MatCheckboxModule,
|
|
268
|
+
MatMenuModule,
|
|
269
|
+
MatRadioModule,
|
|
270
|
+
MatInputModule,
|
|
271
|
+
MatAutocompleteModule,
|
|
272
|
+
MatSlideToggleModule,
|
|
273
|
+
MatToolbarModule,
|
|
274
|
+
MatDividerModule,
|
|
275
|
+
MatSelectModule,
|
|
276
|
+
MatOptionModule,
|
|
277
|
+
MatButtonToggleModule,
|
|
278
|
+
RemoveUnderscorePipe], exports: [RadioSelectionInputComponent,
|
|
279
|
+
RadioDemoComponent] }); }
|
|
280
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, imports: [CommonModule,
|
|
281
|
+
FormsModule,
|
|
282
|
+
ReactiveFormsModule,
|
|
283
|
+
MatSliderModule,
|
|
284
|
+
MatButtonModule,
|
|
285
|
+
MatIconModule,
|
|
286
|
+
MatFormFieldModule,
|
|
287
|
+
MatCheckboxModule,
|
|
288
|
+
MatMenuModule,
|
|
289
|
+
MatRadioModule,
|
|
290
|
+
MatInputModule,
|
|
291
|
+
MatAutocompleteModule,
|
|
292
|
+
MatSlideToggleModule,
|
|
293
|
+
MatToolbarModule,
|
|
294
|
+
MatDividerModule,
|
|
295
|
+
MatSelectModule,
|
|
296
|
+
MatOptionModule,
|
|
297
|
+
MatButtonToggleModule] }); }
|
|
298
|
+
}
|
|
299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioSelectionInputModule, decorators: [{
|
|
300
|
+
type: NgModule,
|
|
301
|
+
args: [{
|
|
302
|
+
imports: [
|
|
303
|
+
CommonModule,
|
|
304
|
+
FormsModule,
|
|
305
|
+
ReactiveFormsModule,
|
|
306
|
+
MatSliderModule,
|
|
307
|
+
MatButtonModule,
|
|
308
|
+
MatIconModule,
|
|
309
|
+
MatFormFieldModule,
|
|
310
|
+
MatCheckboxModule,
|
|
311
|
+
MatMenuModule,
|
|
312
|
+
MatRadioModule,
|
|
313
|
+
MatInputModule,
|
|
314
|
+
MatAutocompleteModule,
|
|
315
|
+
MatSlideToggleModule,
|
|
316
|
+
MatToolbarModule,
|
|
317
|
+
MatDividerModule,
|
|
318
|
+
MatSelectModule,
|
|
319
|
+
MatOptionModule,
|
|
320
|
+
MatButtonToggleModule,
|
|
321
|
+
RemoveUnderscorePipe,
|
|
322
|
+
],
|
|
323
|
+
declarations: [
|
|
324
|
+
RadioSelectionInputComponent,
|
|
325
|
+
RadioDemoComponent,
|
|
326
|
+
],
|
|
327
|
+
exports: [
|
|
328
|
+
RadioSelectionInputComponent,
|
|
329
|
+
RadioDemoComponent
|
|
330
|
+
]
|
|
331
|
+
}]
|
|
332
|
+
}] });
|
|
333
|
+
|
|
334
|
+
/*
|
|
335
|
+
* Public API Surface of checkbox-selection-input
|
|
336
|
+
*/
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Generated bundle index. Do not edit.
|
|
340
|
+
*/
|
|
341
|
+
|
|
342
|
+
export { RadioDemoComponent, RadioSelectionInputComponent, RadioSelectionInputModule, RemoveUnderscorePipe, SelectionBasic, SelectionItem };
|
|
343
|
+
//# sourceMappingURL=radio-selection-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-selection-input.mjs","sources":["../../../projects/radio-selection-input/src/lib/models/selection-basic.model.ts","../../../projects/radio-selection-input/src/lib/models/selection-item.model.ts","../../../projects/radio-selection-input/src/lib/models/index.ts","../../../projects/radio-selection-input/src/lib/pipes/remove-underscore.pipe.ts","../../../projects/radio-selection-input/src/lib/radio-selection-input/radio-selection-input.component.ts","../../../projects/radio-selection-input/src/lib/radio-selection-input/radio-selection-input.component.html","../../../projects/radio-selection-input/src/lib/radio-demo/radio-demo.component.ts","../../../projects/radio-selection-input/src/lib/radio-demo/radio-demo.component.html","../../../projects/radio-selection-input/src/lib/checkbox-selection-input.module.ts","../../../projects/radio-selection-input/src/public-api.ts","../../../projects/radio-selection-input/src/radio-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 { NG_VALUE_ACCESSOR, FormBuilder, ControlValueAccessor, AbstractControl, NG_VALIDATORS, ValidationErrors, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { SelectionItem } from '../models/selection-item.model';\n\n@Component({\n selector: 'app-radio-selection-input',\n templateUrl: './radio-selection-input.component.html',\n styleUrls: ['./radio-selection-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioSelectionInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RadioSelectionInputComponent),\n multi: true\n }\n ]\n})\nexport class RadioSelectionInputComponent implements OnInit, ControlValueAccessor {\n\n fb = inject( FormBuilder)\n subscriptions = new Subscription()\n\n selectionControl = this.fb.control<string|null>(null, Validators.required)\n\n @Input() label?: string\n @Input() placeholder?: string\n\n formInitialized = false\n raw: any[] = []\n isObjects = false\n\n private _data: (any|string)[] = []\n @Input() set data(value: any[]) {\n\n this.formInitialized = false\n this.isObjects = this.hasObjects(value)\n this.raw = 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 const selected = (selectedObjects.length === 0) ? null : this.findFirst(selectedObjects)\n\n this.selectionControl.patchValue(selected, { emitEvent: false })\n\n }\n\n get data() {\n return this._data\n }\n\n @Output() selectionChange = new EventEmitter()\n\n onChange: any = () => {}\n onTouch: any = () => {}\n\n isArray = (obj: any) => Array.isArray(obj)\n isObject = (obj: any) => typeof obj === 'object' && obj !== null && !Array.isArray(obj)\n hasObjects = (obj: any) => (this.isArray(obj) && obj.length > 0) ? this.isObject(obj[0]) : false\n\n constructor() { }\n\n ngOnInit() {\n\n this.subscriptions.add(\n this.selectionControl.valueChanges\n .subscribe((data: string|null) => {\n this.onChange(data)\n this.selectionChange.emit(data)\n })\n )\n\n }\n\n ngAfterViewInit(): void {\n this.formInitialized = true\n }\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 writeValue(value: string | string[] | null) {\n\n const selected: string = Array.isArray(value) ? (value.length > 1) ? this.findFirst(value)[0] : [] : value\n\n this.data.map((item) => item.selected = value && value.includes(item.value) ? true : false);\n\n if (selected !== null) {\n if (!value) return\n this.selectionControl.patchValue(selected, { emitEvent: false })\n this.selectionControl.markAsDirty({ onlySelf: true })\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 if(!isRequired) this.selectionControl.clearValidators()\n const errors = (isRequired && !this.selectionControl.valid) ? { 'required': false } : null\n\n return errors\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 if(isDisabled) {\n this.selectionControl.disable()\n } else {\n this.selectionControl.enable()\n }\n\n }\n\n}\n\n","<div style=\"display: flex; flex-direction: column;\">\n <mat-label style=\"padding-left: 1rem; font-size: larger;\">\n {{ label }}\n </mat-label>\n <mat-label style=\"padding-left: 1rem; color: grey;\">\n {{ placeholder }}\n </mat-label>\n <ng-container *ngIf=\"data.length > 0; else NODATA\">\n <mat-radio-group [formControl]=\"selectionControl\" class=\"container\">\n <mat-radio-button\n class=\"item\"\n color=\"primary\"\n *ngFor=\"let option of data\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{option.value}}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-template #NODATA>\n <div class=\"wrapper\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'app-radio-selection-demo',\n templateUrl: './radio-demo.component.html',\n styleUrls: ['./radio-demo.component.scss']\n})\nexport class RadioDemoComponent 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' }\n ]\n\n data_2 = ['Telus', 'AT&T', 'Bell', 'Rogers']\n\n data: any = this.data_2\n\n selectionControl_1 = this.fb.control<any[]|null>(null)\n selectionControl_2 = this.fb.control<any[]|null>(null, Validators.required)\n\n changeDetection_1 = this.fb.control<any[]|null>(null)\n changeDetection_2 = this.fb.control<any[]|null>(null)\n\n constructor() { }\n\n ngOnInit() {\n\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 console.log('VALID:', this.selectionControl_2.valid)\n if(this.changeDetection_2.value) console.log('CHANGE:',data)\n })\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 onPerformPatch() {\n this.selectionControl_1.patchValue(['Bell'])\n this.selectionControl_2.patchValue(['Rogers'])\n }\n\n onChangeDataType(type: string) {\n if(type === 'strings') {\n this.data = this.data_2\n } else {\n this.data = this.data_1\n }\n }\n\n}\n","<div style=\"display: flex;\">\n <h1>Radio 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 <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-radio-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-radio-selection-input>\n\n<div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Radio Selection - {{ varTypes.value | uppercase }}</h3>\n\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-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-radio-selection-input>\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</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 No Validation Required<br>\n Valid {{ selectionControl_1.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_2.reset()\">Reset</button>\n </div>\n <app-radio-selection-input\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n label=\"Providers\"\n placeholder=\"Placeholder Text\"\n ></app-radio-selection-input>\n <div *ngIf=\"error2.checked\">\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: 2rem;\">\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<br>\n Validation 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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\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 { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { RemoveUnderscorePipe, RadioSelectionInputComponent, RadioDemoComponent } from '../public-api';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatSliderModule,\n MatButtonModule,\n MatIconModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatMenuModule,\n MatRadioModule,\n MatInputModule,\n MatAutocompleteModule,\n MatSlideToggleModule,\n MatToolbarModule,\n MatDividerModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonToggleModule,\n RemoveUnderscorePipe,\n ],\n declarations: [\n RadioSelectionInputComponent,\n RadioDemoComponent,\n ],\n exports: [\n RadioSelectionInputComponent,\n RadioDemoComponent\n ]\n})\nexport class RadioSelectionInputModule { }\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/radio-demo/radio-demo.component';\nexport * from './lib/radio-selection-input/radio-selection-input.component';\n\nexport * from './lib/checkbox-selection-input.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i8.RadioSelectionInputComponent"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./radio-selection-input/radio-selection-input.component";
|
|
3
|
+
import * as i2 from "./radio-demo/radio-demo.component";
|
|
4
|
+
import * as i3 from "@angular/common";
|
|
5
|
+
import * as i4 from "@angular/forms";
|
|
6
|
+
import * as i5 from "@angular/material/slider";
|
|
7
|
+
import * as i6 from "@angular/material/button";
|
|
8
|
+
import * as i7 from "@angular/material/icon";
|
|
9
|
+
import * as i8 from "@angular/material/form-field";
|
|
10
|
+
import * as i9 from "@angular/material/checkbox";
|
|
11
|
+
import * as i10 from "@angular/material/menu";
|
|
12
|
+
import * as i11 from "@angular/material/radio";
|
|
13
|
+
import * as i12 from "@angular/material/input";
|
|
14
|
+
import * as i13 from "@angular/material/autocomplete";
|
|
15
|
+
import * as i14 from "@angular/material/slide-toggle";
|
|
16
|
+
import * as i15 from "@angular/material/toolbar";
|
|
17
|
+
import * as i16 from "@angular/material/divider";
|
|
18
|
+
import * as i17 from "@angular/material/select";
|
|
19
|
+
import * as i18 from "@angular/material/core";
|
|
20
|
+
import * as i19 from "@angular/material/button-toggle";
|
|
21
|
+
import * as i20 from "./pipes/remove-underscore.pipe";
|
|
22
|
+
export declare class RadioSelectionInputModule {
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RadioSelectionInputModule, never>;
|
|
24
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<RadioSelectionInputModule, [typeof i1.RadioSelectionInputComponent, typeof i2.RadioDemoComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.MatSliderModule, typeof i6.MatButtonModule, typeof i7.MatIconModule, typeof i8.MatFormFieldModule, typeof i9.MatCheckboxModule, typeof i10.MatMenuModule, typeof i11.MatRadioModule, typeof i12.MatInputModule, typeof i13.MatAutocompleteModule, typeof i14.MatSlideToggleModule, typeof i15.MatToolbarModule, typeof i16.MatDividerModule, typeof i17.MatSelectModule, typeof i18.MatOptionModule, typeof i19.MatButtonToggleModule, typeof i20.RemoveUnderscorePipe], [typeof i1.RadioSelectionInputComponent, typeof i2.RadioDemoComponent]>;
|
|
25
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<RadioSelectionInputModule>;
|
|
26
|
+
}
|
|
@@ -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,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
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class RadioDemoComponent 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
|
+
data: any;
|
|
24
|
+
selectionControl_1: import("@angular/forms").FormControl<any[] | null>;
|
|
25
|
+
selectionControl_2: import("@angular/forms").FormControl<any[] | null>;
|
|
26
|
+
changeDetection_1: import("@angular/forms").FormControl<any[] | null>;
|
|
27
|
+
changeDetection_2: import("@angular/forms").FormControl<any[] | null>;
|
|
28
|
+
constructor();
|
|
29
|
+
ngOnInit(): void;
|
|
30
|
+
onDisabled_1(disable: boolean): void;
|
|
31
|
+
onDisabled_2(disable: boolean): void;
|
|
32
|
+
onPerformPatch(): void;
|
|
33
|
+
onChangeDataType(type: string): void;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RadioDemoComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioDemoComponent, "app-radio-selection-demo", never, {}, {}, never, never, false, never>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder, ControlValueAccessor, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
3
|
+
import { Subscription } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class RadioSelectionInputComponent implements OnInit, ControlValueAccessor {
|
|
6
|
+
fb: FormBuilder;
|
|
7
|
+
subscriptions: Subscription;
|
|
8
|
+
selectionControl: import("@angular/forms").FormControl<string | null>;
|
|
9
|
+
label?: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
formInitialized: boolean;
|
|
12
|
+
raw: any[];
|
|
13
|
+
isObjects: boolean;
|
|
14
|
+
private _data;
|
|
15
|
+
set data(value: any[]);
|
|
16
|
+
get data(): any[];
|
|
17
|
+
selectionChange: EventEmitter<any>;
|
|
18
|
+
onChange: any;
|
|
19
|
+
onTouch: any;
|
|
20
|
+
isArray: (obj: any) => boolean;
|
|
21
|
+
isObject: (obj: any) => boolean;
|
|
22
|
+
hasObjects: (obj: any) => boolean;
|
|
23
|
+
constructor();
|
|
24
|
+
ngOnInit(): void;
|
|
25
|
+
ngAfterViewInit(): void;
|
|
26
|
+
findFirst(obj: string[]): any;
|
|
27
|
+
writeValue(value: string | string[] | null): void;
|
|
28
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
29
|
+
registerOnChange(fn: any): void;
|
|
30
|
+
registerOnTouched(fn: any): void;
|
|
31
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RadioSelectionInputComponent, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioSelectionInputComponent, "app-radio-selection-input", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, ["*"], false, never>;
|
|
34
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "radio-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/radio-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/radio-selection-input.mjs",
|
|
21
|
+
"esm": "./esm2022/radio-selection-input.mjs",
|
|
22
|
+
"default": "./fesm2022/radio-selection-input.mjs"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './lib/models/index';
|
|
2
|
+
export * from './lib/pipes/remove-underscore.pipe';
|
|
3
|
+
export * from './lib/radio-demo/radio-demo.component';
|
|
4
|
+
export * from './lib/radio-selection-input/radio-selection-input.component';
|
|
5
|
+
export * from './lib/checkbox-selection-input.module';
|
|
Binary file
|