@fundamental-ngx/core 0.33.5-rc.28 → 0.33.5-rc.29

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 (107) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/checkbox/checkbox.component.d.ts +5 -4
  14. package/checkbox/checkbox/fd-checkbox-values.interface.d.ts +1 -0
  15. package/checkbox/esm2020/checkbox/checkbox.component.mjs +12 -10
  16. package/checkbox/esm2020/checkbox/fd-checkbox-values.interface.mjs +6 -2
  17. package/checkbox/esm2020/public_api.mjs +2 -1
  18. package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs +17 -10
  19. package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  20. package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs +17 -10
  21. package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  22. package/checkbox/package.json +1 -1
  23. package/checkbox/public_api.d.ts +1 -0
  24. package/combobox/package.json +1 -1
  25. package/date-picker/package.json +1 -1
  26. package/datetime/package.json +1 -1
  27. package/datetime-picker/package.json +1 -1
  28. package/dialog/package.json +1 -1
  29. package/dynamic-page/package.json +1 -1
  30. package/dynamic-side-content/package.json +1 -1
  31. package/esm2020/checkbox/checkbox/checkbox.component.mjs +12 -10
  32. package/esm2020/checkbox/checkbox/fd-checkbox-values.interface.mjs +6 -2
  33. package/esm2020/checkbox/public_api.mjs +2 -1
  34. package/facets/package.json +1 -1
  35. package/feed-input/package.json +1 -1
  36. package/feed-list-item/package.json +1 -1
  37. package/fesm2015/fundamental-ngx-core-checkbox.mjs +17 -10
  38. package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  39. package/fesm2020/fundamental-ngx-core-checkbox.mjs +17 -10
  40. package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  41. package/file-uploader/package.json +1 -1
  42. package/fixed-card-layout/package.json +1 -1
  43. package/flexible-column-layout/package.json +1 -1
  44. package/form/package.json +1 -1
  45. package/formatted-text/package.json +1 -1
  46. package/grid-list/package.json +1 -1
  47. package/icon/package.json +1 -1
  48. package/illustrated-message/package.json +1 -1
  49. package/infinite-scroll/package.json +1 -1
  50. package/info-label/package.json +1 -1
  51. package/inline-help/package.json +1 -1
  52. package/input-group/package.json +1 -1
  53. package/layout-grid/package.json +1 -1
  54. package/layout-panel/package.json +1 -1
  55. package/link/package.json +1 -1
  56. package/list/package.json +1 -1
  57. package/menu/package.json +1 -1
  58. package/message-box/package.json +1 -1
  59. package/message-strip/package.json +1 -1
  60. package/message-toast/package.json +1 -1
  61. package/micro-process-flow/package.json +1 -1
  62. package/mobile-mode/package.json +1 -1
  63. package/multi-input/package.json +1 -1
  64. package/nested-list/package.json +1 -1
  65. package/notification/package.json +1 -1
  66. package/object-identifier/package.json +1 -1
  67. package/object-marker/package.json +1 -1
  68. package/object-number/package.json +1 -1
  69. package/object-status/package.json +1 -1
  70. package/package.json +1 -1
  71. package/pagination/package.json +1 -1
  72. package/panel/package.json +1 -1
  73. package/popover/package.json +1 -1
  74. package/product-switch/package.json +1 -1
  75. package/progress-indicator/package.json +1 -1
  76. package/quick-view/package.json +1 -1
  77. package/radio/package.json +1 -1
  78. package/rating-indicator/package.json +1 -1
  79. package/resizable-card-layout/package.json +1 -1
  80. package/scroll-spy/package.json +1 -1
  81. package/scrollbar/package.json +1 -1
  82. package/segmented-button/package.json +1 -1
  83. package/select/package.json +1 -1
  84. package/shared/package.json +1 -1
  85. package/shellbar/package.json +1 -1
  86. package/side-navigation/package.json +1 -1
  87. package/slider/package.json +1 -1
  88. package/split-button/package.json +1 -1
  89. package/splitter/package.json +1 -1
  90. package/status-indicator/package.json +1 -1
  91. package/step-input/package.json +1 -1
  92. package/switch/package.json +1 -1
  93. package/table/package.json +1 -1
  94. package/tabs/package.json +1 -1
  95. package/text/package.json +1 -1
  96. package/tile/package.json +1 -1
  97. package/time/package.json +1 -1
  98. package/time-picker/package.json +1 -1
  99. package/timeline/package.json +1 -1
  100. package/title/package.json +1 -1
  101. package/token/package.json +1 -1
  102. package/toolbar/package.json +1 -1
  103. package/tree/package.json +1 -1
  104. package/upload-collection/package.json +1 -1
  105. package/utils/package.json +1 -1
  106. package/vertical-navigation/package.json +1 -1
  107. package/wizard/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/breadcrumb",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/busy-indicator",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/button",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/calendar",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/card/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/card",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/carousel",
3
- "version": "0.33.5-rc.28",
3
+ "version": "0.33.5-rc.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -50,15 +50,16 @@ export declare class CheckboxComponent implements ControlValueAccessor, OnInit,
50
50
  /** @hidden */
51
51
  private _subscriptions;
52
52
  /** Sets values returned by control. */
53
- set _values(checkboxValues: FdCheckboxValues);
53
+ get values(): FdCheckboxValues;
54
+ set values(checkboxValues: FdCheckboxValues);
54
55
  /** @hidden */
55
56
  readonly position = "relative";
56
57
  /** @hidden */
57
58
  readonly outline = "none";
58
59
  /** Emits event on focus change */
59
60
  focusChange: EventEmitter<boolean>;
60
- /** Values returned by control. */
61
- values: FdCheckboxValues;
61
+ /** @hidden values returned by control. */
62
+ private _values;
62
63
  /** Stores current checkbox value. */
63
64
  checkboxValue: any;
64
65
  /** Stores current checkbox state. */
@@ -110,5 +111,5 @@ export declare class CheckboxComponent implements ControlValueAccessor, OnInit,
110
111
  /** Method to trigger change detection in component */
111
112
  private _detectChanges;
112
113
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, [null, { attribute: "tabIndexValue"; }, null, null, { optional: true; }, { optional: true; }]>;
113
- static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "fd-checkbox", never, { "ariaLabel": "ariaLabel"; "value": "value"; "ariaLabelledBy": "ariaLabelledBy"; "ariaDescribedBy": "ariaDescribedBy"; "title": "title"; "inputId": "inputId"; "state": "state"; "name": "name"; "label": "label"; "disabled": "disabled"; "compact": "compact"; "tristate": "tristate"; "tristateSelectable": "tristateSelectable"; "labelClass": "labelClass"; "required": "required"; "_values": "values"; }, { "focusChange": "focusChange"; }, never, ["*"]>;
114
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "fd-checkbox", never, { "ariaLabel": "ariaLabel"; "value": "value"; "ariaLabelledBy": "ariaLabelledBy"; "ariaDescribedBy": "ariaDescribedBy"; "title": "title"; "inputId": "inputId"; "state": "state"; "name": "name"; "label": "label"; "disabled": "disabled"; "compact": "compact"; "tristate": "tristate"; "tristateSelectable": "tristateSelectable"; "labelClass": "labelClass"; "required": "required"; "values": "values"; }, { "focusChange": "focusChange"; }, never, ["*"]>;
114
115
  }
@@ -3,3 +3,4 @@ export interface FdCheckboxValues {
3
3
  falseValue?: any;
4
4
  thirdStateValue?: any;
5
5
  }
6
+ export declare const FD_CHECKBOX_VALUES_DEFAULT: Readonly<FdCheckboxValues>;
@@ -3,6 +3,7 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { LIST_ITEM_COMPONENT, ContentDensityService } from '@fundamental-ngx/core/utils';
4
4
  import equal from 'fast-deep-equal';
5
5
  import { Subscription } from 'rxjs';
6
+ import { FD_CHECKBOX_VALUES_DEFAULT } from './fd-checkbox-values.interface';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@fundamental-ngx/core/utils";
8
9
  import * as i2 from "@angular/common";
@@ -36,8 +37,8 @@ export class CheckboxComponent {
36
37
  this.outline = 'none';
37
38
  /** Emits event on focus change */
38
39
  this.focusChange = new EventEmitter();
39
- /** Values returned by control. */
40
- this.values = { trueValue: true, falseValue: false, thirdStateValue: null };
40
+ /** @hidden values returned by control. */
41
+ this._values = { ...FD_CHECKBOX_VALUES_DEFAULT };
41
42
  /** @hidden Reference to callback provided by FormControl.*/
42
43
  this.onTouched = () => { };
43
44
  /** @hidden Reference to callback provided by FormControl.*/
@@ -52,9 +53,11 @@ export class CheckboxComponent {
52
53
  return this.checkboxValue;
53
54
  }
54
55
  /** Sets values returned by control. */
55
- // eslint-disable-next-line @angular-eslint/no-input-rename
56
- set _values(checkboxValues) {
57
- this.values = { ...this.values, ...checkboxValues };
56
+ get values() {
57
+ return this._values;
58
+ }
59
+ set values(checkboxValues) {
60
+ this._values = { ...FD_CHECKBOX_VALUES_DEFAULT, ...(checkboxValues ?? {}) };
58
61
  }
59
62
  /** @hidden Used to define if control is in 'indeterminate' state.*/
60
63
  get isIndeterminate() {
@@ -180,7 +183,7 @@ export class CheckboxComponent {
180
183
  }
181
184
  }
182
185
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ElementRef }, { token: 'tabIndexValue', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.ContentDensityService, optional: true }, { token: LIST_ITEM_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
183
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: CheckboxComponent, selector: "fd-checkbox", inputs: { ariaLabel: "ariaLabel", value: "value", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", title: "title", inputId: "inputId", state: "state", name: "name", label: "label", disabled: "disabled", compact: "compact", tristate: "tristate", tristateSelectable: "tristateSelectable", labelClass: "labelClass", required: "required", _values: ["values", "_values"] }, outputs: { focusChange: "focusChange" }, host: { properties: { "attr.tabindex": "-1", "style.position": "this.position", "style.outline": "this.outline" } }, providers: [
186
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: CheckboxComponent, selector: "fd-checkbox", inputs: { ariaLabel: "ariaLabel", value: "value", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", title: "title", inputId: "inputId", state: "state", name: "name", label: "label", disabled: "disabled", compact: "compact", tristate: "tristate", tristateSelectable: "tristateSelectable", labelClass: "labelClass", required: "required", values: "values" }, outputs: { focusChange: "focusChange" }, host: { properties: { "attr.tabindex": "-1", "style.position": "this.position", "style.outline": "this.outline" } }, providers: [
184
187
  {
185
188
  provide: NG_VALUE_ACCESSOR,
186
189
  useExisting: forwardRef(() => CheckboxComponent),
@@ -242,9 +245,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
242
245
  type: Input
243
246
  }], required: [{
244
247
  type: Input
245
- }], _values: [{
246
- type: Input,
247
- args: ['values']
248
+ }], values: [{
249
+ type: Input
248
250
  }], position: [{
249
251
  type: HostBinding,
250
252
  args: ['style.position']
@@ -254,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
254
256
  }], focusChange: [{
255
257
  type: Output
256
258
  }] } });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUcsT0FBTyxLQUFLLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUdwQyxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQW1CekIsTUFBTSxPQUFPLGlCQUFpQjtJQXFIMUIsY0FBYztJQUNkLFlBQ1csVUFBK0IsRUFDSCxnQkFBd0IsQ0FBQyxFQUNwRCxrQkFBcUMsRUFDckMsUUFBbUIsRUFDUCxzQkFBNkMsRUFDaEIsa0JBQXFDO1FBTC9FLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQ0gsa0JBQWEsR0FBYixhQUFhLENBQVk7UUFDcEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ1AsMkJBQXNCLEdB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ZUFBZTs7MEJBR3pCLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzRDQXpIM0MsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGNBQWM7Z0JBS3pCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUt6QixTQUFTO3NCQURSLEtBQUs7Z0JBS0YsS0FBSztzQkFEUixLQUFLO2dCQVVOLGNBQWM7c0JBRGIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFTRixPQUFPO3NCQURWLEtBQUs7dUJBQUMsUUFBUTtnQkFPTixRQUFRO3NCQURoQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFLcEIsT0FBTztzQkFEZixXQUFXO3VCQUFDLGVBQWU7Z0JBSWxCLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZkQ2hlY2tib3hWYWx1ZXMgfSBmcm9tICcuL2ZkLWNoZWNrYm94LXZhbHVlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTElTVF9JVEVNX0NPTVBPTkVOVCwgTGlzdEl0ZW1JbnRlcmZhY2UsIENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuXG5sZXQgY2hlY2tib3hVbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCB0eXBlIEZkQ2hlY2tib3hUeXBlcyA9ICdjaGVja2VkJyB8ICd1bmNoZWNrZWQnIHwgJ2luZGV0ZXJtaW5hdGUnIHwgJ2ZvcmNlLWNoZWNrZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7ICdbYXR0ci50YWJpbmRleF0nOiAnLTEnIH1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JylcbiAgICBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2xhYmVsRWxlbWVudCcpXG4gICAgbGFiZWxFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWwgPSAnJztcblxuICAgIC8qKiBDdXJyZW50IHNlbGVjdGlvbiBzdGF0ZSBvZiB0aGUgY2hlY2tib3ggY29tcG9uZW50ICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3hWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnkgPSBudWxsO1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWRlc2NyaWJlZGJ5YCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhRGVzY3JpYmVkQnk6IHN0cmluZztcblxuICAgIC8qKiBzZXRzIGNoZWNrYm94IHRvb2x0aXAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0cyBbaWRdIHByb3BlcnR5IG9mIGlucHV0LCBiaW5kcyBpbnB1dCB3aXRoIGlucHV0IGxhYmVsIHVzaW5nIFtmb3JdIHByb3BlcnR5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5wdXRJZCA9IGBmZC1jaGVja2JveC0ke2NoZWNrYm94VW5pcXVlSWQrK31gO1xuXG4gICAgLyoqIFN0YXRlIG9mIGNvbnRyb2wsIGNoYW5nZXMgdmlzdWFsIGFwcGVhcmFuY2Ugb2YgY29udHJvbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlOiBGb3JtU3RhdGVzO1xuXG4gICAgLyoqIFNldHMgW25hbWVdIHByb3BlcnR5IG9mIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFNldHMgdGV4dCBvZiBjb250cm9sIGxhYmVsLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBBbGxvd3MgdG8gZGlzYWJsZS9lbmFibGUgY29udHJvbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEFsbG93cyB0byBtaW5pbWl6ZSBjb250cm9sIHRvIGNvbXBhY3QgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBhY3Q/OiBib29sZWFuO1xuXG4gICAgLyoqIEVuYWJsZXMgY29udHJvbHMgdGhpcmQgc3RhdGUuICovXG4gICAgQElucHV0KClcbiAgICB0cmlzdGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEFsbG93cyB0byBwcmV2ZW50IHVzZXIgZnJvbSBtYW51YWxseSBzZWxlY3RpbmcgY29udHJvbHMgdGhpcmQgc3RhdGUuICovXG4gICAgQElucHV0KClcbiAgICB0cmlzdGF0ZVNlbGVjdGFibGUgPSBmYWxzZTtcblxuICAgIC8qKiBBc3NpZ25zIGdpdmVuIGNsYXNzIHRvIGNoZWNrYm94IGxhYmVsIGVsZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogU2V0cyB2YWx1ZXMgcmV0dXJuZWQgYnkgY29udHJvbC4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgndmFsdWVzJylcbiAgICBzZXQgX3ZhbHVlcyhjaGVja2JveFZhbHVlczogRmRDaGVja2JveFZhbHVlcykge1xuICAgICAgICB0aGlzLnZhbHVlcyA9IHsgLi4udGhpcy52YWx1ZXMsIC4uLmNoZWNrYm94VmFsdWVzIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvc2l0aW9uJylcbiAgICByZWFkb25seSBwb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUub3V0bGluZScpXG4gICAgcmVhZG9ubHkgb3V0bGluZSA9ICdub25lJztcblxuICAgIC8qKiBFbWl0cyBldmVudCBvbiBmb2N1cyBjaGFuZ2UgKi9cbiAgICBAT3V0cHV0KCkgZm9jdXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBWYWx1ZXMgcmV0dXJuZWQgYnkgY29udHJvbC4gKi9cbiAgICBwdWJsaWMgdmFsdWVzOiBGZENoZWNrYm94VmFsdWVzID0geyB0cnVlVmFsdWU6IHRydWUsIGZhbHNlVmFsdWU6IGZhbHNlLCB0aGlyZFN0YXRlVmFsdWU6IG51bGwgfTtcbiAgICAvKiogU3RvcmVzIGN1cnJlbnQgY2hlY2tib3ggdmFsdWUuICovXG4gICAgcHVibGljIGNoZWNrYm94VmFsdWU6IGFueTtcbiAgICAvKiogU3RvcmVzIGN1cnJlbnQgY2hlY2tib3ggc3RhdGUuICovXG4gICAgcHVibGljIGNoZWNrYm94U3RhdGU6IEZkQ2hlY2tib3hUeXBlcztcblxuICAgIC8qKiBAaGlkZGVuIFJlZmVyZW5jZSB0byBjYWxsYmFjayBwcm92aWRlZCBieSBGb3JtQ29udHJvbC4qL1xuICAgIHB1YmxpYyBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcbiAgICAvKiogQGhpZGRlbiBSZWZlcmVuY2UgdG8gY2FsbGJhY2sgcHJvdmlkZWQgYnkgRm9ybUNvbnRyb2wuKi9cbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuIFVzZWQgdG8gZGVmaW5lIGlmIGNvbnRyb2wgaXMgaW4gJ2luZGV0ZXJtaW5hdGUnIHN0YXRlLiovXG4gICAgZ2V0IGlzSW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3hTdGF0ZSA9PT0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFVzZWQgdG8gZGVmaW5lIGlmIGNvbnRyb2wgaXMgaW4gJ2NoZWNrZWQnIC8gJ3VuY2hlY2tlZCcgc3RhdGUuICovXG4gICAgZ2V0IGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3hTdGF0ZSA9PT0gJ2NoZWNrZWQnIHx8IHRoaXMuY2hlY2tib3hTdGF0ZSA9PT0gJ2ZvcmNlLWNoZWNrZWQnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEVsZW1lbnQ+LFxuICAgICAgICBAQXR0cmlidXRlKCd0YWJJbmRleFZhbHVlJykgcHVibGljIHRhYkluZGV4VmFsdWU6IG51bWJlciA9IDAsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMSVNUX0lURU1fQ09NUE9ORU5UKSBwcml2YXRlIF9saXN0SXRlbUNvbXBvbmVudDogTGlzdEl0ZW1JbnRlcmZhY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy50YWJJbmRleFZhbHVlID0gdGFiSW5kZXhWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21wYWN0ID09PSB1bmRlZmluZWQgJiYgdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuX2lzQ29tcGFjdERlbnNpdHkuc3Vic2NyaWJlKChpc0NvbXBhY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wYWN0ID0gaXNDb21wYWN0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgICAqIC0gc2V0cyBuZXcgY29udHJvbCB2YWx1ZVxuICAgICAqIC0gdXBkYXRlcyBjb250cm9sIHN0YXRlXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9zZXRTdGF0ZSgpO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIG1ldGhvZCAtIHNldHMgb25WYWx1ZUNoYW5nZSBjYWxsYmFjay4qL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UgbWV0aG9kIC0gc2V0cyBvblRvdWNoZWQgY2FsbGJhY2suKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ2FsbGVkIGJ5IEZvcm1Db250cm9sIC0gdXNlZCB0byBkaXNhYmxlIC8gZW5hYmxlIGNvbnRyb2wuKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBCYXNlZCBvbiBjdXJyZW50IGNvbnRyb2wgc3RhdGU6XG4gICAgICogLSBzZXRzIG5leHQgY29udHJvbCB2YWx1ZVxuICAgICAqIC0gZW1pdHMgbmV3IGNvbnRyb2wgdmFsdWVcbiAgICAgKiAtIHVwZGF0ZXMgY29udHJvbCBzdGF0ZSBiYXNlZCBvbiBuZXcgY29udHJvbCB2YWx1ZVxuICAgICAqICovXG4gICAgbmV4dFZhbHVlKHByZXZpb3VzVmFsdWU/OiBGZENoZWNrYm94VHlwZXMpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChwcmV2aW91c1ZhbHVlIHx8IHRoaXMuY2hlY2tib3hTdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSAnY2hlY2tlZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID0gdGhpcy52YWx1ZXMuZmFsc2VWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VuY2hlY2tlZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlzdGF0ZSAmJiB0aGlzLnRyaXN0YXRlU2VsZWN0YWJsZSA/IHRoaXMudmFsdWVzLnRoaXJkU3RhdGVWYWx1ZSA6IHRoaXMudmFsdWVzLnRydWVWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2luZGV0ZXJtaW5hdGUnOlxuICAgICAgICAgICAgY2FzZSAnZm9yY2UtY2hlY2tlZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID0gdGhpcy52YWx1ZXMudHJ1ZVZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2NoZWNrZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94VmFsdWUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaXN0YXRlICYmIHRoaXMudHJpc3RhdGVTZWxlY3RhYmxlID8gdGhpcy52YWx1ZXMudGhpcmRTdGF0ZVZhbHVlIDogdGhpcy52YWx1ZXMudHJ1ZVZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldFN0YXRlKCk7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZSh0aGlzLmNoZWNrYm94VmFsdWUpO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gaGFuZGxlcyBibHVyIGV2ZW50ICovXG4gICAgX29uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9uVG91Y2hlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvY3VzQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGZvY3VzIGV2ZW50ICovXG4gICAgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGNsaWNrIG9uIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggbmF0aXZlIGNoZWNrYm94IGlucHV0ICovXG4gICAgX29uTGFiZWxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gV2UgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIGZvciBjbGljayBldmVudHMgb24gdGhlIGlucHV0IGxhYmVsLlxuICAgICAgICAvLyBCeSBkZWZhdWx0LCB3aGVuIGEgdXNlciBjbGlja3Mgb24gYSBsYWJlbCBlbGVtZW50LCBhIGdlbmVyYXRlZCBjbGljayBldmVudCB3aWxsIGJlXG4gICAgICAgIC8vIGRpc3BhdGNoZWQgb24gdGhlIGFzc29jaWF0ZWQgaW5wdXQgZWxlbWVudC4gVGhpcyB3aWxsIGxlYWQgdG8gZHVwbGljYXRlZCBcImNsaWNrXCIgZXZlbnQgZGlzcGF0Y2hlZCBmcm9tIHRoZSBjb21wb25lbnRcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gaGFuZGxlcyBjbGljayBvbiB0aGUgbmF0aXZlIGNoZWNrYm94IGlucHV0ICovXG4gICAgX29uSW5wdXRDbGljayhldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIFdoZW4gdGhlcmUncyBhIGNsaWNrIGV2ZW50IGRpc3BhdGNoZWQgZnJvbSB0aGUgaW5wdXQsIHdlIGhhdmUgdG8gY2F0Y2ggaXQsIHByb2Nlc3MgYW5kIHRoZW4gcmUtZGlzcGF0Y2ggaXQgZnVydGhlci5cbiAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gc2V0IHRoZSB2YWx1ZSB0byB0aGUgY29tcG9uZW50IGJlZm9yZSBhbnkgZXh0ZXJuYWwgbGlzdGVuZXJzIHdpbGwgcmVjZWl2ZSBpdC5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIGNoZWNrYm94IG1pZ2h0IGJlIG91dCBvZiBzeW5jLlxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5uZXh0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgUG9pbnRlckV2ZW50KGV2ZW50LnR5cGUsIGV2ZW50KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQmFzZWQgb24gY3VycmVudCBjb250cm9sIHZhbHVlIHNldHMgbmV3IGNvbnRyb2wgc3RhdGUuICovXG4gICAgcHJpdmF0ZSBfc2V0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmIChlcXVhbCh0aGlzLmNoZWNrYm94VmFsdWUsIHRoaXMudmFsdWVzLnRydWVWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3hTdGF0ZSA9ICdjaGVja2VkJztcbiAgICAgICAgfSBlbHNlIGlmIChlcXVhbCh0aGlzLmNoZWNrYm94VmFsdWUsIHRoaXMudmFsdWVzLmZhbHNlVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRyaXN0YXRlICYmIGVxdWFsKHRoaXMuY2hlY2tib3hWYWx1ZSwgdGhpcy52YWx1ZXMudGhpcmRTdGF0ZVZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmNoZWNrYm94VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gaW4gY29tcG9uZW50ICovXG4gICAgcHJpdmF0ZSBfZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZlsnZGVzdHJveWVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dFxuICAgICNpbnB1dEVsZW1lbnRcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIGNsYXNzPVwiZmQtY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleFZhbHVlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2NsYXNzLmZkLWNoZWNrYm94LS1jb21wYWN0XT1cImNvbXBhY3RcIlxuICAgIFtjbGFzc109XCJzdGF0ZSA/ICdpcy0nICsgc3RhdGUgOiAnJ1wiXG4gICAgKGNsaWNrKT1cIl9vbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwiX29uQmx1cigpXCJcbiAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiXG4vPlxuXG48bGFiZWxcbiAgICBjbGFzcz1cImZkLWNoZWNrYm94X19sYWJlbFwiXG4gICAgI2xhYmVsRWxlbWVudFxuICAgIFtmb3JdPVwiaW5wdXRJZFwiXG4gICAgW2NsYXNzXT1cImxhYmVsQ2xhc3NcIlxuICAgIFthdHRyLnRpdGxlXT1cInRpdGxlXCJcbiAgICBbY2xhc3MuZmQtY2hlY2tib3hfX2xhYmVsLS1jb21wYWN0XT1cImNvbXBhY3RcIlxuICAgIFtjbGFzcy5mZC1jaGVja2JveF9fbGFiZWwtLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAoY2xpY2spPVwiX29uTGFiZWxDbGljaygkZXZlbnQpXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtY2hlY2tib3hfX2xhYmVsLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtY2hlY2tib3hfX3RleHRcIj5cbiAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhYmVsXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWNoZWNrYm94X190ZXh0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbGFiZWw+XG4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUcsT0FBTyxLQUFLLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUU1RSxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQW1CekIsTUFBTSxPQUFPLGlCQUFpQjtJQXVIMUIsY0FBYztJQUNkLFlBQ1csVUFBK0IsRUFDSCxnQkFBd0IsQ0FBQyxFQUNwRCxrQkFBcUMsRUFDckMsUUFBbUIsRUFDUCxzQkFBNkMsRUFDaEIsa0JBQXFDO1FBTC9FLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQ0gsa0JBQWEsR0FBYixhQUFhLENBQVk7UUFDcEQsdUJBQWtCLEdBQWxCLGtCQUFrQixD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QkFDSixRQUNLLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFOzswQkE0SDVCLFNBQVM7MkJBQUMsZUFBZTs7MEJBR3pCLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzRDQTNIM0MsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGNBQWM7Z0JBS3pCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUt6QixTQUFTO3NCQURSLEtBQUs7Z0JBS0YsS0FBSztzQkFEUixLQUFLO2dCQVVOLGNBQWM7c0JBRGIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFRRixNQUFNO3NCQURULEtBQUs7Z0JBVUcsUUFBUTtzQkFEaEIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3BCLE9BQU87c0JBRGYsV0FBVzt1QkFBQyxlQUFlO2dCQUlsQixXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGZENoZWNrYm94VmFsdWVzIH0gZnJvbSAnLi9mZC1jaGVja2JveC12YWx1ZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IExJU1RfSVRFTV9DT01QT05FTlQsIExpc3RJdGVtSW50ZXJmYWNlLCBDb250ZW50RGVuc2l0eVNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IEZEX0NIRUNLQk9YX1ZBTFVFU19ERUZBVUxUIH0gZnJvbSAnLi9mZC1jaGVja2JveC12YWx1ZXMuaW50ZXJmYWNlJztcblxubGV0IGNoZWNrYm94VW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgdHlwZSBGZENoZWNrYm94VHlwZXMgPSAnY2hlY2tlZCcgfCAndW5jaGVja2VkJyB8ICdpbmRldGVybWluYXRlJyB8ICdmb3JjZS1jaGVja2VkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1jaGVja2JveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tib3hDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDogeyAnW2F0dHIudGFiaW5kZXhdJzogJy0xJyB9XG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsYWJlbEVsZW1lbnQnKVxuICAgIGxhYmVsRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBTZXRzIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsID0gJyc7XG5cbiAgICAvKiogQ3VycmVudCBzZWxlY3Rpb24gc3RhdGUgb2YgdGhlIGNoZWNrYm94IGNvbXBvbmVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrYm94VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5ID0gbnVsbDtcblxuICAgIC8qKiBTZXRzIHRoZSBgYXJpYS1kZXNjcmliZWRieWAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmc7XG5cbiAgICAvKiogc2V0cyBjaGVja2JveCB0b29sdGlwICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIFNldHMgW2lkXSBwcm9wZXJ0eSBvZiBpbnB1dCwgYmluZHMgaW5wdXQgd2l0aCBpbnB1dCBsYWJlbCB1c2luZyBbZm9yXSBwcm9wZXJ0eS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SWQgPSBgZmQtY2hlY2tib3gtJHtjaGVja2JveFVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBTdGF0ZSBvZiBjb250cm9sLCBjaGFuZ2VzIHZpc3VhbCBhcHBlYXJhbmNlIG9mIGNvbnRyb2wuICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogRm9ybVN0YXRlcztcblxuICAgIC8qKiBTZXRzIFtuYW1lXSBwcm9wZXJ0eSBvZiBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKiBTZXRzIHRleHQgb2YgY29udHJvbCBsYWJlbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogQWxsb3dzIHRvIGRpc2FibGUvZW5hYmxlIGNvbnRyb2wuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKiBBbGxvd3MgdG8gbWluaW1pemUgY29udHJvbCB0byBjb21wYWN0IG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBjb21wYWN0PzogYm9vbGVhbjtcblxuICAgIC8qKiBFbmFibGVzIGNvbnRyb2xzIHRoaXJkIHN0YXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJpc3RhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBBbGxvd3MgdG8gcHJldmVudCB1c2VyIGZyb20gbWFudWFsbHkgc2VsZWN0aW5nIGNvbnRyb2xzIHRoaXJkIHN0YXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJpc3RhdGVTZWxlY3RhYmxlID0gZmFsc2U7XG5cbiAgICAvKiogQXNzaWducyBnaXZlbiBjbGFzcyB0byBjaGVja2JveCBsYWJlbCBlbGVtZW50ICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbENsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogSWYgaXQgaXMgbWFuZGF0b3J5IGZpZWxkICovXG4gICAgQElucHV0KClcbiAgICByZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIFNldHMgdmFsdWVzIHJldHVybmVkIGJ5IGNvbnRyb2wuICovXG4gICAgQElucHV0KClcbiAgICBnZXQgdmFsdWVzKCk6IEZkQ2hlY2tib3hWYWx1ZXMge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xuICAgIH1cbiAgICBzZXQgdmFsdWVzKGNoZWNrYm94VmFsdWVzOiBGZENoZWNrYm94VmFsdWVzKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlcyA9IHsgLi4uRkRfQ0hFQ0tCT1hfVkFMVUVTX0RFRkFVTFQsIC4uLihjaGVja2JveFZhbHVlcyA/PyB7fSkgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKVxuICAgIHJlYWRvbmx5IHBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5vdXRsaW5lJylcbiAgICByZWFkb25seSBvdXRsaW5lID0gJ25vbmUnO1xuXG4gICAgLyoqIEVtaXRzIGV2ZW50IG9uIGZvY3VzIGNoYW5nZSAqL1xuICAgIEBPdXRwdXQoKSBmb2N1c0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gdmFsdWVzIHJldHVybmVkIGJ5IGNvbnRyb2wuICovXG4gICAgcHJpdmF0ZSBfdmFsdWVzOiBGZENoZWNrYm94VmFsdWVzID0geyAuLi5GRF9DSEVDS0JPWF9WQUxVRVNfREVGQVVMVCB9O1xuICAgIC8qKiBTdG9yZXMgY3VycmVudCBjaGVja2JveCB2YWx1ZS4gKi9cbiAgICBwdWJsaWMgY2hlY2tib3hWYWx1ZTogYW55O1xuICAgIC8qKiBTdG9yZXMgY3VycmVudCBjaGVja2JveCBzdGF0ZS4gKi9cbiAgICBwdWJsaWMgY2hlY2tib3hTdGF0ZTogRmRDaGVja2JveFR5cGVzO1xuXG4gICAgLyoqIEBoaWRkZW4gUmVmZXJlbmNlIHRvIGNhbGxiYWNrIHByb3ZpZGVkIGJ5IEZvcm1Db250cm9sLiovXG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuICAgIC8qKiBAaGlkZGVuIFJlZmVyZW5jZSB0byBjYWxsYmFjayBwcm92aWRlZCBieSBGb3JtQ29udHJvbC4qL1xuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gVXNlZCB0byBkZWZpbmUgaWYgY29udHJvbCBpcyBpbiAnaW5kZXRlcm1pbmF0ZScgc3RhdGUuKi9cbiAgICBnZXQgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2JveFN0YXRlID09PSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVXNlZCB0byBkZWZpbmUgaWYgY29udHJvbCBpcyBpbiAnY2hlY2tlZCcgLyAndW5jaGVja2VkJyBzdGF0ZS4gKi9cbiAgICBnZXQgaXNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2JveFN0YXRlID09PSAnY2hlY2tlZCcgfHwgdGhpcy5jaGVja2JveFN0YXRlID09PSAnZm9yY2UtY2hlY2tlZCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3RhYkluZGV4VmFsdWUnKSBwdWJsaWMgdGFiSW5kZXhWYWx1ZTogbnVtYmVyID0gMCxcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExJU1RfSVRFTV9DT01QT05FTlQpIHByaXZhdGUgX2xpc3RJdGVtQ29tcG9uZW50OiBMaXN0SXRlbUludGVyZmFjZVxuICAgICkge1xuICAgICAgICB0aGlzLnRhYkluZGV4VmFsdWUgPSB0YWJJbmRleFZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3QgPT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZS5faXNDb21wYWN0RGVuc2l0eS5zdWJzY3JpYmUoKGlzQ29tcGFjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBhY3QgPSBpc0NvbXBhY3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgICogLSBzZXRzIG5ldyBjb250cm9sIHZhbHVlXG4gICAgICogLSB1cGRhdGVzIGNvbnRyb2wgc3RhdGVcbiAgICAgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldFN0YXRlKCk7XG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UgbWV0aG9kIC0gc2V0cyBvblZhbHVlQ2hhbmdlIGNhbGxiYWNrLiovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSBtZXRob2QgLSBzZXRzIG9uVG91Y2hlZCBjYWxsYmFjay4qL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDYWxsZWQgYnkgRm9ybUNvbnRyb2wgLSB1c2VkIHRvIGRpc2FibGUgLyBlbmFibGUgY29udHJvbC4qL1xuICAgIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEJhc2VkIG9uIGN1cnJlbnQgY29udHJvbCBzdGF0ZTpcbiAgICAgKiAtIHNldHMgbmV4dCBjb250cm9sIHZhbHVlXG4gICAgICogLSBlbWl0cyBuZXcgY29udHJvbCB2YWx1ZVxuICAgICAqIC0gdXBkYXRlcyBjb250cm9sIHN0YXRlIGJhc2VkIG9uIG5ldyBjb250cm9sIHZhbHVlXG4gICAgICogKi9cbiAgICBuZXh0VmFsdWUocHJldmlvdXNWYWx1ZT86IEZkQ2hlY2tib3hUeXBlcyk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHByZXZpb3VzVmFsdWUgfHwgdGhpcy5jaGVja2JveFN0YXRlKSB7XG4gICAgICAgICAgICBjYXNlICdjaGVja2VkJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94VmFsdWUgPSB0aGlzLnZhbHVlcy5mYWxzZVZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndW5jaGVja2VkJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94VmFsdWUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaXN0YXRlICYmIHRoaXMudHJpc3RhdGVTZWxlY3RhYmxlID8gdGhpcy52YWx1ZXMudGhpcmRTdGF0ZVZhbHVlIDogdGhpcy52YWx1ZXMudHJ1ZVZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaW5kZXRlcm1pbmF0ZSc6XG4gICAgICAgICAgICBjYXNlICdmb3JjZS1jaGVja2VkJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94VmFsdWUgPSB0aGlzLnZhbHVlcy50cnVlVmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2hlY2tlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJpc3RhdGUgJiYgdGhpcy50cmlzdGF0ZVNlbGVjdGFibGUgPyB0aGlzLnZhbHVlcy50aGlyZFN0YXRlVmFsdWUgOiB0aGlzLnZhbHVlcy50cnVlVmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0U3RhdGUoKTtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlKHRoaXMuY2hlY2tib3hWYWx1ZSk7XG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGJsdXIgZXZlbnQgKi9cbiAgICBfb25CbHVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMub25Ub3VjaGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgZm9jdXMgZXZlbnQgKi9cbiAgICBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgY2xpY2sgb24gdGhlIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCBuYXRpdmUgY2hlY2tib3ggaW5wdXQgKi9cbiAgICBfb25MYWJlbENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBXZSBoYXZlIHRvIHN0b3AgcHJvcGFnYXRpb24gZm9yIGNsaWNrIGV2ZW50cyBvbiB0aGUgaW5wdXQgbGFiZWwuXG4gICAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gYSB1c2VyIGNsaWNrcyBvbiBhIGxhYmVsIGVsZW1lbnQsIGEgZ2VuZXJhdGVkIGNsaWNrIGV2ZW50IHdpbGwgYmVcbiAgICAgICAgLy8gZGlzcGF0Y2hlZCBvbiB0aGUgYXNzb2NpYXRlZCBpbnB1dCBlbGVtZW50LiBUaGlzIHdpbGwgbGVhZCB0byBkdXBsaWNhdGVkIFwiY2xpY2tcIiBldmVudCBkaXNwYXRjaGVkIGZyb20gdGhlIGNvbXBvbmVudFxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGNsaWNrIG9uIHRoZSBuYXRpdmUgY2hlY2tib3ggaW5wdXQgKi9cbiAgICBfb25JbnB1dENsaWNrKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSdzIGEgY2xpY2sgZXZlbnQgZGlzcGF0Y2hlZCBmcm9tIHRoZSBpbnB1dCwgd2UgaGF2ZSB0byBjYXRjaCBpdCwgcHJvY2VzcyBhbmQgdGhlbiByZS1kaXNwYXRjaCBpdCBmdXJ0aGVyLlxuICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBpbiBvcmRlciB0byBzZXQgdGhlIHZhbHVlIHRvIHRoZSBjb21wb25lbnQgYmVmb3JlIGFueSBleHRlcm5hbCBsaXN0ZW5lcnMgd2lsbCByZWNlaXZlIGl0LlxuICAgICAgICAvLyBPdGhlcndpc2UgY2hlY2tib3ggbWlnaHQgYmUgb3V0IG9mIHN5bmMuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm5leHRWYWx1ZSgpO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBQb2ludGVyRXZlbnQoZXZlbnQudHlwZSwgZXZlbnQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBCYXNlZCBvbiBjdXJyZW50IGNvbnRyb2wgdmFsdWUgc2V0cyBuZXcgY29udHJvbCBzdGF0ZS4gKi9cbiAgICBwcml2YXRlIF9zZXRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVxdWFsKHRoaXMuY2hlY2tib3hWYWx1ZSwgdGhpcy52YWx1ZXMudHJ1ZVZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgICAgICB9IGVsc2UgaWYgKGVxdWFsKHRoaXMuY2hlY2tib3hWYWx1ZSwgdGhpcy52YWx1ZXMuZmFsc2VWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHJpc3RhdGUgJiYgZXF1YWwodGhpcy5jaGVja2JveFZhbHVlLCB0aGlzLnZhbHVlcy50aGlyZFN0YXRlVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94U3RhdGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuY2hlY2tib3hWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBpbiBjb21wb25lbnQgKi9cbiAgICBwcml2YXRlIF9kZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NoYW5nZURldGVjdG9yUmVmWydkZXN0cm95ZWQnXSkge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGlucHV0XG4gICAgI2lucHV0RWxlbWVudFxuICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgY2xhc3M9XCJmZC1jaGVja2JveFwiXG4gICAgW2lkXT1cImlucHV0SWRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNJbmRldGVybWluYXRlXCJcbiAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4VmFsdWVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbY2xhc3MuZmQtY2hlY2tib3gtLWNvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgW2NsYXNzXT1cInN0YXRlID8gJ2lzLScgKyBzdGF0ZSA6ICcnXCJcbiAgICAoY2xpY2spPVwiX29uSW5wdXRDbGljaygkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJfb25CbHVyKClcIlxuICAgIChmb2N1cyk9XCJfb25Gb2N1cygpXCJcbi8+XG5cbjxsYWJlbFxuICAgIGNsYXNzPVwiZmQtY2hlY2tib3hfX2xhYmVsXCJcbiAgICAjbGFiZWxFbGVtZW50XG4gICAgW2Zvcl09XCJpbnB1dElkXCJcbiAgICBbY2xhc3NdPVwibGFiZWxDbGFzc1wiXG4gICAgW2F0dHIudGl0bGVdPVwidGl0bGVcIlxuICAgIFtjbGFzcy5mZC1jaGVja2JveF9fbGFiZWwtLWNvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgW2NsYXNzLmZkLWNoZWNrYm94X19sYWJlbC0tcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIChjbGljayk9XCJfb25MYWJlbENsaWNrKCRldmVudClcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1jaGVja2JveF9fbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1jaGVja2JveF9fdGV4dFwiPlxuICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFiZWxcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtY2hlY2tib3hfX3RleHRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==
@@ -1,2 +1,6 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmQtY2hlY2tib3gtdmFsdWVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94L2ZkLWNoZWNrYm94LXZhbHVlcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmRDaGVja2JveFZhbHVlcyB7XG4gICAgdHJ1ZVZhbHVlPzogYW55O1xuICAgIGZhbHNlVmFsdWU/OiBhbnk7XG4gICAgdGhpcmRTdGF0ZVZhbHVlPzogYW55O1xufVxuIl19
1
+ export const FD_CHECKBOX_VALUES_DEFAULT = {
2
+ trueValue: true,
3
+ falseValue: false,
4
+ thirdStateValue: null
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmQtY2hlY2tib3gtdmFsdWVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94L2ZkLWNoZWNrYm94LXZhbHVlcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQStCO0lBQ2xFLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLEtBQUs7SUFDakIsZUFBZSxFQUFFLElBQUk7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmRDaGVja2JveFZhbHVlcyB7XG4gICAgdHJ1ZVZhbHVlPzogYW55O1xuICAgIGZhbHNlVmFsdWU/OiBhbnk7XG4gICAgdGhpcmRTdGF0ZVZhbHVlPzogYW55O1xufVxuXG5leHBvcnQgY29uc3QgRkRfQ0hFQ0tCT1hfVkFMVUVTX0RFRkFVTFQ6IFJlYWRvbmx5PEZkQ2hlY2tib3hWYWx1ZXM+ID0ge1xuICAgIHRydWVWYWx1ZTogdHJ1ZSxcbiAgICBmYWxzZVZhbHVlOiBmYWxzZSxcbiAgICB0aGlyZFN0YXRlVmFsdWU6IG51bGxcbn07XG4iXX0=
@@ -1,3 +1,4 @@
1
1
  export * from './checkbox.module';
2
2
  export * from './checkbox/checkbox.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NoZWNrYm94L3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuIl19
3
+ export * from './checkbox/fd-checkbox-values.interface';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NoZWNrYm94L3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NoZWNrYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94L2ZkLWNoZWNrYm94LXZhbHVlcy5pbnRlcmZhY2UnO1xuIl19
@@ -8,6 +8,12 @@ import { LIST_ITEM_COMPONENT } from '@fundamental-ngx/core/utils';
8
8
  import equal from 'fast-deep-equal';
9
9
  import { Subscription } from 'rxjs';
10
10
 
11
+ const FD_CHECKBOX_VALUES_DEFAULT = {
12
+ trueValue: true,
13
+ falseValue: false,
14
+ thirdStateValue: null
15
+ };
16
+
11
17
  let checkboxUniqueId = 0;
12
18
  class CheckboxComponent {
13
19
  /** @hidden */
@@ -38,8 +44,8 @@ class CheckboxComponent {
38
44
  this.outline = 'none';
39
45
  /** Emits event on focus change */
40
46
  this.focusChange = new EventEmitter();
41
- /** Values returned by control. */
42
- this.values = { trueValue: true, falseValue: false, thirdStateValue: null };
47
+ /** @hidden values returned by control. */
48
+ this._values = Object.assign({}, FD_CHECKBOX_VALUES_DEFAULT);
43
49
  /** @hidden Reference to callback provided by FormControl.*/
44
50
  this.onTouched = () => { };
45
51
  /** @hidden Reference to callback provided by FormControl.*/
@@ -54,9 +60,11 @@ class CheckboxComponent {
54
60
  return this.checkboxValue;
55
61
  }
56
62
  /** Sets values returned by control. */
57
- // eslint-disable-next-line @angular-eslint/no-input-rename
58
- set _values(checkboxValues) {
59
- this.values = Object.assign(Object.assign({}, this.values), checkboxValues);
63
+ get values() {
64
+ return this._values;
65
+ }
66
+ set values(checkboxValues) {
67
+ this._values = Object.assign(Object.assign({}, FD_CHECKBOX_VALUES_DEFAULT), (checkboxValues !== null && checkboxValues !== void 0 ? checkboxValues : {}));
60
68
  }
61
69
  /** @hidden Used to define if control is in 'indeterminate' state.*/
62
70
  get isIndeterminate() {
@@ -182,7 +190,7 @@ class CheckboxComponent {
182
190
  }
183
191
  }
184
192
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ElementRef }, { token: 'tabIndexValue', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.ContentDensityService, optional: true }, { token: LIST_ITEM_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
185
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: CheckboxComponent, selector: "fd-checkbox", inputs: { ariaLabel: "ariaLabel", value: "value", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", title: "title", inputId: "inputId", state: "state", name: "name", label: "label", disabled: "disabled", compact: "compact", tristate: "tristate", tristateSelectable: "tristateSelectable", labelClass: "labelClass", required: "required", _values: ["values", "_values"] }, outputs: { focusChange: "focusChange" }, host: { properties: { "attr.tabindex": "-1", "style.position": "this.position", "style.outline": "this.outline" } }, providers: [
193
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: CheckboxComponent, selector: "fd-checkbox", inputs: { ariaLabel: "ariaLabel", value: "value", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", title: "title", inputId: "inputId", state: "state", name: "name", label: "label", disabled: "disabled", compact: "compact", tristate: "tristate", tristateSelectable: "tristateSelectable", labelClass: "labelClass", required: "required", values: "values" }, outputs: { focusChange: "focusChange" }, host: { properties: { "attr.tabindex": "-1", "style.position": "this.position", "style.outline": "this.outline" } }, providers: [
186
194
  {
187
195
  provide: NG_VALUE_ACCESSOR,
188
196
  useExisting: forwardRef(() => CheckboxComponent),
@@ -246,9 +254,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
246
254
  type: Input
247
255
  }], required: [{
248
256
  type: Input
249
- }], _values: [{
250
- type: Input,
251
- args: ['values']
257
+ }], values: [{
258
+ type: Input
252
259
  }], position: [{
253
260
  type: HostBinding,
254
261
  args: ['style.position']
@@ -277,5 +284,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
277
284
  * Generated bundle index. Do not edit.
278
285
  */
279
286
 
280
- export { CheckboxComponent, CheckboxModule };
287
+ export { CheckboxComponent, CheckboxModule, FD_CHECKBOX_VALUES_DEFAULT };
281
288
  //# sourceMappingURL=fundamental-ngx-core-checkbox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-checkbox.mjs","sources":["../../../../../libs/core/src/lib/checkbox/checkbox/checkbox.component.ts","../../../../../libs/core/src/lib/checkbox/checkbox/checkbox.component.html","../../../../../libs/core/src/lib/checkbox/checkbox.module.ts","../../../../../libs/core/src/lib/checkbox/fundamental-ngx-core-checkbox.ts"],"sourcesContent":["import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FdCheckboxValues } from './fd-checkbox-values.interface';\nimport { LIST_ITEM_COMPONENT, ListItemInterface, ContentDensityService } from '@fundamental-ngx/core/utils';\nimport equal from 'fast-deep-equal';\nimport { Subscription } from 'rxjs';\nimport { FormStates } from '@fundamental-ngx/core/shared';\n\nlet checkboxUniqueId = 0;\n\nexport type FdCheckboxTypes = 'checked' | 'unchecked' | 'indeterminate' | 'force-checked';\n\n@Component({\n selector: 'fd-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }\n ],\n host: { '[attr.tabindex]': '-1' }\n})\nexport class CheckboxComponent implements ControlValueAccessor, OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('inputElement')\n inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild('labelElement')\n labelElement: ElementRef;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel = '';\n\n /** Current selection state of the checkbox component */\n @Input()\n set value(value: any) {\n this.writeValue(value);\n }\n get value(): any {\n return this.checkboxValue;\n }\n\n /** Sets the `aria-labelledby` attribute to the element. */\n @Input()\n ariaLabelledBy = null;\n\n /** Sets the `aria-describedby` attribute to the element. */\n @Input()\n ariaDescribedBy: string;\n\n /** sets checkbox tooltip */\n @Input()\n title: string;\n\n /** Sets [id] property of input, binds input with input label using [for] property. */\n @Input()\n inputId = `fd-checkbox-${checkboxUniqueId++}`;\n\n /** State of control, changes visual appearance of control. */\n @Input()\n state: FormStates;\n\n /** Sets [name] property of input. */\n @Input()\n name: string;\n\n /** Sets text of control label. */\n @Input()\n label: string;\n\n /** Allows to disable/enable control. */\n @Input()\n disabled: boolean;\n\n /** Allows to minimize control to compact mode. */\n @Input()\n compact?: boolean;\n\n /** Enables controls third state. */\n @Input()\n tristate = false;\n\n /** Allows to prevent user from manually selecting controls third state. */\n @Input()\n tristateSelectable = false;\n\n /** Assigns given class to checkbox label element */\n @Input()\n labelClass: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** Sets values returned by control. */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('values')\n set _values(checkboxValues: FdCheckboxValues) {\n this.values = { ...this.values, ...checkboxValues };\n }\n\n /** @hidden */\n @HostBinding('style.position')\n readonly position = 'relative';\n\n /** @hidden */\n @HostBinding('style.outline')\n readonly outline = 'none';\n\n /** Emits event on focus change */\n @Output() focusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Values returned by control. */\n public values: FdCheckboxValues = { trueValue: true, falseValue: false, thirdStateValue: null };\n /** Stores current checkbox value. */\n public checkboxValue: any;\n /** Stores current checkbox state. */\n public checkboxState: FdCheckboxTypes;\n\n /** @hidden Reference to callback provided by FormControl.*/\n public onTouched = (): void => {};\n /** @hidden Reference to callback provided by FormControl.*/\n public onValueChange: (value: any) => void = () => {};\n\n /** @hidden Used to define if control is in 'indeterminate' state.*/\n get isIndeterminate(): boolean {\n return this.checkboxState === 'indeterminate';\n }\n\n /** @hidden Used to define if control is in 'checked' / 'unchecked' state. */\n get isChecked(): boolean {\n return this.checkboxState === 'checked' || this.checkboxState === 'force-checked';\n }\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<Element>,\n @Attribute('tabIndexValue') public tabIndexValue: number = 0,\n private _changeDetectorRef: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional() private _contentDensityService: ContentDensityService,\n @Optional() @Inject(LIST_ITEM_COMPONENT) private _listItemComponent: ListItemInterface\n ) {\n this.tabIndexValue = tabIndexValue;\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._changeDetectorRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /**\n * @hidden ControlValueAccessor interface\n * - sets new control value\n * - updates control state\n */\n writeValue(value: any): void {\n this.checkboxValue = value;\n this._setState();\n this._detectChanges();\n }\n\n /** @hidden ControlValueAccessor interface method - sets onValueChange callback.*/\n registerOnChange(fn: any): void {\n this.onValueChange = fn;\n }\n\n /** @hidden ControlValueAccessor interface method - sets onTouched callback.*/\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden Called by FormControl - used to disable / enable control.*/\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this._detectChanges();\n }\n\n /**\n * @hidden\n * Based on current control state:\n * - sets next control value\n * - emits new control value\n * - updates control state based on new control value\n * */\n nextValue(previousValue?: FdCheckboxTypes): void {\n switch (previousValue || this.checkboxState) {\n case 'checked':\n this.checkboxValue = this.values.falseValue;\n break;\n case 'unchecked':\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n case 'indeterminate':\n case 'force-checked':\n this.checkboxValue = this.values.trueValue;\n this.renderer.setProperty(this.inputElement.nativeElement, 'checked', 'true');\n break;\n default:\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n }\n this._setState();\n this.onValueChange(this.checkboxValue);\n this._detectChanges();\n }\n\n /** @hidden handles blur event */\n _onBlur(): void {\n if (typeof this.onTouched === 'function') {\n this.onTouched();\n }\n this.focusChange.emit(false);\n }\n /** @hidden handles focus event */\n _onFocus(): void {\n this.focusChange.emit(true);\n }\n\n /** @hidden handles click on the label associated with native checkbox input */\n _onLabelClick(event: Event): void {\n // We have to stop propagation for click events on the input label.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. This will lead to duplicated \"click\" event dispatched from the component\n event.stopPropagation();\n }\n\n /** @hidden handles click on the native checkbox input */\n _onInputClick(event: PointerEvent): void {\n // When there's a click event dispatched from the input, we have to catch it, process and then re-dispatch it further.\n // This is needed in order to set the value to the component before any external listeners will receive it.\n // Otherwise checkbox might be out of sync.\n event.stopPropagation();\n this.nextValue();\n this.elementRef.nativeElement.dispatchEvent(new PointerEvent(event.type, event));\n }\n\n /** @hidden Based on current control value sets new control state. */\n private _setState(): void {\n if (equal(this.checkboxValue, this.values.trueValue)) {\n this.checkboxState = 'checked';\n } else if (equal(this.checkboxValue, this.values.falseValue)) {\n this.checkboxState = 'unchecked';\n } else if (this.tristate && equal(this.checkboxValue, this.values.thirdStateValue)) {\n this.checkboxState = 'indeterminate';\n } else if (!this.checkboxValue) {\n this.checkboxState = 'unchecked';\n }\n }\n\n /** Method to trigger change detection in component */\n private _detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n}\n","<input\n #inputElement\n type=\"checkbox\"\n class=\"fd-checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n [attr.tabindex]=\"tabIndexValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [class.fd-checkbox--compact]=\"compact\"\n [class]=\"state ? 'is-' + state : ''\"\n (click)=\"_onInputClick($event)\"\n (blur)=\"_onBlur()\"\n (focus)=\"_onFocus()\"\n/>\n\n<label\n class=\"fd-checkbox__label\"\n #labelElement\n [for]=\"inputId\"\n [class]=\"labelClass\"\n [attr.title]=\"title\"\n [class.fd-checkbox__label--compact]=\"compact\"\n [class.fd-checkbox__label--required]=\"required\"\n (click)=\"_onLabelClick($event)\"\n>\n <div class=\"fd-checkbox__label-container\">\n <ng-container *ngIf=\"label\">\n <span class=\"fd-checkbox__text\">\n {{ label }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!label\">\n <span class=\"fd-checkbox__text\">\n <ng-content></ng-content>\n </span>\n </ng-container>\n </div>\n</label>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, FormsModule],\n exports: [CheckboxComponent]\n})\nexport class CheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-checkbox.mjs","sources":["../../../../../libs/core/src/lib/checkbox/checkbox/fd-checkbox-values.interface.ts","../../../../../libs/core/src/lib/checkbox/checkbox/checkbox.component.ts","../../../../../libs/core/src/lib/checkbox/checkbox/checkbox.component.html","../../../../../libs/core/src/lib/checkbox/checkbox.module.ts","../../../../../libs/core/src/lib/checkbox/fundamental-ngx-core-checkbox.ts"],"sourcesContent":["export interface FdCheckboxValues {\n trueValue?: any;\n falseValue?: any;\n thirdStateValue?: any;\n}\n\nexport const FD_CHECKBOX_VALUES_DEFAULT: Readonly<FdCheckboxValues> = {\n trueValue: true,\n falseValue: false,\n thirdStateValue: null\n};\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FdCheckboxValues } from './fd-checkbox-values.interface';\nimport { LIST_ITEM_COMPONENT, ListItemInterface, ContentDensityService } from '@fundamental-ngx/core/utils';\nimport equal from 'fast-deep-equal';\nimport { Subscription } from 'rxjs';\nimport { FormStates } from '@fundamental-ngx/core/shared';\nimport { FD_CHECKBOX_VALUES_DEFAULT } from './fd-checkbox-values.interface';\n\nlet checkboxUniqueId = 0;\n\nexport type FdCheckboxTypes = 'checked' | 'unchecked' | 'indeterminate' | 'force-checked';\n\n@Component({\n selector: 'fd-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }\n ],\n host: { '[attr.tabindex]': '-1' }\n})\nexport class CheckboxComponent implements ControlValueAccessor, OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('inputElement')\n inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild('labelElement')\n labelElement: ElementRef;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel = '';\n\n /** Current selection state of the checkbox component */\n @Input()\n set value(value: any) {\n this.writeValue(value);\n }\n get value(): any {\n return this.checkboxValue;\n }\n\n /** Sets the `aria-labelledby` attribute to the element. */\n @Input()\n ariaLabelledBy = null;\n\n /** Sets the `aria-describedby` attribute to the element. */\n @Input()\n ariaDescribedBy: string;\n\n /** sets checkbox tooltip */\n @Input()\n title: string;\n\n /** Sets [id] property of input, binds input with input label using [for] property. */\n @Input()\n inputId = `fd-checkbox-${checkboxUniqueId++}`;\n\n /** State of control, changes visual appearance of control. */\n @Input()\n state: FormStates;\n\n /** Sets [name] property of input. */\n @Input()\n name: string;\n\n /** Sets text of control label. */\n @Input()\n label: string;\n\n /** Allows to disable/enable control. */\n @Input()\n disabled: boolean;\n\n /** Allows to minimize control to compact mode. */\n @Input()\n compact?: boolean;\n\n /** Enables controls third state. */\n @Input()\n tristate = false;\n\n /** Allows to prevent user from manually selecting controls third state. */\n @Input()\n tristateSelectable = false;\n\n /** Assigns given class to checkbox label element */\n @Input()\n labelClass: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** Sets values returned by control. */\n @Input()\n get values(): FdCheckboxValues {\n return this._values;\n }\n set values(checkboxValues: FdCheckboxValues) {\n this._values = { ...FD_CHECKBOX_VALUES_DEFAULT, ...(checkboxValues ?? {}) };\n }\n\n /** @hidden */\n @HostBinding('style.position')\n readonly position = 'relative';\n\n /** @hidden */\n @HostBinding('style.outline')\n readonly outline = 'none';\n\n /** Emits event on focus change */\n @Output() focusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden values returned by control. */\n private _values: FdCheckboxValues = { ...FD_CHECKBOX_VALUES_DEFAULT };\n /** Stores current checkbox value. */\n public checkboxValue: any;\n /** Stores current checkbox state. */\n public checkboxState: FdCheckboxTypes;\n\n /** @hidden Reference to callback provided by FormControl.*/\n public onTouched = (): void => {};\n /** @hidden Reference to callback provided by FormControl.*/\n public onValueChange: (value: any) => void = () => {};\n\n /** @hidden Used to define if control is in 'indeterminate' state.*/\n get isIndeterminate(): boolean {\n return this.checkboxState === 'indeterminate';\n }\n\n /** @hidden Used to define if control is in 'checked' / 'unchecked' state. */\n get isChecked(): boolean {\n return this.checkboxState === 'checked' || this.checkboxState === 'force-checked';\n }\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<Element>,\n @Attribute('tabIndexValue') public tabIndexValue: number = 0,\n private _changeDetectorRef: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional() private _contentDensityService: ContentDensityService,\n @Optional() @Inject(LIST_ITEM_COMPONENT) private _listItemComponent: ListItemInterface\n ) {\n this.tabIndexValue = tabIndexValue;\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._changeDetectorRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /**\n * @hidden ControlValueAccessor interface\n * - sets new control value\n * - updates control state\n */\n writeValue(value: any): void {\n this.checkboxValue = value;\n this._setState();\n this._detectChanges();\n }\n\n /** @hidden ControlValueAccessor interface method - sets onValueChange callback.*/\n registerOnChange(fn: any): void {\n this.onValueChange = fn;\n }\n\n /** @hidden ControlValueAccessor interface method - sets onTouched callback.*/\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden Called by FormControl - used to disable / enable control.*/\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this._detectChanges();\n }\n\n /**\n * @hidden\n * Based on current control state:\n * - sets next control value\n * - emits new control value\n * - updates control state based on new control value\n * */\n nextValue(previousValue?: FdCheckboxTypes): void {\n switch (previousValue || this.checkboxState) {\n case 'checked':\n this.checkboxValue = this.values.falseValue;\n break;\n case 'unchecked':\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n case 'indeterminate':\n case 'force-checked':\n this.checkboxValue = this.values.trueValue;\n this.renderer.setProperty(this.inputElement.nativeElement, 'checked', 'true');\n break;\n default:\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n }\n this._setState();\n this.onValueChange(this.checkboxValue);\n this._detectChanges();\n }\n\n /** @hidden handles blur event */\n _onBlur(): void {\n if (typeof this.onTouched === 'function') {\n this.onTouched();\n }\n this.focusChange.emit(false);\n }\n /** @hidden handles focus event */\n _onFocus(): void {\n this.focusChange.emit(true);\n }\n\n /** @hidden handles click on the label associated with native checkbox input */\n _onLabelClick(event: Event): void {\n // We have to stop propagation for click events on the input label.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. This will lead to duplicated \"click\" event dispatched from the component\n event.stopPropagation();\n }\n\n /** @hidden handles click on the native checkbox input */\n _onInputClick(event: PointerEvent): void {\n // When there's a click event dispatched from the input, we have to catch it, process and then re-dispatch it further.\n // This is needed in order to set the value to the component before any external listeners will receive it.\n // Otherwise checkbox might be out of sync.\n event.stopPropagation();\n this.nextValue();\n this.elementRef.nativeElement.dispatchEvent(new PointerEvent(event.type, event));\n }\n\n /** @hidden Based on current control value sets new control state. */\n private _setState(): void {\n if (equal(this.checkboxValue, this.values.trueValue)) {\n this.checkboxState = 'checked';\n } else if (equal(this.checkboxValue, this.values.falseValue)) {\n this.checkboxState = 'unchecked';\n } else if (this.tristate && equal(this.checkboxValue, this.values.thirdStateValue)) {\n this.checkboxState = 'indeterminate';\n } else if (!this.checkboxValue) {\n this.checkboxState = 'unchecked';\n }\n }\n\n /** Method to trigger change detection in component */\n private _detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n}\n","<input\n #inputElement\n type=\"checkbox\"\n class=\"fd-checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n [attr.tabindex]=\"tabIndexValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [class.fd-checkbox--compact]=\"compact\"\n [class]=\"state ? 'is-' + state : ''\"\n (click)=\"_onInputClick($event)\"\n (blur)=\"_onBlur()\"\n (focus)=\"_onFocus()\"\n/>\n\n<label\n class=\"fd-checkbox__label\"\n #labelElement\n [for]=\"inputId\"\n [class]=\"labelClass\"\n [attr.title]=\"title\"\n [class.fd-checkbox__label--compact]=\"compact\"\n [class.fd-checkbox__label--required]=\"required\"\n (click)=\"_onLabelClick($event)\"\n>\n <div class=\"fd-checkbox__label-container\">\n <ng-container *ngIf=\"label\">\n <span class=\"fd-checkbox__text\">\n {{ label }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!label\">\n <span class=\"fd-checkbox__text\">\n <ng-content></ng-content>\n </span>\n </ng-container>\n </div>\n</label>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, FormsModule],\n exports: [CheckboxComponent]\n})\nexport class CheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -8,6 +8,12 @@ import { LIST_ITEM_COMPONENT } from '@fundamental-ngx/core/utils';
8
8
  import equal from 'fast-deep-equal';
9
9
  import { Subscription } from 'rxjs';
10
10
 
11
+ const FD_CHECKBOX_VALUES_DEFAULT = {
12
+ trueValue: true,
13
+ falseValue: false,
14
+ thirdStateValue: null
15
+ };
16
+
11
17
  let checkboxUniqueId = 0;
12
18
  class CheckboxComponent {
13
19
  /** @hidden */
@@ -38,8 +44,8 @@ class CheckboxComponent {
38
44
  this.outline = 'none';
39
45
  /** Emits event on focus change */
40
46
  this.focusChange = new EventEmitter();
41
- /** Values returned by control. */
42
- this.values = { trueValue: true, falseValue: false, thirdStateValue: null };
47
+ /** @hidden values returned by control. */
48
+ this._values = { ...FD_CHECKBOX_VALUES_DEFAULT };
43
49
  /** @hidden Reference to callback provided by FormControl.*/
44
50
  this.onTouched = () => { };
45
51
  /** @hidden Reference to callback provided by FormControl.*/
@@ -54,9 +60,11 @@ class CheckboxComponent {
54
60
  return this.checkboxValue;
55
61
  }
56
62
  /** Sets values returned by control. */
57
- // eslint-disable-next-line @angular-eslint/no-input-rename
58
- set _values(checkboxValues) {
59
- this.values = { ...this.values, ...checkboxValues };
63
+ get values() {
64
+ return this._values;
65
+ }
66
+ set values(checkboxValues) {
67
+ this._values = { ...FD_CHECKBOX_VALUES_DEFAULT, ...(checkboxValues ?? {}) };
60
68
  }
61
69
  /** @hidden Used to define if control is in 'indeterminate' state.*/
62
70
  get isIndeterminate() {
@@ -182,7 +190,7 @@ class CheckboxComponent {
182
190
  }
183
191
  }
184
192
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ElementRef }, { token: 'tabIndexValue', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.ContentDensityService, optional: true }, { token: LIST_ITEM_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
185
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: CheckboxComponent, selector: "fd-checkbox", inputs: { ariaLabel: "ariaLabel", value: "value", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", title: "title", inputId: "inputId", state: "state", name: "name", label: "label", disabled: "disabled", compact: "compact", tristate: "tristate", tristateSelectable: "tristateSelectable", labelClass: "labelClass", required: "required", _values: ["values", "_values"] }, outputs: { focusChange: "focusChange" }, host: { properties: { "attr.tabindex": "-1", "style.position": "this.position", "style.outline": "this.outline" } }, providers: [
193
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: CheckboxComponent, selector: "fd-checkbox", inputs: { ariaLabel: "ariaLabel", value: "value", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", title: "title", inputId: "inputId", state: "state", name: "name", label: "label", disabled: "disabled", compact: "compact", tristate: "tristate", tristateSelectable: "tristateSelectable", labelClass: "labelClass", required: "required", values: "values" }, outputs: { focusChange: "focusChange" }, host: { properties: { "attr.tabindex": "-1", "style.position": "this.position", "style.outline": "this.outline" } }, providers: [
186
194
  {
187
195
  provide: NG_VALUE_ACCESSOR,
188
196
  useExisting: forwardRef(() => CheckboxComponent),
@@ -244,9 +252,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
244
252
  type: Input
245
253
  }], required: [{
246
254
  type: Input
247
- }], _values: [{
248
- type: Input,
249
- args: ['values']
255
+ }], values: [{
256
+ type: Input
250
257
  }], position: [{
251
258
  type: HostBinding,
252
259
  args: ['style.position']
@@ -275,5 +282,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
275
282
  * Generated bundle index. Do not edit.
276
283
  */
277
284
 
278
- export { CheckboxComponent, CheckboxModule };
285
+ export { CheckboxComponent, CheckboxModule, FD_CHECKBOX_VALUES_DEFAULT };
279
286
  //# sourceMappingURL=fundamental-ngx-core-checkbox.mjs.map