novo-elements 7.6.0 → 7.7.0-next.2

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 (35) hide show
  1. package/elements/data-table/sort-filter/sort-button.component.scss +3 -0
  2. package/elements/query-builder/condition-builder/condition-builder.component.scss +3 -0
  3. package/esm2020/src/elements/data-table/sort-filter/sort-button.animations.mjs +3 -3
  4. package/esm2020/src/elements/data-table/sort-filter/sort-button.component.mjs +3 -3
  5. package/esm2020/src/elements/date-time-picker/DateTimePicker.mjs +6 -3
  6. package/esm2020/src/elements/field/field-control.mjs +1 -1
  7. package/esm2020/src/elements/field/field.mjs +4 -1
  8. package/esm2020/src/elements/field/field.module.mjs +6 -1
  9. package/esm2020/src/elements/field/formats/date-time-format.mjs +255 -0
  10. package/esm2020/src/elements/field/index.mjs +2 -1
  11. package/esm2020/src/elements/form/Form.module.mjs +4 -1
  12. package/esm2020/src/elements/query-builder/condition-builder/condition-builder.component.mjs +3 -3
  13. package/esm2020/src/elements/query-builder/condition-definitions/abstract-condition.definition.mjs +4 -1
  14. package/esm2020/src/elements/query-builder/condition-definitions/address-condition.definition.mjs +34 -12
  15. package/esm2020/src/elements/query-builder/condition-definitions/boolean-condition.definition.mjs +20 -16
  16. package/esm2020/src/elements/query-builder/condition-definitions/date-condition.definition.mjs +68 -59
  17. package/esm2020/src/elements/query-builder/condition-definitions/number-condition.definition.mjs +35 -13
  18. package/esm2020/src/elements/query-builder/condition-definitions/picker-condition.definition.mjs +44 -23
  19. package/esm2020/src/elements/query-builder/condition-definitions/string-condition.definition.mjs +59 -38
  20. package/esm2020/src/elements/query-builder/query-builder.module.mjs +5 -1
  21. package/esm2020/src/services/novo-label-service.mjs +2 -1
  22. package/fesm2015/novo-elements.mjs +556 -207
  23. package/fesm2015/novo-elements.mjs.map +1 -1
  24. package/fesm2020/novo-elements.mjs +553 -207
  25. package/fesm2020/novo-elements.mjs.map +1 -1
  26. package/package.json +1 -1
  27. package/src/elements/date-time-picker/DateTimePicker.d.ts +1 -0
  28. package/src/elements/field/field.module.d.ts +11 -10
  29. package/src/elements/field/formats/date-time-format.d.ts +33 -0
  30. package/src/elements/field/index.d.ts +1 -0
  31. package/src/elements/form/Form.module.d.ts +5 -5
  32. package/src/elements/query-builder/condition-definitions/abstract-condition.definition.d.ts +2 -0
  33. package/src/elements/query-builder/condition-definitions/date-condition.definition.d.ts +0 -2
  34. package/src/elements/query-builder/query-builder.module.d.ts +7 -6
  35. package/src/services/novo-label-service.d.ts +1 -0
@@ -4,8 +4,12 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../field/field";
5
5
  import * as i2 from "../../select/Select";
6
6
  import * as i3 from "../../common/option/option.component";
7
- import * as i4 from "../query-builder.directives";
8
- import * as i5 from "@angular/forms";
7
+ import * as i4 from "../../radio/RadioGroup";
8
+ import * as i5 from "../../radio/Radio";
9
+ import * as i6 from "../query-builder.directives";
10
+ import * as i7 from "@angular/forms";
11
+ import * as i8 from "@angular/common";
12
+ import * as i9 from "../../common/directives/switch-cases.directive";
9
13
  /**
10
14
  * Handle selection of field values when a list of options is provided.
11
15
  */
@@ -19,17 +23,26 @@ NovoDefaultAddressConditionDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12
19
23
  NovoDefaultAddressConditionDef.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoDefaultAddressConditionDef, selector: "novo-address-condition-def", usesInheritance: true, ngImport: i0, template: `
20
24
  <ng-container novoConditionFieldDef>
21
25
  <novo-field *novoConditionOperatorsDef="let formGroup" [formGroup]="formGroup">
22
- <novo-select [placeholder]="labels.operator" formControlName="operator">
26
+ <novo-select [placeholder]="labels.operator" formControlName="operator" (onSelect)="onOperatorSelect(formGroup)">
23
27
  <novo-option value="includeAny">{{ labels.includeAny }}</novo-option>
24
28
  <novo-option value="excludeAny">{{ labels.exclude }}</novo-option>
25
29
  <novo-option value="radius">{{ labels.radius }}</novo-option>
30
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
26
31
  </novo-select>
27
32
  </novo-field>
28
- <novo-field *novoConditionInputDef="let formGroup; fieldMeta as meta" [formGroup]="formGroup">
29
- <novo-select formControlName="value" [placeholder]="labels.select" [multiple]="true"> </novo-select>
30
- </novo-field>
33
+ <ng-container *novoConditionInputDef="let formGroup; viewIndex as viewIndex; fieldMeta as meta" [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
34
+ <novo-field *novoSwitchCases="['includeAny', 'excludeAny', 'radius']">
35
+ <novo-select formControlName="value" [placeholder]="labels.select" [multiple]="true"> </novo-select>
36
+ </novo-field>
37
+ <novo-field *novoSwitchCases="['isNull']">
38
+ <novo-radio-group formControlName="value">
39
+ <novo-radio [value]="true">{{ labels.yes }}</novo-radio>
40
+ <novo-radio [value]="false">{{ labels.no }}</novo-radio>
41
+ </novo-radio-group>
42
+ </novo-field>
43
+ </ng-container>
31
44
  </ng-container>
32
- `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }], directives: [{ type: i4.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i4.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NovoConditionInputDef, selector: "[novoConditionInputDef]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
45
+ `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: i4.NovoRadioGroup, selector: "novo-radio-group", inputs: ["id", "tabindex", "errorStateMatcher", "appearance", "value", "name", "disabled", "required", "placeholder"], outputs: ["change", "blur"] }, { type: i5.NovoRadioElement, selector: "novo-radio", inputs: ["id", "name", "tabindex", "vertical", "label", "button", "theme", "size", "icon", "color", "checked", "value", "disabled"], outputs: ["change", "blur", "focus"] }], directives: [{ type: i6.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i6.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.NovoConditionInputDef, selector: "[novoConditionInputDef]" }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.SwitchCasesDirective, selector: "[novoSwitchCases]", inputs: ["novoSwitchCases"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
33
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDefaultAddressConditionDef, decorators: [{
34
47
  type: Component,
35
48
  args: [{
@@ -37,19 +50,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
37
50
  template: `
38
51
  <ng-container novoConditionFieldDef>
39
52
  <novo-field *novoConditionOperatorsDef="let formGroup" [formGroup]="formGroup">
40
- <novo-select [placeholder]="labels.operator" formControlName="operator">
53
+ <novo-select [placeholder]="labels.operator" formControlName="operator" (onSelect)="onOperatorSelect(formGroup)">
41
54
  <novo-option value="includeAny">{{ labels.includeAny }}</novo-option>
42
55
  <novo-option value="excludeAny">{{ labels.exclude }}</novo-option>
43
56
  <novo-option value="radius">{{ labels.radius }}</novo-option>
57
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
44
58
  </novo-select>
45
59
  </novo-field>
46
- <novo-field *novoConditionInputDef="let formGroup; fieldMeta as meta" [formGroup]="formGroup">
47
- <novo-select formControlName="value" [placeholder]="labels.select" [multiple]="true"> </novo-select>
48
- </novo-field>
60
+ <ng-container *novoConditionInputDef="let formGroup; viewIndex as viewIndex; fieldMeta as meta" [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
61
+ <novo-field *novoSwitchCases="['includeAny', 'excludeAny', 'radius']">
62
+ <novo-select formControlName="value" [placeholder]="labels.select" [multiple]="true"> </novo-select>
63
+ </novo-field>
64
+ <novo-field *novoSwitchCases="['isNull']">
65
+ <novo-radio-group formControlName="value">
66
+ <novo-radio [value]="true">{{ labels.yes }}</novo-radio>
67
+ <novo-radio [value]="false">{{ labels.no }}</novo-radio>
68
+ </novo-radio-group>
69
+ </novo-field>
70
+ </ng-container>
49
71
  </ng-container>
50
72
  `,
51
73
  encapsulation: ViewEncapsulation.None,
52
74
  changeDetection: ChangeDetectionStrategy.Default,
53
75
  }]
54
76
  }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb25kaXRpb24uZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3F1ZXJ5LWJ1aWxkZXIvY29uZGl0aW9uLWRlZmluaXRpb25zL2FkZHJlc3MtY29uZGl0aW9uLmRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7OztBQUU1RTs7R0FFRztBQW9CSCxNQUFNLE9BQU8sOEJBQStCLFNBQVEseUJBQXlCO0lBbkI3RTs7UUFvQkUsb0JBQWUsR0FBRyxZQUFZLENBQUM7S0FDaEM7OzRIQUZZLDhCQUE4QjtnSEFBOUIsOEJBQThCLHlGQWpCL0I7Ozs7Ozs7Ozs7Ozs7R0FhVDs0RkFJVSw4QkFBOEI7a0JBbkIxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB9IGZyb20gJy4vYWJzdHJhY3QtY29uZGl0aW9uLmRlZmluaXRpb24nO1xuXG4vKipcbiAqIEhhbmRsZSBzZWxlY3Rpb24gb2YgZmllbGQgdmFsdWVzIHdoZW4gYSBsaXN0IG9mIG9wdGlvbnMgaXMgcHJvdmlkZWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdm8tYWRkcmVzcy1jb25kaXRpb24tZGVmJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyIG5vdm9Db25kaXRpb25GaWVsZERlZj5cbiAgICAgIDxub3ZvLWZpZWxkICpub3ZvQ29uZGl0aW9uT3BlcmF0b3JzRGVmPVwibGV0IGZvcm1Hcm91cFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgIDxub3ZvLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwibGFiZWxzLm9wZXJhdG9yXCIgZm9ybUNvbnRyb2xOYW1lPVwib3BlcmF0b3JcIj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJpbmNsdWRlQW55XCI+e3sgbGFiZWxzLmluY2x1ZGVBbnkgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImV4Y2x1ZGVBbnlcIj57eyBsYWJlbHMuZXhjbHVkZSB9fTwvbm92by1vcHRpb24+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwicmFkaXVzXCI+e3sgbGFiZWxzLnJhZGl1cyB9fTwvbm92by1vcHRpb24+XG4gICAgICAgIDwvbm92by1zZWxlY3Q+XG4gICAgICA8L25vdm8tZmllbGQ+XG4gICAgICA8bm92by1maWVsZCAqbm92b0NvbmRpdGlvbklucHV0RGVmPVwibGV0IGZvcm1Hcm91cDsgZmllbGRNZXRhIGFzIG1ldGFcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bm92by1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBbcGxhY2Vob2xkZXJdPVwibGFiZWxzLnNlbGVjdFwiIFttdWx0aXBsZV09XCJ0cnVlXCI+IDwvbm92by1zZWxlY3Q+XG4gICAgICA8L25vdm8tZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RlZmF1bHRBZGRyZXNzQ29uZGl0aW9uRGVmIGV4dGVuZHMgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB7XG4gIGRlZmF1bHRPcGVyYXRvciA9ICdpbmNsdWRlQW55Jztcbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb25kaXRpb24uZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3F1ZXJ5LWJ1aWxkZXIvY29uZGl0aW9uLWRlZmluaXRpb25zL2FkZHJlc3MtY29uZGl0aW9uLmRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFFNUU7O0dBRUc7QUE2QkgsTUFBTSxPQUFPLDhCQUErQixTQUFRLHlCQUF5QjtJQTVCN0U7O1FBNkJFLG9CQUFlLEdBQUcsWUFBWSxDQUFDO0tBQ2hDOzs0SEFGWSw4QkFBOEI7Z0hBQTlCLDhCQUE4Qix5RkExQi9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUOzRGQUlVLDhCQUE4QjtrQkE1QjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB9IGZyb20gJy4vYWJzdHJhY3QtY29uZGl0aW9uLmRlZmluaXRpb24nO1xuXG4vKipcbiAqIEhhbmRsZSBzZWxlY3Rpb24gb2YgZmllbGQgdmFsdWVzIHdoZW4gYSBsaXN0IG9mIG9wdGlvbnMgaXMgcHJvdmlkZWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdm8tYWRkcmVzcy1jb25kaXRpb24tZGVmJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyIG5vdm9Db25kaXRpb25GaWVsZERlZj5cbiAgICAgIDxub3ZvLWZpZWxkICpub3ZvQ29uZGl0aW9uT3BlcmF0b3JzRGVmPVwibGV0IGZvcm1Hcm91cFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgIDxub3ZvLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwibGFiZWxzLm9wZXJhdG9yXCIgZm9ybUNvbnRyb2xOYW1lPVwib3BlcmF0b3JcIiAob25TZWxlY3QpPVwib25PcGVyYXRvclNlbGVjdChmb3JtR3JvdXApXCI+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiaW5jbHVkZUFueVwiPnt7IGxhYmVscy5pbmNsdWRlQW55IH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJleGNsdWRlQW55XCI+e3sgbGFiZWxzLmV4Y2x1ZGUgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cInJhZGl1c1wiPnt7IGxhYmVscy5yYWRpdXMgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImlzTnVsbFwiPnt7IGxhYmVscy5pc0VtcHR5IH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgPC9ub3ZvLXNlbGVjdD5cbiAgICAgIDwvbm92by1maWVsZD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5vdm9Db25kaXRpb25JbnB1dERlZj1cImxldCBmb3JtR3JvdXA7IHZpZXdJbmRleCBhcyB2aWV3SW5kZXg7IGZpZWxkTWV0YSBhcyBtZXRhXCIgW25nU3dpdGNoXT1cImZvcm1Hcm91cC52YWx1ZS5vcGVyYXRvclwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgIDxub3ZvLWZpZWxkICpub3ZvU3dpdGNoQ2FzZXM9XCJbJ2luY2x1ZGVBbnknLCAnZXhjbHVkZUFueScsICdyYWRpdXMnXVwiPlxuICAgICAgICAgIDxub3ZvLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJsYWJlbHMuc2VsZWN0XCIgW211bHRpcGxlXT1cInRydWVcIj4gPC9ub3ZvLXNlbGVjdD5cbiAgICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgICAgICA8bm92by1maWVsZCAqbm92b1N3aXRjaENhc2VzPVwiWydpc051bGwnXVwiPlxuICAgICAgICAgIDxub3ZvLXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+XG4gICAgICAgICAgICA8bm92by1yYWRpbyBbdmFsdWVdPVwidHJ1ZVwiPnt7IGxhYmVscy55ZXMgfX08L25vdm8tcmFkaW8+XG4gICAgICAgICAgICA8bm92by1yYWRpbyBbdmFsdWVdPVwiZmFsc2VcIj57eyBsYWJlbHMubm8gfX08L25vdm8tcmFkaW8+XG4gICAgICAgICAgPC9ub3ZvLXJhZGlvLWdyb3VwPlxuICAgICAgICA8L25vdm8tZmllbGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvRGVmYXVsdEFkZHJlc3NDb25kaXRpb25EZWYgZXh0ZW5kcyBBYnN0cmFjdENvbmRpdGlvbkZpZWxkRGVmIHtcbiAgZGVmYXVsdE9wZXJhdG9yID0gJ2luY2x1ZGVBbnknO1xufVxuIl19
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../field/field";
5
5
  import * as i2 from "../../select/Select";
6
6
  import * as i3 from "../../common/option/option.component";
7
- import * as i4 from "../query-builder.directives";
8
- import * as i5 from "@angular/forms";
7
+ import * as i4 from "../../radio/RadioGroup";
8
+ import * as i5 from "../../radio/Radio";
9
+ import * as i6 from "../query-builder.directives";
10
+ import * as i7 from "@angular/forms";
9
11
  /**
10
12
  * When constructing a query using a field that is a boolean with only true/false as possible values.
11
13
  */
@@ -19,19 +21,20 @@ NovoDefaultBooleanConditionDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12
19
21
  NovoDefaultBooleanConditionDef.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoDefaultBooleanConditionDef, selector: "novo-boolean-condition-def", usesInheritance: true, ngImport: i0, template: `
20
22
  <ng-container novoConditionFieldDef>
21
23
  <novo-field *novoConditionOperatorsDef="let formGroup" [formGroup]="formGroup">
22
- <novo-select [placeholder]="labels.operator" formControlName="operator">
24
+ <novo-select [placeholder]="labels.operator" formControlName="operator" (onSelect)="onOperatorSelect(formGroup)">
23
25
  <novo-option value="include">{{ labels.equals }}</novo-option>
24
26
  <novo-option value="exclude">{{ labels.doesNotEqual }}</novo-option>
27
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
25
28
  </novo-select>
26
29
  </novo-field>
27
- <novo-field *novoConditionInputDef="let formGroup" [style.width.px]="100" [formGroup]="formGroup">
28
- <novo-select [placeholder]="labels.value" formControlName="value">
29
- <novo-option [value]="true">{{ labels.true }}</novo-option>
30
- <novo-option [value]="false">{{ labels.false }}</novo-option>
31
- </novo-select>
30
+ <novo-field *novoConditionInputDef="let formGroup" [style.width.px]="125" [formGroup]="formGroup">
31
+ <novo-radio-group formControlName="value">
32
+ <novo-radio [value]="true">{{ formGroup.value.operator === 'isNull' ? labels.yes : labels.true }}</novo-radio>
33
+ <novo-radio [value]="false">{{ formGroup.value.operator === 'isNull' ? labels.no : labels.false }}</novo-radio>
34
+ </novo-radio-group>
32
35
  </novo-field>
33
36
  </ng-container>
34
- `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }], directives: [{ type: i4.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i4.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NovoConditionInputDef, selector: "[novoConditionInputDef]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
37
+ `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: i4.NovoRadioGroup, selector: "novo-radio-group", inputs: ["id", "tabindex", "errorStateMatcher", "appearance", "value", "name", "disabled", "required", "placeholder"], outputs: ["change", "blur"] }, { type: i5.NovoRadioElement, selector: "novo-radio", inputs: ["id", "name", "tabindex", "vertical", "label", "button", "theme", "size", "icon", "color", "checked", "value", "disabled"], outputs: ["change", "blur", "focus"] }], directives: [{ type: i6.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i6.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.NovoConditionInputDef, selector: "[novoConditionInputDef]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
35
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDefaultBooleanConditionDef, decorators: [{
36
39
  type: Component,
37
40
  args: [{
@@ -39,16 +42,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
39
42
  template: `
40
43
  <ng-container novoConditionFieldDef>
41
44
  <novo-field *novoConditionOperatorsDef="let formGroup" [formGroup]="formGroup">
42
- <novo-select [placeholder]="labels.operator" formControlName="operator">
45
+ <novo-select [placeholder]="labels.operator" formControlName="operator" (onSelect)="onOperatorSelect(formGroup)">
43
46
  <novo-option value="include">{{ labels.equals }}</novo-option>
44
47
  <novo-option value="exclude">{{ labels.doesNotEqual }}</novo-option>
48
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
45
49
  </novo-select>
46
50
  </novo-field>
47
- <novo-field *novoConditionInputDef="let formGroup" [style.width.px]="100" [formGroup]="formGroup">
48
- <novo-select [placeholder]="labels.value" formControlName="value">
49
- <novo-option [value]="true">{{ labels.true }}</novo-option>
50
- <novo-option [value]="false">{{ labels.false }}</novo-option>
51
- </novo-select>
51
+ <novo-field *novoConditionInputDef="let formGroup" [style.width.px]="125" [formGroup]="formGroup">
52
+ <novo-radio-group formControlName="value">
53
+ <novo-radio [value]="true">{{ formGroup.value.operator === 'isNull' ? labels.yes : labels.true }}</novo-radio>
54
+ <novo-radio [value]="false">{{ formGroup.value.operator === 'isNull' ? labels.no : labels.false }}</novo-radio>
55
+ </novo-radio-group>
52
56
  </novo-field>
53
57
  </ng-container>
54
58
  `,
@@ -56,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
56
60
  changeDetection: ChangeDetectionStrategy.Default,
57
61
  }]
58
62
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jb25kaXRpb24uZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3F1ZXJ5LWJ1aWxkZXIvY29uZGl0aW9uLWRlZmluaXRpb25zL2Jvb2xlYW4tY29uZGl0aW9uLmRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7OztBQUU1RTs7R0FFRztBQXNCSCxNQUFNLE9BQU8sOEJBQStCLFNBQVEseUJBQXlCO0lBckI3RTs7UUFzQkUsb0JBQWUsR0FBRyxTQUFTLENBQUM7S0FDN0I7OzRIQUZZLDhCQUE4QjtnSEFBOUIsOEJBQThCLHlGQW5CL0I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzRGQUlVLDhCQUE4QjtrQkFyQjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87aUJBQ2pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29uZGl0aW9uRmllbGREZWYgfSBmcm9tICcuL2Fic3RyYWN0LWNvbmRpdGlvbi5kZWZpbml0aW9uJztcblxuLyoqXG4gKiBXaGVuIGNvbnN0cnVjdGluZyBhIHF1ZXJ5IHVzaW5nIGEgZmllbGQgdGhhdCBpcyBhIGJvb2xlYW4gd2l0aCBvbmx5IHRydWUvZmFsc2UgYXMgcG9zc2libGUgdmFsdWVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLWJvb2xlYW4tY29uZGl0aW9uLWRlZicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciBub3ZvQ29uZGl0aW9uRmllbGREZWY+XG4gICAgICA8bm92by1maWVsZCAqbm92b0NvbmRpdGlvbk9wZXJhdG9yc0RlZj1cImxldCBmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bm92by1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cImxhYmVscy5vcGVyYXRvclwiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCI+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiaW5jbHVkZVwiPnt7IGxhYmVscy5lcXVhbHMgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImV4Y2x1ZGVcIj57eyBsYWJlbHMuZG9lc05vdEVxdWFsIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgPC9ub3ZvLXNlbGVjdD5cbiAgICAgIDwvbm92by1maWVsZD5cbiAgICAgIDxub3ZvLWZpZWxkICpub3ZvQ29uZGl0aW9uSW5wdXREZWY9XCJsZXQgZm9ybUdyb3VwXCIgW3N0eWxlLndpZHRoLnB4XT1cIjEwMFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgIDxub3ZvLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwibGFiZWxzLnZhbHVlXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj5cbiAgICAgICAgICA8bm92by1vcHRpb24gW3ZhbHVlXT1cInRydWVcIj57eyBsYWJlbHMudHJ1ZSB9fTwvbm92by1vcHRpb24+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uIFt2YWx1ZV09XCJmYWxzZVwiPnt7IGxhYmVscy5mYWxzZSB9fTwvbm92by1vcHRpb24+XG4gICAgICAgIDwvbm92by1zZWxlY3Q+XG4gICAgICA8L25vdm8tZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RlZmF1bHRCb29sZWFuQ29uZGl0aW9uRGVmIGV4dGVuZHMgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB7XG4gIGRlZmF1bHRPcGVyYXRvciA9ICdpbmNsdWRlJztcbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jb25kaXRpb24uZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3F1ZXJ5LWJ1aWxkZXIvY29uZGl0aW9uLWRlZmluaXRpb25zL2Jvb2xlYW4tY29uZGl0aW9uLmRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBRTVFOztHQUVHO0FBdUJILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSx5QkFBeUI7SUF0QjdFOztRQXVCRSxvQkFBZSxHQUFHLFNBQVMsQ0FBQztLQUM3Qjs7NEhBRlksOEJBQThCO2dIQUE5Qiw4QkFBOEIseUZBcEIvQjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDs0RkFJVSw4QkFBOEI7a0JBdEIxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87aUJBQ2pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29uZGl0aW9uRmllbGREZWYgfSBmcm9tICcuL2Fic3RyYWN0LWNvbmRpdGlvbi5kZWZpbml0aW9uJztcblxuLyoqXG4gKiBXaGVuIGNvbnN0cnVjdGluZyBhIHF1ZXJ5IHVzaW5nIGEgZmllbGQgdGhhdCBpcyBhIGJvb2xlYW4gd2l0aCBvbmx5IHRydWUvZmFsc2UgYXMgcG9zc2libGUgdmFsdWVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLWJvb2xlYW4tY29uZGl0aW9uLWRlZicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciBub3ZvQ29uZGl0aW9uRmllbGREZWY+XG4gICAgICA8bm92by1maWVsZCAqbm92b0NvbmRpdGlvbk9wZXJhdG9yc0RlZj1cImxldCBmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bm92by1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cImxhYmVscy5vcGVyYXRvclwiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCIgKG9uU2VsZWN0KT1cIm9uT3BlcmF0b3JTZWxlY3QoZm9ybUdyb3VwKVwiPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImluY2x1ZGVcIj57eyBsYWJlbHMuZXF1YWxzIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJleGNsdWRlXCI+e3sgbGFiZWxzLmRvZXNOb3RFcXVhbCB9fTwvbm92by1vcHRpb24+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiaXNOdWxsXCI+e3sgbGFiZWxzLmlzRW1wdHkgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICA8L25vdm8tc2VsZWN0PlxuICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgICAgPG5vdm8tZmllbGQgKm5vdm9Db25kaXRpb25JbnB1dERlZj1cImxldCBmb3JtR3JvdXBcIiBbc3R5bGUud2lkdGgucHhdPVwiMTI1XCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgICAgPG5vdm8tcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj5cbiAgICAgICAgICA8bm92by1yYWRpbyBbdmFsdWVdPVwidHJ1ZVwiPnt7IGZvcm1Hcm91cC52YWx1ZS5vcGVyYXRvciA9PT0gJ2lzTnVsbCcgPyBsYWJlbHMueWVzIDogbGFiZWxzLnRydWUgfX08L25vdm8tcmFkaW8+XG4gICAgICAgICAgPG5vdm8tcmFkaW8gW3ZhbHVlXT1cImZhbHNlXCI+e3sgZm9ybUdyb3VwLnZhbHVlLm9wZXJhdG9yID09PSAnaXNOdWxsJyA/IGxhYmVscy5ubyA6IGxhYmVscy5mYWxzZSB9fTwvbm92by1yYWRpbz5cbiAgICAgICAgPC9ub3ZvLXJhZGlvLWdyb3VwPlxuICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG59KVxuZXhwb3J0IGNsYXNzIE5vdm9EZWZhdWx0Qm9vbGVhbkNvbmRpdGlvbkRlZiBleHRlbmRzIEFic3RyYWN0Q29uZGl0aW9uRmllbGREZWYge1xuICBkZWZhdWx0T3BlcmF0b3IgPSAnaW5jbHVkZSc7XG59XG4iXX0=
@@ -7,14 +7,16 @@ import * as i2 from "../../select/Select";
7
7
  import * as i3 from "../../common/option/option.component";
8
8
  import * as i4 from "../../field/toggle/picker-toggle.component";
9
9
  import * as i5 from "../../date-picker/DatePicker";
10
- import * as i6 from "../query-builder.directives";
11
- import * as i7 from "@angular/forms";
12
- import * as i8 from "@angular/common";
13
- import * as i9 from "../../common/directives/switch-cases.directive";
14
- import * as i10 from "../../field/input";
15
- import * as i11 from "../../field/formats/date-format";
16
- import * as i12 from "../../field/picker.directive";
17
- import * as i13 from "../../field/formats/date-range-format";
10
+ import * as i6 from "../../radio/RadioGroup";
11
+ import * as i7 from "../../radio/Radio";
12
+ import * as i8 from "../query-builder.directives";
13
+ import * as i9 from "@angular/forms";
14
+ import * as i10 from "@angular/common";
15
+ import * as i11 from "../../common/directives/switch-cases.directive";
16
+ import * as i12 from "../../field/input";
17
+ import * as i13 from "../../field/formats/date-format";
18
+ import * as i14 from "../../field/picker.directive";
19
+ import * as i15 from "../../field/formats/date-range-format";
18
20
  /**
19
21
  * Most complicated of the default conditions defs, a date needs to provide a different
20
22
  * input type depending on the operator selected.
@@ -24,9 +26,6 @@ export class NovoDefaultDateConditionDef extends AbstractConditionFieldDef {
24
26
  super(...arguments);
25
27
  this.defaultOperator = 'within';
26
28
  }
27
- onOperatorSelect(formGroup) {
28
- formGroup.get('value').setValue(null);
29
- }
30
29
  closePanel(event, viewIndex) {
31
30
  const overlay = this.overlayChildren.find(item => item.overlayId === viewIndex);
32
31
  overlay.closePanel(event);
@@ -41,34 +40,39 @@ NovoDefaultDateConditionDef.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
41
40
  <novo-option value="after">{{ labels.after }}</novo-option>
42
41
  <novo-option value="between">{{ labels.between }}</novo-option>
43
42
  <novo-option value="within">{{ labels.within }}</novo-option>
43
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
44
44
  </novo-select>
45
45
  </novo-field>
46
- <ng-container *novoConditionInputDef="let formGroup; viewIndex as viewIndex">
47
- <ng-container [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
48
- <novo-field *novoSwitchCases="['before', 'after']">
49
- <input novoInput dateFormat="iso8601" [picker]="datepicker" formControlName="value" />
50
- <novo-picker-toggle triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
51
- <novo-date-picker (onSelect)="closePanel($event, viewIndex)" #datepicker></novo-date-picker>
52
- </novo-picker-toggle>
53
- </novo-field>
54
- <novo-field *novoSwitchCases="['between']">
55
- <input novoInput dateRangeFormat="date" [picker]="daterangepicker" formControlName="value" />
56
- <novo-picker-toggle [for]="daterangepicker" triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
57
- <novo-date-picker #daterangepicker (onSelect)="closePanel($event, viewIndex)" mode="range" numberOfMonths="2"></novo-date-picker>
58
- </novo-picker-toggle>
59
- </novo-field>
60
- <novo-field *novoSwitchCases="['within']">
61
- <novo-select [placeholder]="labels.selectDateRange" formControlName="value">
62
- <novo-option value="7">{{ labels.next7Days }}</novo-option>
63
- <novo-option value="-7">{{ labels.past7Days }}</novo-option>
64
- <novo-option value="-30">{{ labels.past30Days }}</novo-option>
65
- <novo-option value="-90">{{ labels.past90Days }}</novo-option>
66
- </novo-select>
67
- </novo-field>
68
- </ng-container>
46
+ <ng-container *novoConditionInputDef="let formGroup; viewIndex as viewIndex" [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
47
+ <novo-field *novoSwitchCases="['before', 'after']">
48
+ <input novoInput dateFormat="iso8601" [picker]="datepicker" formControlName="value" />
49
+ <novo-picker-toggle triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
50
+ <novo-date-picker (onSelect)="closePanel($event, viewIndex)" #datepicker></novo-date-picker>
51
+ </novo-picker-toggle>
52
+ </novo-field>
53
+ <novo-field *novoSwitchCases="['between']">
54
+ <input novoInput dateRangeFormat="date" [picker]="daterangepicker" formControlName="value" />
55
+ <novo-picker-toggle [for]="daterangepicker" triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
56
+ <novo-date-picker #daterangepicker (onSelect)="closePanel($event, viewIndex)" mode="range" numberOfMonths="2"></novo-date-picker>
57
+ </novo-picker-toggle>
58
+ </novo-field>
59
+ <novo-field *novoSwitchCases="['within']">
60
+ <novo-select [placeholder]="labels.selectDateRange" formControlName="value">
61
+ <novo-option value="7">{{ labels.next7Days }}</novo-option>
62
+ <novo-option value="-7">{{ labels.past7Days }}</novo-option>
63
+ <novo-option value="-30">{{ labels.past30Days }}</novo-option>
64
+ <novo-option value="-90">{{ labels.past90Days }}</novo-option>
65
+ </novo-select>
66
+ </novo-field>
67
+ <novo-field *novoSwitchCases="['isNull']">
68
+ <novo-radio-group formControlName="value">
69
+ <novo-radio [value]="true">{{ labels.yes }}</novo-radio>
70
+ <novo-radio [value]="false">{{ labels.no }}</novo-radio>
71
+ </novo-radio-group>
72
+ </novo-field>
69
73
  </ng-container>
70
74
  </ng-container>
71
- `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: i4.NovoPickerToggleElement, selector: "novo-picker-toggle", inputs: ["for", "icon", "tabIndex", "aria-label", "triggerOnFocus", "overlayId", "disabled"], exportAs: ["novoPickerToggle"] }, { type: i5.NovoDatePickerElement, selector: "novo-date-picker", inputs: ["minYear", "maxYear", "start", "end", "inline", "weekStart", "preselected", "hideOverflowDays", "hideFooter", "disabledDateMessage", "numberOfMonths", "mode", "range", "weekRangeSelect"], outputs: ["onSelect"] }], directives: [{ type: i6.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i6.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.NovoConditionInputDef, selector: "[novoConditionInputDef]" }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.SwitchCasesDirective, selector: "[novoSwitchCases]", inputs: ["novoSwitchCases"] }, { type: i10.NovoInput, selector: "input[novoInput], textarea[novoInput], select[novoInput]", inputs: ["disabled", "id", "placeholder", "required", "type", "value", "readonly"] }, { type: i11.NovoDateFormatDirective, selector: "input[dateFormat]", inputs: ["dateFormat"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i12.NovoPickerDirective, selector: "input[picker]", inputs: ["picker", "autocomplete"] }, { type: i1.NovoFieldSuffixDirective, selector: "[novoSuffix]" }, { type: i13.NovoDateRangeFormatDirective, selector: "input[dateRangeFormat]", inputs: ["dateRangeFormat"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
75
+ `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: i4.NovoPickerToggleElement, selector: "novo-picker-toggle", inputs: ["for", "icon", "tabIndex", "aria-label", "triggerOnFocus", "overlayId", "disabled"], exportAs: ["novoPickerToggle"] }, { type: i5.NovoDatePickerElement, selector: "novo-date-picker", inputs: ["minYear", "maxYear", "start", "end", "inline", "weekStart", "preselected", "hideOverflowDays", "hideFooter", "disabledDateMessage", "numberOfMonths", "mode", "range", "weekRangeSelect"], outputs: ["onSelect"] }, { type: i6.NovoRadioGroup, selector: "novo-radio-group", inputs: ["id", "tabindex", "errorStateMatcher", "appearance", "value", "name", "disabled", "required", "placeholder"], outputs: ["change", "blur"] }, { type: i7.NovoRadioElement, selector: "novo-radio", inputs: ["id", "name", "tabindex", "vertical", "label", "button", "theme", "size", "icon", "color", "checked", "value", "disabled"], outputs: ["change", "blur", "focus"] }], directives: [{ type: i8.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i8.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.NovoConditionInputDef, selector: "[novoConditionInputDef]" }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.SwitchCasesDirective, selector: "[novoSwitchCases]", inputs: ["novoSwitchCases"] }, { type: i12.NovoInput, selector: "input[novoInput], textarea[novoInput], select[novoInput]", inputs: ["disabled", "id", "placeholder", "required", "type", "value", "readonly"] }, { type: i13.NovoDateFormatDirective, selector: "input[dateFormat]", inputs: ["dateFormat"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i14.NovoPickerDirective, selector: "input[picker]", inputs: ["picker", "autocomplete"] }, { type: i1.NovoFieldSuffixDirective, selector: "[novoSuffix]" }, { type: i15.NovoDateRangeFormatDirective, selector: "input[dateRangeFormat]", inputs: ["dateRangeFormat"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
72
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDefaultDateConditionDef, decorators: [{
73
77
  type: Component,
74
78
  args: [{
@@ -81,31 +85,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
81
85
  <novo-option value="after">{{ labels.after }}</novo-option>
82
86
  <novo-option value="between">{{ labels.between }}</novo-option>
83
87
  <novo-option value="within">{{ labels.within }}</novo-option>
88
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
84
89
  </novo-select>
85
90
  </novo-field>
86
- <ng-container *novoConditionInputDef="let formGroup; viewIndex as viewIndex">
87
- <ng-container [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
88
- <novo-field *novoSwitchCases="['before', 'after']">
89
- <input novoInput dateFormat="iso8601" [picker]="datepicker" formControlName="value" />
90
- <novo-picker-toggle triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
91
- <novo-date-picker (onSelect)="closePanel($event, viewIndex)" #datepicker></novo-date-picker>
92
- </novo-picker-toggle>
93
- </novo-field>
94
- <novo-field *novoSwitchCases="['between']">
95
- <input novoInput dateRangeFormat="date" [picker]="daterangepicker" formControlName="value" />
96
- <novo-picker-toggle [for]="daterangepicker" triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
97
- <novo-date-picker #daterangepicker (onSelect)="closePanel($event, viewIndex)" mode="range" numberOfMonths="2"></novo-date-picker>
98
- </novo-picker-toggle>
99
- </novo-field>
100
- <novo-field *novoSwitchCases="['within']">
101
- <novo-select [placeholder]="labels.selectDateRange" formControlName="value">
102
- <novo-option value="7">{{ labels.next7Days }}</novo-option>
103
- <novo-option value="-7">{{ labels.past7Days }}</novo-option>
104
- <novo-option value="-30">{{ labels.past30Days }}</novo-option>
105
- <novo-option value="-90">{{ labels.past90Days }}</novo-option>
106
- </novo-select>
107
- </novo-field>
108
- </ng-container>
91
+ <ng-container *novoConditionInputDef="let formGroup; viewIndex as viewIndex" [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
92
+ <novo-field *novoSwitchCases="['before', 'after']">
93
+ <input novoInput dateFormat="iso8601" [picker]="datepicker" formControlName="value" />
94
+ <novo-picker-toggle triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
95
+ <novo-date-picker (onSelect)="closePanel($event, viewIndex)" #datepicker></novo-date-picker>
96
+ </novo-picker-toggle>
97
+ </novo-field>
98
+ <novo-field *novoSwitchCases="['between']">
99
+ <input novoInput dateRangeFormat="date" [picker]="daterangepicker" formControlName="value" />
100
+ <novo-picker-toggle [for]="daterangepicker" triggerOnFocus [overlayId]="viewIndex" novoSuffix icon="calendar">
101
+ <novo-date-picker #daterangepicker (onSelect)="closePanel($event, viewIndex)" mode="range" numberOfMonths="2"></novo-date-picker>
102
+ </novo-picker-toggle>
103
+ </novo-field>
104
+ <novo-field *novoSwitchCases="['within']">
105
+ <novo-select [placeholder]="labels.selectDateRange" formControlName="value">
106
+ <novo-option value="7">{{ labels.next7Days }}</novo-option>
107
+ <novo-option value="-7">{{ labels.past7Days }}</novo-option>
108
+ <novo-option value="-30">{{ labels.past30Days }}</novo-option>
109
+ <novo-option value="-90">{{ labels.past90Days }}</novo-option>
110
+ </novo-select>
111
+ </novo-field>
112
+ <novo-field *novoSwitchCases="['isNull']">
113
+ <novo-radio-group formControlName="value">
114
+ <novo-radio [value]="true">{{ labels.yes }}</novo-radio>
115
+ <novo-radio [value]="false">{{ labels.no }}</novo-radio>
116
+ </novo-radio-group>
117
+ </novo-field>
109
118
  </ng-container>
110
119
  </ng-container>
111
120
  `,
@@ -116,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
116
125
  type: ViewChildren,
117
126
  args: [NovoPickerToggleElement]
118
127
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jb25kaXRpb24uZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3F1ZXJ5LWJ1aWxkZXIvY29uZGl0aW9uLWRlZmluaXRpb25zL2RhdGUtY29uZGl0aW9uLmRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBZ0IsU0FBUyxFQUFhLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFOzs7R0FHRztBQTBDSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEseUJBQXlCO0lBekMxRTs7UUE2Q0Usb0JBQWUsR0FBRyxRQUFRLENBQUM7S0FVNUI7SUFSQyxnQkFBZ0IsQ0FBQyxTQUFvQjtRQUNuQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUNoRixPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7O3lIQWJVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLG1HQUN4Qix1QkFBdUIsdUVBeEMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ1Q7NEZBSVUsMkJBQTJCO2tCQXpDdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDakQ7OEJBR0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5vdm9QaWNrZXJUb2dnbGVFbGVtZW50IH0gZnJvbSAnLi8uLi8uLi9maWVsZC90b2dnbGUvcGlja2VyLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB9IGZyb20gJy4vYWJzdHJhY3QtY29uZGl0aW9uLmRlZmluaXRpb24nO1xuXG4vKipcbiAqIE1vc3QgY29tcGxpY2F0ZWQgb2YgdGhlIGRlZmF1bHQgY29uZGl0aW9ucyBkZWZzLCBhIGRhdGUgbmVlZHMgdG8gcHJvdmlkZSBhIGRpZmZlcmVudFxuICogaW5wdXQgdHlwZSBkZXBlbmRpbmcgb24gdGhlIG9wZXJhdG9yIHNlbGVjdGVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLWRhdGUtY29uZGl0aW9uLWRlZicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciBub3ZvQ29uZGl0aW9uRmllbGREZWY9XCJEQVRFXCI+XG4gICAgICA8bm92by1maWVsZCAqbm92b0NvbmRpdGlvbk9wZXJhdG9yc0RlZj1cImxldCBmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bm92by1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cImxhYmVscy5vcGVyYXRvclwiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCIgKG9uU2VsZWN0KT1cIm9uT3BlcmF0b3JTZWxlY3QoZm9ybUdyb3VwKVwiPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImJlZm9yZVwiPnt7IGxhYmVscy5iZWZvcmUgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImFmdGVyXCI+e3sgbGFiZWxzLmFmdGVyIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJiZXR3ZWVuXCI+e3sgbGFiZWxzLmJldHdlZW4gfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cIndpdGhpblwiPnt7IGxhYmVscy53aXRoaW4gfX08L25vdm8tb3B0aW9uPlxuICAgICAgICA8L25vdm8tc2VsZWN0PlxuICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbm92b0NvbmRpdGlvbklucHV0RGVmPVwibGV0IGZvcm1Hcm91cDsgdmlld0luZGV4IGFzIHZpZXdJbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmb3JtR3JvdXAudmFsdWUub3BlcmF0b3JcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICAgIDxub3ZvLWZpZWxkICpub3ZvU3dpdGNoQ2FzZXM9XCJbJ2JlZm9yZScsICdhZnRlciddXCI+XG4gICAgICAgICAgICA8aW5wdXQgbm92b0lucHV0IGRhdGVGb3JtYXQ9XCJpc284NjAxXCIgW3BpY2tlcl09XCJkYXRlcGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAvPlxuICAgICAgICAgICAgPG5vdm8tcGlja2VyLXRvZ2dsZSB0cmlnZ2VyT25Gb2N1cyBbb3ZlcmxheUlkXT1cInZpZXdJbmRleFwiIG5vdm9TdWZmaXggaWNvbj1cImNhbGVuZGFyXCI+XG4gICAgICAgICAgICAgIDxub3ZvLWRhdGUtcGlja2VyIChvblNlbGVjdCk9XCJjbG9zZVBhbmVsKCRldmVudCwgdmlld0luZGV4KVwiICNkYXRlcGlja2VyPjwvbm92by1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgIDwvbm92by1waWNrZXItdG9nZ2xlPlxuICAgICAgICAgIDwvbm92by1maWVsZD5cbiAgICAgICAgICA8bm92by1maWVsZCAqbm92b1N3aXRjaENhc2VzPVwiWydiZXR3ZWVuJ11cIj5cbiAgICAgICAgICAgIDxpbnB1dCBub3ZvSW5wdXQgZGF0ZVJhbmdlRm9ybWF0PVwiZGF0ZVwiIFtwaWNrZXJdPVwiZGF0ZXJhbmdlcGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAvPlxuICAgICAgICAgICAgPG5vdm8tcGlja2VyLXRvZ2dsZSBbZm9yXT1cImRhdGVyYW5nZXBpY2tlclwiIHRyaWdnZXJPbkZvY3VzIFtvdmVybGF5SWRdPVwidmlld0luZGV4XCIgbm92b1N1ZmZpeCBpY29uPVwiY2FsZW5kYXJcIj5cbiAgICAgICAgICAgICAgPG5vdm8tZGF0ZS1waWNrZXIgI2RhdGVyYW5nZXBpY2tlciAob25TZWxlY3QpPVwiY2xvc2VQYW5lbCgkZXZlbnQsIHZpZXdJbmRleClcIiBtb2RlPVwicmFuZ2VcIiBudW1iZXJPZk1vbnRocz1cIjJcIj48L25vdm8tZGF0ZS1waWNrZXI+XG4gICAgICAgICAgICA8L25vdm8tcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICA8L25vdm8tZmllbGQ+XG4gICAgICAgICAgPG5vdm8tZmllbGQgKm5vdm9Td2l0Y2hDYXNlcz1cIlsnd2l0aGluJ11cIj5cbiAgICAgICAgICAgIDxub3ZvLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwibGFiZWxzLnNlbGVjdERhdGVSYW5nZVwiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+XG4gICAgICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cIjdcIj57eyBsYWJlbHMubmV4dDdEYXlzIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiLTdcIj57eyBsYWJlbHMucGFzdDdEYXlzIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiLTMwXCI+e3sgbGFiZWxzLnBhc3QzMERheXMgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCItOTBcIj57eyBsYWJlbHMucGFzdDkwRGF5cyB9fTwvbm92by1vcHRpb24+XG4gICAgICAgICAgICA8L25vdm8tc2VsZWN0PlxuICAgICAgICAgIDwvbm92by1maWVsZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvRGVmYXVsdERhdGVDb25kaXRpb25EZWYgZXh0ZW5kcyBBYnN0cmFjdENvbmRpdGlvbkZpZWxkRGVmIHtcbiAgQFZpZXdDaGlsZHJlbihOb3ZvUGlja2VyVG9nZ2xlRWxlbWVudClcbiAgb3ZlcmxheUNoaWxkcmVuOiBRdWVyeUxpc3Q8Tm92b1BpY2tlclRvZ2dsZUVsZW1lbnQ+O1xuXG4gIGRlZmF1bHRPcGVyYXRvciA9ICd3aXRoaW4nO1xuXG4gIG9uT3BlcmF0b3JTZWxlY3QoZm9ybUdyb3VwOiBGb3JtR3JvdXApOiB2b2lkIHtcbiAgICBmb3JtR3JvdXAuZ2V0KCd2YWx1ZScpLnNldFZhbHVlKG51bGwpO1xuICB9XG5cbiAgY2xvc2VQYW5lbChldmVudCwgdmlld0luZGV4KTogdm9pZCB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMub3ZlcmxheUNoaWxkcmVuLmZpbmQoaXRlbSA9PiBpdGVtLm92ZXJsYXlJZCA9PT0gdmlld0luZGV4KTtcbiAgICBvdmVybGF5LmNsb3NlUGFuZWwoZXZlbnQpO1xuICB9XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jb25kaXRpb24uZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3F1ZXJ5LWJ1aWxkZXIvY29uZGl0aW9uLWRlZmluaXRpb25zL2RhdGUtY29uZGl0aW9uLmRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RTs7O0dBR0c7QUErQ0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHlCQUF5QjtJQTlDMUU7O1FBa0RFLG9CQUFlLEdBQUcsUUFBUSxDQUFDO0tBTTVCO0lBSkMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUNoRixPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7O3lIQVRVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLG1HQUN4Qix1QkFBdUIsdUVBN0MzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVDs0RkFJVSwyQkFBMkI7a0JBOUN2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87aUJBQ2pEOzhCQUdDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdm9QaWNrZXJUb2dnbGVFbGVtZW50IH0gZnJvbSAnLi8uLi8uLi9maWVsZC90b2dnbGUvcGlja2VyLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB9IGZyb20gJy4vYWJzdHJhY3QtY29uZGl0aW9uLmRlZmluaXRpb24nO1xuXG4vKipcbiAqIE1vc3QgY29tcGxpY2F0ZWQgb2YgdGhlIGRlZmF1bHQgY29uZGl0aW9ucyBkZWZzLCBhIGRhdGUgbmVlZHMgdG8gcHJvdmlkZSBhIGRpZmZlcmVudFxuICogaW5wdXQgdHlwZSBkZXBlbmRpbmcgb24gdGhlIG9wZXJhdG9yIHNlbGVjdGVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLWRhdGUtY29uZGl0aW9uLWRlZicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciBub3ZvQ29uZGl0aW9uRmllbGREZWY9XCJEQVRFXCI+XG4gICAgICA8bm92by1maWVsZCAqbm92b0NvbmRpdGlvbk9wZXJhdG9yc0RlZj1cImxldCBmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bm92by1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cImxhYmVscy5vcGVyYXRvclwiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCIgKG9uU2VsZWN0KT1cIm9uT3BlcmF0b3JTZWxlY3QoZm9ybUdyb3VwKVwiPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImJlZm9yZVwiPnt7IGxhYmVscy5iZWZvcmUgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImFmdGVyXCI+e3sgbGFiZWxzLmFmdGVyIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJiZXR3ZWVuXCI+e3sgbGFiZWxzLmJldHdlZW4gfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cIndpdGhpblwiPnt7IGxhYmVscy53aXRoaW4gfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImlzTnVsbFwiPnt7IGxhYmVscy5pc0VtcHR5IH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgPC9ub3ZvLXNlbGVjdD5cbiAgICAgIDwvbm92by1maWVsZD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5vdm9Db25kaXRpb25JbnB1dERlZj1cImxldCBmb3JtR3JvdXA7IHZpZXdJbmRleCBhcyB2aWV3SW5kZXhcIiBbbmdTd2l0Y2hdPVwiZm9ybUdyb3VwLnZhbHVlLm9wZXJhdG9yXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgICAgPG5vdm8tZmllbGQgKm5vdm9Td2l0Y2hDYXNlcz1cIlsnYmVmb3JlJywgJ2FmdGVyJ11cIj5cbiAgICAgICAgICA8aW5wdXQgbm92b0lucHV0IGRhdGVGb3JtYXQ9XCJpc284NjAxXCIgW3BpY2tlcl09XCJkYXRlcGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAvPlxuICAgICAgICAgIDxub3ZvLXBpY2tlci10b2dnbGUgdHJpZ2dlck9uRm9jdXMgW292ZXJsYXlJZF09XCJ2aWV3SW5kZXhcIiBub3ZvU3VmZml4IGljb249XCJjYWxlbmRhclwiPlxuICAgICAgICAgICAgPG5vdm8tZGF0ZS1waWNrZXIgKG9uU2VsZWN0KT1cImNsb3NlUGFuZWwoJGV2ZW50LCB2aWV3SW5kZXgpXCIgI2RhdGVwaWNrZXI+PC9ub3ZvLWRhdGUtcGlja2VyPlxuICAgICAgICAgIDwvbm92by1waWNrZXItdG9nZ2xlPlxuICAgICAgICA8L25vdm8tZmllbGQ+XG4gICAgICAgIDxub3ZvLWZpZWxkICpub3ZvU3dpdGNoQ2FzZXM9XCJbJ2JldHdlZW4nXVwiPlxuICAgICAgICAgIDxpbnB1dCBub3ZvSW5wdXQgZGF0ZVJhbmdlRm9ybWF0PVwiZGF0ZVwiIFtwaWNrZXJdPVwiZGF0ZXJhbmdlcGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAvPlxuICAgICAgICAgIDxub3ZvLXBpY2tlci10b2dnbGUgW2Zvcl09XCJkYXRlcmFuZ2VwaWNrZXJcIiB0cmlnZ2VyT25Gb2N1cyBbb3ZlcmxheUlkXT1cInZpZXdJbmRleFwiIG5vdm9TdWZmaXggaWNvbj1cImNhbGVuZGFyXCI+XG4gICAgICAgICAgICA8bm92by1kYXRlLXBpY2tlciAjZGF0ZXJhbmdlcGlja2VyIChvblNlbGVjdCk9XCJjbG9zZVBhbmVsKCRldmVudCwgdmlld0luZGV4KVwiIG1vZGU9XCJyYW5nZVwiIG51bWJlck9mTW9udGhzPVwiMlwiPjwvbm92by1kYXRlLXBpY2tlcj5cbiAgICAgICAgICA8L25vdm8tcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgICAgICA8bm92by1maWVsZCAqbm92b1N3aXRjaENhc2VzPVwiWyd3aXRoaW4nXVwiPlxuICAgICAgICAgIDxub3ZvLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwibGFiZWxzLnNlbGVjdERhdGVSYW5nZVwiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+XG4gICAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCI3XCI+e3sgbGFiZWxzLm5leHQ3RGF5cyB9fTwvbm92by1vcHRpb24+XG4gICAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCItN1wiPnt7IGxhYmVscy5wYXN0N0RheXMgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiLTMwXCI+e3sgbGFiZWxzLnBhc3QzMERheXMgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiLTkwXCI+e3sgbGFiZWxzLnBhc3Q5MERheXMgfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDwvbm92by1zZWxlY3Q+XG4gICAgICAgIDwvbm92by1maWVsZD5cbiAgICAgICAgPG5vdm8tZmllbGQgKm5vdm9Td2l0Y2hDYXNlcz1cIlsnaXNOdWxsJ11cIj5cbiAgICAgICAgICA8bm92by1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgPG5vdm8tcmFkaW8gW3ZhbHVlXT1cInRydWVcIj57eyBsYWJlbHMueWVzIH19PC9ub3ZvLXJhZGlvPlxuICAgICAgICAgICAgPG5vdm8tcmFkaW8gW3ZhbHVlXT1cImZhbHNlXCI+e3sgbGFiZWxzLm5vIH19PC9ub3ZvLXJhZGlvPlxuICAgICAgICAgIDwvbm92by1yYWRpby1ncm91cD5cbiAgICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RlZmF1bHREYXRlQ29uZGl0aW9uRGVmIGV4dGVuZHMgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB7XG4gIEBWaWV3Q2hpbGRyZW4oTm92b1BpY2tlclRvZ2dsZUVsZW1lbnQpXG4gIG92ZXJsYXlDaGlsZHJlbjogUXVlcnlMaXN0PE5vdm9QaWNrZXJUb2dnbGVFbGVtZW50PjtcblxuICBkZWZhdWx0T3BlcmF0b3IgPSAnd2l0aGluJztcblxuICBjbG9zZVBhbmVsKGV2ZW50LCB2aWV3SW5kZXgpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5vdmVybGF5Q2hpbGRyZW4uZmluZChpdGVtID0+IGl0ZW0ub3ZlcmxheUlkID09PSB2aWV3SW5kZXgpO1xuICAgIG92ZXJsYXkuY2xvc2VQYW5lbChldmVudCk7XG4gIH1cbn1cbiJdfQ==
@@ -4,9 +4,13 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../field/field";
5
5
  import * as i2 from "../../select/Select";
6
6
  import * as i3 from "../../common/option/option.component";
7
- import * as i4 from "../query-builder.directives";
8
- import * as i5 from "@angular/forms";
9
- import * as i6 from "../../field/input";
7
+ import * as i4 from "../../radio/RadioGroup";
8
+ import * as i5 from "../../radio/Radio";
9
+ import * as i6 from "../query-builder.directives";
10
+ import * as i7 from "@angular/forms";
11
+ import * as i8 from "@angular/common";
12
+ import * as i9 from "../../common/directives/switch-cases.directive";
13
+ import * as i10 from "../../field/input";
10
14
  /**
11
15
  * When constructing a query using a field that is an Int, Double, Number ...etc.
12
16
  * TODO: Do we implment currency formation here potentially>.?
@@ -21,17 +25,26 @@ NovoDefaultNumberConditionDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.
21
25
  NovoDefaultNumberConditionDef.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoDefaultNumberConditionDef, selector: "novo-number-condition-def", usesInheritance: true, ngImport: i0, template: `
22
26
  <ng-container novoConditionFieldDef>
23
27
  <novo-field *novoConditionOperatorsDef="let formGroup" [formGroup]="formGroup">
24
- <novo-select [placeholder]="labels.operator" formControlName="operator">
28
+ <novo-select [placeholder]="labels.operator" formControlName="operator" (onSelect)="onOperatorSelect(formGroup)">
25
29
  <novo-option value="greaterThan">{{ labels.greaterThan }}</novo-option>
26
30
  <novo-option value="lessThan">{{ labels.lessThan }}</novo-option>
27
31
  <novo-option value="equalTo">{{ labels.equalTo }}</novo-option>
32
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
28
33
  </novo-select>
29
34
  </novo-field>
30
- <novo-field *novoConditionInputDef="let formGroup" [formGroup]="formGroup">
31
- <input novoInput type="number" formControlName="value" />
32
- </novo-field>
35
+ <ng-container *novoConditionInputDef="let formGroup" [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
36
+ <novo-field *novoSwitchCases="['greaterThan', 'lessThan', 'equalTo']">
37
+ <input novoInput type="number" formControlName="value" />
38
+ </novo-field>
39
+ <novo-field *novoSwitchCases="['isNull']">
40
+ <novo-radio-group formControlName="value">
41
+ <novo-radio [value]="true">{{ labels.yes }}</novo-radio>
42
+ <novo-radio [value]="false">{{ labels.no }}</novo-radio>
43
+ </novo-radio-group>
44
+ </novo-field>
45
+ </ng-container>
33
46
  </ng-container>
34
- `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }], directives: [{ type: i4.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i4.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NovoConditionInputDef, selector: "[novoConditionInputDef]" }, { type: i6.NovoInput, selector: "input[novoInput], textarea[novoInput], select[novoInput]", inputs: ["disabled", "id", "placeholder", "required", "type", "value", "readonly"] }, { type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
47
+ `, isInline: true, components: [{ type: i1.NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: i2.NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: i4.NovoRadioGroup, selector: "novo-radio-group", inputs: ["id", "tabindex", "errorStateMatcher", "appearance", "value", "name", "disabled", "required", "placeholder"], outputs: ["change", "blur"] }, { type: i5.NovoRadioElement, selector: "novo-radio", inputs: ["id", "name", "tabindex", "vertical", "label", "button", "theme", "size", "icon", "color", "checked", "value", "disabled"], outputs: ["change", "blur", "focus"] }], directives: [{ type: i6.NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: i6.NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.NovoConditionInputDef, selector: "[novoConditionInputDef]" }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.SwitchCasesDirective, selector: "[novoSwitchCases]", inputs: ["novoSwitchCases"] }, { type: i10.NovoInput, selector: "input[novoInput], textarea[novoInput], select[novoInput]", inputs: ["disabled", "id", "placeholder", "required", "type", "value", "readonly"] }, { type: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
35
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDefaultNumberConditionDef, decorators: [{
36
49
  type: Component,
37
50
  args: [{
@@ -39,19 +52,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
39
52
  template: `
40
53
  <ng-container novoConditionFieldDef>
41
54
  <novo-field *novoConditionOperatorsDef="let formGroup" [formGroup]="formGroup">
42
- <novo-select [placeholder]="labels.operator" formControlName="operator">
55
+ <novo-select [placeholder]="labels.operator" formControlName="operator" (onSelect)="onOperatorSelect(formGroup)">
43
56
  <novo-option value="greaterThan">{{ labels.greaterThan }}</novo-option>
44
57
  <novo-option value="lessThan">{{ labels.lessThan }}</novo-option>
45
58
  <novo-option value="equalTo">{{ labels.equalTo }}</novo-option>
59
+ <novo-option value="isNull">{{ labels.isEmpty }}</novo-option>
46
60
  </novo-select>
47
61
  </novo-field>
48
- <novo-field *novoConditionInputDef="let formGroup" [formGroup]="formGroup">
49
- <input novoInput type="number" formControlName="value" />
50
- </novo-field>
62
+ <ng-container *novoConditionInputDef="let formGroup" [ngSwitch]="formGroup.value.operator" [formGroup]="formGroup">
63
+ <novo-field *novoSwitchCases="['greaterThan', 'lessThan', 'equalTo']">
64
+ <input novoInput type="number" formControlName="value" />
65
+ </novo-field>
66
+ <novo-field *novoSwitchCases="['isNull']">
67
+ <novo-radio-group formControlName="value">
68
+ <novo-radio [value]="true">{{ labels.yes }}</novo-radio>
69
+ <novo-radio [value]="false">{{ labels.no }}</novo-radio>
70
+ </novo-radio-group>
71
+ </novo-field>
72
+ </ng-container>
51
73
  </ng-container>
52
74
  `,
53
75
  encapsulation: ViewEncapsulation.None,
54
76
  changeDetection: ChangeDetectionStrategy.Default,
55
77
  }]
56
78
  }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWNvbmRpdGlvbi5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvcXVlcnktYnVpbGRlci9jb25kaXRpb24tZGVmaW5pdGlvbnMvbnVtYmVyLWNvbmRpdGlvbi5kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7O0FBRTVFOzs7R0FHRztBQW9CSCxNQUFNLE9BQU8sNkJBQThCLFNBQVEseUJBQXlCO0lBbkI1RTs7UUFvQkUsb0JBQWUsR0FBRyxTQUFTLENBQUM7S0FDN0I7OzJIQUZZLDZCQUE2QjsrR0FBN0IsNkJBQTZCLHdGQWpCOUI7Ozs7Ozs7Ozs7Ozs7R0FhVDs0RkFJVSw2QkFBNkI7a0JBbkJ6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB9IGZyb20gJy4vYWJzdHJhY3QtY29uZGl0aW9uLmRlZmluaXRpb24nO1xuXG4vKipcbiAqIFdoZW4gY29uc3RydWN0aW5nIGEgcXVlcnkgdXNpbmcgYSBmaWVsZCB0aGF0IGlzIGFuIEludCwgRG91YmxlLCBOdW1iZXIgLi4uZXRjLlxuICogVE9ETzogRG8gd2UgaW1wbG1lbnQgY3VycmVuY3kgZm9ybWF0aW9uIGhlcmUgcG90ZW50aWFsbHk+Lj9cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by1udW1iZXItY29uZGl0aW9uLWRlZicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciBub3ZvQ29uZGl0aW9uRmllbGREZWY+XG4gICAgICA8bm92by1maWVsZCAqbm92b0NvbmRpdGlvbk9wZXJhdG9yc0RlZj1cImxldCBmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bm92by1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cImxhYmVscy5vcGVyYXRvclwiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCI+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiZ3JlYXRlclRoYW5cIj57eyBsYWJlbHMuZ3JlYXRlclRoYW4gfX08L25vdm8tb3B0aW9uPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImxlc3NUaGFuXCI+e3sgbGFiZWxzLmxlc3NUaGFuIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJlcXVhbFRvXCI+e3sgbGFiZWxzLmVxdWFsVG8gfX08L25vdm8tb3B0aW9uPlxuICAgICAgICA8L25vdm8tc2VsZWN0PlxuICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgICAgPG5vdm8tZmllbGQgKm5vdm9Db25kaXRpb25JbnB1dERlZj1cImxldCBmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8aW5wdXQgbm92b0lucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIC8+XG4gICAgICA8L25vdm8tZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RlZmF1bHROdW1iZXJDb25kaXRpb25EZWYgZXh0ZW5kcyBBYnN0cmFjdENvbmRpdGlvbkZpZWxkRGVmIHtcbiAgZGVmYXVsdE9wZXJhdG9yID0gJ2VxdWFsVG8nO1xufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWNvbmRpdGlvbi5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvcXVlcnktYnVpbGRlci9jb25kaXRpb24tZGVmaW5pdGlvbnMvbnVtYmVyLWNvbmRpdGlvbi5kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7OztBQUU1RTs7O0dBR0c7QUE2QkgsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHlCQUF5QjtJQTVCNUU7O1FBNkJFLG9CQUFlLEdBQUcsU0FBUyxDQUFDO0tBQzdCOzsySEFGWSw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3RkExQjlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUOzRGQUlVLDZCQUE2QjtrQkE1QnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25kaXRpb25GaWVsZERlZiB9IGZyb20gJy4vYWJzdHJhY3QtY29uZGl0aW9uLmRlZmluaXRpb24nO1xuXG4vKipcbiAqIFdoZW4gY29uc3RydWN0aW5nIGEgcXVlcnkgdXNpbmcgYSBmaWVsZCB0aGF0IGlzIGFuIEludCwgRG91YmxlLCBOdW1iZXIgLi4uZXRjLlxuICogVE9ETzogRG8gd2UgaW1wbG1lbnQgY3VycmVuY3kgZm9ybWF0aW9uIGhlcmUgcG90ZW50aWFsbHk+Lj9cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by1udW1iZXItY29uZGl0aW9uLWRlZicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciBub3ZvQ29uZGl0aW9uRmllbGREZWY+XG4gICAgICA8bm92by1maWVsZCAqbm92b0NvbmRpdGlvbk9wZXJhdG9yc0RlZj1cImxldCBmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bm92by1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cImxhYmVscy5vcGVyYXRvclwiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCIgKG9uU2VsZWN0KT1cIm9uT3BlcmF0b3JTZWxlY3QoZm9ybUdyb3VwKVwiPlxuICAgICAgICAgIDxub3ZvLW9wdGlvbiB2YWx1ZT1cImdyZWF0ZXJUaGFuXCI+e3sgbGFiZWxzLmdyZWF0ZXJUaGFuIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJsZXNzVGhhblwiPnt7IGxhYmVscy5sZXNzVGhhbiB9fTwvbm92by1vcHRpb24+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uIHZhbHVlPVwiZXF1YWxUb1wiPnt7IGxhYmVscy5lcXVhbFRvIH19PC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgICA8bm92by1vcHRpb24gdmFsdWU9XCJpc051bGxcIj57eyBsYWJlbHMuaXNFbXB0eSB9fTwvbm92by1vcHRpb24+XG4gICAgICAgIDwvbm92by1zZWxlY3Q+XG4gICAgICA8L25vdm8tZmllbGQ+XG4gICAgICA8bmctY29udGFpbmVyICpub3ZvQ29uZGl0aW9uSW5wdXREZWY9XCJsZXQgZm9ybUdyb3VwXCIgW25nU3dpdGNoXT1cImZvcm1Hcm91cC52YWx1ZS5vcGVyYXRvclwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgIDxub3ZvLWZpZWxkICpub3ZvU3dpdGNoQ2FzZXM9XCJbJ2dyZWF0ZXJUaGFuJywgJ2xlc3NUaGFuJywgJ2VxdWFsVG8nXVwiPlxuICAgICAgICAgIDxpbnB1dCBub3ZvSW5wdXQgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgLz5cbiAgICAgICAgPC9ub3ZvLWZpZWxkPlxuICAgICAgICA8bm92by1maWVsZCAqbm92b1N3aXRjaENhc2VzPVwiWydpc051bGwnXVwiPlxuICAgICAgICAgIDxub3ZvLXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCI+XG4gICAgICAgICAgICA8bm92by1yYWRpbyBbdmFsdWVdPVwidHJ1ZVwiPnt7IGxhYmVscy55ZXMgfX08L25vdm8tcmFkaW8+XG4gICAgICAgICAgICA8bm92by1yYWRpbyBbdmFsdWVdPVwiZmFsc2VcIj57eyBsYWJlbHMubm8gfX08L25vdm8tcmFkaW8+XG4gICAgICAgICAgPC9ub3ZvLXJhZGlvLWdyb3VwPlxuICAgICAgICA8L25vdm8tZmllbGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvRGVmYXVsdE51bWJlckNvbmRpdGlvbkRlZiBleHRlbmRzIEFic3RyYWN0Q29uZGl0aW9uRmllbGREZWYge1xuICBkZWZhdWx0T3BlcmF0b3IgPSAnZXF1YWxUbyc7XG59XG4iXX0=