iss-ctrl 0.0.2-beta → 0.0.2-beta-1

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.
Files changed (60) hide show
  1. package/README.md +17 -15
  2. package/components/autocomplete/autocomplete.component.d.ts +3 -3
  3. package/components/base-ctrl.d.ts +1 -3
  4. package/components/checkbox/checkbox.component.d.ts +3 -3
  5. package/components/chips/chips.component.d.ts +11 -3
  6. package/components/ctrl-array/ctrl-array.component.d.ts +3 -3
  7. package/components/date-picker/date-picker.component.d.ts +3 -3
  8. package/components/date-range-picker/date-range-picker.component.d.ts +3 -3
  9. package/components/datetime-picker/datetime-picker.component.d.ts +3 -3
  10. package/components/datetime-range-picker/datetime-range-picker.component.d.ts +3 -3
  11. package/components/file-picker/file-picker.component.d.ts +3 -3
  12. package/components/input/input.component.d.ts +15 -4
  13. package/components/mobile/mobile.component.d.ts +3 -3
  14. package/components/note/note.component.d.ts +3 -3
  15. package/components/plate/PLATE_LETTERS.d.ts +8 -0
  16. package/components/{plate-number/plate-number.component.d.ts → plate/plate.component.d.ts} +4 -5
  17. package/components/radio/radio.component.d.ts +3 -3
  18. package/components/select/select.component.d.ts +8 -6
  19. package/components/slide-toggle/slide-toggle.component.d.ts +3 -3
  20. package/components/textarea/textarea.component.d.ts +3 -3
  21. package/components/time-picker/time-picker.component.d.ts +3 -3
  22. package/components/toggle-button/toggle-button.component.d.ts +3 -3
  23. package/esm2022/components/autocomplete/autocomplete.component.mjs +7 -7
  24. package/esm2022/components/base-ctrl.mjs +7 -7
  25. package/esm2022/components/checkbox/checkbox.component.mjs +7 -7
  26. package/esm2022/components/chips/chips.component.mjs +72 -12
  27. package/esm2022/components/ctrl-array/ctrl-array.component.mjs +7 -7
  28. package/esm2022/components/date-picker/date-picker.component.mjs +9 -9
  29. package/esm2022/components/date-range-picker/date-range-picker.component.mjs +7 -7
  30. package/esm2022/components/datetime-picker/datetime-picker.component.mjs +12 -12
  31. package/esm2022/components/datetime-range-picker/datetime-range-picker.component.mjs +7 -7
  32. package/esm2022/components/file-picker/file-picker.component.mjs +7 -7
  33. package/esm2022/components/hints/hints.component.mjs +3 -3
  34. package/esm2022/components/input/input.component.mjs +43 -18
  35. package/esm2022/components/mobile/mobile.component.mjs +9 -9
  36. package/esm2022/components/note/note.component.mjs +7 -7
  37. package/esm2022/components/plate/PLATE_LETTERS.mjs +20 -0
  38. package/esm2022/components/plate/plate.component.mjs +101 -0
  39. package/esm2022/components/radio/radio.component.mjs +7 -7
  40. package/esm2022/components/select/select.component.mjs +65 -32
  41. package/esm2022/components/slide-toggle/slide-toggle.component.mjs +7 -7
  42. package/esm2022/components/textarea/textarea.component.mjs +23 -11
  43. package/esm2022/components/time-picker/time-picker.component.mjs +9 -9
  44. package/esm2022/components/toggle-button/toggle-button.component.mjs +7 -7
  45. package/esm2022/interfaces/hint-alignment.type.mjs +2 -0
  46. package/esm2022/interfaces/hint.interface.mjs +1 -1
  47. package/esm2022/interfaces/option.interface.mjs +1 -1
  48. package/esm2022/pipes/arabic-number.pipe.mjs +23 -0
  49. package/esm2022/pipes/plate-letter.pipe.mjs +22 -0
  50. package/esm2022/public-api.mjs +2 -2
  51. package/fesm2022/iss-ctrl.mjs +361 -195
  52. package/fesm2022/iss-ctrl.mjs.map +1 -1
  53. package/interfaces/hint-alignment.type.d.ts +1 -0
  54. package/interfaces/hint.interface.d.ts +2 -0
  55. package/interfaces/option.interface.d.ts +1 -0
  56. package/package.json +1 -1
  57. package/pipes/arabic-number.pipe.d.ts +7 -0
  58. package/pipes/plate-letter.pipe.d.ts +7 -0
  59. package/public-api.d.ts +1 -1
  60. package/esm2022/components/plate-number/plate-number.component.mjs +0 -114
package/README.md CHANGED
@@ -1,24 +1,26 @@
1
- # IssCtrl
1
+ # iss-Ctrl
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.0.0.
4
3
 
5
- ## Code scaffolding
4
+ ## Usage notes
6
5
 
7
- Run `ng generate component component-name --project iss-ctrl` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project iss-ctrl`.
8
- > Note: Don't forget to add `--project iss-ctrl` or else it will be added to the default project in your `angular.json` file.
6
+ 1. Add the below code to main.ts file.
9
7
 
10
- ## Build
8
+ ```
9
+ import {applyPolyfills, defineCustomElements} from "basic-ui-components/loader";
11
10
 
12
- Run `ng build iss-ctrl` to build the project. The build artifacts will be stored in the `dist/` directory.
11
+ applyPolyfills().then(() => { defineCustomElements(window).then(); });
12
+ ```
13
+ 2. Add `provideAnimations()` in `app.config.ts` providers array.
13
14
 
14
- ## Publishing
15
+ 3. Add the material style to angular json.
15
16
 
16
- After building your library with `ng build iss-ctrl`, go to the dist folder `cd dist/iss-ctrl` and run `npm publish`.
17
+ ```
18
+ "@angular/material/prebuilt-themes/indigo-pink.css"
19
+ ```
17
20
 
18
- ## Running unit tests
21
+ 4. Import needed styles in the beginning of styles.scss file.
19
22
 
20
- Run `ng test iss-ctrl` 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.dev/tools/cli) page.
23
+ ```
24
+ @import 'basic-ui-components/dist/assets/scss/base';
25
+ @import 'basic-ui-components/dist/assets/scss/bootstrap';
26
+ ```
@@ -1,6 +1,6 @@
1
1
  import { BaseCtrl } from "../base-ctrl";
2
2
  import * as i0 from "@angular/core";
3
- export declare class AutocompleteComponent extends BaseCtrl {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "iss-ctrl-autocomplete", never, {}, {}, never, never, true, never>;
3
+ export declare class AutocompleteControl extends BaseCtrl {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteControl, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteControl, "iss-ctrl-autocomplete", never, {}, {}, never, never, true, never>;
6
6
  }
@@ -1,10 +1,9 @@
1
1
  import { InputSignal, InputSignalWithTransform, OutputEmitterRef, WritableSignal } from "@angular/core";
2
- import { AbstractControl, ControlContainer, ControlValueAccessor, FormControl, ValidationErrors, Validator } from "@angular/forms";
2
+ import { AbstractControl, ControlValueAccessor, FormControl, ValidationErrors, Validator } from "@angular/forms";
3
3
  import { Hint } from "../interfaces/hint.interface";
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class BaseCtrl implements ControlValueAccessor, Validator {
6
6
  #private;
7
- ctrlContainer: ControlContainer;
8
7
  formControlName: InputSignal<string>;
9
8
  min: InputSignal<number | string | null>;
10
9
  max: InputSignal<number | string | null>;
@@ -16,7 +15,6 @@ export declare class BaseCtrl implements ControlValueAccessor, Validator {
16
15
  onChange: OutputEmitterRef<string | FormData>;
17
16
  protected touched: WritableSignal<boolean>;
18
17
  protected ctrl: FormControl;
19
- get hostCtrl(): AbstractControl | null | undefined;
20
18
  registerOnChange(fn: () => {}): void;
21
19
  registerOnTouched(fn: () => {}): void;
22
20
  setDisabledState(isDisabled: boolean): void;
@@ -2,7 +2,7 @@ import { InputSignal, WritableSignal } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
3
  import { Option } from "../../interfaces/option.interface";
4
4
  import * as i0 from "@angular/core";
5
- export declare class CheckboxComponent extends BaseCtrl {
5
+ export declare class CheckboxControl extends BaseCtrl {
6
6
  #private;
7
7
  options: InputSignal<Option[]>;
8
8
  selectedOptions: WritableSignal<Map<string, Option>>;
@@ -11,6 +11,6 @@ export declare class CheckboxComponent extends BaseCtrl {
11
11
  onCheckboxChange(checked: boolean, value: string): void;
12
12
  stringifySelectedOptions(): string | null;
13
13
  getEmissionValue(options: any): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "iss-ctrl-checkbox", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxControl, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxControl, "iss-ctrl-checkbox", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
16
16
  }
@@ -1,6 +1,14 @@
1
+ import { OnDestroy, WritableSignal } from "@angular/core";
1
2
  import { BaseCtrl } from "../base-ctrl";
3
+ import { MatChipInputEvent } from "@angular/material/chips";
2
4
  import * as i0 from "@angular/core";
3
- export declare class ChipsComponent extends BaseCtrl {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<ChipsComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<ChipsComponent, "iss-ctrl-chips", never, {}, {}, never, never, true, never>;
5
+ export declare class ChipsControl extends BaseCtrl implements OnDestroy {
6
+ #private;
7
+ readonly keywords: WritableSignal<string[]>;
8
+ writeValue(value: string | null): void;
9
+ remove(keyword: string): void;
10
+ add(event: MatChipInputEvent): void;
11
+ ngOnDestroy(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChipsControl, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChipsControl, "iss-ctrl-chips", never, {}, {}, never, never, true, never>;
6
14
  }
@@ -1,6 +1,6 @@
1
1
  import { BaseCtrl } from "../base-ctrl";
2
2
  import * as i0 from "@angular/core";
3
- export declare class CtrlArrayComponent extends BaseCtrl {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<CtrlArrayComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<CtrlArrayComponent, "iss-ctrl-ctrl-array", never, {}, {}, never, never, true, never>;
3
+ export declare class CtrlArrayControl extends BaseCtrl {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<CtrlArrayControl, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<CtrlArrayControl, "iss-ctrl-ctrl-array", never, {}, {}, never, never, true, never>;
6
6
  }
@@ -3,13 +3,13 @@ import { BaseCtrl } from "../base-ctrl";
3
3
  import { Validator } from "@angular/forms";
4
4
  import { MatDatepickerInputEvent } from "@angular/material/datepicker";
5
5
  import * as i0 from "@angular/core";
6
- export declare class DatePickerComponent extends BaseCtrl implements Validator {
6
+ export declare class DatePickerControl extends BaseCtrl implements Validator {
7
7
  #private;
8
8
  disabledDays: InputSignal<number[]>;
9
9
  minDate: InputSignal<Date | null>;
10
10
  maxDate: InputSignal<Date | null>;
11
11
  protected calendarDaysFilter: (d: Date | null) => boolean;
12
12
  protected emit($event: MatDatepickerInputEvent<any>): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "iss-ctrl-date-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerControl, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerControl, "iss-ctrl-date-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
15
  }
@@ -3,7 +3,7 @@ import { FormGroup } from "@angular/forms";
3
3
  import { BaseCtrl } from "../base-ctrl";
4
4
  import { DateRangeEmissionObject } from "../../interfaces/date-range-emission-object";
5
5
  import * as i0 from "@angular/core";
6
- export declare class DateRangePickerComponent extends BaseCtrl implements OnInit, OnDestroy {
6
+ export declare class DateRangePickerControl extends BaseCtrl implements OnInit, OnDestroy {
7
7
  #private;
8
8
  disabledDays: InputSignal<number[]>;
9
9
  minDate: InputSignal<Date | null>;
@@ -14,6 +14,6 @@ export declare class DateRangePickerComponent extends BaseCtrl implements OnInit
14
14
  writeValue(value: string | FormData | null): void;
15
15
  ngOnDestroy(): void;
16
16
  protected calendarDaysFilter: (d: Date | null) => boolean;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerComponent, "iss-ctrl-date-range-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "onDateRangeObjectChange": "onDateRangeObjectChange"; }, never, never, true, never>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerControl, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerControl, "iss-ctrl-date-range-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "onDateRangeObjectChange": "onDateRangeObjectChange"; }, never, never, true, never>;
19
19
  }
@@ -2,13 +2,13 @@ import { InputSignal, OnDestroy } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
3
  import { FormGroup } from "@angular/forms";
4
4
  import * as i0 from "@angular/core";
5
- export declare class DatetimePickerComponent extends BaseCtrl implements OnDestroy {
5
+ export declare class DatetimePickerControl extends BaseCtrl implements OnDestroy {
6
6
  #private;
7
7
  disabledDays: InputSignal<number[]>;
8
8
  minDate: InputSignal<Date | null>;
9
9
  maxDate: InputSignal<Date | null>;
10
10
  datetimePicker: FormGroup;
11
11
  ngOnDestroy(): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<DatetimePickerComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePickerComponent, "iss-ctrl-datetime-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatetimePickerControl, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePickerControl, "iss-ctrl-datetime-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
14
  }
@@ -1,6 +1,6 @@
1
1
  import { BaseCtrl } from "../base-ctrl";
2
2
  import * as i0 from "@angular/core";
3
- export declare class DatetimeRangePickerComponent extends BaseCtrl {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<DatetimeRangePickerComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<DatetimeRangePickerComponent, "iss-ctrl-datetime-range-picker", never, {}, {}, never, never, true, never>;
3
+ export declare class DatetimeRangePickerControl extends BaseCtrl {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatetimeRangePickerControl, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatetimeRangePickerControl, "iss-ctrl-datetime-range-picker", never, {}, {}, never, never, true, never>;
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import { InputSignal, OnDestroy, WritableSignal } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
3
  import * as i0 from "@angular/core";
4
- export declare class FilePickerComponent extends BaseCtrl implements OnDestroy {
4
+ export declare class FilePickerControl extends BaseCtrl implements OnDestroy {
5
5
  #private;
6
6
  accept: InputSignal<string | undefined>;
7
7
  showDownloadButton: InputSignal<boolean>;
@@ -12,6 +12,6 @@ export declare class FilePickerComponent extends BaseCtrl implements OnDestroy {
12
12
  protected onDownload($event: any): void;
13
13
  protected onDelete(index: number): void;
14
14
  protected captureFile($event: FileList): void;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<FilePickerComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<FilePickerComponent, "iss-ctrl-file-picker", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; "isSignal": true; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilePickerControl, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilePickerControl, "iss-ctrl-file-picker", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; "isSignal": true; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
17
17
  }
@@ -1,8 +1,19 @@
1
- import { InputSignal } from "@angular/core";
1
+ import { InputSignal, OnDestroy, OutputEmitterRef } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
+ import { Validator } from "@angular/forms";
3
4
  import * as i0 from "@angular/core";
4
- export declare class InputComponent extends BaseCtrl {
5
+ export declare class InputControl extends BaseCtrl implements Validator, OnDestroy {
6
+ #private;
5
7
  type: InputSignal<string>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "iss-ctrl-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
+ prefixIcon: InputSignal<string>;
9
+ prefixText: InputSignal<string>;
10
+ suffixIcon: InputSignal<string>;
11
+ suffixText: InputSignal<string>;
12
+ onPrefixClick: OutputEmitterRef<string>;
13
+ onSuffixClick: OutputEmitterRef<string>;
14
+ emitSuffixClick(): void;
15
+ emitPrefixClick(): void;
16
+ ngOnDestroy(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputControl, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputControl, "iss-ctrl-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "prefixText": { "alias": "prefixText"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "suffixText": { "alias": "suffixText"; "required": false; "isSignal": true; }; }, { "onPrefixClick": "onPrefixClick"; "onSuffixClick": "onSuffixClick"; }, never, ["[issPrefix]", "[issSuffix]"], true, never>;
8
19
  }
@@ -6,7 +6,7 @@ import { PhoneService } from "./phone.service";
6
6
  import { ISO2 } from "../../interfaces/iso2.interface";
7
7
  import * as i0 from "@angular/core";
8
8
  export declare const DEFAULT_COUNTRY: Country;
9
- export declare class MobileComponent extends BaseCtrl implements Validator {
9
+ export declare class MobileControl extends BaseCtrl implements Validator {
10
10
  #private;
11
11
  phoneService: PhoneService;
12
12
  isOpen: WritableSignal<boolean>;
@@ -21,6 +21,6 @@ export declare class MobileComponent extends BaseCtrl implements Validator {
21
21
  protected onSelectCountry(country: Country): void;
22
22
  protected closeCountryCodeMenu(): void;
23
23
  protected toggleCountryCodeMenu(): void;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<MobileComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<MobileComponent, "iss-ctrl-mobile", never, { "preferredCountries": { "alias": "preferredCountries"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<MobileControl, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<MobileControl, "iss-ctrl-mobile", never, { "preferredCountries": { "alias": "preferredCountries"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
26
26
  }
@@ -1,6 +1,6 @@
1
1
  import { BaseCtrl } from "../base-ctrl";
2
2
  import * as i0 from "@angular/core";
3
- export declare class NoteComponent extends BaseCtrl {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<NoteComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<NoteComponent, "iss-ctrl-note", never, {}, {}, never, never, true, never>;
3
+ export declare class NoteControl extends BaseCtrl {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<NoteControl, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<NoteControl, "iss-ctrl-note", never, {}, {}, never, never, true, never>;
6
6
  }
@@ -0,0 +1,8 @@
1
+ export declare const PLATE_LETTERS: PlateLetterOption[];
2
+ export interface PlateLetterOption {
3
+ label: {
4
+ ar: string;
5
+ en: string;
6
+ };
7
+ value: string;
8
+ }
@@ -1,16 +1,15 @@
1
1
  import { OnDestroy } from "@angular/core";
2
2
  import { FormGroup } from "@angular/forms";
3
3
  import { BaseCtrl } from "../base-ctrl";
4
- import { Option } from "../../interfaces/option.interface";
5
4
  import * as i0 from "@angular/core";
6
- export declare class PlateNumberComponent extends BaseCtrl implements OnDestroy {
5
+ export declare class PlateControl extends BaseCtrl implements OnDestroy {
7
6
  #private;
8
7
  protected plate: FormGroup;
9
- protected options: Option[];
10
8
  get letterControls(): import("@angular/forms").AbstractControl<any, any>[];
11
9
  get numberControls(): import("@angular/forms").AbstractControl<any, any>[];
12
10
  writeValue(value: string | null): void;
13
11
  ngOnDestroy(): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<PlateNumberComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<PlateNumberComponent, "iss-ctrl-plate-number", never, {}, {}, never, never, true, never>;
12
+ protected readonly PLATE_LETTERS: import("./PLATE_LETTERS").PlateLetterOption[];
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<PlateControl, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<PlateControl, "iss-ctrl-plate-number", never, {}, {}, never, never, true, never>;
16
15
  }
@@ -2,10 +2,10 @@ import { InputSignal } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
3
  import { Option } from "../../interfaces/option.interface";
4
4
  import * as i0 from "@angular/core";
5
- export declare class RadioComponent extends BaseCtrl {
5
+ export declare class RadioControl extends BaseCtrl {
6
6
  options: InputSignal<Option[]>;
7
7
  writeValue(value: string | null): void;
8
8
  onRadioChange(value: string): void;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "iss-ctrl-radio", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioControl, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioControl, "iss-ctrl-radio", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
11
  }
@@ -2,19 +2,21 @@ import { InputSignal, Signal, WritableSignal } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
3
  import { Option } from "../../interfaces/option.interface";
4
4
  import * as i0 from "@angular/core";
5
- export declare class ISSCtrlSelectComponent extends BaseCtrl {
5
+ export declare class SelectControl extends BaseCtrl {
6
6
  #private;
7
7
  selectedOptions: WritableSignal<Map<string, Option>>;
8
8
  options: InputSignal<Option[]>;
9
+ height: InputSignal<string>;
9
10
  query: Signal<string>;
10
11
  filteredOptions: Signal<Option[]>;
12
+ loading: InputSignal<boolean>;
13
+ protected allSelected: WritableSignal<boolean>;
11
14
  writeValue(value: string | null): void;
12
- stringifySelectedOptions(): string | null;
13
- getEmissionValue($event: any): void;
15
+ captureValue($event: any): void;
14
16
  displayFn: (options: Option | Option[]) => string;
15
17
  removeFromSelectedOptionsMap(option: Option): void;
16
- addToSelectedOptionsMap(option: any): void;
17
18
  clearSelection(): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<ISSCtrlSelectComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<ISSCtrlSelectComponent, "iss-ctrl-select", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
19
+ toggleAllSelection(): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectControl, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectControl, "iss-ctrl-select", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
22
  }
@@ -1,7 +1,7 @@
1
1
  import { BaseCtrl } from "../base-ctrl";
2
2
  import * as i0 from "@angular/core";
3
- export declare class SlideToggleComponent extends BaseCtrl {
3
+ export declare class SlideToggleControl extends BaseCtrl {
4
4
  onSlideToggleChange(checked: boolean): void;
5
- static ɵfac: i0.ɵɵFactoryDeclaration<SlideToggleComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<SlideToggleComponent, "iss-ctrl-slide-toggle", never, {}, {}, never, never, true, never>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<SlideToggleControl, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<SlideToggleControl, "iss-ctrl-slide-toggle", never, {}, {}, never, never, true, never>;
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { BaseCtrl } from "../base-ctrl";
2
2
  import * as i0 from "@angular/core";
3
- export declare class TextareaComponent extends BaseCtrl {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<TextareaComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "iss-ctrl-textarea", never, {}, {}, never, never, true, never>;
3
+ export declare class TextareaControl extends BaseCtrl {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextareaControl, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextareaControl, "iss-ctrl-textarea", never, {}, {}, never, never, true, never>;
6
6
  }
@@ -2,7 +2,7 @@ import { OnDestroy, WritableSignal } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
3
  import { AbstractControl, FormGroup, ValidationErrors } from "@angular/forms";
4
4
  import * as i0 from "@angular/core";
5
- export declare class TimePickerComponent extends BaseCtrl implements OnDestroy {
5
+ export declare class TimePickerControl extends BaseCtrl implements OnDestroy {
6
6
  #private;
7
7
  isOpen: WritableSignal<boolean>;
8
8
  timePicker: FormGroup;
@@ -14,6 +14,6 @@ export declare class TimePickerComponent extends BaseCtrl implements OnDestroy {
14
14
  togglePickerMenu(): void;
15
15
  close(): void;
16
16
  validate(control: AbstractControl): ValidationErrors | null;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerComponent, "iss-ctrl-time-picker", never, {}, {}, never, never, true, never>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerControl, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerControl, "iss-ctrl-time-picker", never, {}, {}, never, never, true, never>;
19
19
  }
@@ -2,7 +2,7 @@ import { InputSignal, WritableSignal } from "@angular/core";
2
2
  import { BaseCtrl } from "../base-ctrl";
3
3
  import { Option } from "../../interfaces/option.interface";
4
4
  import * as i0 from "@angular/core";
5
- export declare class ToggleButtonComponent extends BaseCtrl {
5
+ export declare class ToggleButtonControl extends BaseCtrl {
6
6
  #private;
7
7
  options: InputSignal<Option[]>;
8
8
  selectedOptions: WritableSignal<Map<string, Option>>;
@@ -11,6 +11,6 @@ export declare class ToggleButtonComponent extends BaseCtrl {
11
11
  onToggleButtonChange(checked: boolean, value: string): void;
12
12
  stringifySelectedOptions(): string | null;
13
13
  getEmissionValue(options: any): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<ToggleButtonComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<ToggleButtonComponent, "iss-ctrl-toggle-button", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggleButtonControl, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToggleButtonControl, "iss-ctrl-toggle-button", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
16
16
  }
@@ -2,16 +2,16 @@ import { Component } from "@angular/core";
2
2
  import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
3
  import { BaseCtrl } from "../base-ctrl";
4
4
  import * as i0 from "@angular/core";
5
- export class AutocompleteComponent extends BaseCtrl {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: AutocompleteComponent, isStandalone: true, selector: "iss-ctrl-autocomplete", providers: [
8
- { provide: NG_VALUE_ACCESSOR, useExisting: AutocompleteComponent, multi: true }
5
+ export class AutocompleteControl extends BaseCtrl {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AutocompleteControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: AutocompleteControl, isStandalone: true, selector: "iss-ctrl-autocomplete", providers: [
8
+ { provide: NG_VALUE_ACCESSOR, useExisting: AutocompleteControl, multi: true }
9
9
  ], usesInheritance: true, ngImport: i0, template: "<p>autocomplete works!</p>\r\n", styles: [""] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AutocompleteControl, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: "iss-ctrl-autocomplete", standalone: true, imports: [], providers: [
14
- { provide: NG_VALUE_ACCESSOR, useExisting: AutocompleteComponent, multi: true }
14
+ { provide: NG_VALUE_ACCESSOR, useExisting: AutocompleteControl, multi: true }
15
15
  ], template: "<p>autocomplete works!</p>\r\n" }]
16
16
  }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lzcy1jdHJsL3NyYy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7O0FBWXRDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxRQUFROzhHQUF0QyxxQkFBcUI7a0dBQXJCLHFCQUFxQixvRUFKckI7WUFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztTQUM5RSxpRENaSCxnQ0FDQTs7MkZEYWEscUJBQXFCO2tCQVZqQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsRUFBRSxhQUdBO3dCQUNULEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztxQkFDOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7QmFzZUN0cmx9IGZyb20gXCIuLi9iYXNlLWN0cmxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImlzcy1jdHJsLWF1dG9jb21wbGV0ZVwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogQXV0b2NvbXBsZXRlQ29tcG9uZW50LCBtdWx0aTogdHJ1ZX1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ3RybCB7XHJcblxyXG59XHJcbiIsIjxwPmF1dG9jb21wbGV0ZSB3b3JrcyE8L3A+XHJcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lzcy1jdHJsL3NyYy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7O0FBWXRDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxRQUFROzhHQUFwQyxtQkFBbUI7a0dBQW5CLG1CQUFtQixvRUFKbkI7WUFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztTQUM1RSxpRENaSCxnQ0FDQTs7MkZEYWEsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsRUFBRSxhQUdBO3dCQUNULEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztxQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7QmFzZUN0cmx9IGZyb20gXCIuLi9iYXNlLWN0cmxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImlzcy1jdHJsLWF1dG9jb21wbGV0ZVwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogQXV0b2NvbXBsZXRlQ29udHJvbCwgbXVsdGk6IHRydWV9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29udHJvbCBleHRlbmRzIEJhc2VDdHJsIHtcclxuXHJcbn1cclxuIiwiPHA+YXV0b2NvbXBsZXRlIHdvcmtzITwvcD5cclxuIl19
@@ -1,9 +1,9 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, input, output, signal } from "@angular/core";
2
- import { ControlContainer, FormControl } from "@angular/forms";
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, input, output, signal } from "@angular/core";
2
+ import { FormControl } from "@angular/forms";
3
3
  import * as i0 from "@angular/core";
4
4
  export class BaseCtrl {
5
5
  constructor() {
6
- this.ctrlContainer = inject(ControlContainer);
6
+ /*ctrlContainer: ControlContainer = inject(ControlContainer);*/
7
7
  this.formControlName = input("");
8
8
  this.min = input(null);
9
9
  this.max = input(null);
@@ -20,9 +20,9 @@ export class BaseCtrl {
20
20
  this.onTouch = () => { };
21
21
  this.onPropagateValue = (_) => { };
22
22
  }
23
- get hostCtrl() {
24
- return this.ctrlContainer.control?.get(this.formControlName());
25
- }
23
+ /*get hostCtrl(): AbstractControl | null | undefined {
24
+ return this.ctrlContainer.control?.get(this.formControlName());
25
+ }*/
26
26
  registerOnChange(fn) {
27
27
  this.onPropagateValue = fn;
28
28
  }
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
90
90
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
91
91
  }]
92
92
  }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jdHJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvYmFzZS1jdHJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLGdCQUFnQixFQUF3QixXQUFXLEVBQThCLE1BQU0sZ0JBQWdCLENBQUM7O0FBUWpJLE1BQU0sT0FBTyxRQUFRO0lBTHJCO1FBTUUsa0JBQWEsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0Qsb0JBQWUsR0FBd0IsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELFFBQUcsR0FBd0MsS0FBSyxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUMvRSxRQUFHLEdBQXdDLEtBQUssQ0FBeUIsSUFBSSxDQUFDLENBQUM7UUFDL0UsYUFBUSxHQUE0QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsYUFBUSxHQUF3RCxLQUFLLENBQTRCLEtBQUssRUFBRTtZQUN0RyxTQUFTLEVBQUUsQ0FBQyxDQUFtQixFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1NBQ3pFLENBQUMsQ0FBQztRQUNILGdCQUFXLEdBQXdCLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNyRCxVQUFLLEdBQXdCLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvQyxjQUFTLEdBQStCLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDbkUsYUFBUSxHQUF3QyxNQUFNLEVBQUUsQ0FBQztRQUMvQyxZQUFPLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxTQUFJLEdBQWdCLElBQUksV0FBVyxDQUFD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LFFBQVEsRUFBRSxFQUFFO29CQUNaLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIElucHV0U2lnbmFsLFxyXG4gIElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybSxcclxuICBvdXRwdXQsXHJcbiAgT3V0cHV0RW1pdHRlclJlZixcclxuICBzaWduYWwsXHJcbiAgV3JpdGFibGVTaWduYWxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0hpbnR9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2hpbnQuaW50ZXJmYWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHRlbXBsYXRlOiBgYCxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDdHJsIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XHJcbiAgY3RybENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lciA9IGluamVjdChDb250cm9sQ29udGFpbmVyKTtcclxuICBmb3JtQ29udHJvbE5hbWU6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xyXG4gIG1pbjogSW5wdXRTaWduYWw8bnVtYmVyIHwgc3RyaW5nIHwgbnVsbD4gPSBpbnB1dDxudW1iZXIgfCBzdHJpbmcgfCBudWxsPihudWxsKTtcclxuICBtYXg6IElucHV0U2lnbmFsPG51bWJlciB8IHN0cmluZyB8IG51bGw+ID0gaW5wdXQ8bnVtYmVyIHwgc3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgZGlzYWJsZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcclxuICBtdWx0aXBsZTogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPGJvb2xlYW4sIHN0cmluZyB8IGJvb2xlYW4+ID0gaW5wdXQ8Ym9vbGVhbiwgc3RyaW5nIHwgYm9vbGVhbj4oZmFsc2UsIHtcclxuICAgIHRyYW5zZm9ybTogKHY6IHN0cmluZyB8IGJvb2xlYW4pOiBib29sZWFuID0+IHRoaXMuI3RyYW5zZm9ybVRvQm9vbGVhbih2KSxcclxuICB9KTtcclxuICBwbGFjZWhvbGRlcjogSW5wdXRTaWduYWw8c3RyaW5nPiA9IGlucHV0PHN0cmluZz4oXCJcIik7XHJcbiAgaGludHM6IElucHV0U2lnbmFsPEhpbnRbXT4gPSBpbnB1dDxIaW50W10+KFtdKTtcclxuICBjbGFzc05hbWU6IElucHV0U2lnbmFsPHN0cmluZyB8IG51bGw+ID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgb25DaGFuZ2U6IE91dHB1dEVtaXR0ZXJSZWY8c3RyaW5nIHwgRm9ybURhdGE+ID0gb3V0cHV0KCk7XHJcbiAgcHJvdGVjdGVkIHRvdWNoZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgY3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wobnVsbCk7XHJcblxyXG4gIGdldCBob3N0Q3RybCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmN0cmxDb250YWluZXIuY29udHJvbD8uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKCkpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Qcm9wYWdhdGVWYWx1ZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZC5zZXQoaXNEaXNhYmxlZCk7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmN0cmwuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdHJsLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgRm9ybURhdGEgfCBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLmN0cmwuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbWFya0FzVG91Y2hlZCgpIHtcclxuICAgIHRoaXMudG91Y2hlZC5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2goKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmN0cmwuZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGVtaXRWYWx1ZSh2YWx1ZT86IHN0cmluZyB8IGJvb2xlYW4gfCBGb3JtRGF0YSB8IG51bGwpIHtcclxuICAgIGxldCBlbWlzc2lvblZhbHVlID0gdGhpcy5jdHJsLmdldFJhd1ZhbHVlKCk7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBlbWlzc2lvblZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUHJvcGFnYXRlVmFsdWUoZW1pc3Npb25WYWx1ZSk7XHJcbiAgICB0aGlzLmVtaXRPbkNoYW5nZUV2ZW50KGVtaXNzaW9uVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHByb3BhZ2F0ZVZhbHVlKHZhbHVlPzogc3RyaW5nIHwgYm9vbGVhbiB8IEZvcm1EYXRhIHwgbnVsbCkge1xyXG4gICAgbGV0IGVtaXNzaW9uVmFsdWUgPSB0aGlzLmN0cmwuZ2V0UmF3VmFsdWUoKTtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGVtaXNzaW9uVmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMub25Qcm9wYWdhdGVWYWx1ZShlbWlzc2lvblZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBlbWl0T25DaGFuZ2VFdmVudCgkZXZlbnQ/OiBhbnkpIHtcclxuICAgIGxldCBlbWlzc2lvblZhbHVlID0gdGhpcy5jdHJsLmdldFJhd1ZhbHVlKCk7XHJcbiAgICBpZiAoJGV2ZW50ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZW1pc3Npb25WYWx1ZSA9ICRldmVudDtcclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UuZW1pdChlbWlzc2lvblZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvblRvdWNoID0gKCkgPT4ge307XHJcblxyXG4gIHByb3RlY3RlZCBvblByb3BhZ2F0ZVZhbHVlID0gKF86IHN0cmluZyB8IG51bGwpID0+IHt9O1xyXG5cclxuICAjdHJhbnNmb3JtVG9Cb29sZWFuKHY6IHN0cmluZyB8IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIGlmICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICBpZiAodiA9PT0gXCJcIikge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2ID09PSBcInRydWVcIjtcclxuICAgIH1cclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxufVxyXG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jdHJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvYmFzZS1jdHJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBRXRCLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMEQsV0FBVyxFQUE4QixNQUFNLGdCQUFnQixDQUFDOztBQVFqSSxNQUFNLE9BQU8sUUFBUTtJQUxyQjtRQU1FLCtEQUErRDtRQUMvRCxvQkFBZSxHQUF3QixLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDekQsUUFBRyxHQUF3QyxLQUFLLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBQy9FLFFBQUcsR0FBd0MsS0FBSyxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUMvRSxhQUFRLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxhQUFRLEdBQXdELEtBQUssQ0FBNEIsS0FBSyxFQUFFO1lBQ3RHLFNBQVMsRUFBRSxDQUFDLENBQW1CLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7U0FDekUsQ0FBQyxDQUFDO1FBQ0gsZ0JBQVcsR0FBd0IsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELFVBQUssR0FBd0IsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLGNBQVMsR0FBK0IsS0FBSyxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNuRSxhQUFRLEdBQXdDLE1BQU0sRUFBRSxDQUFDO1FBQy9DLFlBQU8sR0FBNEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELFNBQUksR0FBZ0IsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUE2RDFDLFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFbkIscUJBQWdCLEdBQUcsQ0FBQyxDQUFnQixFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FXdkQ7SUF4RUM7O09BRUc7SUFFSCxnQkFBZ0IsQ0FBQyxFQUFZO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVk7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUErQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUEwQztRQUM1RCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUEwQztRQUNqRSxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsTUFBWTtRQUN0QyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFNRCxtQkFBbUIsQ0FBQyxDQUFtQjtRQUNyQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNiLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQXZGVSxRQUFRO2tHQUFSLFFBQVEsdy9CQUhULEVBQUU7OzJGQUdELFFBQVE7a0JBTHBCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO29CQUNaLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIElucHV0U2lnbmFsLFxyXG4gIElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybSxcclxuICBvdXRwdXQsXHJcbiAgT3V0cHV0RW1pdHRlclJlZixcclxuICBzaWduYWwsXHJcbiAgV3JpdGFibGVTaWduYWxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0hpbnR9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2hpbnQuaW50ZXJmYWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHRlbXBsYXRlOiBgYCxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDdHJsIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XHJcbiAgLypjdHJsQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIpOyovXHJcbiAgZm9ybUNvbnRyb2xOYW1lOiBJbnB1dFNpZ25hbDxzdHJpbmc+ID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcclxuICBtaW46IElucHV0U2lnbmFsPG51bWJlciB8IHN0cmluZyB8IG51bGw+ID0gaW5wdXQ8bnVtYmVyIHwgc3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgbWF4OiBJbnB1dFNpZ25hbDxudW1iZXIgfCBzdHJpbmcgfCBudWxsPiA9IGlucHV0PG51bWJlciB8IHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG4gIGRpc2FibGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgbXVsdGlwbGU6IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxib29sZWFuLCBzdHJpbmcgfCBib29sZWFuPiA9IGlucHV0PGJvb2xlYW4sIHN0cmluZyB8IGJvb2xlYW4+KGZhbHNlLCB7XHJcbiAgICB0cmFuc2Zvcm06ICh2OiBzdHJpbmcgfCBib29sZWFuKTogYm9vbGVhbiA9PiB0aGlzLiN0cmFuc2Zvcm1Ub0Jvb2xlYW4odiksXHJcbiAgfSk7XHJcbiAgcGxhY2Vob2xkZXI6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xyXG4gIGhpbnRzOiBJbnB1dFNpZ25hbDxIaW50W10+ID0gaW5wdXQ8SGludFtdPihbXSk7XHJcbiAgY2xhc3NOYW1lOiBJbnB1dFNpZ25hbDxzdHJpbmcgfCBudWxsPiA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG4gIG9uQ2hhbmdlOiBPdXRwdXRFbWl0dGVyUmVmPHN0cmluZyB8IEZvcm1EYXRhPiA9IG91dHB1dCgpO1xyXG4gIHByb3RlY3RlZCB0b3VjaGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIGN0cmw6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKG51bGwpO1xyXG5cclxuICAvKmdldCBob3N0Q3RybCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmN0cmxDb250YWluZXIuY29udHJvbD8uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKCkpO1xyXG4gIH0qL1xyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblByb3BhZ2F0ZVZhbHVlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcclxuICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuY3RybC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN0cmwuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBGb3JtRGF0YSB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuY3RybC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBtYXJrQXNUb3VjaGVkKCkge1xyXG4gICAgdGhpcy50b3VjaGVkLnNldCh0cnVlKTtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuY3RybC5lcnJvcnM7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZW1pdFZhbHVlKHZhbHVlPzogc3RyaW5nIHwgYm9vbGVhbiB8IEZvcm1EYXRhIHwgbnVsbCkge1xyXG4gICAgbGV0IGVtaXNzaW9uVmFsdWUgPSB0aGlzLmN0cmwuZ2V0UmF3VmFsdWUoKTtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGVtaXNzaW9uVmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMub25Qcm9wYWdhdGVWYWx1ZShlbWlzc2lvblZhbHVlKTtcclxuICAgIHRoaXMuZW1pdE9uQ2hhbmdlRXZlbnQoZW1pc3Npb25WYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJvcGFnYXRlVmFsdWUodmFsdWU/OiBzdHJpbmcgfCBib29sZWFuIHwgRm9ybURhdGEgfCBudWxsKSB7XHJcbiAgICBsZXQgZW1pc3Npb25WYWx1ZSA9IHRoaXMuY3RybC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZW1pc3Npb25WYWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblByb3BhZ2F0ZVZhbHVlKGVtaXNzaW9uVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGVtaXRPbkNoYW5nZUV2ZW50KCRldmVudD86IGFueSkge1xyXG4gICAgbGV0IGVtaXNzaW9uVmFsdWUgPSB0aGlzLmN0cmwuZ2V0UmF3VmFsdWUoKTtcclxuICAgIGlmICgkZXZlbnQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBlbWlzc2lvblZhbHVlID0gJGV2ZW50O1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGVtaXNzaW9uVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uVG91Y2ggPSAoKSA9PiB7fTtcclxuXHJcbiAgcHJvdGVjdGVkIG9uUHJvcGFnYXRlVmFsdWUgPSAoXzogc3RyaW5nIHwgbnVsbCkgPT4ge307XHJcblxyXG4gICN0cmFuc2Zvcm1Ub0Jvb2xlYW4odjogc3RyaW5nIHwgYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIGlmICh2ID09PSBcIlwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHYgPT09IFwidHJ1ZVwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -5,7 +5,7 @@ import { MatCheckboxModule } from "@angular/material/checkbox";
5
5
  import { SelectStatusPipe } from "../../pipes/select-status.pipe";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/material/checkbox";
8
- export class CheckboxComponent extends BaseCtrl {
8
+ export class CheckboxControl extends BaseCtrl {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  this.options = input.required();
@@ -59,15 +59,15 @@ export class CheckboxComponent extends BaseCtrl {
59
59
  this.selectedOptions().clear();
60
60
  this.ctrl.setValue(null);
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: CheckboxComponent, isStandalone: true, selector: "iss-ctrl-checkbox", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
64
- { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true },
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: CheckboxControl, isStandalone: true, selector: "iss-ctrl-checkbox", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
64
+ { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxControl, multi: true },
65
65
  ], usesInheritance: true, ngImport: i0, template: "<ul class=\"list-unstyled\">\r\n @for (option of options(); track option.value; ) {\r\n <li class=\"mb-2\">\r\n <mat-checkbox\r\n [checked]=\"option | selectStatus: selectedOptions()\"\r\n (change)=\"onCheckboxChange($event.checked, option.value)\"\r\n >\r\n {{ option.label }}\r\n </mat-checkbox>\r\n </li>\r\n }\r\n</ul>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: SelectStatusPipe, name: "selectStatus" }] }); }
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxComponent, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxControl, decorators: [{
68
68
  type: Component,
69
69
  args: [{ selector: "iss-ctrl-checkbox", standalone: true, imports: [ReactiveFormsModule, MatCheckboxModule, SelectStatusPipe], providers: [
70
- { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true },
70
+ { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxControl, multi: true },
71
71
  ], template: "<ul class=\"list-unstyled\">\r\n @for (option of options(); track option.value; ) {\r\n <li class=\"mb-2\">\r\n <mat-checkbox\r\n [checked]=\"option | selectStatus: selectedOptions()\"\r\n (change)=\"onCheckboxChange($event.checked, option.value)\"\r\n >\r\n {{ option.label }}\r\n </mat-checkbox>\r\n </li>\r\n }\r\n</ul>\r\n" }]
72
72
  }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxHQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7QUFZaEUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFFBQVE7SUFWL0M7O1FBV0UsWUFBTyxHQUEwQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsb0JBQWUsR0FBd0MsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFrQixDQUFDLENBQUM7S0E2RDFGO0lBM0RVLFVBQVUsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQWEsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFD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RSxnQkFBZ0IsQ0FBQyxhQUd4RDt3QkFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLG1CQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7cUJBQzFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGlucHV0LCBJbnB1dFNpZ25hbCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0Jhc2VDdHJsfSBmcm9tIFwiLi4vYmFzZS1jdHJsXCI7XHJcbmltcG9ydCB7T3B0aW9ufSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9vcHRpb24uaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7TWF0Q2hlY2tib3hNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQge1NlbGVjdFN0YXR1c1BpcGV9IGZyb20gXCIuLi8uLi9waXBlcy9zZWxlY3Qtc3RhdHVzLnBpcGVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImlzcy1jdHJsLWNoZWNrYm94XCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIFNlbGVjdFN0YXR1c1BpcGVdLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vY2hlY2tib3guY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzXCIsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBDaGVja2JveENvbXBvbmVudCwgbXVsdGk6IHRydWV9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBleHRlbmRzIEJhc2VDdHJsIHtcclxuICBvcHRpb25zOiBJbnB1dFNpZ25hbDxPcHRpb25bXT4gPSBpbnB1dC5yZXF1aXJlZCgpO1xyXG4gIHNlbGVjdGVkT3B0aW9uczogV3JpdGFibGVTaWduYWw8TWFwPHN0cmluZywgT3B0aW9uPj4gPSBzaWduYWwobmV3IE1hcDxzdHJpbmcsIE9wdGlvbj4oKSk7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuI3Jlc2V0KCk7XHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWx1ZXM6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoXCIsXCIpLm1hcCgodmFsOiBzdHJpbmcpID0+IHZhbC50cmltKCkpO1xyXG5cclxuICAgIGxldCBzZWxlY3RlZE9wdGlvbnM6IE9wdGlvbltdID0gdGhpcy5vcHRpb25zKCkuZmlsdGVyKChvcHRpb246IE9wdGlvbikgPT4gdmFsdWVzLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpO1xyXG4gICAgdGhpcy5hZGRUb1NlbGVjdGVkT3B0aW9uc01hcCh0aGlzLiNzZWxlY3RlZE9wdGlvbnNNYXBGYWN0b3J5KHNlbGVjdGVkT3B0aW9ucykpO1xyXG4gICAgdGhpcy5jdHJsLnNldFZhbHVlKHNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBhZGRUb1NlbGVjdGVkT3B0aW9uc01hcChvcHRpb246IE1hcDxzdHJpbmcsIE9wdGlvbj4pIHtcclxuICAgIGlmIChvcHRpb24pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBzaWduYWwob3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hlY2tib3hDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbiwgdmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLm9wdGlvbnMoKS5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT0gdmFsdWUpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnVwZGF0ZSgocHJldikgPT4ge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gcHJldjtcclxuXHJcbiAgICAgIGlmIChjaGVja2VkKSBvcHRpb25zLnNldChzZWxlY3RlZE9wdGlvbj8udmFsdWUhLCBzZWxlY3RlZE9wdGlvbiEpO1xyXG4gICAgICBlbHNlIG9wdGlvbnMuZGVsZXRlKHNlbGVjdGVkT3B0aW9uPy52YWx1ZSEpO1xyXG5cclxuICAgICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmdldEVtaXNzaW9uVmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvbnMoKSk7XHJcbiAgfVxyXG5cclxuICBzdHJpbmdpZnlTZWxlY3RlZE9wdGlvbnMoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRPcHRpb25zKCk/LnNpemUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3RlZE9wdGlvbnMoKSwgKFt2YWx1ZV0pID0+IHZhbHVlKS5qb2luKCk7XHJcbiAgfVxyXG5cclxuICBnZXRFbWlzc2lvblZhbHVlKG9wdGlvbnM6IGFueSkge1xyXG4gICAgdGhpcy5hZGRUb1NlbGVjdGVkT3B0aW9uc01hcChvcHRpb25zKTtcclxuICAgIHRoaXMuZW1pdFZhbHVlKHRoaXMuc3RyaW5naWZ5U2VsZWN0ZWRPcHRpb25zKCkpO1xyXG4gIH1cclxuXHJcbiAgI3NlbGVjdGVkT3B0aW9uc01hcEZhY3Rvcnkoc2VsZWN0ZWRPcHRpb25zOiBPcHRpb25bXSkge1xyXG4gICAgbGV0IHNlbGVjdGVkT3B0aW9uc01hcDogTWFwPHN0cmluZywgT3B0aW9uPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgICBmb3IgKGxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zKSB7XHJcbiAgICAgIHNlbGVjdGVkT3B0aW9uc01hcC5zZXQob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9uc01hcDtcclxuICB9XHJcblxyXG4gICNyZXNldCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zKCkuY2xlYXIoKTtcclxuICAgIHRoaXMuY3RybC5zZXRWYWx1ZShudWxsKTtcclxuICB9XHJcbn1cclxuIiwiPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zKCk7IHRyYWNrIG9wdGlvbi52YWx1ZTsgKSB7XHJcbiAgICA8bGkgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICBbY2hlY2tlZF09XCJvcHRpb24gfCBzZWxlY3RTdGF0dXM6IHNlbGVjdGVkT3B0aW9ucygpXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50LmNoZWNrZWQsIG9wdGlvbi52YWx1ZSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgPC9saT5cclxuICB9XHJcbjwvdWw+XHJcbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxHQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7QUFZaEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsUUFBUTtJQVY3Qzs7UUFXRSxZQUFPLEdBQTBCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsRCxvQkFBZSxHQUF3QyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQWtCLENBQUMsQ0FBQztLQTZEMUY7SUEzRFUsVUFBVSxDQUFDLEtBQW9CO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBYSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7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QUMsYUFHeEQ7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO3FCQUN4RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBpbnB1dCwgSW5wdXRTaWduYWwsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwsfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtCYXNlQ3RybH0gZnJvbSBcIi4uL2Jhc2UtY3RybFwiO1xyXG5pbXBvcnQge09wdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvb3B0aW9uLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge01hdENoZWNrYm94TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuaW1wb3J0IHtTZWxlY3RTdGF0dXNQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZXMvc2VsZWN0LXN0YXR1cy5waXBlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJpc3MtY3RybC1jaGVja2JveFwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBTZWxlY3RTdGF0dXNQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9jaGVja2JveC5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogQ2hlY2tib3hDb250cm9sLCBtdWx0aTogdHJ1ZX0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29udHJvbCBleHRlbmRzIEJhc2VDdHJsIHtcclxuICBvcHRpb25zOiBJbnB1dFNpZ25hbDxPcHRpb25bXT4gPSBpbnB1dC5yZXF1aXJlZCgpO1xyXG4gIHNlbGVjdGVkT3B0aW9uczogV3JpdGFibGVTaWduYWw8TWFwPHN0cmluZywgT3B0aW9uPj4gPSBzaWduYWwobmV3IE1hcDxzdHJpbmcsIE9wdGlvbj4oKSk7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuI3Jlc2V0KCk7XHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWx1ZXM6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoXCIsXCIpLm1hcCgodmFsOiBzdHJpbmcpID0+IHZhbC50cmltKCkpO1xyXG5cclxuICAgIGxldCBzZWxlY3RlZE9wdGlvbnM6IE9wdGlvbltdID0gdGhpcy5vcHRpb25zKCkuZmlsdGVyKChvcHRpb246IE9wdGlvbikgPT4gdmFsdWVzLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpO1xyXG4gICAgdGhpcy5hZGRUb1NlbGVjdGVkT3B0aW9uc01hcCh0aGlzLiNzZWxlY3RlZE9wdGlvbnNNYXBGYWN0b3J5KHNlbGVjdGVkT3B0aW9ucykpO1xyXG4gICAgdGhpcy5jdHJsLnNldFZhbHVlKHNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBhZGRUb1NlbGVjdGVkT3B0aW9uc01hcChvcHRpb246IE1hcDxzdHJpbmcsIE9wdGlvbj4pIHtcclxuICAgIGlmIChvcHRpb24pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBzaWduYWwob3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hlY2tib3hDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbiwgdmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLm9wdGlvbnMoKS5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT0gdmFsdWUpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnVwZGF0ZSgocHJldikgPT4ge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gcHJldjtcclxuXHJcbiAgICAgIGlmIChjaGVja2VkKSBvcHRpb25zLnNldChzZWxlY3RlZE9wdGlvbj8udmFsdWUhLCBzZWxlY3RlZE9wdGlvbiEpO1xyXG4gICAgICBlbHNlIG9wdGlvbnMuZGVsZXRlKHNlbGVjdGVkT3B0aW9uPy52YWx1ZSEpO1xyXG5cclxuICAgICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmdldEVtaXNzaW9uVmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvbnMoKSk7XHJcbiAgfVxyXG5cclxuICBzdHJpbmdpZnlTZWxlY3RlZE9wdGlvbnMoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRPcHRpb25zKCk/LnNpemUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3RlZE9wdGlvbnMoKSwgKFt2YWx1ZV0pID0+IHZhbHVlKS5qb2luKCk7XHJcbiAgfVxyXG5cclxuICBnZXRFbWlzc2lvblZhbHVlKG9wdGlvbnM6IGFueSkge1xyXG4gICAgdGhpcy5hZGRUb1NlbGVjdGVkT3B0aW9uc01hcChvcHRpb25zKTtcclxuICAgIHRoaXMuZW1pdFZhbHVlKHRoaXMuc3RyaW5naWZ5U2VsZWN0ZWRPcHRpb25zKCkpO1xyXG4gIH1cclxuXHJcbiAgI3NlbGVjdGVkT3B0aW9uc01hcEZhY3Rvcnkoc2VsZWN0ZWRPcHRpb25zOiBPcHRpb25bXSkge1xyXG4gICAgbGV0IHNlbGVjdGVkT3B0aW9uc01hcDogTWFwPHN0cmluZywgT3B0aW9uPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgICBmb3IgKGxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zKSB7XHJcbiAgICAgIHNlbGVjdGVkT3B0aW9uc01hcC5zZXQob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9uc01hcDtcclxuICB9XHJcblxyXG4gICNyZXNldCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zKCkuY2xlYXIoKTtcclxuICAgIHRoaXMuY3RybC5zZXRWYWx1ZShudWxsKTtcclxuICB9XHJcbn1cclxuIiwiPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zKCk7IHRyYWNrIG9wdGlvbi52YWx1ZTsgKSB7XHJcbiAgICA8bGkgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICBbY2hlY2tlZF09XCJvcHRpb24gfCBzZWxlY3RTdGF0dXM6IHNlbGVjdGVkT3B0aW9ucygpXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50LmNoZWNrZWQsIG9wdGlvbi52YWx1ZSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgPC9saT5cclxuICB9XHJcbjwvdWw+XHJcbiJdfQ==