@wemake4u/form-player-se 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/common/record.mjs +26 -0
- package/esm2022/lib/common/symbols.mjs +2 -0
- package/esm2022/lib/dataSources/odata.mjs +7 -1
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +17 -161
- package/esm2022/lib/locale/locale-it.mjs +8 -2
- package/esm2022/lib/services/formatter.service.mjs +27 -9
- package/esm2022/lib/services/grid.service.mjs +483 -0
- package/esm2022/lib/services/programmability.service.mjs +7 -2
- package/esm2022/lib/services/weak.service.mjs +15 -11
- package/esm2022/lib/utils/setFilter.mjs +111 -0
- package/esm2022/public-api.mjs +1 -4
- package/fesm2022/wemake4u-form-player-se.mjs +931 -511
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/common/record.d.ts +11 -0
- package/lib/common/symbols.d.ts +1 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +9 -12
- package/lib/dynamic-form/dynamic-form.component.d.ts +6 -0
- package/lib/locale/locale-it.d.ts +6 -0
- package/lib/services/formatter.service.d.ts +1 -0
- package/lib/services/grid.service.d.ts +42 -0
- package/lib/utils/gridCells.d.ts +12 -0
- package/lib/utils/setFilter.d.ts +72 -0
- package/package.json +2 -1
- package/esm2022/lib/utils/gridUtils.mjs +0 -75
- package/lib/utils/gridUtils.d.ts +0 -4
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Optional, SkipSelf, Directive, Input, Host, ContentChild, forwardRef, ContentChildren,
|
|
2
|
+
import { Injectable, Optional, SkipSelf, Component, Directive, Input, Host, ContentChild, forwardRef, ContentChildren, ViewEncapsulation, EventEmitter, Output } from '@angular/core';
|
|
3
3
|
import * as i10 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1$1 from '@angular/forms';
|
|
6
|
-
import { FormArray, FormControl as FormControl$1, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
7
|
-
import { isObservable, of, Subject, takeUntil } from 'rxjs';
|
|
6
|
+
import { FormArray, FormControl as FormControl$1, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
7
|
+
import { isObservable, take, tap, of, Subject, takeUntil } from 'rxjs';
|
|
8
8
|
import { evaluate } from 'feelers';
|
|
9
9
|
import { evaluate as evaluate$1, unaryTest, parseExpression } from 'feelin';
|
|
10
10
|
import { shareReplay, takeUntil as takeUntil$1, map } from 'rxjs/operators';
|
|
11
11
|
import * as i1 from 'ngx-sirio-lib';
|
|
12
|
-
import { SirioButtonComponent, SirioInputComponent, SirioValidationDirective, SirioSelectComponent, SirioSelectOptionComponent, SirioSelectPanelComponent,
|
|
12
|
+
import { SirioButtonComponent, SirioInputComponent, SirioCheckboxComponent, SirioCheckboxGroupComponent, SirioValidationDirective, SirioSelectComponent, SirioSelectOptionComponent, SirioSelectPanelComponent, SirioDatepickerComponent, SirioTimepickerComponent, SirioRadioGroupComponent, SirioRadioButtonComponent, SirioTabComponent, SirioTabItemComponent, SirioAccordionComponent, SirioAccordionPanelComponent, SirioAccordionHeaderComponent, SirioAccordionBodyComponent, SirioFileUploadComponent, SirioToggleComponent, SirioChipCheckboxGroupComponent, SirioChipRadioGroupComponent, SirioInputChipComponent, SirioAlertComponent, SirioAlertMessageComponent, SirioSliderComponent, SirioNotifyComponent, SirioNotifyBodyComponent, SirioTooltipDirective, SirioNotifyActionComponent, SirioNotifyLinkComponent, SirioSidenavMobileComponent, SirioSidenavComponent, SirioSidenavItemComponent, SirioStepperProgressBarComponent, SirioStepperProgressItemComponent } from 'ngx-sirio-lib';
|
|
13
13
|
import { Datepicker } from 'vanillajs-datepicker';
|
|
14
|
+
import { ClientSideRowModelModule, InfiniteRowModelModule, PaginationModule, LocaleModule, CellStyleModule, ClientSideRowModelApiModule, TextFilterModule, NumberFilterModule, DateFilterModule, ColumnAutoSizeModule, ColumnApiModule, themeQuartz, iconSetAlpine } from 'ag-grid-community';
|
|
15
|
+
import { AG_GRID_LOCALE_IT } from '@ag-grid-community/locale';
|
|
14
16
|
import * as i1$2 from 'ag-grid-angular';
|
|
15
17
|
import { AgGridAngular } from 'ag-grid-angular';
|
|
16
|
-
import { ClientSideRowModelModule, InfiniteRowModelModule, PaginationModule, LocaleModule, CellStyleModule, ClientSideRowModelApiModule, TextFilterModule, NumberFilterModule, DateFilterModule, ColumnAutoSizeModule, ColumnApiModule, ValidationModule, themeQuartz, iconSetAlpine } from 'ag-grid-community';
|
|
17
|
-
import { AG_GRID_LOCALE_IT } from '@ag-grid-community/locale';
|
|
18
18
|
import sanitizeHtml from 'sanitize-html';
|
|
19
19
|
import * as i1$3 from '@angular/platform-browser';
|
|
20
20
|
import { marked } from 'marked';
|
|
@@ -247,15 +247,19 @@ class WeakService {
|
|
|
247
247
|
const observable = isObservable(result);
|
|
248
248
|
if (observable) {
|
|
249
249
|
result = result.pipe(shareReplay(1));
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
250
|
+
result = result.pipe(take(1), tap((res) => {
|
|
251
|
+
cachedObject[key] = of(res);
|
|
252
|
+
}), shareReplay(1));
|
|
253
|
+
//let subscription: Subscription;
|
|
254
|
+
//subscription = result
|
|
255
|
+
// .subscribe({
|
|
256
|
+
// next: (result: any) => {
|
|
257
|
+
// subscription.unsubscribe();
|
|
258
|
+
// cachedObject[key] = of(result);
|
|
259
|
+
// },
|
|
260
|
+
// error: (error : any) => console.error(error),
|
|
261
|
+
// complete: () => console.log('Observable complete')
|
|
262
|
+
// });
|
|
259
263
|
}
|
|
260
264
|
cachedObject[key] = result;
|
|
261
265
|
return result;
|
|
@@ -536,16 +540,21 @@ class ProgrammabilityService {
|
|
|
536
540
|
return null;
|
|
537
541
|
}
|
|
538
542
|
const options = new ProxyOptions();
|
|
543
|
+
const scope = this.scope ? this.scope.proxy() : null;
|
|
539
544
|
options.extend = {
|
|
540
545
|
parent: this.getParentContext(formGroup),
|
|
541
546
|
getFormGroup: () => this.proxyService.getProxy(formGroup),
|
|
542
|
-
getScope: () =>
|
|
547
|
+
getScope: () => scope,
|
|
543
548
|
controls: () => this.register ? this.register.proxy() : null,
|
|
544
549
|
notifyInfo: (message, delay) => this.toastService.notifyInfo(message, delay),
|
|
545
550
|
notifySuccess: (message, delay) => this.toastService.notifySuccess(message, delay),
|
|
546
551
|
notifyWarning: (message, delay) => this.toastService.notifyWarning(message, delay),
|
|
547
552
|
notifyError: (message, delay) => this.toastService.notifyError(message, delay)
|
|
548
553
|
};
|
|
554
|
+
const scopeSymbol = "_";
|
|
555
|
+
if (formGroup.get(scopeSymbol) === null) {
|
|
556
|
+
options.extend[scopeSymbol] = scope;
|
|
557
|
+
}
|
|
549
558
|
if (proxyFn)
|
|
550
559
|
proxyFn(options);
|
|
551
560
|
return this.proxyService.getProxy(formGroup.value, options);
|
|
@@ -737,23 +746,823 @@ class MetadataService {
|
|
|
737
746
|
getSchema() {
|
|
738
747
|
return this.schema;
|
|
739
748
|
}
|
|
740
|
-
setForms(forms) {
|
|
741
|
-
this.forms = forms ?? [];
|
|
749
|
+
setForms(forms) {
|
|
750
|
+
this.forms = forms ?? [];
|
|
751
|
+
}
|
|
752
|
+
getForms() {
|
|
753
|
+
return this.forms;
|
|
754
|
+
}
|
|
755
|
+
getFormByName(name) {
|
|
756
|
+
return this.forms.find(form => form.name === name);
|
|
757
|
+
}
|
|
758
|
+
schema = { forms: [] };
|
|
759
|
+
forms = [];
|
|
760
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
761
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataService });
|
|
762
|
+
}
|
|
763
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataService, decorators: [{
|
|
764
|
+
type: Injectable
|
|
765
|
+
}], ctorParameters: () => [] });
|
|
766
|
+
|
|
767
|
+
const Texts = {
|
|
768
|
+
TypeToSearch: "Digita per cercare...",
|
|
769
|
+
Upload: "Upload",
|
|
770
|
+
ScrollLeft: "Scorri a sinistra",
|
|
771
|
+
ScrollRight: "Scorri a destra",
|
|
772
|
+
AddItem: "Aggiungi",
|
|
773
|
+
RemoveItem: "Rimuovi",
|
|
774
|
+
PreviousSection: "Sezione precedente",
|
|
775
|
+
NextSection: "Sezione successiva",
|
|
776
|
+
Show: "Visualizza",
|
|
777
|
+
Remove: "Rimuovi",
|
|
778
|
+
Close: "Chiudi",
|
|
779
|
+
Name: "Nome",
|
|
780
|
+
Size: "Dimensione",
|
|
781
|
+
Type: "Tipo",
|
|
782
|
+
Actions: "Azioni",
|
|
783
|
+
ReadMore: "Leggi di più",
|
|
784
|
+
ReadLess: "Leggi di meno",
|
|
785
|
+
SelectAll: "Seleziona tutto",
|
|
786
|
+
ChooseOne: "Scegli uno",
|
|
787
|
+
True: "Vero",
|
|
788
|
+
False: "Falso",
|
|
789
|
+
Blank: "Vuoto",
|
|
790
|
+
NotBlank: "Non vuoto",
|
|
791
|
+
};
|
|
792
|
+
|
|
793
|
+
class ObjectURLRendererComponent {
|
|
794
|
+
params;
|
|
795
|
+
Texts = Texts;
|
|
796
|
+
agInit(params) {
|
|
797
|
+
this.params = params;
|
|
798
|
+
}
|
|
799
|
+
onClick(event) {
|
|
800
|
+
const fileURL = URL.createObjectURL(this.params.data);
|
|
801
|
+
window.open(fileURL, '_blank');
|
|
802
|
+
setTimeout(() => {
|
|
803
|
+
URL.revokeObjectURL(fileURL);
|
|
804
|
+
}, 1000);
|
|
805
|
+
}
|
|
806
|
+
refresh() {
|
|
807
|
+
return false;
|
|
808
|
+
}
|
|
809
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectURLRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
810
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ObjectURLRendererComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<a [attr.aria-label]=\"Texts.Show\" title=\"{{ Texts.Show }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-paperclip\"></span>\r\n</a>\r\n" });
|
|
811
|
+
}
|
|
812
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectURLRendererComponent, decorators: [{
|
|
813
|
+
type: Component,
|
|
814
|
+
args: [{ standalone: true, template: "<a [attr.aria-label]=\"Texts.Show\" title=\"{{ Texts.Show }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-paperclip\"></span>\r\n</a>\r\n" }]
|
|
815
|
+
}] });
|
|
816
|
+
class DeleteRowCellRenderer {
|
|
817
|
+
params;
|
|
818
|
+
Texts = Texts;
|
|
819
|
+
agInit(params) {
|
|
820
|
+
this.params = params;
|
|
821
|
+
}
|
|
822
|
+
onClick(event) {
|
|
823
|
+
if ('remove' in this.params.data && typeof this.params.data.remove === 'function') {
|
|
824
|
+
this.params.data.remove();
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
refresh() {
|
|
828
|
+
return false;
|
|
829
|
+
}
|
|
830
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeleteRowCellRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
831
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DeleteRowCellRenderer, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<a [attr.aria-label]=\"Texts.Remove\" title=\"{{ Texts.Remove }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-trash\"></span>\r\n</a>\r\n" });
|
|
832
|
+
}
|
|
833
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeleteRowCellRenderer, decorators: [{
|
|
834
|
+
type: Component,
|
|
835
|
+
args: [{ standalone: true, template: "<a [attr.aria-label]=\"Texts.Remove\" title=\"{{ Texts.Remove }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-trash\"></span>\r\n</a>\r\n" }]
|
|
836
|
+
}] });
|
|
837
|
+
class ActionsCellRenderer {
|
|
838
|
+
programmability;
|
|
839
|
+
constructor(programmability) {
|
|
840
|
+
this.programmability = programmability;
|
|
841
|
+
}
|
|
842
|
+
params;
|
|
843
|
+
agInit(params) {
|
|
844
|
+
this.params = params;
|
|
845
|
+
}
|
|
846
|
+
refresh() {
|
|
847
|
+
return false;
|
|
848
|
+
}
|
|
849
|
+
evaluateBoolean(value) {
|
|
850
|
+
const options = {
|
|
851
|
+
proxyFn: (options) => {
|
|
852
|
+
options.extend["getParams"] = () => this.params;
|
|
853
|
+
options.extend["getData"] = () => this.getData();
|
|
854
|
+
}
|
|
855
|
+
};
|
|
856
|
+
return this.programmability.evaluateBoolean(this.getFormGroup(), value, options);
|
|
857
|
+
}
|
|
858
|
+
evaluateString(value) {
|
|
859
|
+
return this.programmability.evaluateString(this.getFormGroup(), value);
|
|
860
|
+
}
|
|
861
|
+
clickButton(action, event) {
|
|
862
|
+
if (action.click) {
|
|
863
|
+
const options = {
|
|
864
|
+
cacheable: false,
|
|
865
|
+
proxyFn: (options) => {
|
|
866
|
+
options.extend["getParams"] = () => this.params;
|
|
867
|
+
options.extend["getAction"] = () => action;
|
|
868
|
+
options.extend["getData"] = () => this.getData();
|
|
869
|
+
}
|
|
870
|
+
};
|
|
871
|
+
return this.programmability.evaluate(this.getFormGroup(), action.click, options);
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
getData() {
|
|
875
|
+
return this.params.data;
|
|
876
|
+
}
|
|
877
|
+
getFormGroup() {
|
|
878
|
+
return this.params.formGroup;
|
|
879
|
+
}
|
|
880
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsCellRenderer, deps: [{ token: ProgrammabilityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
881
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionsCellRenderer, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n [disabled]=\"evaluateBoolean(action.disabled)\"\r\n (clickEvent)=\"clickButton(action, $event)\"\r\n [icon]=\"evaluateString(action.icon)\">\r\n </ngx-sirio-button>\r\n </ng-container>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SirioButtonComponent, selector: "ngx-sirio-button", inputs: ["ariaExpanded", "ariaControls", "ariaActivedescendant", "ariaHaspopup", "ariaLabel", "ariaRequired", "ariaInvalid", "ariaDescribedby", "icon", "title", "role", "color", "isFloating", "isExtended", "isLight", "isSmall", "disabled", "isDropdown", "type", "dismissType", "isBtnBlock"], outputs: ["clickEvent", "focusEvent", "blurEvent"] }] });
|
|
882
|
+
}
|
|
883
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsCellRenderer, decorators: [{
|
|
884
|
+
type: Component,
|
|
885
|
+
args: [{ standalone: true, imports: [
|
|
886
|
+
CommonModule, SirioButtonComponent
|
|
887
|
+
], template: "<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n [disabled]=\"evaluateBoolean(action.disabled)\"\r\n (clickEvent)=\"clickButton(action, $event)\"\r\n [icon]=\"evaluateString(action.icon)\">\r\n </ngx-sirio-button>\r\n </ng-container>\r\n</div>\r\n" }]
|
|
888
|
+
}], ctorParameters: () => [{ type: ProgrammabilityService }] });
|
|
889
|
+
|
|
890
|
+
const getLabelSymbol = Symbol('getLabel');
|
|
891
|
+
|
|
892
|
+
function isLabeledRecord(obj, isKey, isValue, getLabelSymbol) {
|
|
893
|
+
if (!isRecord(obj, isKey, isValue)) {
|
|
894
|
+
return false;
|
|
895
|
+
}
|
|
896
|
+
const getLabel = obj[getLabelSymbol];
|
|
897
|
+
return (getLabel !== undefined && typeof getLabel === 'function');
|
|
898
|
+
}
|
|
899
|
+
function isRecord(obj, isKey, isValue) {
|
|
900
|
+
if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
|
|
901
|
+
return false;
|
|
902
|
+
}
|
|
903
|
+
return Object.entries(obj).every(([key, val]) => {
|
|
904
|
+
return isKey(key) && isValue(val);
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
function isStringKey(key) {
|
|
908
|
+
return typeof key === 'string';
|
|
909
|
+
}
|
|
910
|
+
function isNumericKey(key) {
|
|
911
|
+
return typeof key === 'string' && !isNaN(Number(key));
|
|
912
|
+
}
|
|
913
|
+
function isBooleanKey(key) {
|
|
914
|
+
return key === 'true' || key === 'false';
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
class SetFilterComponent {
|
|
918
|
+
params;
|
|
919
|
+
fieldName;
|
|
920
|
+
Texts = Texts;
|
|
921
|
+
selectAll = true;
|
|
922
|
+
searchText = '';
|
|
923
|
+
options = [];
|
|
924
|
+
filteredOptions = [];
|
|
925
|
+
agInit(params) {
|
|
926
|
+
this.params = params;
|
|
927
|
+
this.fieldName = params.colDef.field;
|
|
928
|
+
const map = params.colDef.filterParams?.map;
|
|
929
|
+
const result = isRecord(map, key => typeof key === 'string' || typeof key === 'number', val => typeof val === 'string');
|
|
930
|
+
if (result) {
|
|
931
|
+
this.options = Object.entries(map).map(([key, label]) => ({
|
|
932
|
+
value: this.parseKey(key),
|
|
933
|
+
label: label,
|
|
934
|
+
selected: true
|
|
935
|
+
}));
|
|
936
|
+
}
|
|
937
|
+
else {
|
|
938
|
+
this.options = [];
|
|
939
|
+
}
|
|
940
|
+
this.filteredOptions = [...this.options];
|
|
941
|
+
}
|
|
942
|
+
isFilterActive() {
|
|
943
|
+
return this.options.some(o => !o.selected);
|
|
944
|
+
}
|
|
945
|
+
doesFilterPass(params) {
|
|
946
|
+
const value = this.resolvePath(params.data, this.fieldName);
|
|
947
|
+
return this.options.some(o => o.selected && o.value === value);
|
|
948
|
+
}
|
|
949
|
+
getModel() {
|
|
950
|
+
const selectedValues = this.options
|
|
951
|
+
.filter(o => o.selected)
|
|
952
|
+
.map(o => o.value);
|
|
953
|
+
if (selectedValues.length === this.options.length) {
|
|
954
|
+
return null;
|
|
955
|
+
}
|
|
956
|
+
if (selectedValues.length === 0) {
|
|
957
|
+
return {
|
|
958
|
+
filterType: 'text',
|
|
959
|
+
type: 'excludeAll'
|
|
960
|
+
};
|
|
961
|
+
}
|
|
962
|
+
const filters = selectedValues.map(value => ({
|
|
963
|
+
filterType: 'number',
|
|
964
|
+
type: 'equals',
|
|
965
|
+
filter: value
|
|
966
|
+
}));
|
|
967
|
+
if (filters.length === 1)
|
|
968
|
+
return filters[0];
|
|
969
|
+
return {
|
|
970
|
+
filterType: 'number',
|
|
971
|
+
operator: 'OR',
|
|
972
|
+
conditions: filters
|
|
973
|
+
};
|
|
974
|
+
}
|
|
975
|
+
setModel(model) {
|
|
976
|
+
const selected = model?.values ?? this.options.map(o => o.value);
|
|
977
|
+
this.options.forEach(o => o.selected = selected.includes(o.value));
|
|
978
|
+
this.updateFilteredOptions();
|
|
979
|
+
}
|
|
980
|
+
onSelectionChange() {
|
|
981
|
+
this.params.filterChangedCallback();
|
|
982
|
+
}
|
|
983
|
+
onSearchChange() {
|
|
984
|
+
this.updateFilteredOptions();
|
|
985
|
+
}
|
|
986
|
+
onSelectAllChange() {
|
|
987
|
+
this.setAll(this.selectAll);
|
|
988
|
+
}
|
|
989
|
+
parseKey(key) {
|
|
990
|
+
if (key === 'true')
|
|
991
|
+
return true;
|
|
992
|
+
if (key === 'false')
|
|
993
|
+
return false;
|
|
994
|
+
const num = Number(key);
|
|
995
|
+
return isNaN(num) ? key : num;
|
|
996
|
+
}
|
|
997
|
+
setAll(select) {
|
|
998
|
+
this.options.forEach(o => o.selected = select);
|
|
999
|
+
this.updateFilteredOptions();
|
|
1000
|
+
this.params.filterChangedCallback();
|
|
1001
|
+
}
|
|
1002
|
+
updateFilteredOptions() {
|
|
1003
|
+
const search = this.searchText.toLowerCase();
|
|
1004
|
+
this.filteredOptions = this.options.filter(o => o.label.toLowerCase().includes(search));
|
|
1005
|
+
}
|
|
1006
|
+
resolvePath(obj, path) {
|
|
1007
|
+
return path.split('.').reduce((acc, part) => acc?.[part], obj);
|
|
1008
|
+
}
|
|
1009
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SetFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1010
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SetFilterComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div style=\"padding: 5px;background-color: white;\">\r\n\r\n <div style=\"padding: 5px\">\r\n <ngx-sirio-input type=\"text\"\r\n [placeholder]=\"Texts.TypeToSearch\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchChange()\">\r\n </ngx-sirio-input>\r\n </div>\r\n\r\n <div style=\"padding: 5px; max-height: 200px; overflow-y: auto;\">\r\n <ngx-sirio-checkbox [(ngModel)]=\"selectAll\" (ngModelChange)=\"onSelectAllChange()\">{{Texts.SelectAll}}</ngx-sirio-checkbox>\r\n\r\n <ngx-sirio-checkbox-group>\r\n <ngx-sirio-checkbox *ngFor=\"let option of filteredOptions\"\r\n [(ngModel)]=\"option.selected\"\r\n [value]=\"option.value\"\r\n (change)=\"onSelectionChange()\">\r\n {{ option.label }}\r\n </ngx-sirio-checkbox>\r\n </ngx-sirio-checkbox-group>\r\n </div>\r\n\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SirioInputComponent, selector: "ngx-sirio-input", inputs: ["disabledState", "value", "label", "labelPopover", "ariaLabelPopoverButton", "type", "name", "placeholder", "textHelp", "textFeedback", "rows", "cols", "ariaLabel", "ariaAutocomplete", "ariaInvalid", "ariaDescribedBy", "role"], outputs: ["focusEvent", "inputEvent", "blurEvent", "keyupEvent", "keydownEvent"] }, { kind: "component", type: SirioCheckboxComponent, selector: "ngx-sirio-checkbox", inputs: ["disabled", "name", "textHelp", "textFeedback", "value", "ariaInvalid", "ariaDescribedBy", "disabledState", "checked"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioCheckboxGroupComponent, selector: "ngx-sirio-checkbox-group", inputs: ["textHelp", "textFeedback", "label", "labelPopover", "ariaLabelPopoverButton", "ariaLabel", "ariaInvalid", "ariaDescribedBy", "disabledState", "value"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }] });
|
|
1011
|
+
}
|
|
1012
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SetFilterComponent, decorators: [{
|
|
1013
|
+
type: Component,
|
|
1014
|
+
args: [{ standalone: true, imports: [CommonModule, FormsModule, SirioInputComponent,
|
|
1015
|
+
SirioCheckboxComponent, SirioCheckboxGroupComponent,
|
|
1016
|
+
SirioButtonComponent], template: "<div style=\"padding: 5px;background-color: white;\">\r\n\r\n <div style=\"padding: 5px\">\r\n <ngx-sirio-input type=\"text\"\r\n [placeholder]=\"Texts.TypeToSearch\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchChange()\">\r\n </ngx-sirio-input>\r\n </div>\r\n\r\n <div style=\"padding: 5px; max-height: 200px; overflow-y: auto;\">\r\n <ngx-sirio-checkbox [(ngModel)]=\"selectAll\" (ngModelChange)=\"onSelectAllChange()\">{{Texts.SelectAll}}</ngx-sirio-checkbox>\r\n\r\n <ngx-sirio-checkbox-group>\r\n <ngx-sirio-checkbox *ngFor=\"let option of filteredOptions\"\r\n [(ngModel)]=\"option.selected\"\r\n [value]=\"option.value\"\r\n (change)=\"onSelectionChange()\">\r\n {{ option.label }}\r\n </ngx-sirio-checkbox>\r\n </ngx-sirio-checkbox-group>\r\n </div>\r\n\r\n</div>\r\n" }]
|
|
1017
|
+
}] });
|
|
1018
|
+
|
|
1019
|
+
//import { FeelService } from '../services/feel.service';
|
|
1020
|
+
class FormatterService {
|
|
1021
|
+
//constructor(private feelService: FeelService) { }
|
|
1022
|
+
constructor() { }
|
|
1023
|
+
formatCurrency(value, symbol = null) {
|
|
1024
|
+
if (isNaN(value) || value === null || value === undefined) {
|
|
1025
|
+
return value;
|
|
1026
|
+
}
|
|
1027
|
+
const numberValue = parseFloat(value);
|
|
1028
|
+
if (isNaN(numberValue)) {
|
|
1029
|
+
return value;
|
|
1030
|
+
}
|
|
1031
|
+
const result = numberValue.toFixed(2).replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, ".");
|
|
1032
|
+
if (symbol) {
|
|
1033
|
+
return symbol + ' ' + result;
|
|
1034
|
+
}
|
|
1035
|
+
else {
|
|
1036
|
+
return result;
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
formatDate(value) {
|
|
1040
|
+
if (!value)
|
|
1041
|
+
return '';
|
|
1042
|
+
const date = new Date(value);
|
|
1043
|
+
if (isNaN(date.getTime()))
|
|
1044
|
+
return '';
|
|
1045
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
1046
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
1047
|
+
const year = date.getFullYear();
|
|
1048
|
+
return `${day}/${month}/${year}`;
|
|
1049
|
+
}
|
|
1050
|
+
formatDateTime(value) {
|
|
1051
|
+
if (!value)
|
|
1052
|
+
return '';
|
|
1053
|
+
const date = new Date(value);
|
|
1054
|
+
if (isNaN(date.getTime()))
|
|
1055
|
+
return '';
|
|
1056
|
+
const hasTime = typeof value === 'string' && value.includes('T');
|
|
1057
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
1058
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
1059
|
+
const year = date.getFullYear();
|
|
1060
|
+
if (!hasTime) {
|
|
1061
|
+
return `${day}/${month}/${year} 00:00:00`;
|
|
1062
|
+
}
|
|
1063
|
+
else {
|
|
1064
|
+
const hours = String(date.getHours()).padStart(2, '0');
|
|
1065
|
+
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
1066
|
+
const seconds = String(date.getSeconds()).padStart(2, '0');
|
|
1067
|
+
return `${day}/${month}/${year} ${hours}:${minutes}:${seconds}`;
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
formatInteger(value) {
|
|
1071
|
+
if (isNaN(value) || value === null || value === undefined) {
|
|
1072
|
+
return value;
|
|
1073
|
+
}
|
|
1074
|
+
const numberValue = parseInt(value, 10);
|
|
1075
|
+
if (isNaN(numberValue)) {
|
|
1076
|
+
return value;
|
|
1077
|
+
}
|
|
1078
|
+
return numberValue.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
|
|
1079
|
+
}
|
|
1080
|
+
formatExpression(value, expression) {
|
|
1081
|
+
return value;
|
|
1082
|
+
//const result = this.feelService.evalExpression(expression, { value: value }) as string;
|
|
1083
|
+
//return result;
|
|
1084
|
+
}
|
|
1085
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1086
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatterService, providedIn: 'root' });
|
|
1087
|
+
}
|
|
1088
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatterService, decorators: [{
|
|
1089
|
+
type: Injectable,
|
|
1090
|
+
args: [{
|
|
1091
|
+
providedIn: 'root'
|
|
1092
|
+
}]
|
|
1093
|
+
}], ctorParameters: () => [] });
|
|
1094
|
+
|
|
1095
|
+
class GridService {
|
|
1096
|
+
formatter;
|
|
1097
|
+
programmability;
|
|
1098
|
+
constructor(formatter, programmability) {
|
|
1099
|
+
this.formatter = formatter;
|
|
1100
|
+
this.programmability = programmability;
|
|
1101
|
+
}
|
|
1102
|
+
getGridModules() {
|
|
1103
|
+
return [
|
|
1104
|
+
ClientSideRowModelModule,
|
|
1105
|
+
InfiniteRowModelModule,
|
|
1106
|
+
PaginationModule,
|
|
1107
|
+
LocaleModule,
|
|
1108
|
+
CellStyleModule,
|
|
1109
|
+
ClientSideRowModelApiModule,
|
|
1110
|
+
TextFilterModule,
|
|
1111
|
+
NumberFilterModule,
|
|
1112
|
+
DateFilterModule,
|
|
1113
|
+
ColumnAutoSizeModule,
|
|
1114
|
+
ColumnApiModule
|
|
1115
|
+
];
|
|
1116
|
+
}
|
|
1117
|
+
;
|
|
1118
|
+
getGridOptions(component, formGroup) {
|
|
1119
|
+
const columnDefs = this.getGridColumns(component, formGroup);
|
|
1120
|
+
const pagination = this.getGridPaginable(component);
|
|
1121
|
+
const pageSize = this.getGridPageSize(component);
|
|
1122
|
+
const texts = this.getGridTexts();
|
|
1123
|
+
const theme = this.getGridTheme();
|
|
1124
|
+
return {
|
|
1125
|
+
defaultColDef: {
|
|
1126
|
+
floatingFilter: (component.floatingFilter === true),
|
|
1127
|
+
headerClass: (component.floatingFilter === true)
|
|
1128
|
+
? 'show-filter' : 'hide-filter'
|
|
1129
|
+
},
|
|
1130
|
+
dataTypeDefinitions: this.getDataTypeDefinitions(),
|
|
1131
|
+
columnDefs: columnDefs,
|
|
1132
|
+
pagination: pagination,
|
|
1133
|
+
paginationPageSize: pageSize,
|
|
1134
|
+
cacheBlockSize: pageSize,
|
|
1135
|
+
paginationPageSizeSelector: [5, 10, 20, 50],
|
|
1136
|
+
localeText: texts,
|
|
1137
|
+
enableCellTextSelection: true,
|
|
1138
|
+
theme: theme,
|
|
1139
|
+
onGridReady: (params) => {
|
|
1140
|
+
params.api.autoSizeColumns(["actions"]);
|
|
1141
|
+
}
|
|
1142
|
+
};
|
|
1143
|
+
}
|
|
1144
|
+
getGridColumns(component, formGroup) {
|
|
1145
|
+
if (Array.isArray(component.columns)) {
|
|
1146
|
+
const columns = component.columns.map((column) => {
|
|
1147
|
+
const colDef = {
|
|
1148
|
+
field: column.key,
|
|
1149
|
+
headerName: column.label,
|
|
1150
|
+
};
|
|
1151
|
+
this.setCellDataType(column, colDef);
|
|
1152
|
+
const map = this.getMap(column, colDef, formGroup);
|
|
1153
|
+
this.setCellRenderer(column, colDef, map);
|
|
1154
|
+
this.setResizable(column, colDef);
|
|
1155
|
+
this.setSortable(column, colDef);
|
|
1156
|
+
this.setFilter(column, colDef, map);
|
|
1157
|
+
this.setFilterParams(column, colDef, map);
|
|
1158
|
+
this.setSuppressMovable(column, colDef);
|
|
1159
|
+
this.setFlex(column, colDef);
|
|
1160
|
+
this.setAlign(column, colDef);
|
|
1161
|
+
this.setPinned(column, colDef);
|
|
1162
|
+
this.setWidth(column, colDef);
|
|
1163
|
+
this.setValueFormatter(column, colDef, map);
|
|
1164
|
+
return colDef;
|
|
1165
|
+
});
|
|
1166
|
+
if (Array.isArray(component.actions) && component.actions.length > 0) {
|
|
1167
|
+
columns.push({
|
|
1168
|
+
colId: 'actions',
|
|
1169
|
+
headerName: Texts.Actions,
|
|
1170
|
+
resizable: false,
|
|
1171
|
+
cellDataType: false,
|
|
1172
|
+
pinned: "right",
|
|
1173
|
+
cellRendererParams: {
|
|
1174
|
+
component: component,
|
|
1175
|
+
formGroup: formGroup
|
|
1176
|
+
},
|
|
1177
|
+
cellRenderer: ActionsCellRenderer,
|
|
1178
|
+
suppressKeyboardEvent: this.navigateInsideCell
|
|
1179
|
+
});
|
|
1180
|
+
}
|
|
1181
|
+
return columns;
|
|
1182
|
+
}
|
|
1183
|
+
else {
|
|
1184
|
+
return [];
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
setCellDataType(column, colDef) {
|
|
1188
|
+
if (typeof column.dataType === "string"
|
|
1189
|
+
&& column.dataType.trim() !== ""
|
|
1190
|
+
&& column.dataType !== "auto") {
|
|
1191
|
+
colDef.cellDataType = column.dataType;
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
setCellRenderer(column, colDef, map) {
|
|
1195
|
+
if (column.format === "objectURL") {
|
|
1196
|
+
colDef.cellRenderer = ObjectURLRendererComponent;
|
|
1197
|
+
}
|
|
1198
|
+
if (column.format === "deleteRow") {
|
|
1199
|
+
colDef.cellRenderer = DeleteRowCellRenderer;
|
|
1200
|
+
}
|
|
1201
|
+
if (colDef.cellDataType === "boolean" && map) {
|
|
1202
|
+
colDef.cellRenderer = (params) => {
|
|
1203
|
+
return this.formatMap(params.value, map);
|
|
1204
|
+
};
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
setResizable(column, colDef) {
|
|
1208
|
+
colDef.resizable = (column.resize === true);
|
|
1209
|
+
}
|
|
1210
|
+
setSortable(column, colDef) {
|
|
1211
|
+
colDef.sortable = (column.sort === true);
|
|
1212
|
+
}
|
|
1213
|
+
setFilter(column, colDef, map) {
|
|
1214
|
+
if (column.filter === true) {
|
|
1215
|
+
colDef.filter = true;
|
|
1216
|
+
if (map) {
|
|
1217
|
+
colDef.filter = SetFilterComponent;
|
|
1218
|
+
}
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1221
|
+
setFilterParams(column, colDef, map) {
|
|
1222
|
+
const filterParams = {};
|
|
1223
|
+
if (column.dataType === 'uuid') {
|
|
1224
|
+
this.setUuidFilterParams(filterParams);
|
|
1225
|
+
}
|
|
1226
|
+
else if (column.dataType === 'integer') {
|
|
1227
|
+
this.setIntegerFilterParams(filterParams);
|
|
1228
|
+
}
|
|
1229
|
+
else if (column.dataType === 'date') {
|
|
1230
|
+
this.setDateFilterParams(filterParams);
|
|
1231
|
+
}
|
|
1232
|
+
else if (column.dataType === 'boolean') {
|
|
1233
|
+
this.setBooleanFilterParams(filterParams);
|
|
1234
|
+
}
|
|
1235
|
+
if (map) {
|
|
1236
|
+
filterParams.map = map;
|
|
1237
|
+
}
|
|
1238
|
+
colDef.filterParams = filterParams;
|
|
1239
|
+
}
|
|
1240
|
+
setUuidFilterParams(filterParams) {
|
|
1241
|
+
filterParams.filterOptions = ['equals', 'notEqual'];
|
|
1242
|
+
}
|
|
1243
|
+
setIntegerFilterParams(filterParams) {
|
|
1244
|
+
filterParams.allowedCharPattern = '\\d';
|
|
1245
|
+
}
|
|
1246
|
+
setDateFilterParams(filterParams) {
|
|
1247
|
+
filterParams.comparator = (filterLocalDateAtMidnight, cellValue) => {
|
|
1248
|
+
if (!cellValue)
|
|
1249
|
+
return -1;
|
|
1250
|
+
const cellDate = new Date(cellValue);
|
|
1251
|
+
if (isNaN(cellDate.getTime()))
|
|
1252
|
+
return -1;
|
|
1253
|
+
const cellDateNoTime = new Date(cellDate.getFullYear(), cellDate.getMonth(), cellDate.getDate());
|
|
1254
|
+
if (cellDateNoTime < filterLocalDateAtMidnight)
|
|
1255
|
+
return -1;
|
|
1256
|
+
if (cellDateNoTime > filterLocalDateAtMidnight)
|
|
1257
|
+
return 1;
|
|
1258
|
+
return 0;
|
|
1259
|
+
};
|
|
1260
|
+
}
|
|
1261
|
+
setBooleanFilterParams(filterParams) {
|
|
1262
|
+
filterParams.filterOptions = [
|
|
1263
|
+
{
|
|
1264
|
+
displayKey: 'includeAll',
|
|
1265
|
+
displayName: Texts.ChooseOne,
|
|
1266
|
+
numberOfInputs: 0,
|
|
1267
|
+
predicate: ([filter], value) => true
|
|
1268
|
+
},
|
|
1269
|
+
{
|
|
1270
|
+
displayKey: 'true',
|
|
1271
|
+
displayName: Texts.True,
|
|
1272
|
+
numberOfInputs: 0,
|
|
1273
|
+
predicate: ([filter], value) => value === true
|
|
1274
|
+
},
|
|
1275
|
+
{
|
|
1276
|
+
displayKey: 'false',
|
|
1277
|
+
displayName: Texts.False,
|
|
1278
|
+
numberOfInputs: 0,
|
|
1279
|
+
predicate: ([filter], value) => value === false
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
displayKey: 'blank',
|
|
1283
|
+
displayName: Texts.Blank,
|
|
1284
|
+
numberOfInputs: 0,
|
|
1285
|
+
predicate: ([filter], value) => value === null
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
displayKey: 'notBlank',
|
|
1289
|
+
displayName: Texts.NotBlank,
|
|
1290
|
+
numberOfInputs: 0,
|
|
1291
|
+
predicate: ([filter], value) => value !== null
|
|
1292
|
+
},
|
|
1293
|
+
];
|
|
1294
|
+
filterParams.suppressAndOrCondition = true;
|
|
1295
|
+
}
|
|
1296
|
+
setSuppressMovable(column, colDef) {
|
|
1297
|
+
if (!(column.move === true)) {
|
|
1298
|
+
colDef.suppressMovable = true;
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1301
|
+
setFlex(column, colDef) {
|
|
1302
|
+
if (column.flex === true) {
|
|
1303
|
+
colDef.flex = 1;
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
setAlign(column, colDef) {
|
|
1307
|
+
if (column.align === "left") {
|
|
1308
|
+
colDef.cellStyle = { textAlign: 'left' };
|
|
1309
|
+
}
|
|
1310
|
+
else if (column.align === "center") {
|
|
1311
|
+
colDef.cellStyle = { textAlign: 'center' };
|
|
1312
|
+
}
|
|
1313
|
+
else if (column.align === "right") {
|
|
1314
|
+
colDef.cellStyle = { textAlign: 'right' };
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1317
|
+
setPinned(column, colDef) {
|
|
1318
|
+
if (typeof column.pinned === "string") {
|
|
1319
|
+
colDef.pinned = column.pinned;
|
|
1320
|
+
}
|
|
1321
|
+
}
|
|
1322
|
+
setWidth(column, colDef) {
|
|
1323
|
+
if (typeof column.width === "number") {
|
|
1324
|
+
colDef.width = column.width;
|
|
1325
|
+
}
|
|
1326
|
+
if (typeof column.minWidth === "number") {
|
|
1327
|
+
colDef.minWidth = column.minWidth;
|
|
1328
|
+
}
|
|
1329
|
+
if (typeof column.maxWidth === "number") {
|
|
1330
|
+
colDef.maxWidth = column.maxWidth;
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
setValueFormatter(column, colDef, map) {
|
|
1334
|
+
if (map) {
|
|
1335
|
+
colDef.valueFormatter = (params) => this.formatMap(params.value, map);
|
|
1336
|
+
}
|
|
1337
|
+
}
|
|
1338
|
+
getGridPaginable(component) {
|
|
1339
|
+
return (typeof component.rowCount === 'number' && component.rowCount > 0);
|
|
1340
|
+
}
|
|
1341
|
+
getGridPageSize(component) {
|
|
1342
|
+
if (typeof component.rowCount === 'number') {
|
|
1343
|
+
return component.rowCount;
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
getGridTexts() {
|
|
1347
|
+
return {
|
|
1348
|
+
...AG_GRID_LOCALE_IT,
|
|
1349
|
+
"pageSizeSelectorLabel": "Elementi per pagina:",
|
|
1350
|
+
"to": "-",
|
|
1351
|
+
};
|
|
1352
|
+
}
|
|
1353
|
+
getGridTheme() {
|
|
1354
|
+
return themeQuartz
|
|
1355
|
+
.withPart(iconSetAlpine)
|
|
1356
|
+
.withParams({
|
|
1357
|
+
backgroundColor: "#FAFAFA",
|
|
1358
|
+
borderColor: "#D9E4F7",
|
|
1359
|
+
browserColorScheme: "light",
|
|
1360
|
+
cellTextColor: "#00121A",
|
|
1361
|
+
columnBorder: true,
|
|
1362
|
+
fontFamily: "inherit",
|
|
1363
|
+
fontSize: 16,
|
|
1364
|
+
headerBackgroundColor: "#002460",
|
|
1365
|
+
headerColumnBorder: true,
|
|
1366
|
+
headerColumnResizeHandleColor: "#F2F6FC",
|
|
1367
|
+
headerColumnResizeHandleWidth: 2,
|
|
1368
|
+
headerFontSize: 16,
|
|
1369
|
+
headerFontWeight: 600,
|
|
1370
|
+
headerRowBorder: false,
|
|
1371
|
+
headerTextColor: "#F2F6FC",
|
|
1372
|
+
rowBorder: true
|
|
1373
|
+
});
|
|
1374
|
+
}
|
|
1375
|
+
getDataTypeDefinitions() {
|
|
1376
|
+
return {
|
|
1377
|
+
uuid: {
|
|
1378
|
+
baseDataType: 'text',
|
|
1379
|
+
extendsDataType: 'text'
|
|
1380
|
+
},
|
|
1381
|
+
date: {
|
|
1382
|
+
baseDataType: 'dateString',
|
|
1383
|
+
extendsDataType: 'dateString',
|
|
1384
|
+
dateParser: (value) => {
|
|
1385
|
+
return value ? new Date(value) : undefined;
|
|
1386
|
+
},
|
|
1387
|
+
valueFormatter: params => {
|
|
1388
|
+
return this.formatter.formatDate(params.value);
|
|
1389
|
+
}
|
|
1390
|
+
},
|
|
1391
|
+
dateTime: {
|
|
1392
|
+
baseDataType: 'dateString',
|
|
1393
|
+
extendsDataType: 'dateString',
|
|
1394
|
+
dateParser: (value) => {
|
|
1395
|
+
return value ? new Date(value) : undefined;
|
|
1396
|
+
},
|
|
1397
|
+
valueFormatter: params => {
|
|
1398
|
+
return this.formatter.formatDateTime(params.value);
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
currency: {
|
|
1402
|
+
extendsDataType: 'number',
|
|
1403
|
+
baseDataType: 'number',
|
|
1404
|
+
valueFormatter: params => params.value == null
|
|
1405
|
+
? ''
|
|
1406
|
+
: this.formatter.formatCurrency(params.value)
|
|
1407
|
+
},
|
|
1408
|
+
integer: {
|
|
1409
|
+
extendsDataType: 'number',
|
|
1410
|
+
baseDataType: 'number',
|
|
1411
|
+
valueFormatter: params => params.value == null
|
|
1412
|
+
? ''
|
|
1413
|
+
: this.formatter.formatInteger(params.value)
|
|
1414
|
+
},
|
|
1415
|
+
percentage: {
|
|
1416
|
+
extendsDataType: 'number',
|
|
1417
|
+
baseDataType: 'number',
|
|
1418
|
+
valueFormatter: params => params.value == null
|
|
1419
|
+
? ''
|
|
1420
|
+
: `${Math.round(params.value * 100)}%`,
|
|
1421
|
+
},
|
|
1422
|
+
flags: {
|
|
1423
|
+
extendsDataType: 'number',
|
|
1424
|
+
baseDataType: 'number'
|
|
1425
|
+
}
|
|
1426
|
+
};
|
|
1427
|
+
}
|
|
1428
|
+
getMap(column, colDef, formGroup) {
|
|
1429
|
+
const allowed = (colDef.cellDataType === "boolean"
|
|
1430
|
+
|| colDef.cellDataType === "text"
|
|
1431
|
+
|| colDef.cellDataType === "number"
|
|
1432
|
+
|| colDef.cellDataType === "flags");
|
|
1433
|
+
if (allowed && column.map) {
|
|
1434
|
+
const map = this.programmability.evaluate(formGroup, column.mapValues);
|
|
1435
|
+
const valid = isRecord(map, key => typeof key === 'string' || typeof key === 'number', val => typeof val === 'string');
|
|
1436
|
+
if (!valid)
|
|
1437
|
+
return null;
|
|
1438
|
+
if (colDef.cellDataType === "flags") {
|
|
1439
|
+
map[getLabelSymbol] = (key) => this.formatFlags(key, map);
|
|
1440
|
+
}
|
|
1441
|
+
return map;
|
|
1442
|
+
}
|
|
1443
|
+
else {
|
|
1444
|
+
return null;
|
|
1445
|
+
}
|
|
1446
|
+
}
|
|
1447
|
+
formatMap(value, map) {
|
|
1448
|
+
if (value == null) {
|
|
1449
|
+
return '';
|
|
1450
|
+
}
|
|
1451
|
+
if (map) {
|
|
1452
|
+
var result = map[value];
|
|
1453
|
+
if (result === undefined) {
|
|
1454
|
+
const labeled = isLabeledRecord(map, key => typeof key === 'string' || typeof key === 'number', val => typeof val === 'string', getLabelSymbol);
|
|
1455
|
+
if (labeled) {
|
|
1456
|
+
result = map[getLabelSymbol](value);
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
return result ?? value.toString();
|
|
1460
|
+
}
|
|
1461
|
+
else {
|
|
1462
|
+
return value.toString();
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
formatFlags(value, map) {
|
|
1466
|
+
if (typeof value === 'number' &&
|
|
1467
|
+
isRecord(map, isNumericKey, val => typeof val === 'string')) {
|
|
1468
|
+
if (value == 0) {
|
|
1469
|
+
return map[0] ?? "0";
|
|
1470
|
+
}
|
|
1471
|
+
const availableFlags = Object.keys(map)
|
|
1472
|
+
.map(Number)
|
|
1473
|
+
.filter(flag => flag !== 0);
|
|
1474
|
+
const flags = availableFlags.filter(flag => (value & flag) === flag);
|
|
1475
|
+
const sumFlags = flags.reduce((sum, f) => sum | f, 0);
|
|
1476
|
+
if ((value & sumFlags) !== value) {
|
|
1477
|
+
return null;
|
|
1478
|
+
}
|
|
1479
|
+
return flags
|
|
1480
|
+
.map(flag => map[flag])
|
|
1481
|
+
.filter((label) => !!label)
|
|
1482
|
+
.join(', ');
|
|
1483
|
+
}
|
|
1484
|
+
else {
|
|
1485
|
+
return null;
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
navigateInsideCell({ event }) {
|
|
1489
|
+
const GRID_CELL_CLASSNAME = "ag-cell";
|
|
1490
|
+
const { key, shiftKey } = event;
|
|
1491
|
+
const path = this.getEventPath(event);
|
|
1492
|
+
const isTabForward = key === "Tab" && shiftKey === false;
|
|
1493
|
+
const isTabBackward = key === "Tab" && shiftKey === true;
|
|
1494
|
+
let suppressEvent = false;
|
|
1495
|
+
// Handle cell children tabbing
|
|
1496
|
+
if (isTabForward || isTabBackward) {
|
|
1497
|
+
const eGridCell = path.find((el) => {
|
|
1498
|
+
if (el.classList === undefined)
|
|
1499
|
+
return false;
|
|
1500
|
+
return el.classList.contains(GRID_CELL_CLASSNAME);
|
|
1501
|
+
});
|
|
1502
|
+
if (!eGridCell) {
|
|
1503
|
+
return suppressEvent;
|
|
1504
|
+
}
|
|
1505
|
+
const focusableChildrenElements = this.getAllFocusableElementsOf(eGridCell);
|
|
1506
|
+
const lastCellChildEl = focusableChildrenElements[focusableChildrenElements.length - 1];
|
|
1507
|
+
const firstCellChildEl = focusableChildrenElements[0];
|
|
1508
|
+
// Suppress keyboard event if tabbing forward within the cell and the current focused element is not the last child
|
|
1509
|
+
if (focusableChildrenElements.length === 0) {
|
|
1510
|
+
return false;
|
|
1511
|
+
}
|
|
1512
|
+
const currentIndex = focusableChildrenElements.indexOf(document.activeElement);
|
|
1513
|
+
if (isTabForward) {
|
|
1514
|
+
const isLastChildFocused = lastCellChildEl && document.activeElement === lastCellChildEl;
|
|
1515
|
+
if (!isLastChildFocused) {
|
|
1516
|
+
suppressEvent = true;
|
|
1517
|
+
if (currentIndex !== -1 || document.activeElement === eGridCell) {
|
|
1518
|
+
event.preventDefault();
|
|
1519
|
+
focusableChildrenElements[currentIndex + 1].focus();
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
// Suppress keyboard event if tabbing backwards within the cell, and the current focused element is not the first child
|
|
1524
|
+
else {
|
|
1525
|
+
const cellHasFocusedChildren = eGridCell.contains(document.activeElement) &&
|
|
1526
|
+
eGridCell !== document.activeElement;
|
|
1527
|
+
// Manually set focus to the last child element if cell doesn't have focused children
|
|
1528
|
+
if (!cellHasFocusedChildren) {
|
|
1529
|
+
lastCellChildEl.focus();
|
|
1530
|
+
// Cancel keyboard press, so that it doesn't focus on the last child and then pass through the keyboard press to
|
|
1531
|
+
// move to the 2nd last child element
|
|
1532
|
+
event.preventDefault();
|
|
1533
|
+
}
|
|
1534
|
+
const isFirstChildFocused = firstCellChildEl && document.activeElement === firstCellChildEl;
|
|
1535
|
+
if (!isFirstChildFocused) {
|
|
1536
|
+
suppressEvent = true;
|
|
1537
|
+
if (currentIndex !== -1 || document.activeElement === eGridCell) {
|
|
1538
|
+
event.preventDefault();
|
|
1539
|
+
focusableChildrenElements[currentIndex - 1].focus();
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
return suppressEvent;
|
|
742
1545
|
}
|
|
743
|
-
|
|
744
|
-
|
|
1546
|
+
getEventPath(event) {
|
|
1547
|
+
const path = [];
|
|
1548
|
+
let currentTarget = event.target;
|
|
1549
|
+
while (currentTarget) {
|
|
1550
|
+
path.push(currentTarget);
|
|
1551
|
+
currentTarget = currentTarget.parentElement;
|
|
1552
|
+
}
|
|
1553
|
+
return path;
|
|
745
1554
|
}
|
|
746
|
-
|
|
747
|
-
return
|
|
1555
|
+
getAllFocusableElementsOf(el) {
|
|
1556
|
+
return Array.from(el.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter((focusableEl) => {
|
|
1557
|
+
return focusableEl.tabIndex !== -1 && !focusableEl.hasAttribute('disabled');
|
|
1558
|
+
});
|
|
748
1559
|
}
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
752
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataService });
|
|
1560
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GridService, deps: [{ token: FormatterService }, { token: ProgrammabilityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1561
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GridService });
|
|
753
1562
|
}
|
|
754
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
|
1563
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GridService, decorators: [{
|
|
755
1564
|
type: Injectable
|
|
756
|
-
}], ctorParameters: () => [] });
|
|
1565
|
+
}], ctorParameters: () => [{ type: FormatterService }, { type: ProgrammabilityService }] });
|
|
757
1566
|
|
|
758
1567
|
class AdornerDirective {
|
|
759
1568
|
el;
|
|
@@ -2270,26 +3079,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2270
3079
|
type: Host
|
|
2271
3080
|
}] }] });
|
|
2272
3081
|
|
|
2273
|
-
const Texts = {
|
|
2274
|
-
TypeToSearch: "Digita per cercare...",
|
|
2275
|
-
Upload: "Upload",
|
|
2276
|
-
ScrollLeft: "Scorri a sinistra",
|
|
2277
|
-
ScrollRight: "Scorri a destra",
|
|
2278
|
-
AddItem: "Aggiungi",
|
|
2279
|
-
RemoveItem: "Rimuovi",
|
|
2280
|
-
PreviousSection: "Sezione precedente",
|
|
2281
|
-
NextSection: "Sezione successiva",
|
|
2282
|
-
Show: "Visualizza",
|
|
2283
|
-
Remove: "Rimuovi",
|
|
2284
|
-
Close: "Chiudi",
|
|
2285
|
-
Name: "Nome",
|
|
2286
|
-
Size: "Dimensione",
|
|
2287
|
-
Type: "Tipo",
|
|
2288
|
-
Actions: "Azioni",
|
|
2289
|
-
ReadMore: "Leggi di più",
|
|
2290
|
-
ReadLess: "Leggi di meno"
|
|
2291
|
-
};
|
|
2292
|
-
|
|
2293
3082
|
class CollapseDirective {
|
|
2294
3083
|
el;
|
|
2295
3084
|
renderer;
|
|
@@ -2399,263 +3188,91 @@ class CollapseDirective {
|
|
|
2399
3188
|
this.button.childNodes[0].textContent = Texts.ReadLess;
|
|
2400
3189
|
this.updateIcon('fa-chevron-up', 'fa-chevron-down');
|
|
2401
3190
|
}
|
|
2402
|
-
collapse() {
|
|
2403
|
-
const element = this.el.nativeElement;
|
|
2404
|
-
this.renderer.setStyle(element, 'max-height', `${this.currentHeight}px`);
|
|
2405
|
-
this.renderer.setStyle(element, 'overflow', 'hidden');
|
|
2406
|
-
this.button.childNodes[0].textContent = Texts.ReadMore;
|
|
2407
|
-
this.updateIcon('fa-chevron-down', 'fa-chevron-up');
|
|
2408
|
-
}
|
|
2409
|
-
updateIcon(add, remove) {
|
|
2410
|
-
if (this.iconSpan) {
|
|
2411
|
-
this.renderer.removeClass(this.iconSpan, remove);
|
|
2412
|
-
this.renderer.addClass(this.iconSpan, add);
|
|
2413
|
-
}
|
|
2414
|
-
}
|
|
2415
|
-
ngOnDestroy() {
|
|
2416
|
-
this.resetButton();
|
|
2417
|
-
this.resetFocusHandler();
|
|
2418
|
-
}
|
|
2419
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2420
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CollapseDirective, isStandalone: true, selector: "[collapse]", inputs: { maxHeight: ["collapse", "maxHeight"] }, usesOnChanges: true, ngImport: i0 });
|
|
2421
|
-
}
|
|
2422
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollapseDirective, decorators: [{
|
|
2423
|
-
type: Directive,
|
|
2424
|
-
args: [{
|
|
2425
|
-
selector: '[collapse]',
|
|
2426
|
-
standalone: true
|
|
2427
|
-
}]
|
|
2428
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { maxHeight: [{
|
|
2429
|
-
type: Input,
|
|
2430
|
-
args: ['collapse']
|
|
2431
|
-
}] } });
|
|
2432
|
-
|
|
2433
|
-
class AccordionPanelDirective {
|
|
2434
|
-
constructor(panel) {
|
|
2435
|
-
panel.opened.subscribe((event) => {
|
|
2436
|
-
const element = event.component.body.el.nativeElement;
|
|
2437
|
-
// delay height calculation to allow for DOM updates
|
|
2438
|
-
setTimeout(() => {
|
|
2439
|
-
const scrollHeight = element.scrollHeight;
|
|
2440
|
-
element.style.height = `${scrollHeight}px`;
|
|
2441
|
-
}, 0);
|
|
2442
|
-
});
|
|
2443
|
-
}
|
|
2444
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccordionPanelDirective, deps: [{ token: i1.SirioAccordionPanelComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2445
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AccordionPanelDirective, isStandalone: true, selector: "[accordionPanel]", ngImport: i0 });
|
|
2446
|
-
}
|
|
2447
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccordionPanelDirective, decorators: [{
|
|
2448
|
-
type: Directive,
|
|
2449
|
-
args: [{
|
|
2450
|
-
selector: '[accordionPanel]',
|
|
2451
|
-
standalone: true
|
|
2452
|
-
}]
|
|
2453
|
-
}], ctorParameters: () => [{ type: i1.SirioAccordionPanelComponent, decorators: [{
|
|
2454
|
-
type: Host
|
|
2455
|
-
}] }] });
|
|
2456
|
-
|
|
2457
|
-
class TemplateWrapperComponent {
|
|
2458
|
-
template;
|
|
2459
|
-
context = {};
|
|
2460
|
-
constructor() { }
|
|
2461
|
-
getTemplateRef() {
|
|
2462
|
-
const result = {
|
|
2463
|
-
createEmbeddedView: (context) => {
|
|
2464
|
-
return this.template.createEmbeddedView(this.context);
|
|
2465
|
-
}
|
|
2466
|
-
};
|
|
2467
|
-
result.createEmbeddedViewImpl = () => {
|
|
2468
|
-
return this.template.createEmbeddedView(this.context);
|
|
2469
|
-
};
|
|
2470
|
-
return result;
|
|
2471
|
-
}
|
|
2472
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TemplateWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2473
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TemplateWrapperComponent, isStandalone: true, selector: "app-template-wrapper", inputs: { template: "template", context: "context" }, ngImport: i0, template: '', isInline: true });
|
|
2474
|
-
}
|
|
2475
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TemplateWrapperComponent, decorators: [{
|
|
2476
|
-
type: Component,
|
|
2477
|
-
args: [{
|
|
2478
|
-
selector: 'app-template-wrapper',
|
|
2479
|
-
template: '',
|
|
2480
|
-
standalone: true
|
|
2481
|
-
}]
|
|
2482
|
-
}], ctorParameters: () => [], propDecorators: { template: [{
|
|
2483
|
-
type: Input
|
|
2484
|
-
}], context: [{
|
|
2485
|
-
type: Input
|
|
2486
|
-
}] } });
|
|
2487
|
-
|
|
2488
|
-
class ObjectURLRendererComponent {
|
|
2489
|
-
params;
|
|
2490
|
-
Texts = Texts;
|
|
2491
|
-
agInit(params) {
|
|
2492
|
-
this.params = params;
|
|
2493
|
-
}
|
|
2494
|
-
onClick(event) {
|
|
2495
|
-
const fileURL = URL.createObjectURL(this.params.data);
|
|
2496
|
-
window.open(fileURL, '_blank');
|
|
2497
|
-
setTimeout(() => {
|
|
2498
|
-
URL.revokeObjectURL(fileURL);
|
|
2499
|
-
}, 1000);
|
|
2500
|
-
}
|
|
2501
|
-
refresh() {
|
|
2502
|
-
return false;
|
|
2503
|
-
}
|
|
2504
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectURLRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2505
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ObjectURLRendererComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<a [attr.aria-label]=\"Texts.Show\" title=\"{{ Texts.Show }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-paperclip\"></span>\r\n</a>\r\n" });
|
|
2506
|
-
}
|
|
2507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectURLRendererComponent, decorators: [{
|
|
2508
|
-
type: Component,
|
|
2509
|
-
args: [{ standalone: true, template: "<a [attr.aria-label]=\"Texts.Show\" title=\"{{ Texts.Show }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-paperclip\"></span>\r\n</a>\r\n" }]
|
|
2510
|
-
}] });
|
|
2511
|
-
class DeleteRowCellRenderer {
|
|
2512
|
-
params;
|
|
2513
|
-
Texts = Texts;
|
|
2514
|
-
agInit(params) {
|
|
2515
|
-
this.params = params;
|
|
2516
|
-
}
|
|
2517
|
-
onClick(event) {
|
|
2518
|
-
if ('remove' in this.params.data && typeof this.params.data.remove === 'function') {
|
|
2519
|
-
this.params.data.remove();
|
|
2520
|
-
}
|
|
2521
|
-
}
|
|
2522
|
-
refresh() {
|
|
2523
|
-
return false;
|
|
2524
|
-
}
|
|
2525
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeleteRowCellRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2526
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DeleteRowCellRenderer, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<a [attr.aria-label]=\"Texts.Remove\" title=\"{{ Texts.Remove }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-trash\"></span>\r\n</a>\r\n" });
|
|
2527
|
-
}
|
|
2528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeleteRowCellRenderer, decorators: [{
|
|
2529
|
-
type: Component,
|
|
2530
|
-
args: [{ standalone: true, template: "<a [attr.aria-label]=\"Texts.Remove\" title=\"{{ Texts.Remove }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-trash\"></span>\r\n</a>\r\n" }]
|
|
2531
|
-
}] });
|
|
2532
|
-
class ActionsCellRenderer {
|
|
2533
|
-
programmability;
|
|
2534
|
-
constructor(programmability) {
|
|
2535
|
-
this.programmability = programmability;
|
|
2536
|
-
}
|
|
2537
|
-
params;
|
|
2538
|
-
agInit(params) {
|
|
2539
|
-
this.params = params;
|
|
2540
|
-
}
|
|
2541
|
-
refresh() {
|
|
2542
|
-
return false;
|
|
2543
|
-
}
|
|
2544
|
-
evaluateBoolean(value) {
|
|
2545
|
-
const options = {
|
|
2546
|
-
proxyFn: (options) => {
|
|
2547
|
-
options.extend["getParams"] = () => this.params;
|
|
2548
|
-
options.extend["getData"] = () => this.getData();
|
|
2549
|
-
}
|
|
2550
|
-
};
|
|
2551
|
-
return this.programmability.evaluateBoolean(this.getFormGroup(), value, options);
|
|
2552
|
-
}
|
|
2553
|
-
evaluateString(value) {
|
|
2554
|
-
return this.programmability.evaluateString(this.getFormGroup(), value);
|
|
2555
|
-
}
|
|
2556
|
-
clickButton(action, event) {
|
|
2557
|
-
if (action.click) {
|
|
2558
|
-
const options = {
|
|
2559
|
-
cacheable: false,
|
|
2560
|
-
proxyFn: (options) => {
|
|
2561
|
-
options.extend["getParams"] = () => this.params;
|
|
2562
|
-
options.extend["getAction"] = () => action;
|
|
2563
|
-
options.extend["getData"] = () => this.getData();
|
|
2564
|
-
}
|
|
2565
|
-
};
|
|
2566
|
-
return this.programmability.evaluate(this.getFormGroup(), action.click, options);
|
|
2567
|
-
}
|
|
3191
|
+
collapse() {
|
|
3192
|
+
const element = this.el.nativeElement;
|
|
3193
|
+
this.renderer.setStyle(element, 'max-height', `${this.currentHeight}px`);
|
|
3194
|
+
this.renderer.setStyle(element, 'overflow', 'hidden');
|
|
3195
|
+
this.button.childNodes[0].textContent = Texts.ReadMore;
|
|
3196
|
+
this.updateIcon('fa-chevron-down', 'fa-chevron-up');
|
|
2568
3197
|
}
|
|
2569
|
-
|
|
2570
|
-
|
|
3198
|
+
updateIcon(add, remove) {
|
|
3199
|
+
if (this.iconSpan) {
|
|
3200
|
+
this.renderer.removeClass(this.iconSpan, remove);
|
|
3201
|
+
this.renderer.addClass(this.iconSpan, add);
|
|
3202
|
+
}
|
|
2571
3203
|
}
|
|
2572
|
-
|
|
2573
|
-
|
|
3204
|
+
ngOnDestroy() {
|
|
3205
|
+
this.resetButton();
|
|
3206
|
+
this.resetFocusHandler();
|
|
2574
3207
|
}
|
|
2575
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
|
2576
|
-
static
|
|
3208
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3209
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CollapseDirective, isStandalone: true, selector: "[collapse]", inputs: { maxHeight: ["collapse", "maxHeight"] }, usesOnChanges: true, ngImport: i0 });
|
|
2577
3210
|
}
|
|
2578
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
|
2579
|
-
type:
|
|
2580
|
-
args: [{
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
3211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollapseDirective, decorators: [{
|
|
3212
|
+
type: Directive,
|
|
3213
|
+
args: [{
|
|
3214
|
+
selector: '[collapse]',
|
|
3215
|
+
standalone: true
|
|
3216
|
+
}]
|
|
3217
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { maxHeight: [{
|
|
3218
|
+
type: Input,
|
|
3219
|
+
args: ['collapse']
|
|
3220
|
+
}] } });
|
|
2584
3221
|
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
3222
|
+
class AccordionPanelDirective {
|
|
3223
|
+
constructor(panel) {
|
|
3224
|
+
panel.opened.subscribe((event) => {
|
|
3225
|
+
const element = event.component.body.el.nativeElement;
|
|
3226
|
+
// delay height calculation to allow for DOM updates
|
|
3227
|
+
setTimeout(() => {
|
|
3228
|
+
const scrollHeight = element.scrollHeight;
|
|
3229
|
+
element.style.height = `${scrollHeight}px`;
|
|
3230
|
+
}, 0);
|
|
3231
|
+
});
|
|
2592
3232
|
}
|
|
2593
|
-
|
|
2594
|
-
}
|
|
2595
|
-
function getAllFocusableElementsOf(el) {
|
|
2596
|
-
return Array.from(el.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter((focusableEl) => {
|
|
2597
|
-
return focusableEl.tabIndex !== -1 && !focusableEl.hasAttribute('disabled');
|
|
2598
|
-
});
|
|
3233
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccordionPanelDirective, deps: [{ token: i1.SirioAccordionPanelComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3234
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AccordionPanelDirective, isStandalone: true, selector: "[accordionPanel]", ngImport: i0 });
|
|
2599
3235
|
}
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
const lastCellChildEl = focusableChildrenElements[focusableChildrenElements.length - 1];
|
|
2619
|
-
const firstCellChildEl = focusableChildrenElements[0];
|
|
2620
|
-
// Suppress keyboard event if tabbing forward within the cell and the current focused element is not the last child
|
|
2621
|
-
if (focusableChildrenElements.length === 0) {
|
|
2622
|
-
return false;
|
|
2623
|
-
}
|
|
2624
|
-
const currentIndex = focusableChildrenElements.indexOf(document.activeElement);
|
|
2625
|
-
if (isTabForward) {
|
|
2626
|
-
const isLastChildFocused = lastCellChildEl && document.activeElement === lastCellChildEl;
|
|
2627
|
-
if (!isLastChildFocused) {
|
|
2628
|
-
suppressEvent = true;
|
|
2629
|
-
if (currentIndex !== -1 || document.activeElement === eGridCell) {
|
|
2630
|
-
event.preventDefault();
|
|
2631
|
-
focusableChildrenElements[currentIndex + 1].focus();
|
|
2632
|
-
}
|
|
2633
|
-
}
|
|
2634
|
-
}
|
|
2635
|
-
// Suppress keyboard event if tabbing backwards within the cell, and the current focused element is not the first child
|
|
2636
|
-
else {
|
|
2637
|
-
const cellHasFocusedChildren = eGridCell.contains(document.activeElement) &&
|
|
2638
|
-
eGridCell !== document.activeElement;
|
|
2639
|
-
// Manually set focus to the last child element if cell doesn't have focused children
|
|
2640
|
-
if (!cellHasFocusedChildren) {
|
|
2641
|
-
lastCellChildEl.focus();
|
|
2642
|
-
// Cancel keyboard press, so that it doesn't focus on the last child and then pass through the keyboard press to
|
|
2643
|
-
// move to the 2nd last child element
|
|
2644
|
-
event.preventDefault();
|
|
2645
|
-
}
|
|
2646
|
-
const isFirstChildFocused = firstCellChildEl && document.activeElement === firstCellChildEl;
|
|
2647
|
-
if (!isFirstChildFocused) {
|
|
2648
|
-
suppressEvent = true;
|
|
2649
|
-
if (currentIndex !== -1 || document.activeElement === eGridCell) {
|
|
2650
|
-
event.preventDefault();
|
|
2651
|
-
focusableChildrenElements[currentIndex - 1].focus();
|
|
2652
|
-
}
|
|
2653
|
-
}
|
|
3236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccordionPanelDirective, decorators: [{
|
|
3237
|
+
type: Directive,
|
|
3238
|
+
args: [{
|
|
3239
|
+
selector: '[accordionPanel]',
|
|
3240
|
+
standalone: true
|
|
3241
|
+
}]
|
|
3242
|
+
}], ctorParameters: () => [{ type: i1.SirioAccordionPanelComponent, decorators: [{
|
|
3243
|
+
type: Host
|
|
3244
|
+
}] }] });
|
|
3245
|
+
|
|
3246
|
+
class TemplateWrapperComponent {
|
|
3247
|
+
template;
|
|
3248
|
+
context = {};
|
|
3249
|
+
constructor() { }
|
|
3250
|
+
getTemplateRef() {
|
|
3251
|
+
const result = {
|
|
3252
|
+
createEmbeddedView: (context) => {
|
|
3253
|
+
return this.template.createEmbeddedView(this.context);
|
|
2654
3254
|
}
|
|
2655
|
-
}
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
};
|
|
3255
|
+
};
|
|
3256
|
+
result.createEmbeddedViewImpl = () => {
|
|
3257
|
+
return this.template.createEmbeddedView(this.context);
|
|
3258
|
+
};
|
|
3259
|
+
return result;
|
|
3260
|
+
}
|
|
3261
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TemplateWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3262
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TemplateWrapperComponent, isStandalone: true, selector: "app-template-wrapper", inputs: { template: "template", context: "context" }, ngImport: i0, template: '', isInline: true });
|
|
3263
|
+
}
|
|
3264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TemplateWrapperComponent, decorators: [{
|
|
3265
|
+
type: Component,
|
|
3266
|
+
args: [{
|
|
3267
|
+
selector: 'app-template-wrapper',
|
|
3268
|
+
template: '',
|
|
3269
|
+
standalone: true
|
|
3270
|
+
}]
|
|
3271
|
+
}], ctorParameters: () => [], propDecorators: { template: [{
|
|
3272
|
+
type: Input
|
|
3273
|
+
}], context: [{
|
|
3274
|
+
type: Input
|
|
3275
|
+
}] } });
|
|
2659
3276
|
|
|
2660
3277
|
class SanitizeService {
|
|
2661
3278
|
sanitizer;
|
|
@@ -2750,88 +3367,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2750
3367
|
}]
|
|
2751
3368
|
}], ctorParameters: () => [] });
|
|
2752
3369
|
|
|
2753
|
-
//import { FeelService } from '../services/feel.service';
|
|
2754
|
-
class FormatterService {
|
|
2755
|
-
//constructor(private feelService: FeelService) { }
|
|
2756
|
-
constructor() { }
|
|
2757
|
-
formatCurrency(value, symbol = null) {
|
|
2758
|
-
if (isNaN(value) || value === null || value === undefined) {
|
|
2759
|
-
return value;
|
|
2760
|
-
}
|
|
2761
|
-
const numberValue = parseFloat(value);
|
|
2762
|
-
if (isNaN(numberValue)) {
|
|
2763
|
-
return value;
|
|
2764
|
-
}
|
|
2765
|
-
const result = numberValue.toFixed(2).replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, ".");
|
|
2766
|
-
if (symbol) {
|
|
2767
|
-
return symbol + ' ' + result;
|
|
2768
|
-
}
|
|
2769
|
-
else {
|
|
2770
|
-
return result;
|
|
2771
|
-
}
|
|
2772
|
-
}
|
|
2773
|
-
formatDate(value) {
|
|
2774
|
-
if (typeof value !== 'string' || !/^\d{4}-\d{2}-\d{2}(T|$)/.test(value)) {
|
|
2775
|
-
return value;
|
|
2776
|
-
}
|
|
2777
|
-
const date = new Date(value);
|
|
2778
|
-
if (isNaN(date.getTime())) {
|
|
2779
|
-
return value;
|
|
2780
|
-
}
|
|
2781
|
-
const day = date.getDate().toString().padStart(2, '0');
|
|
2782
|
-
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
2783
|
-
const year = date.getFullYear();
|
|
2784
|
-
return `${day}/${month}/${year}`;
|
|
2785
|
-
}
|
|
2786
|
-
formatInteger(value) {
|
|
2787
|
-
if (isNaN(value) || value === null || value === undefined) {
|
|
2788
|
-
return value;
|
|
2789
|
-
}
|
|
2790
|
-
const numberValue = parseInt(value, 10);
|
|
2791
|
-
if (isNaN(numberValue)) {
|
|
2792
|
-
return value;
|
|
2793
|
-
}
|
|
2794
|
-
return numberValue.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
|
|
2795
|
-
}
|
|
2796
|
-
formatExpression(value, expression) {
|
|
2797
|
-
return value;
|
|
2798
|
-
//const result = this.feelService.evalExpression(expression, { value: value }) as string;
|
|
2799
|
-
//return result;
|
|
2800
|
-
}
|
|
2801
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2802
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatterService, providedIn: 'root' });
|
|
2803
|
-
}
|
|
2804
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatterService, decorators: [{
|
|
2805
|
-
type: Injectable,
|
|
2806
|
-
args: [{
|
|
2807
|
-
providedIn: 'root'
|
|
2808
|
-
}]
|
|
2809
|
-
}], ctorParameters: () => [] });
|
|
2810
|
-
|
|
2811
3370
|
class DynamicFieldsComponent {
|
|
2812
3371
|
sanitizer;
|
|
2813
3372
|
markdown;
|
|
2814
3373
|
mime;
|
|
2815
3374
|
programmability;
|
|
2816
3375
|
events;
|
|
2817
|
-
formatter;
|
|
2818
3376
|
weak;
|
|
2819
3377
|
register;
|
|
2820
3378
|
metadata;
|
|
3379
|
+
grid;
|
|
2821
3380
|
el;
|
|
2822
3381
|
rows;
|
|
2823
3382
|
formGroup;
|
|
2824
3383
|
Texts = Texts;
|
|
2825
|
-
constructor(sanitizer, markdown, mime, programmability, events,
|
|
3384
|
+
constructor(sanitizer, markdown, mime, programmability, events, weak, register, metadata, grid, el) {
|
|
2826
3385
|
this.sanitizer = sanitizer;
|
|
2827
3386
|
this.markdown = markdown;
|
|
2828
3387
|
this.mime = mime;
|
|
2829
3388
|
this.programmability = programmability;
|
|
2830
3389
|
this.events = events;
|
|
2831
|
-
this.formatter = formatter;
|
|
2832
3390
|
this.weak = weak;
|
|
2833
3391
|
this.register = register;
|
|
2834
3392
|
this.metadata = metadata;
|
|
3393
|
+
this.grid = grid;
|
|
2835
3394
|
this.el = el;
|
|
2836
3395
|
}
|
|
2837
3396
|
ngOnInit() {
|
|
@@ -2976,48 +3535,10 @@ class DynamicFieldsComponent {
|
|
|
2976
3535
|
}
|
|
2977
3536
|
}
|
|
2978
3537
|
getGridOptions(component) {
|
|
2979
|
-
return this.weak.call(component, 'getGridOptions', () =>
|
|
2980
|
-
const columnDefs = this.getGridColumns(component);
|
|
2981
|
-
const pagination = this.getGridPaginable(component);
|
|
2982
|
-
const pageSize = this.getGridPageSize(component);
|
|
2983
|
-
const texts = this.getGridTexts();
|
|
2984
|
-
const theme = this.getGridTheme();
|
|
2985
|
-
return {
|
|
2986
|
-
defaultColDef: {
|
|
2987
|
-
floatingFilter: (component.floatingFilter === true),
|
|
2988
|
-
headerClass: (component.floatingFilter === true)
|
|
2989
|
-
? 'show-filter' : 'hide-filter'
|
|
2990
|
-
},
|
|
2991
|
-
columnDefs: columnDefs,
|
|
2992
|
-
pagination: pagination,
|
|
2993
|
-
paginationPageSize: pageSize,
|
|
2994
|
-
paginationPageSizeSelector: [5, 10, 20, 50],
|
|
2995
|
-
localeText: texts,
|
|
2996
|
-
enableCellTextSelection: true,
|
|
2997
|
-
theme: theme,
|
|
2998
|
-
onGridReady: (params) => {
|
|
2999
|
-
params.api.autoSizeColumns(["actions"]);
|
|
3000
|
-
}
|
|
3001
|
-
};
|
|
3002
|
-
});
|
|
3538
|
+
return this.weak.call(component, 'getGridOptions', () => this.grid.getGridOptions(component, this.formGroup));
|
|
3003
3539
|
}
|
|
3004
3540
|
getGridModules(component) {
|
|
3005
|
-
return this.weak.call(component, 'getGridModules', () =>
|
|
3006
|
-
return [
|
|
3007
|
-
ClientSideRowModelModule,
|
|
3008
|
-
InfiniteRowModelModule,
|
|
3009
|
-
PaginationModule,
|
|
3010
|
-
LocaleModule,
|
|
3011
|
-
CellStyleModule,
|
|
3012
|
-
ClientSideRowModelApiModule,
|
|
3013
|
-
TextFilterModule,
|
|
3014
|
-
NumberFilterModule,
|
|
3015
|
-
DateFilterModule,
|
|
3016
|
-
ColumnAutoSizeModule,
|
|
3017
|
-
ColumnApiModule,
|
|
3018
|
-
ValidationModule
|
|
3019
|
-
];
|
|
3020
|
-
});
|
|
3541
|
+
return this.weak.call(component, 'getGridModules', () => this.grid.getGridModules());
|
|
3021
3542
|
}
|
|
3022
3543
|
getGridData(component) {
|
|
3023
3544
|
if (component.dataSource) {
|
|
@@ -3122,111 +3643,6 @@ class DynamicFieldsComponent {
|
|
|
3122
3643
|
}
|
|
3123
3644
|
}
|
|
3124
3645
|
}
|
|
3125
|
-
gridTexts = {
|
|
3126
|
-
...AG_GRID_LOCALE_IT,
|
|
3127
|
-
"pageSizeSelectorLabel": "Elementi per pagina:",
|
|
3128
|
-
"to": "-",
|
|
3129
|
-
};
|
|
3130
|
-
gridTheme = themeQuartz
|
|
3131
|
-
.withPart(iconSetAlpine)
|
|
3132
|
-
.withParams({
|
|
3133
|
-
backgroundColor: "#FAFAFA",
|
|
3134
|
-
borderColor: "#D9E4F7",
|
|
3135
|
-
browserColorScheme: "light",
|
|
3136
|
-
cellTextColor: "#00121A",
|
|
3137
|
-
columnBorder: true,
|
|
3138
|
-
fontFamily: "inherit",
|
|
3139
|
-
fontSize: 16,
|
|
3140
|
-
headerBackgroundColor: "#002460",
|
|
3141
|
-
headerColumnBorder: true,
|
|
3142
|
-
headerColumnResizeHandleColor: "#F2F6FC",
|
|
3143
|
-
headerColumnResizeHandleWidth: 2,
|
|
3144
|
-
headerFontSize: 16,
|
|
3145
|
-
headerFontWeight: 600,
|
|
3146
|
-
headerRowBorder: false,
|
|
3147
|
-
headerTextColor: "#F2F6FC",
|
|
3148
|
-
rowBorder: true
|
|
3149
|
-
});
|
|
3150
|
-
getGridColumns(component) {
|
|
3151
|
-
if (Array.isArray(component.columns)) {
|
|
3152
|
-
const columns = component.columns.map((column) => ({
|
|
3153
|
-
field: column.key,
|
|
3154
|
-
headerName: column.label,
|
|
3155
|
-
resizable: column.resize === true,
|
|
3156
|
-
sortable: column.sort === true,
|
|
3157
|
-
filter: column.filter === true,
|
|
3158
|
-
suppressMovable: !(column.move === true),
|
|
3159
|
-
...(column.flex === true && { flex: 1 }),
|
|
3160
|
-
...(column.align === "left" && { cellStyle: { textAlign: 'left' } }),
|
|
3161
|
-
...(column.align === "center" && { cellStyle: { textAlign: 'center' } }),
|
|
3162
|
-
...(column.align === "right" && { cellStyle: { textAlign: 'right' } }),
|
|
3163
|
-
...(typeof column.pinned === "string" && { pinned: column.pinned }),
|
|
3164
|
-
...(typeof column.flex === "number" && { flex: column.flex }),
|
|
3165
|
-
...(typeof column.width === "number" && { width: column.width }),
|
|
3166
|
-
...(typeof column.minWidth === "number" && { minWidth: column.minWidth }),
|
|
3167
|
-
...(typeof column.maxWidth === "number" && { maxWidth: column.maxWidth }),
|
|
3168
|
-
valueFormatter: this.getGridFormatter(column),
|
|
3169
|
-
cellRenderer: this.getGridRenderer(column)
|
|
3170
|
-
}));
|
|
3171
|
-
if (Array.isArray(component.actions) && component.actions.length > 0) {
|
|
3172
|
-
columns.push({
|
|
3173
|
-
colId: 'actions',
|
|
3174
|
-
headerName: Texts.Actions,
|
|
3175
|
-
resizable: false,
|
|
3176
|
-
cellDataType: false,
|
|
3177
|
-
pinned: "right",
|
|
3178
|
-
cellRendererParams: {
|
|
3179
|
-
component: component,
|
|
3180
|
-
formGroup: this.formGroup
|
|
3181
|
-
},
|
|
3182
|
-
cellRenderer: ActionsCellRenderer,
|
|
3183
|
-
suppressKeyboardEvent: GridUtils.navigateInsideCell
|
|
3184
|
-
});
|
|
3185
|
-
}
|
|
3186
|
-
return columns;
|
|
3187
|
-
}
|
|
3188
|
-
else {
|
|
3189
|
-
return [];
|
|
3190
|
-
}
|
|
3191
|
-
}
|
|
3192
|
-
getGridPaginable(component) {
|
|
3193
|
-
return (typeof component.rowCount === 'number' && component.rowCount > 0);
|
|
3194
|
-
}
|
|
3195
|
-
getGridPageSize(component) {
|
|
3196
|
-
if (typeof component.rowCount === 'number') {
|
|
3197
|
-
return component.rowCount;
|
|
3198
|
-
}
|
|
3199
|
-
}
|
|
3200
|
-
getGridTexts() {
|
|
3201
|
-
return this.gridTexts;
|
|
3202
|
-
}
|
|
3203
|
-
getGridTheme() {
|
|
3204
|
-
return this.gridTheme;
|
|
3205
|
-
}
|
|
3206
|
-
getGridFormatter(column) {
|
|
3207
|
-
if (column.format) {
|
|
3208
|
-
switch (column.format) {
|
|
3209
|
-
case 'integer':
|
|
3210
|
-
return params => this.formatter.formatInteger(params.value);
|
|
3211
|
-
case 'currency':
|
|
3212
|
-
return params => this.formatter.formatCurrency(params.value);
|
|
3213
|
-
case 'date':
|
|
3214
|
-
return params => this.formatter.formatDate(params.value);
|
|
3215
|
-
}
|
|
3216
|
-
}
|
|
3217
|
-
return undefined;
|
|
3218
|
-
}
|
|
3219
|
-
getGridRenderer(column) {
|
|
3220
|
-
if (column.format) {
|
|
3221
|
-
switch (column.format) {
|
|
3222
|
-
case 'objectURL':
|
|
3223
|
-
return ObjectURLRendererComponent;
|
|
3224
|
-
case "deleteRow":
|
|
3225
|
-
return DeleteRowCellRenderer;
|
|
3226
|
-
}
|
|
3227
|
-
}
|
|
3228
|
-
return undefined;
|
|
3229
|
-
}
|
|
3230
3646
|
getAsObservable(value) {
|
|
3231
3647
|
if (isObservable(value))
|
|
3232
3648
|
return value;
|
|
@@ -3279,10 +3695,11 @@ class DynamicFieldsComponent {
|
|
|
3279
3695
|
};
|
|
3280
3696
|
}
|
|
3281
3697
|
;
|
|
3282
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicFieldsComponent, deps: [{ token: SanitizeService }, { token: MarkdownService }, { token: MimeService }, { token: ProgrammabilityService }, { token: EventService }, { token:
|
|
3698
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicFieldsComponent, deps: [{ token: SanitizeService }, { token: MarkdownService }, { token: MimeService }, { token: ProgrammabilityService }, { token: EventService }, { token: WeakService }, { token: RegisterService }, { token: MetadataService }, { token: GridService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3283
3699
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DynamicFieldsComponent, isStandalone: true, selector: "app-dynamic-fields", inputs: { rows: "rows", formGroup: "formGroup" }, providers: [
|
|
3284
3700
|
RegisterService,
|
|
3285
|
-
ProgrammabilityService
|
|
3701
|
+
ProgrammabilityService,
|
|
3702
|
+
GridService
|
|
3286
3703
|
], ngImport: i0, template: "<ng-container *ngFor=\"let row of rows\" [formGroup]=\"formGroup\">\r\n <div class=\"row field-set\">\r\n <ng-container *ngFor=\"let component of row.components\">\r\n <ng-container [ngSwitch]=\"component.type\">\r\n <div [class]=\"getClass(component)\">\r\n <!-- #region textfield -->\r\n <ng-container *ngSwitchCase=\"'textfield'\">\r\n <ngx-sirio-input type=\"text\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textfield\r\n [register]=\"component\"\r\n [componentRef]=\"textfield\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region select -->\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n dropdown\r\n #select\r\n [register]=\"component\"\r\n [componentRef]=\"select\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-input *ngIf=\"component.searchable\" class=\"searchable\" type=\"text\" [placeholder]=\"Texts.TypeToSearch\"></ngx-sirio-input>\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region taglist -->\r\n <ng-container *ngSwitchCase=\"'taglist'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [isMultiple]=\"true\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #taglist\r\n [register]=\"component\"\r\n [componentRef]=\"taglist\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ngx-sirio-input type=\"number\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n number\r\n [defaultValue]=\"evaluateNumber(component.defaultValue)\"\r\n [minimum]=\"evaluateNumber(component.minimum)\"\r\n [maximum]=\"evaluateNumber(component.maximum)\"\r\n [decimalDigits]=\"evaluateNumber(component.decimalDigits)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #number\r\n [register]=\"component\"\r\n [componentRef]=\"number\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region datetime -->\r\n <ng-container *ngSwitchCase=\"'datetime'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ngx-sirio-datepicker ariaLabel=\"date\"\r\n [label]=\"evaluateString(component.dateLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n isoDate\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #date\r\n [register]=\"component\"\r\n [componentRef]=\"date\">\r\n </ngx-sirio-datepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region time -->\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ngx-sirio-timepicker ariaLabel=\"time\"\r\n [label]=\"evaluateString(component.timeLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #time\r\n [register]=\"component\"\r\n [componentRef]=\"time\">\r\n </ngx-sirio-timepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region toggle -->\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ngx-sirio-toggle ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #toggle\r\n [register]=\"component\"\r\n [componentRef]=\"toggle\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-toggle>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-checkbox>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipradio\r\n [register]=\"component\"\r\n [componentRef]=\"chipradio\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"radio\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #radio\r\n [register]=\"component\"\r\n [componentRef]=\"radio\">\r\n <ngx-sirio-radio-button *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-radio-button>\r\n </ngx-sirio-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checklist -->\r\n <ng-container *ngSwitchCase=\"'checklist'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipcheckbox\r\n [register]=\"component\"\r\n [componentRef]=\"chipcheckbox\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"checkbox\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n <ngx-sirio-checkbox *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-checkbox>\r\n </ngx-sirio-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region textarea -->\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ngx-sirio-input type=\"textarea\"\r\n ariaLabel=\"textarea\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textarea\r\n [register]=\"component\"\r\n [componentRef]=\"textarea\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region filepicker -->\r\n <ng-container *ngSwitchCase=\"'filepicker'\">\r\n <ngx-sirio-file-upload ariaLabel=\"filepicker\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [accept]=\"getMimeTypes(component.accept)\"\r\n [multiple]=\"evaluateBoolean(component.multiple)\"\r\n (fileUploadedEvent)=\"fileUploaded($event)\"\r\n [showFilelist]=\"!component.showDetails\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #filepicker\r\n [register]=\"component\"\r\n [componentRef]=\"filepicker\">\r\n <span class=\"fas fa-arrow-up\" aria-hidden=\"true\"></span>\r\n {{ Texts.Upload }}\r\n </ngx-sirio-file-upload>\r\n <ng-container *ngIf=\"component.showDetails\">\r\n <app-dynamic-fields [formGroup]=\"formGroup\" [rows]=\"createUploadTables(component)\"></app-dynamic-fields>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [collapse]=\"component.collapseTo\"\r\n #text\r\n [register]=\"component\"\r\n [componentRef]=\"text\">\r\n <!--Reset View Context-->\r\n <div tabindex=\"0\" style=\"display:none\"></div>\r\n <div class=\"flex\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n <ng-container *ngIf=\"component.tooltip\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.tooltip))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region html -->\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <div class=\"html-paragraph\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [innerHTML]=\"sanitize(evaluateTemplate(component.content))\"\r\n #html\r\n [register]=\"component\"\r\n [componentRef]=\"html\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img [src]=\"evaluateString(component.source)\"\r\n [alt]=\"evaluateString(component.alt)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n style=\"width: 100%;height: 100%;\"\r\n #image\r\n [register]=\"component\"\r\n [componentRef]=\"image\">\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region dynamiclist -->\r\n <ng-container *ngSwitchCase=\"'dynamiclist'\">\r\n <ng-container [formArrayName]=\"component.path\" [repeat]=\"evaluateNumber(component.repetitions)\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <ng-container *ngIf=\"getFormArray(formGroup.get(component.path)).controls.length > 0\">\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclisttab\">\r\n <ngx-sirio-tab [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n [tabCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclisttab>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-tab-item [label]=\"component.label + ' ' + (i + 1)\">\r\n <ng-container *ngIf=\"i === dynamiclisttab.activeIndex\">\r\n <div [ngClass]=\"{\r\n'group-top': component.verticalAlignment === 'start',\r\n'group-center': component.verticalAlignment === 'center',\r\n'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container> \r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclistaccordion\">\r\n <ngx-sirio-accordion [accordionCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclistaccordion>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-accordion-panel #panel accordionPanel>\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"component.label + ' ' + (i + 1)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <ng-container *ngIf=\"panel.panelIsOpen\">\r\n <div [ngClass]=\"{\r\n'group-top': component.verticalAlignment === 'start',\r\n'group-center': component.verticalAlignment === 'center',\r\n'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <div [ngClass]=\"{'group-outline': component.showOutline === true}\"\r\n #dynamiclist\r\n [register]=\"component\"\r\n [componentRef]=\"dynamiclist\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <ngx-sirio-button (click)=\"addItem(component)\" class=\"add-item\" [color]=\"null\" icon=\"fas fa-plus\">{{ Texts.AddItem }}</ngx-sirio-button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region group -->\r\n <ng-container *ngSwitchCase=\"'group'\">\r\n <div [ngClass]=\"{\r\n 'group-outline': component.showOutline === true,\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <div #group\r\n [register]=\"component\"\r\n [componentRef]=\"group\">\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(component.path))\"\r\n [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region table -->\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <ng-container *ngSwitchCase=\"'table'\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ag-grid-angular [modules]=\"getGridModules(component)\"\r\n [gridOptions]=\"getGridOptions(component)\"\r\n [rowSource]=\"(getGridData(component) | async) || []\"\r\n [style.height.px]=\"component.height\"\r\n #table\r\n [register]=\"component\"\r\n [componentRef]=\"table\" />\r\n </ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n <!-- #region button -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ngx-sirio-button (clickEvent)=\"clickButton(component, $event)\"\r\n [color]=\"evaluateColor(component.color)\"\r\n [icon]=\"evaluateString(component.icon)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [disabled]=\"evaluateBoolean(component.disabled)\"\r\n #button\r\n [register]=\"component\"\r\n [componentRef]=\"button\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-button>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region separator -->\r\n <ng-container *ngSwitchCase=\"'separator'\">\r\n <div class=\"separator\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #separator\r\n [register]=\"component\"\r\n [componentRef]=\"separator\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region spacer -->\r\n <ng-container *ngSwitchCase=\"'spacer'\">\r\n <div style=\"width: 100%\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [style.height.px]=\"component.height\"\r\n #spacer\r\n [register]=\"component\"\r\n [componentRef]=\"spacer\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region iframe -->\r\n <ng-container *ngSwitchCase=\"'iframe'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label [for]=\"component.id\">{{ evaluateString(component.label) }}</label>\r\n <iframe [src]=\"evaluateUrl(component.url)\"\r\n [title]=\"evaluateString(component.label)\"\r\n [style.width]=\"'100%'\"\r\n [style.height.px]=\"component.height\"\r\n [frameSecurity]=\"component.security\"\r\n #iframe\r\n [register]=\"component\"\r\n [componentRef]=\"iframe\">\r\n </iframe>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region alert -->\r\n <ng-container *ngSwitchCase=\"'alert'\">\r\n <ngx-sirio-alert [type]=\"component.role\"\r\n [labelClose]=\"Texts.Close\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #alert\r\n [register]=\"component\"\r\n [componentRef]=\"alert\">\r\n <ngx-sirio-alert-message>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-alert-message>\r\n </ngx-sirio-alert>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region notice -->\r\n <ng-container *ngSwitchCase=\"'notice'\">\r\n <ngx-sirio-notify [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #notice\r\n [register]=\"component\"\r\n [componentRef]=\"notice\">\r\n <ngx-sirio-notify-body [title]=\"evaluateString(component.title)\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-notify-body>\r\n </ngx-sirio-notify>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region range -->\r\n <ng-container *ngSwitchCase=\"'range'\">\r\n <ngx-sirio-slider [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n [min]=\"evaluateNumber(component.range?.min) ?? 0\"\r\n [max]=\"evaluateNumber(component.range?.max) ?? 0\"\r\n #range\r\n [register]=\"component\"\r\n [componentRef]=\"range\">\r\n </ngx-sirio-slider>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tooltip -->\r\n <ng-container *ngSwitchCase=\"'tooltip'\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"\r\n #tooltip\r\n [register]=\"component\"\r\n [componentRef]=\"tooltip\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <p *ngIf=\"component.title\" class=\"sirio-tooltip-heading sirio-space-down\">\r\n {{ evaluateString(component.title) }}\r\n </p>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <ngx-sirio-tab #tab\r\n [register]=\"component\"\r\n [componentRef]=\"tab\"\r\n [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n tabControl>\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-tab-item [label]=\"evaluateString(panel.label)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled) ?? false\"\r\n *ngIf=\"evaluateConditional(panel.conditional)\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <ngx-sirio-accordion\r\n #accordion\r\n [register]=\"component\"\r\n [componentRef]=\"accordion\">\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-accordion-panel *ngIf=\"evaluateConditional(panel.conditional)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled)\">\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"evaluateString(panel.label)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion> \r\n </ng-container>\r\n <!-- #endregion -->\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n", styles: [".flex{display:flex}.field-set{align-items:start}.field-set>.col-host>*{margin-bottom:10px}.separator{border-bottom:2px solid #d9e4f7;width:100%;margin:10px 0}.group-outline{border:1px solid #d9e4f7;padding:15px;margin-top:2px;margin-bottom:2px}.group-top .row{align-items:baseline}.group-center .row{align-items:center}.group-bottom .row{align-items:end}.text-paragraph p{margin-bottom:0!important}.sirio-control.ng-invalid .sirio-form-feedback{color:#aa224f;display:inline-block}.sirio-control.ng-invalid .sirio-input-group-text{color:#aa224f;border-color:#aa224f}.sirio-control.fp-disabled .sirio-input-group .sirio-input-group-text,.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text{border:0px}.sirio-control.fp-readonly label:hover{color:#454d56}.sirio-control.fp-readonly input.sirio-form-control,.sirio-control.fp-readonly .sirio-dropdown .sirio-dropdown-select,.sirio-control.fp-readonly textarea.sirio-form-control{background:none!important;border:0px;padding:0}.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text{background:none}.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text span{color:#5b6571}.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text.prefix{padding-left:0}.sirio-upload.sirio-control.fp-readonly label,.sirio-upload.sirio-control.fp-disabled label{pointer-events:none}.sirio-form-check.sirio-is-invalid input[type=checkbox]~label,.sirio-form-check.sirio-is-invalid input[type=checkbox]:checked~label{color:#aa224f}.sirio-form-check.sirio-is-invalid input[type=checkbox]~label:before,.sirio-form-check.sirio-is-invalid input[type=checkbox]:checked~label:before{border-color:#aa224f}.sirio-form-check.sirio-is-invalid input[type=checkbox]:checked~label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3e%3cpath fill='%23AA224F' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3e%3c/svg%3e\");background-size:12px}.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid~label,.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid:checked~label{color:#aa224f}.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid~label:before,.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid:checked~label:before{border-color:#aa224f}.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid~label:after,.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid:checked~label:after{background-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]~label,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]:checked~label{color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]~label:before,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]:checked~label:before{border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]:checked~label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3e%3cpath fill='%23AA224F' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3e%3c/svg%3e\");background-size:12px}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=checkbox]+label{color:#aa224f;border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=checkbox]:checked+label{color:#fff;background-color:#aa224f;border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]~label,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]:checked~label{color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]~label:before,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]:checked~label:before{border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]:checked~label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3e%3cpath fill='%23AA224F' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3e%3c/svg%3e\");background-size:12px}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=radio]+label{color:#aa224f;border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=radio]:checked+label{color:#fff;background-color:#aa224f;border-color:#aa224f}.sirio-upload.sirio-is-invalid button{background-color:#aa224f;border-color:#aa224f}.sirio-accordion .sirio-accordion-body .sirio-accordion-content{padding:16px}.ag-header-cell.hide-filter .ag-header-cell-filter-button{display:none}.sirio-tab.sirio-tab-scroll{display:block}.sirio-dropdown .searchable{position:absolute;width:100%;display:none;left:0}.ag-cell-value .btn-small-group{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.ag-cell-value .btn-small .sirio-btn{padding:.25rem .0625rem;margin:2px}\n"], dependencies: [{ kind: "component", type: DynamicFieldsComponent, selector: "app-dynamic-fields", inputs: ["rows", "formGroup"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: AdornerDirective, selector: "[prefixAdorner], [suffixAdorner]", inputs: ["prefixAdorner", "suffixAdorner"] }, { kind: "directive", type: DisableDirective, selector: "[disableControl], [readonly]", inputs: ["disableControl", "readonly", "placeholder", "componentRef"] }, { kind: "directive", type: DisplayDirective, selector: "[hide], [show]", inputs: ["hide", "show"] }, { kind: "directive", type: FrameSecurityDirective, selector: "[frameSecurity]", inputs: ["frameSecurity"] }, { kind: "directive", type: DropdownDirective, selector: "[dropdown]" }, { kind: "directive", type: UpdateBlurDirective, selector: "[updateBlur]" }, { kind: "directive", type: RepeatDirective, selector: "[repeat]", inputs: ["repeat"] }, { kind: "directive", type: TabDirective, selector: "[tabCount]", inputs: ["tabCount"] }, { kind: "directive", type: GridDirective, selector: "[rowSource]", inputs: ["rowSource"] }, { kind: "directive", type: RegisterDirective, selector: "[register]", inputs: ["register", "componentRef"] }, { kind: "directive", type: AccordionDirective, selector: "[accordionCount]", inputs: ["accordionCount"] }, { kind: "directive", type: DateDirective, selector: "[isoDate]" }, { kind: "directive", type: NumberDirective, selector: "[number]", inputs: ["defaultValue", "minimum", "maximum", "decimalDigits"] }, { kind: "directive", type: TextDirective, selector: "[textcase], [maxlength]", inputs: ["textcase", "maxlength"] }, { kind: "directive", type: DisableFormDirective, selector: "[disableForm]", inputs: ["disableForm"] }, { kind: "directive", type: TabControlDirective, selector: "[tabControl]" }, { kind: "directive", type: CollapseDirective, selector: "[collapse]", inputs: ["collapse"] }, { kind: "directive", type: AccordionPanelDirective, selector: "[accordionPanel]" }, { kind: "component", type: SirioInputComponent, selector: "ngx-sirio-input", inputs: ["disabledState", "value", "label", "labelPopover", "ariaLabelPopoverButton", "type", "name", "placeholder", "textHelp", "textFeedback", "rows", "cols", "ariaLabel", "ariaAutocomplete", "ariaInvalid", "ariaDescribedBy", "role"], outputs: ["focusEvent", "inputEvent", "blurEvent", "keyupEvent", "keydownEvent"] }, { kind: "directive", type: SirioValidationDirective, selector: "[validation]", inputs: ["canValidate", "isWarning", "showWhenValid"] }, { kind: "component", type: SirioSelectComponent, selector: "ngx-sirio-select", inputs: ["placeholder", "disabledState", "value", "label", "labelPopover", "ariaLabelPopoverButton", "isMultiple", "textHelp", "textFeedback", "ariaLabel", "ariaInvalid", "ariaDescribedBy"], outputs: ["focusEvent", "blurEvent", "keydownEvent"] }, { kind: "component", type: SirioSelectOptionComponent, selector: "ngx-sirio-select-option", inputs: ["value"], outputs: ["optionSelected", "blurEvent"] }, { kind: "component", type: SirioSelectPanelComponent, selector: "ngx-sirio-select-panel", outputs: ["optionSelected", "panelOpened", "panelClosed"] }, { kind: "component", type: SirioCheckboxGroupComponent, selector: "ngx-sirio-checkbox-group", inputs: ["textHelp", "textFeedback", "label", "labelPopover", "ariaLabelPopoverButton", "ariaLabel", "ariaInvalid", "ariaDescribedBy", "disabledState", "value"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioCheckboxComponent, selector: "ngx-sirio-checkbox", inputs: ["disabled", "name", "textHelp", "textFeedback", "value", "ariaInvalid", "ariaDescribedBy", "disabledState", "checked"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioDatepickerComponent, selector: "ngx-sirio-datepicker", inputs: ["name", "placeholder", "textHelp", "textFeedback", "label", "labelPopover", "ariaLabelPopoverButton", "ariaLabel", "ariaAutocomplete", "ariaInvalid", "ariaDescribedBy", "value", "disabledState"], outputs: ["focusEvent", "inputEvent", "blurEvent", "keyupEvent", "keydownEvent", "datechangeEvent"] }, { kind: "component", type: SirioTimepickerComponent, selector: "ngx-sirio-timepicker", inputs: ["name", "label", "labelPopover", "ariaLabelPopoverButton", "placeholder", "textHelp", "textFeedback", "ariaLabel", "ariaAutocomplete", "ariaInvalid", "ariaDescribedBy", "disabledState", "value"], outputs: ["focusEvent", "inputEvent", "blurEvent", "keyupEvent", "keydownEvent"] }, { kind: "component", type: SirioRadioGroupComponent, selector: "ngx-sirio-radio-group", inputs: ["label", "labelPopover", "ariaLabelPopoverButton", "textHelp", "textFeedback", "items", "ariaLabel", "ariaInvalid", "ariaDescribedBy", "disabledState", "value"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioRadioButtonComponent, selector: "ngx-sirio-radio-button", inputs: ["disabledState", "label", "name", "textHelp", "textFeedback", "ariaInvalid", "ariaDescribedBy", "value", "checked"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioTabComponent, selector: "ngx-sirio-tab", inputs: ["isVertical", "isNavLine", "leftArrowLabel", "rightArrowLabel", "tabActive"], outputs: ["tabChange"] }, { kind: "component", type: SirioTabItemComponent, selector: "ngx-sirio-tab-item", inputs: ["label", "disabled", "icon"] }, { kind: "component", type: SirioAccordionComponent, selector: "ngx-sirio-accordion", inputs: ["dark"] }, { kind: "component", type: SirioAccordionPanelComponent, selector: "ngx-sirio-accordion-panel", inputs: ["active", "disabled"], outputs: ["opened", "closed"] }, { kind: "component", type: SirioAccordionHeaderComponent, selector: "ngx-sirio-accordion-header" }, { kind: "component", type: SirioAccordionBodyComponent, selector: "ngx-sirio-accordion-body" }, { kind: "component", type: SirioButtonComponent, selector: "ngx-sirio-button", inputs: ["ariaExpanded", "ariaControls", "ariaActivedescendant", "ariaHaspopup", "ariaLabel", "ariaRequired", "ariaInvalid", "ariaDescribedby", "icon", "title", "role", "color", "isFloating", "isExtended", "isLight", "isSmall", "disabled", "isDropdown", "type", "dismissType", "isBtnBlock"], outputs: ["clickEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: SirioFileUploadComponent, selector: "ngx-sirio-file-upload", inputs: ["multiple", "color", "accept", "maxFiles", "showFilelist", "label", "labelPopover", "ariaLabelPopoverButton", "name", "textHelp", "textFeedback", "ariaLabel", "ariaLabelDeleteFileButton", "ariaInvalid", "ariaDescribedBy", "disabledState", "value"], outputs: ["focusEvent", "fileUploadedEvent", "fileDeletedEvent", "uploadErrorEvent", "blurEvent"] }, { kind: "component", type: SirioToggleComponent, selector: "ngx-sirio-toggle", inputs: ["name", "textHelp", "textFeedback", "ariaLabel", "ariaInvalid", "ariaDescribedBy", "disabledState", "value", "checked"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioChipCheckboxGroupComponent, selector: "ngx-sirio-chip-checkbox-group", inputs: ["label", "labelPopover", "ariaLabelPopoverButton", "textHelp", "textFeedback", "items", "ariaLabel", "ariaInvalid", "ariaDescribedBy", "disabledState", "value"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioChipRadioGroupComponent, selector: "ngx-sirio-chip-radio-group", inputs: ["label", "labelPopover", "ariaLabelPopoverButton", "textHelp", "textFeedback", "items", "ariaLabel", "ariaInvalid", "ariaDescribedBy", "disabledState", "value"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioInputChipComponent, selector: "ngx-sirio-input-chip", inputs: ["disabledState", "name", "textHelp", "textFeedback", "value", "ariaInvalid", "ariaDescribedBy", "type", "checked"], outputs: ["focusEvent", "blurEvent", "changeEvent"] }, { kind: "component", type: SirioAlertComponent, selector: "ngx-sirio-alert", inputs: ["type", "labelClose", "isVisible"], outputs: ["closeEvent"] }, { kind: "component", type: SirioAlertMessageComponent, selector: "ngx-sirio-alert-message" }, { kind: "component", type: SirioSliderComponent, selector: "ngx-sirio-slider", inputs: ["disabledState", "value", "label", "labelPopover", "ariaLabelPopoverButton", "description", "min", "max", "ariaInvalid", "ariaDescribedBy", "textHelp", "textFeedback"], outputs: ["focusEvent", "inputEvent", "blurEvent", "keyupEvent", "keydownEvent"] }, { kind: "component", type: SirioNotifyComponent, selector: "ngx-sirio-notify", inputs: ["isDark"] }, { kind: "component", type: SirioNotifyBodyComponent, selector: "ngx-sirio-notify-body", inputs: ["title"] }, { kind: "directive", type: SirioTooltipDirective, selector: "[sirioTooltip]", inputs: ["sirioTooltip", "content", "hasAction", "hasPopover", "actionLabel", "actionIconClass", "clickOutside", "position", "customTemplate"], outputs: ["clickEvent"] }, { kind: "component", type: TemplateWrapperComponent, selector: "app-template-wrapper", inputs: ["template", "context"] }, { kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
3287
3704
|
}
|
|
3288
3705
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicFieldsComponent, decorators: [{
|
|
@@ -3305,9 +3722,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3305
3722
|
TemplateWrapperComponent,
|
|
3306
3723
|
AgGridAngular], providers: [
|
|
3307
3724
|
RegisterService,
|
|
3308
|
-
ProgrammabilityService
|
|
3725
|
+
ProgrammabilityService,
|
|
3726
|
+
GridService
|
|
3309
3727
|
], encapsulation: ViewEncapsulation.None, template: "<ng-container *ngFor=\"let row of rows\" [formGroup]=\"formGroup\">\r\n <div class=\"row field-set\">\r\n <ng-container *ngFor=\"let component of row.components\">\r\n <ng-container [ngSwitch]=\"component.type\">\r\n <div [class]=\"getClass(component)\">\r\n <!-- #region textfield -->\r\n <ng-container *ngSwitchCase=\"'textfield'\">\r\n <ngx-sirio-input type=\"text\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textfield\r\n [register]=\"component\"\r\n [componentRef]=\"textfield\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region select -->\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n dropdown\r\n #select\r\n [register]=\"component\"\r\n [componentRef]=\"select\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-input *ngIf=\"component.searchable\" class=\"searchable\" type=\"text\" [placeholder]=\"Texts.TypeToSearch\"></ngx-sirio-input>\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region taglist -->\r\n <ng-container *ngSwitchCase=\"'taglist'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [isMultiple]=\"true\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #taglist\r\n [register]=\"component\"\r\n [componentRef]=\"taglist\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ngx-sirio-input type=\"number\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n number\r\n [defaultValue]=\"evaluateNumber(component.defaultValue)\"\r\n [minimum]=\"evaluateNumber(component.minimum)\"\r\n [maximum]=\"evaluateNumber(component.maximum)\"\r\n [decimalDigits]=\"evaluateNumber(component.decimalDigits)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #number\r\n [register]=\"component\"\r\n [componentRef]=\"number\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region datetime -->\r\n <ng-container *ngSwitchCase=\"'datetime'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ngx-sirio-datepicker ariaLabel=\"date\"\r\n [label]=\"evaluateString(component.dateLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n isoDate\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #date\r\n [register]=\"component\"\r\n [componentRef]=\"date\">\r\n </ngx-sirio-datepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region time -->\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ngx-sirio-timepicker ariaLabel=\"time\"\r\n [label]=\"evaluateString(component.timeLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #time\r\n [register]=\"component\"\r\n [componentRef]=\"time\">\r\n </ngx-sirio-timepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region toggle -->\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ngx-sirio-toggle ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #toggle\r\n [register]=\"component\"\r\n [componentRef]=\"toggle\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-toggle>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-checkbox>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipradio\r\n [register]=\"component\"\r\n [componentRef]=\"chipradio\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"radio\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #radio\r\n [register]=\"component\"\r\n [componentRef]=\"radio\">\r\n <ngx-sirio-radio-button *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-radio-button>\r\n </ngx-sirio-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checklist -->\r\n <ng-container *ngSwitchCase=\"'checklist'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipcheckbox\r\n [register]=\"component\"\r\n [componentRef]=\"chipcheckbox\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"checkbox\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n <ngx-sirio-checkbox *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-checkbox>\r\n </ngx-sirio-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region textarea -->\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ngx-sirio-input type=\"textarea\"\r\n ariaLabel=\"textarea\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textarea\r\n [register]=\"component\"\r\n [componentRef]=\"textarea\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region filepicker -->\r\n <ng-container *ngSwitchCase=\"'filepicker'\">\r\n <ngx-sirio-file-upload ariaLabel=\"filepicker\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [accept]=\"getMimeTypes(component.accept)\"\r\n [multiple]=\"evaluateBoolean(component.multiple)\"\r\n (fileUploadedEvent)=\"fileUploaded($event)\"\r\n [showFilelist]=\"!component.showDetails\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #filepicker\r\n [register]=\"component\"\r\n [componentRef]=\"filepicker\">\r\n <span class=\"fas fa-arrow-up\" aria-hidden=\"true\"></span>\r\n {{ Texts.Upload }}\r\n </ngx-sirio-file-upload>\r\n <ng-container *ngIf=\"component.showDetails\">\r\n <app-dynamic-fields [formGroup]=\"formGroup\" [rows]=\"createUploadTables(component)\"></app-dynamic-fields>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [collapse]=\"component.collapseTo\"\r\n #text\r\n [register]=\"component\"\r\n [componentRef]=\"text\">\r\n <!--Reset View Context-->\r\n <div tabindex=\"0\" style=\"display:none\"></div>\r\n <div class=\"flex\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n <ng-container *ngIf=\"component.tooltip\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.tooltip))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region html -->\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <div class=\"html-paragraph\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [innerHTML]=\"sanitize(evaluateTemplate(component.content))\"\r\n #html\r\n [register]=\"component\"\r\n [componentRef]=\"html\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img [src]=\"evaluateString(component.source)\"\r\n [alt]=\"evaluateString(component.alt)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n style=\"width: 100%;height: 100%;\"\r\n #image\r\n [register]=\"component\"\r\n [componentRef]=\"image\">\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region dynamiclist -->\r\n <ng-container *ngSwitchCase=\"'dynamiclist'\">\r\n <ng-container [formArrayName]=\"component.path\" [repeat]=\"evaluateNumber(component.repetitions)\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <ng-container *ngIf=\"getFormArray(formGroup.get(component.path)).controls.length > 0\">\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclisttab\">\r\n <ngx-sirio-tab [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n [tabCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclisttab>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-tab-item [label]=\"component.label + ' ' + (i + 1)\">\r\n <ng-container *ngIf=\"i === dynamiclisttab.activeIndex\">\r\n <div [ngClass]=\"{\r\n'group-top': component.verticalAlignment === 'start',\r\n'group-center': component.verticalAlignment === 'center',\r\n'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container> \r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclistaccordion\">\r\n <ngx-sirio-accordion [accordionCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclistaccordion>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-accordion-panel #panel accordionPanel>\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"component.label + ' ' + (i + 1)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <ng-container *ngIf=\"panel.panelIsOpen\">\r\n <div [ngClass]=\"{\r\n'group-top': component.verticalAlignment === 'start',\r\n'group-center': component.verticalAlignment === 'center',\r\n'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <div [ngClass]=\"{'group-outline': component.showOutline === true}\"\r\n #dynamiclist\r\n [register]=\"component\"\r\n [componentRef]=\"dynamiclist\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <ngx-sirio-button (click)=\"addItem(component)\" class=\"add-item\" [color]=\"null\" icon=\"fas fa-plus\">{{ Texts.AddItem }}</ngx-sirio-button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region group -->\r\n <ng-container *ngSwitchCase=\"'group'\">\r\n <div [ngClass]=\"{\r\n 'group-outline': component.showOutline === true,\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <div #group\r\n [register]=\"component\"\r\n [componentRef]=\"group\">\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(component.path))\"\r\n [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region table -->\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <ng-container *ngSwitchCase=\"'table'\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ag-grid-angular [modules]=\"getGridModules(component)\"\r\n [gridOptions]=\"getGridOptions(component)\"\r\n [rowSource]=\"(getGridData(component) | async) || []\"\r\n [style.height.px]=\"component.height\"\r\n #table\r\n [register]=\"component\"\r\n [componentRef]=\"table\" />\r\n </ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n <!-- #region button -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ngx-sirio-button (clickEvent)=\"clickButton(component, $event)\"\r\n [color]=\"evaluateColor(component.color)\"\r\n [icon]=\"evaluateString(component.icon)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [disabled]=\"evaluateBoolean(component.disabled)\"\r\n #button\r\n [register]=\"component\"\r\n [componentRef]=\"button\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-button>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region separator -->\r\n <ng-container *ngSwitchCase=\"'separator'\">\r\n <div class=\"separator\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #separator\r\n [register]=\"component\"\r\n [componentRef]=\"separator\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region spacer -->\r\n <ng-container *ngSwitchCase=\"'spacer'\">\r\n <div style=\"width: 100%\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [style.height.px]=\"component.height\"\r\n #spacer\r\n [register]=\"component\"\r\n [componentRef]=\"spacer\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region iframe -->\r\n <ng-container *ngSwitchCase=\"'iframe'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label [for]=\"component.id\">{{ evaluateString(component.label) }}</label>\r\n <iframe [src]=\"evaluateUrl(component.url)\"\r\n [title]=\"evaluateString(component.label)\"\r\n [style.width]=\"'100%'\"\r\n [style.height.px]=\"component.height\"\r\n [frameSecurity]=\"component.security\"\r\n #iframe\r\n [register]=\"component\"\r\n [componentRef]=\"iframe\">\r\n </iframe>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region alert -->\r\n <ng-container *ngSwitchCase=\"'alert'\">\r\n <ngx-sirio-alert [type]=\"component.role\"\r\n [labelClose]=\"Texts.Close\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #alert\r\n [register]=\"component\"\r\n [componentRef]=\"alert\">\r\n <ngx-sirio-alert-message>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-alert-message>\r\n </ngx-sirio-alert>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region notice -->\r\n <ng-container *ngSwitchCase=\"'notice'\">\r\n <ngx-sirio-notify [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #notice\r\n [register]=\"component\"\r\n [componentRef]=\"notice\">\r\n <ngx-sirio-notify-body [title]=\"evaluateString(component.title)\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-notify-body>\r\n </ngx-sirio-notify>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region range -->\r\n <ng-container *ngSwitchCase=\"'range'\">\r\n <ngx-sirio-slider [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n [min]=\"evaluateNumber(component.range?.min) ?? 0\"\r\n [max]=\"evaluateNumber(component.range?.max) ?? 0\"\r\n #range\r\n [register]=\"component\"\r\n [componentRef]=\"range\">\r\n </ngx-sirio-slider>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tooltip -->\r\n <ng-container *ngSwitchCase=\"'tooltip'\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"\r\n #tooltip\r\n [register]=\"component\"\r\n [componentRef]=\"tooltip\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <p *ngIf=\"component.title\" class=\"sirio-tooltip-heading sirio-space-down\">\r\n {{ evaluateString(component.title) }}\r\n </p>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <ngx-sirio-tab #tab\r\n [register]=\"component\"\r\n [componentRef]=\"tab\"\r\n [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n tabControl>\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-tab-item [label]=\"evaluateString(panel.label)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled) ?? false\"\r\n *ngIf=\"evaluateConditional(panel.conditional)\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <ngx-sirio-accordion\r\n #accordion\r\n [register]=\"component\"\r\n [componentRef]=\"accordion\">\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-accordion-panel *ngIf=\"evaluateConditional(panel.conditional)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled)\">\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"evaluateString(panel.label)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion> \r\n </ng-container>\r\n <!-- #endregion -->\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n", styles: [".flex{display:flex}.field-set{align-items:start}.field-set>.col-host>*{margin-bottom:10px}.separator{border-bottom:2px solid #d9e4f7;width:100%;margin:10px 0}.group-outline{border:1px solid #d9e4f7;padding:15px;margin-top:2px;margin-bottom:2px}.group-top .row{align-items:baseline}.group-center .row{align-items:center}.group-bottom .row{align-items:end}.text-paragraph p{margin-bottom:0!important}.sirio-control.ng-invalid .sirio-form-feedback{color:#aa224f;display:inline-block}.sirio-control.ng-invalid .sirio-input-group-text{color:#aa224f;border-color:#aa224f}.sirio-control.fp-disabled .sirio-input-group .sirio-input-group-text,.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text{border:0px}.sirio-control.fp-readonly label:hover{color:#454d56}.sirio-control.fp-readonly input.sirio-form-control,.sirio-control.fp-readonly .sirio-dropdown .sirio-dropdown-select,.sirio-control.fp-readonly textarea.sirio-form-control{background:none!important;border:0px;padding:0}.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text{background:none}.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text span{color:#5b6571}.sirio-control.fp-readonly .sirio-input-group .sirio-input-group-text.prefix{padding-left:0}.sirio-upload.sirio-control.fp-readonly label,.sirio-upload.sirio-control.fp-disabled label{pointer-events:none}.sirio-form-check.sirio-is-invalid input[type=checkbox]~label,.sirio-form-check.sirio-is-invalid input[type=checkbox]:checked~label{color:#aa224f}.sirio-form-check.sirio-is-invalid input[type=checkbox]~label:before,.sirio-form-check.sirio-is-invalid input[type=checkbox]:checked~label:before{border-color:#aa224f}.sirio-form-check.sirio-is-invalid input[type=checkbox]:checked~label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3e%3cpath fill='%23AA224F' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3e%3c/svg%3e\");background-size:12px}.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid~label,.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid:checked~label{color:#aa224f}.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid~label:before,.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid:checked~label:before{border-color:#aa224f}.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid~label:after,.sirio-form-check.sirio-form-toggle input[type=checkbox].sirio-is-invalid:checked~label:after{background-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]~label,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]:checked~label{color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]~label:before,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]:checked~label:before{border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=checkbox]:checked~label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3e%3cpath fill='%23AA224F' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3e%3c/svg%3e\");background-size:12px}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=checkbox]+label{color:#aa224f;border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=checkbox]:checked+label{color:#fff;background-color:#aa224f;border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]~label,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]:checked~label{color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]~label:before,.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]:checked~label:before{border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-form-check input[type=radio]:checked~label:after{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3e%3cpath fill='%23AA224F' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3e%3c/svg%3e\");background-size:12px}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=radio]+label{color:#aa224f;border-color:#aa224f}.sirio-control.sirio-is-invalid fieldset .sirio-chip-selection input[type=radio]:checked+label{color:#fff;background-color:#aa224f;border-color:#aa224f}.sirio-upload.sirio-is-invalid button{background-color:#aa224f;border-color:#aa224f}.sirio-accordion .sirio-accordion-body .sirio-accordion-content{padding:16px}.ag-header-cell.hide-filter .ag-header-cell-filter-button{display:none}.sirio-tab.sirio-tab-scroll{display:block}.sirio-dropdown .searchable{position:absolute;width:100%;display:none;left:0}.ag-cell-value .btn-small-group{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.ag-cell-value .btn-small .sirio-btn{padding:.25rem .0625rem;margin:2px}\n"] }]
|
|
3310
|
-
}], ctorParameters: () => [{ type: SanitizeService }, { type: MarkdownService }, { type: MimeService }, { type: ProgrammabilityService }, { type: EventService }, { type:
|
|
3728
|
+
}], ctorParameters: () => [{ type: SanitizeService }, { type: MarkdownService }, { type: MimeService }, { type: ProgrammabilityService }, { type: EventService }, { type: WeakService }, { type: RegisterService }, { type: MetadataService }, { type: GridService }, { type: i0.ElementRef }], propDecorators: { rows: [{
|
|
3311
3729
|
type: Input
|
|
3312
3730
|
}], formGroup: [{
|
|
3313
3731
|
type: Input
|
|
@@ -3924,6 +4342,12 @@ class ODataSource {
|
|
|
3924
4342
|
else if (filter.type === "notBlank") {
|
|
3925
4343
|
return `${column} ne null`;
|
|
3926
4344
|
}
|
|
4345
|
+
else if (filter.type === "true") {
|
|
4346
|
+
return `${column} eq true`;
|
|
4347
|
+
}
|
|
4348
|
+
else if (filter.type === "false") {
|
|
4349
|
+
return `${column} eq false`;
|
|
4350
|
+
}
|
|
3927
4351
|
break;
|
|
3928
4352
|
case "number":
|
|
3929
4353
|
if (filter.type === "equals") {
|
|
@@ -4025,10 +4449,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4025
4449
|
}]
|
|
4026
4450
|
}], ctorParameters: () => [{ type: i1$4.HttpClient }] });
|
|
4027
4451
|
|
|
4028
|
-
/*
|
|
4029
|
-
* Public API Surface of sirio
|
|
4030
|
-
*/
|
|
4031
|
-
|
|
4032
4452
|
/**
|
|
4033
4453
|
* Generated bundle index. Do not edit.
|
|
4034
4454
|
*/
|