@ecodev/natural 53.0.0 → 53.2.0

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.
@@ -8,4 +8,5 @@ export { TypeHierarchicSelectorComponent, } from './type-hierarchic-selector/typ
8
8
  export { TypeDateComponent } from './type-date/type-date.component';
9
9
  export { TypeDateRangeComponent } from './type-date-range/type-date-range.component';
10
10
  export { TypeTextComponent } from './type-text/type-text.component';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBMEIsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRyxPQUFPLEVBRUgsMEJBQTBCLEdBQzdCLE1BQU0scURBQXFELENBQUM7QUFFN0QsT0FBTyxFQUEwQixtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRWpHLE9BQU8sRUFFSCwrQkFBK0IsR0FDbEMsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQXdCLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFekYsT0FBTyxFQUE2QixzQkFBc0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRS9HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuYXR1cmFsLXNlYXJjaCBkcm9wZG93biBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCB7VHlwZVNlbGVjdENvbmZpZ3VyYXRpb24sIFR5cGVTZWxlY3RDb21wb25lbnR9IGZyb20gJy4vdHlwZS1zZWxlY3QvdHlwZS1zZWxlY3QuY29tcG9uZW50JztcblxuZXhwb3J0IHtcbiAgICBUeXBlU2VsZWN0TmF0dXJhbENvbmZpZ3VyYXRpb24sXG4gICAgVHlwZU5hdHVyYWxTZWxlY3RDb21wb25lbnQsXG59IGZyb20gJy4vdHlwZS1uYXR1cmFsLXNlbGVjdC90eXBlLW5hdHVyYWwtc2VsZWN0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7VHlwZU51bWJlckNvbmZpZ3VyYXRpb24sIFR5cGVOdW1iZXJDb21wb25lbnR9IGZyb20gJy4vdHlwZS1udW1iZXIvdHlwZS1udW1iZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHtcbiAgICBUeXBlSGllcmFyY2hpY1NlbGVjdG9yQ29uZmlndXJhdGlvbixcbiAgICBUeXBlSGllcmFyY2hpY1NlbGVjdG9yQ29tcG9uZW50LFxufSBmcm9tICcuL3R5cGUtaGllcmFyY2hpYy1zZWxlY3Rvci90eXBlLWhpZXJhcmNoaWMtc2VsZWN0b3IuY29tcG9uZW50JztcblxuZXhwb3J0IHtUeXBlRGF0ZUNvbmZpZ3VyYXRpb24sIFR5cGVEYXRlQ29tcG9uZW50fSBmcm9tICcuL3R5cGUtZGF0ZS90eXBlLWRhdGUuY29tcG9uZW50JztcblxuZXhwb3J0IHtUeXBlRGF0ZVJhbmdlQ29uZmlndXJhdGlvbiwgVHlwZURhdGVSYW5nZUNvbXBvbmVudH0gZnJvbSAnLi90eXBlLWRhdGUtcmFuZ2UvdHlwZS1kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7VHlwZVRleHRDb21wb25lbnR9IGZyb20gJy4vdHlwZS10ZXh0L3R5cGUtdGV4dC5jb21wb25lbnQnO1xuIl19
11
+ export { TypeBooleanComponent } from './type-boolean/type-boolean.component';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBMEIsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRyxPQUFPLEVBRUgsMEJBQTBCLEdBQzdCLE1BQU0scURBQXFELENBQUM7QUFFN0QsT0FBTyxFQUEwQixtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRWpHLE9BQU8sRUFFSCwrQkFBK0IsR0FDbEMsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQXdCLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFekYsT0FBTyxFQUE2QixzQkFBc0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRS9HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRWxFLE9BQU8sRUFBMkIsb0JBQW9CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmF0dXJhbC1zZWFyY2ggZHJvcGRvd24gY29tcG9uZW50c1xuICovXG5leHBvcnQge1R5cGVTZWxlY3RDb25maWd1cmF0aW9uLCBUeXBlU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuL3R5cGUtc2VsZWN0L3R5cGUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7XG4gICAgVHlwZVNlbGVjdE5hdHVyYWxDb25maWd1cmF0aW9uLFxuICAgIFR5cGVOYXR1cmFsU2VsZWN0Q29tcG9uZW50LFxufSBmcm9tICcuL3R5cGUtbmF0dXJhbC1zZWxlY3QvdHlwZS1uYXR1cmFsLXNlbGVjdC5jb21wb25lbnQnO1xuXG5leHBvcnQge1R5cGVOdW1iZXJDb25maWd1cmF0aW9uLCBUeXBlTnVtYmVyQ29tcG9uZW50fSBmcm9tICcuL3R5cGUtbnVtYmVyL3R5cGUtbnVtYmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7XG4gICAgVHlwZUhpZXJhcmNoaWNTZWxlY3RvckNvbmZpZ3VyYXRpb24sXG4gICAgVHlwZUhpZXJhcmNoaWNTZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi90eXBlLWhpZXJhcmNoaWMtc2VsZWN0b3IvdHlwZS1oaWVyYXJjaGljLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7VHlwZURhdGVDb25maWd1cmF0aW9uLCBUeXBlRGF0ZUNvbXBvbmVudH0gZnJvbSAnLi90eXBlLWRhdGUvdHlwZS1kYXRlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7VHlwZURhdGVSYW5nZUNvbmZpZ3VyYXRpb24sIFR5cGVEYXRlUmFuZ2VDb21wb25lbnR9IGZyb20gJy4vdHlwZS1kYXRlLXJhbmdlL3R5cGUtZGF0ZS1yYW5nZS5jb21wb25lbnQnO1xuXG5leHBvcnQge1R5cGVUZXh0Q29tcG9uZW50fSBmcm9tICcuL3R5cGUtdGV4dC90eXBlLXRleHQuY29tcG9uZW50JztcblxuZXhwb3J0IHtUeXBlQm9vbGVhbkNvbmZpZ3VyYXRpb24sIFR5cGVCb29sZWFuQ29tcG9uZW50fSBmcm9tICcuL3R5cGUtYm9vbGVhbi90eXBlLWJvb2xlYW4uY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,59 @@
1
+ import { NgFor, NgIf } from '@angular/common';
2
+ import { Component, Inject } from '@angular/core';
3
+ import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatCheckboxModule } from '@angular/material/checkbox';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { NaturalAbstractController } from '../../../classes/abstract-controller';
7
+ import { NATURAL_DROPDOWN_DATA } from '../../search/dropdown-container/dropdown.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../search/dropdown-container/dropdown-ref";
10
+ import * as i2 from "@angular/forms";
11
+ import * as i3 from "@angular/material/checkbox";
12
+ export class TypeBooleanComponent extends NaturalAbstractController {
13
+ constructor(data, dropdownRef) {
14
+ super();
15
+ this.dropdownRef = dropdownRef;
16
+ this.renderedValue = new BehaviorSubject('');
17
+ this.operatorCtrl = new FormControl(true, { nonNullable: true });
18
+ this.defaults = {
19
+ displayWhenActive: '',
20
+ displayWhenInactive: '',
21
+ };
22
+ this.configuration = { ...this.defaults, ...data.configuration };
23
+ const updateDisplay = (value) => this.renderedValue.next(value ? this.configuration.displayWhenActive : this.configuration.displayWhenInactive);
24
+ if (data.condition?.equal) {
25
+ this.operatorCtrl.setValue(!!data.condition.equal.value);
26
+ }
27
+ // Update rendered value
28
+ this.operatorCtrl.valueChanges.subscribe(value => updateDisplay(value));
29
+ updateDisplay(this.operatorCtrl.value);
30
+ }
31
+ getCondition() {
32
+ if (!this.isValid()) {
33
+ return {};
34
+ }
35
+ return { equal: { value: this.operatorCtrl.value } };
36
+ }
37
+ /**
38
+ * Always valid because checked and unchecked are both valid values
39
+ */
40
+ isValid() {
41
+ return true;
42
+ }
43
+ /**
44
+ * Always dirty because even on dropdown opening, the default value is accepted as intentional. There is no "default/empty" state
45
+ */
46
+ isDirty() {
47
+ return true;
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: i1.NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TypeBooleanComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-checkbox [formControl]=\"operatorCtrl\">{{ renderedValue.value }}</mat-checkbox>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, NgIf, NgFor, MatCheckboxModule], template: "<mat-checkbox [formControl]=\"operatorCtrl\">{{ renderedValue.value }}</mat-checkbox>\n" }]
55
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
56
+ type: Inject,
57
+ args: [NATURAL_DROPDOWN_DATA]
58
+ }] }, { type: i1.NaturalDropdownRef }]; } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1ib29sZWFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1ib29sZWFuL3R5cGUtYm9vbGVhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtYm9vbGVhbi90eXBlLWJvb2xlYW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFL0UsT0FBTyxFQUFDLHFCQUFxQixFQUFzQixNQUFNLGtEQUFrRCxDQUFDOzs7OztBQWE1RyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEseUJBQXlCO0lBWS9ELFlBQ21DLElBQW1ELEVBQ3hFLFdBQStCO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBRkUsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBYjdCLGtCQUFhLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLGlCQUFZLEdBQUcsSUFBSSxXQUFXLENBQVUsSUFBSSxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFJbEUsYUFBUSxHQUF1QztZQUM1RCxpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLG1CQUFtQixFQUFFLEVBQUU7U0FDMUIsQ0FBQztRQVFFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFDLENBQUM7UUFFL0QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFjLEVBQVEsRUFBRSxDQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUN4RixDQUFDO1FBRU4sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUQ7UUFFRCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEUsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFDLEVBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OEdBdERRLG9CQUFvQixrQkFhakIscUJBQXFCO2tHQWJ4QixvQkFBb0IsK0ZDckJqQyx5RkFDQSwyQ0RrQmMsV0FBVyxzSUFBRSxtQkFBbUIsaU5BQWUsaUJBQWlCOzsyRkFFakUsb0JBQW9CO2tCQUxoQyxTQUFTO2lDQUVNLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDOzswQkFldEUsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nRm9yLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdENoZWNrYm94TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQge05hdHVyYWxEcm9wZG93blJlZn0gZnJvbSAnLi4vLi4vc2VhcmNoL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi1yZWYnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Fic3RyYWN0LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkfSBmcm9tICcuLi8uLi9zZWFyY2gvY2xhc3Nlcy9ncmFwaHFsLWRvY3RyaW5lLnR5cGVzJztcbmltcG9ydCB7TkFUVVJBTF9EUk9QRE9XTl9EQVRBLCBOYXR1cmFsRHJvcGRvd25EYXRhfSBmcm9tICcuLi8uLi9zZWFyY2gvZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLnNlcnZpY2UnO1xuaW1wb3J0IHtEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2VhcmNoL3R5cGVzL2Ryb3Bkb3duLWNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUJvb2xlYW5Db25maWd1cmF0aW9uIHtcbiAgICBkaXNwbGF5V2hlbkFjdGl2ZTogc3RyaW5nO1xuICAgIGRpc3BsYXlXaGVuSW5hY3RpdmU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3R5cGUtYm9vbGVhbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nSWYsIE5nRm9yLCBNYXRDaGVja2JveE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVCb29sZWFuQ29tcG9uZW50IGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlciBpbXBsZW1lbnRzIERyb3Bkb3duQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyByZWFkb25seSByZW5kZXJlZFZhbHVlOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JDdHJsID0gbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KHRydWUsIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IFJlcXVpcmVkPFR5cGVCb29sZWFuQ29uZmlndXJhdGlvbj47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRzOiBSZXF1aXJlZDxUeXBlQm9vbGVhbkNvbmZpZ3VyYXRpb24+ID0ge1xuICAgICAgICBkaXNwbGF5V2hlbkFjdGl2ZTogJycsXG4gICAgICAgIGRpc3BsYXlXaGVuSW5hY3RpdmU6ICcnLFxuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTkFUVVJBTF9EUk9QRE9XTl9EQVRBKSBkYXRhOiBOYXR1cmFsRHJvcGRvd25EYXRhPFR5cGVCb29sZWFuQ29uZmlndXJhdGlvbj4sXG4gICAgICAgIHByb3RlY3RlZCBkcm9wZG93blJlZjogTmF0dXJhbERyb3Bkb3duUmVmLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IHsuLi50aGlzLmRlZmF1bHRzLCAuLi5kYXRhLmNvbmZpZ3VyYXRpb259O1xuXG4gICAgICAgIGNvbnN0IHVwZGF0ZURpc3BsYXkgPSAodmFsdWU6IGJvb2xlYW4pOiB2b2lkID0+XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVkVmFsdWUubmV4dChcbiAgICAgICAgICAgICAgICB2YWx1ZSA/IHRoaXMuY29uZmlndXJhdGlvbi5kaXNwbGF5V2hlbkFjdGl2ZSA6IHRoaXMuY29uZmlndXJhdGlvbi5kaXNwbGF5V2hlbkluYWN0aXZlLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICBpZiAoZGF0YS5jb25kaXRpb24/LmVxdWFsKSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yQ3RybC5zZXRWYWx1ZSghIWRhdGEuY29uZGl0aW9uLmVxdWFsLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSByZW5kZXJlZCB2YWx1ZVxuICAgICAgICB0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHVwZGF0ZURpc3BsYXkodmFsdWUpKTtcbiAgICAgICAgdXBkYXRlRGlzcGxheSh0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbigpOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtlcXVhbDoge3ZhbHVlOiB0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZX19O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFsd2F5cyB2YWxpZCBiZWNhdXNlIGNoZWNrZWQgYW5kIHVuY2hlY2tlZCBhcmUgYm90aCB2YWxpZCB2YWx1ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWx3YXlzIGRpcnR5IGJlY2F1c2UgZXZlbiBvbiBkcm9wZG93biBvcGVuaW5nLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBhY2NlcHRlZCBhcyBpbnRlbnRpb25hbC4gVGhlcmUgaXMgbm8gXCJkZWZhdWx0L2VtcHR5XCIgc3RhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNEaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIiwiPG1hdC1jaGVja2JveCBbZm9ybUNvbnRyb2xdPVwib3BlcmF0b3JDdHJsXCI+e3sgcmVuZGVyZWRWYWx1ZS52YWx1ZSB9fTwvbWF0LWNoZWNrYm94PlxuIl19
@@ -8192,6 +8192,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
8192
8192
  args: [MAT_DATE_FORMATS]
8193
8193
  }] }]; } });
8194
8194
 
8195
+ class TypeBooleanComponent extends NaturalAbstractController {
8196
+ constructor(data, dropdownRef) {
8197
+ super();
8198
+ this.dropdownRef = dropdownRef;
8199
+ this.renderedValue = new BehaviorSubject('');
8200
+ this.operatorCtrl = new FormControl(true, { nonNullable: true });
8201
+ this.defaults = {
8202
+ displayWhenActive: '',
8203
+ displayWhenInactive: '',
8204
+ };
8205
+ this.configuration = { ...this.defaults, ...data.configuration };
8206
+ const updateDisplay = (value) => this.renderedValue.next(value ? this.configuration.displayWhenActive : this.configuration.displayWhenInactive);
8207
+ if (data.condition?.equal) {
8208
+ this.operatorCtrl.setValue(!!data.condition.equal.value);
8209
+ }
8210
+ // Update rendered value
8211
+ this.operatorCtrl.valueChanges.subscribe(value => updateDisplay(value));
8212
+ updateDisplay(this.operatorCtrl.value);
8213
+ }
8214
+ getCondition() {
8215
+ if (!this.isValid()) {
8216
+ return {};
8217
+ }
8218
+ return { equal: { value: this.operatorCtrl.value } };
8219
+ }
8220
+ /**
8221
+ * Always valid because checked and unchecked are both valid values
8222
+ */
8223
+ isValid() {
8224
+ return true;
8225
+ }
8226
+ /**
8227
+ * Always dirty because even on dropdown opening, the default value is accepted as intentional. There is no "default/empty" state
8228
+ */
8229
+ isDirty() {
8230
+ return true;
8231
+ }
8232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
8233
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TypeBooleanComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-checkbox [formControl]=\"operatorCtrl\">{{ renderedValue.value }}</mat-checkbox>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] }); }
8234
+ }
8235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, decorators: [{
8236
+ type: Component,
8237
+ args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, NgIf, NgFor, MatCheckboxModule], template: "<mat-checkbox [formControl]=\"operatorCtrl\">{{ renderedValue.value }}</mat-checkbox>\n" }]
8238
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
8239
+ type: Inject,
8240
+ args: [NATURAL_DROPDOWN_DATA]
8241
+ }] }, { type: NaturalDropdownRef }]; } });
8242
+
8195
8243
  /*
8196
8244
  * Public API Surface of natural-search dropdown components
8197
8245
  */
@@ -11109,5 +11157,5 @@ const naturalProviders = [
11109
11157
  * Generated bundle index. Do not edit.
11110
11158
  */
11111
11159
 
11112
- export { AvatarService, LOCAL_STORAGE, NATURAL_DROPDOWN_DATA, NATURAL_ICONS_CONFIG, NATURAL_PERSISTENCE_VALIDATOR, NATURAL_SEO_CONFIG, NaturalAbstractController, NaturalAbstractDetail, NaturalAbstractEditableList, NaturalAbstractList, NaturalAbstractModelService, NaturalAbstractNavigableList, NaturalAbstractPanel, NaturalAlertService, NaturalAvatarComponent, NaturalCapitalizePipe, NaturalColumnsPickerComponent, NaturalConfirmComponent, NaturalDataSource, NaturalDebounceService, NaturalDetailHeaderComponent, NaturalDialogTriggerComponent, NaturalDropdownRef, NaturalEllipsisPipe, NaturalEnumPipe, NaturalEnumService, NaturalErrorHandler, NaturalFileComponent, NaturalFileDropDirective, NaturalFileSelectDirective, NaturalFileService, NaturalFixedButtonComponent, NaturalFixedButtonDetailComponent, NaturalHierarchicSelectorComponent, NaturalHierarchicSelectorDialogComponent, NaturalHierarchicSelectorDialogService, NaturalHierarchicSelectorService, NaturalHttpPrefixDirective, NaturalIconDirective, NaturalLinkMutationService, NaturalLinkableTabDirective, NaturalLoggerConfigExtra, NaturalLoggerConfigUrl, NaturalMatomoService, NaturalMemoryStorage, NaturalPanelsComponent, NaturalPanelsService, NaturalPersistenceService, NaturalQueryVariablesManager, NaturalRelationsComponent, NaturalSearchComponent, NaturalSelectComponent, NaturalSelectEnumComponent, NaturalSelectHierarchicComponent, NaturalSeoService, NaturalSidenavComponent, NaturalSidenavContainerComponent, NaturalSidenavContentComponent, NaturalSidenavService, NaturalSidenavStackService, NaturalSrcDensityDirective, NaturalStampComponent, NaturalSwissDatePipe, NaturalSwissParsingDateAdapter, NaturalTableButtonComponent, NaturalTimeAgoPipe, PanelsHooksConfig, SESSION_STORAGE, SortingOrder, TypeDateComponent, TypeDateRangeComponent, TypeHierarchicSelectorComponent, TypeNaturalSelectComponent, TypeNumberComponent, TypeSelectComponent, TypeTextComponent, available, cancellableTimeout, cleanSameValues, collectErrors, copyToClipboard, debug, decimal, deepFreeze, deliverableEmail, ensureHttpPrefix, fallbackIfNoOpenedPanels, formatIsoDate, formatIsoDateTime, fromUrl, getForegroundColor, hasFilesAndProcessDate, ifValid, integer, isMutation, localStorageFactory, localStorageProvider, lowerCaseFirstLetter, makePlural, memoryLocalStorageProvider, memorySessionStorageProvider, mergeOverrideArray, money, naturalPanelsUrlMatcher, naturalProviders, provideErrorHandler, provideIcons, providePanels, provideSeo, relationsToIds, replaceObjectKeepingReference, replaceOperatorByField, replaceOperatorByName, sessionStorageFactory, sessionStorageProvider, toGraphQLDoctrineFilter, toNavigationParameters, toUrl, unique, upperCaseFirstLetter, urlValidator, validTlds, validateAllFormControls, wrapLike };
11160
+ export { AvatarService, LOCAL_STORAGE, NATURAL_DROPDOWN_DATA, NATURAL_ICONS_CONFIG, NATURAL_PERSISTENCE_VALIDATOR, NATURAL_SEO_CONFIG, NaturalAbstractController, NaturalAbstractDetail, NaturalAbstractEditableList, NaturalAbstractList, NaturalAbstractModelService, NaturalAbstractNavigableList, NaturalAbstractPanel, NaturalAlertService, NaturalAvatarComponent, NaturalCapitalizePipe, NaturalColumnsPickerComponent, NaturalConfirmComponent, NaturalDataSource, NaturalDebounceService, NaturalDetailHeaderComponent, NaturalDialogTriggerComponent, NaturalDropdownRef, NaturalEllipsisPipe, NaturalEnumPipe, NaturalEnumService, NaturalErrorHandler, NaturalFileComponent, NaturalFileDropDirective, NaturalFileSelectDirective, NaturalFileService, NaturalFixedButtonComponent, NaturalFixedButtonDetailComponent, NaturalHierarchicSelectorComponent, NaturalHierarchicSelectorDialogComponent, NaturalHierarchicSelectorDialogService, NaturalHierarchicSelectorService, NaturalHttpPrefixDirective, NaturalIconDirective, NaturalLinkMutationService, NaturalLinkableTabDirective, NaturalLoggerConfigExtra, NaturalLoggerConfigUrl, NaturalMatomoService, NaturalMemoryStorage, NaturalPanelsComponent, NaturalPanelsService, NaturalPersistenceService, NaturalQueryVariablesManager, NaturalRelationsComponent, NaturalSearchComponent, NaturalSelectComponent, NaturalSelectEnumComponent, NaturalSelectHierarchicComponent, NaturalSeoService, NaturalSidenavComponent, NaturalSidenavContainerComponent, NaturalSidenavContentComponent, NaturalSidenavService, NaturalSidenavStackService, NaturalSrcDensityDirective, NaturalStampComponent, NaturalSwissDatePipe, NaturalSwissParsingDateAdapter, NaturalTableButtonComponent, NaturalTimeAgoPipe, PanelsHooksConfig, SESSION_STORAGE, SortingOrder, TypeBooleanComponent, TypeDateComponent, TypeDateRangeComponent, TypeHierarchicSelectorComponent, TypeNaturalSelectComponent, TypeNumberComponent, TypeSelectComponent, TypeTextComponent, available, cancellableTimeout, cleanSameValues, collectErrors, copyToClipboard, debug, decimal, deepFreeze, deliverableEmail, ensureHttpPrefix, fallbackIfNoOpenedPanels, formatIsoDate, formatIsoDateTime, fromUrl, getForegroundColor, hasFilesAndProcessDate, ifValid, integer, isMutation, localStorageFactory, localStorageProvider, lowerCaseFirstLetter, makePlural, memoryLocalStorageProvider, memorySessionStorageProvider, mergeOverrideArray, money, naturalPanelsUrlMatcher, naturalProviders, provideErrorHandler, provideIcons, providePanels, provideSeo, relationsToIds, replaceObjectKeepingReference, replaceOperatorByField, replaceOperatorByName, sessionStorageFactory, sessionStorageProvider, toGraphQLDoctrineFilter, toNavigationParameters, toUrl, unique, upperCaseFirstLetter, urlValidator, validTlds, validateAllFormControls, wrapLike };
11113
11161
  //# sourceMappingURL=ecodev-natural.mjs.map