@smartbit4all/ng-client 3.1.98 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +98 -31
- package/esm2020/lib/smart-filter-editor/smart-filter-editor.module.mjs +5 -2
- package/esm2020/lib/smart-filter-editor/smart-filter-editor.service.mjs +1 -1
- package/esm2020/lib/smart-form/services/smartform.service.mjs +20 -10
- package/fesm2015/smartbit4all-ng-client.mjs +118 -34
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +115 -35
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +10 -9
- package/lib/smart-filter-editor/smart-filter-editor.module.d.ts +1 -1
- package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +11 -1
- package/lib/smart-form/services/smartform.service.d.ts +1 -0
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.2.0.tgz +0 -0
- package/smartbit4all-ng-client-3.1.98.tgz +0 -0
|
@@ -3877,13 +3877,18 @@ class SmartFormService {
|
|
|
3877
3877
|
}
|
|
3878
3878
|
toFormGroup() {
|
|
3879
3879
|
this.createFormControls(this.smartForm.widgets);
|
|
3880
|
-
|
|
3880
|
+
if (this.formGroup) {
|
|
3881
|
+
this.formGroup.controls = this.group;
|
|
3882
|
+
}
|
|
3883
|
+
else {
|
|
3884
|
+
this.formGroup = new FormGroup(this.group);
|
|
3885
|
+
}
|
|
3881
3886
|
if (this.smartForm.validators && this.smartForm.validators.length) {
|
|
3882
|
-
formGroup.setValidators(this.smartForm.validators.map((validator) => {
|
|
3887
|
+
this.formGroup.setValidators(this.smartForm.validators.map((validator) => {
|
|
3883
3888
|
return validator.validator;
|
|
3884
3889
|
}));
|
|
3885
3890
|
}
|
|
3886
|
-
return formGroup;
|
|
3891
|
+
return this.formGroup;
|
|
3887
3892
|
}
|
|
3888
3893
|
createFormControls(widgets, parentKey) {
|
|
3889
3894
|
widgets.map((widget) => {
|
|
@@ -3899,13 +3904,18 @@ class SmartFormService {
|
|
|
3899
3904
|
widget.type !== SmartFormWidgetType.COMPONENT &&
|
|
3900
3905
|
widget.type !== SmartFormWidgetType.MATRIX &&
|
|
3901
3906
|
widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER) {
|
|
3902
|
-
let formControl =
|
|
3903
|
-
|
|
3904
|
-
}
|
|
3905
|
-
|
|
3906
|
-
formControl.
|
|
3907
|
+
let formControl = this.group[`${widget.key}`];
|
|
3908
|
+
if (formControl) {
|
|
3909
|
+
}
|
|
3910
|
+
else {
|
|
3911
|
+
formControl = new FormControl(widget.value || '', widget.validators?.map((validator) => {
|
|
3912
|
+
return validator.validator;
|
|
3913
|
+
}));
|
|
3914
|
+
if (widget.isDisabled) {
|
|
3915
|
+
formControl.disable();
|
|
3916
|
+
}
|
|
3917
|
+
this.group[`${widget.key}`] = formControl;
|
|
3907
3918
|
}
|
|
3908
|
-
this.group[`${widget.key}`] = formControl;
|
|
3909
3919
|
}
|
|
3910
3920
|
if (widget.type === SmartFormWidgetType.MATRIX) {
|
|
3911
3921
|
if (widget.isMultiple) {
|
|
@@ -13604,35 +13614,79 @@ class SmartFilterEditorContentComponent {
|
|
|
13604
13614
|
this.expressionUiActionModels = [];
|
|
13605
13615
|
this.type = FilterExpressionBuilderUiModel.TypeEnum;
|
|
13606
13616
|
}
|
|
13607
|
-
|
|
13608
|
-
if (this.
|
|
13609
|
-
|
|
13610
|
-
this.smartFilterChangeSubscription.unsubscribe();
|
|
13611
|
-
}
|
|
13612
|
-
this.smartFilterChangeSubscription = this.smartFilterChild?.service.change
|
|
13613
|
-
.pipe(takeUntil(this._destroy$))
|
|
13614
|
-
.subscribe(() => {
|
|
13615
|
-
this.saveFilter();
|
|
13616
|
-
});
|
|
13617
|
+
ngAfterViewInit() {
|
|
13618
|
+
if (this.smartFilterChangeSubscription) {
|
|
13619
|
+
this.smartFilterChangeSubscription.unsubscribe();
|
|
13617
13620
|
}
|
|
13621
|
+
this.smartFilterChangeSubscription = this.simpleFilterFormChild.onBlurSubject?.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
13622
|
+
this.saveFilter();
|
|
13623
|
+
});
|
|
13624
|
+
if (this.smartFilterSophisticatedChangeSubscription) {
|
|
13625
|
+
this.smartFilterSophisticatedChangeSubscription.unsubscribe();
|
|
13626
|
+
}
|
|
13627
|
+
this.smartFilterSophisticatedChangeSubscription =
|
|
13628
|
+
this.simpleFilterFormChild.sophisticatedValueChange?.pipe(takeUntil(this._destroy$)).subscribe((change) => {
|
|
13629
|
+
if (change.kind === 'selection') {
|
|
13630
|
+
this.saveFilter();
|
|
13631
|
+
}
|
|
13632
|
+
});
|
|
13618
13633
|
}
|
|
13619
13634
|
ngOnInit() {
|
|
13620
13635
|
this.service.load();
|
|
13621
|
-
this.
|
|
13622
|
-
this.setUp();
|
|
13623
|
-
});
|
|
13636
|
+
this.setUp();
|
|
13624
13637
|
}
|
|
13625
13638
|
ngOnDestroy() {
|
|
13626
13639
|
this._destroy$.next();
|
|
13627
13640
|
this._destroy$.complete();
|
|
13628
13641
|
}
|
|
13629
13642
|
setupSimpleFilter() {
|
|
13630
|
-
|
|
13631
|
-
|
|
13632
|
-
|
|
13643
|
+
let widgets = [];
|
|
13644
|
+
let key;
|
|
13645
|
+
let model = {};
|
|
13646
|
+
this.service.model?.model?.workplaceList?.filters.forEach((filterExpressionField, index) => {
|
|
13647
|
+
model[index] = filterExpressionField;
|
|
13648
|
+
if (filterExpressionField.widgetType === 'SELECT_MULTIPLE') {
|
|
13649
|
+
key = index + '.expressionData.operand2.selectedValues';
|
|
13650
|
+
widgets.push(this.constructFormWidget(key, filterExpressionField.label2, filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TextField, filterExpressionField.possibleValues));
|
|
13651
|
+
return;
|
|
13652
|
+
}
|
|
13653
|
+
if (filterExpressionField.expressionData?.currentOperation === 'BETWEEN') {
|
|
13654
|
+
key = index + '.expressionData.operand2.valueAsString';
|
|
13655
|
+
widgets.push(this.constructFormWidget(key, filterExpressionField.label2, filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TextField, filterExpressionField.possibleValues));
|
|
13656
|
+
key = index + '.expressionData.operand3.valueAsString';
|
|
13657
|
+
widgets.push(this.constructFormWidget(key, filterExpressionField.label2, filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TextField, filterExpressionField.possibleValues));
|
|
13658
|
+
return;
|
|
13659
|
+
}
|
|
13660
|
+
if (filterExpressionField.expressionData?.operand2) {
|
|
13661
|
+
if (key !== index + '.expressionData.operand2.selectedValues') {
|
|
13662
|
+
key = index + '.expressionData.operand2.valueAsString';
|
|
13663
|
+
}
|
|
13664
|
+
widgets.push(this.constructFormWidget(key, filterExpressionField.label2, filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TextField, filterExpressionField.possibleValues));
|
|
13665
|
+
return;
|
|
13666
|
+
}
|
|
13667
|
+
if (filterExpressionField?.expressionData?.operand3) {
|
|
13668
|
+
if (key !== index + '.selectedValues') {
|
|
13669
|
+
key = index + '.expressionData.operand3.valueAsString';
|
|
13670
|
+
}
|
|
13671
|
+
widgets.push(this.constructFormWidget(key, filterExpressionField.label3, filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TextField, filterExpressionField.possibleValues));
|
|
13672
|
+
return;
|
|
13673
|
+
}
|
|
13674
|
+
});
|
|
13675
|
+
this.simpleFilterForm = {
|
|
13676
|
+
direction: SmartFormWidgetDirection.ROW,
|
|
13677
|
+
componentModel: { data: model },
|
|
13678
|
+
useOnValueChangeEvent: true,
|
|
13679
|
+
useOnBlurEvent: true,
|
|
13680
|
+
widgets,
|
|
13633
13681
|
};
|
|
13634
|
-
|
|
13635
|
-
|
|
13682
|
+
}
|
|
13683
|
+
extractFilterFieldFromFormModel() {
|
|
13684
|
+
let simpleFilter = this.simpleFilterFormChild?.submitForm(false).componentModel.data;
|
|
13685
|
+
let result = [];
|
|
13686
|
+
Object.keys(simpleFilter).forEach((key) => {
|
|
13687
|
+
result.push(simpleFilter[key]);
|
|
13688
|
+
});
|
|
13689
|
+
this.service.model.model.workplaceList.filters = result;
|
|
13636
13690
|
}
|
|
13637
13691
|
setUp() {
|
|
13638
13692
|
if (this.service.model?.type === this.type.Simple) {
|
|
@@ -13730,9 +13784,7 @@ class SmartFilterEditorContentComponent {
|
|
|
13730
13784
|
return [];
|
|
13731
13785
|
}
|
|
13732
13786
|
async saveFilter() {
|
|
13733
|
-
|
|
13734
|
-
this.service.model.model.workplaceList.filters =
|
|
13735
|
-
smartFilter?.data;
|
|
13787
|
+
this.extractFilterFieldFromFormModel();
|
|
13736
13788
|
this.service.performUiActionRequest({
|
|
13737
13789
|
code: FilterExpressionBuilderApiActions.SAVE_EXPRESSION_FIELD_LIST,
|
|
13738
13790
|
params: {
|
|
@@ -13740,20 +13792,45 @@ class SmartFilterEditorContentComponent {
|
|
|
13740
13792
|
},
|
|
13741
13793
|
});
|
|
13742
13794
|
}
|
|
13795
|
+
constructFormWidget(key, label, widgetType, possibleValues) {
|
|
13796
|
+
let type = widgetType;
|
|
13797
|
+
if (type === FilterExpressionFieldWidgetType.Date) {
|
|
13798
|
+
type = SmartFormWidgetType.DATE_PICKER;
|
|
13799
|
+
}
|
|
13800
|
+
else if (type === FilterExpressionFieldWidgetType.DateTime) {
|
|
13801
|
+
type = SmartFormWidgetType.DATE_TIME_PICKER;
|
|
13802
|
+
}
|
|
13803
|
+
let widget = {
|
|
13804
|
+
key,
|
|
13805
|
+
label,
|
|
13806
|
+
type,
|
|
13807
|
+
value: '',
|
|
13808
|
+
showLabel: true,
|
|
13809
|
+
valueList: possibleValues.map((value) => {
|
|
13810
|
+
return {
|
|
13811
|
+
key: value.objectUri ? value.objectUri : value.code,
|
|
13812
|
+
label: value.displayValue,
|
|
13813
|
+
type: SmartFormWidgetType.ITEM,
|
|
13814
|
+
value: value.objectUri ? value.objectUri : value.code,
|
|
13815
|
+
};
|
|
13816
|
+
}),
|
|
13817
|
+
};
|
|
13818
|
+
return widget;
|
|
13819
|
+
}
|
|
13743
13820
|
}
|
|
13744
13821
|
SmartFilterEditorContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartFilterEditorContentComponent, deps: [{ token: SmartformLayoutDefinitionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13745
|
-
SmartFilterEditorContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartFilterEditorContentComponent, selector: "smart-filter-expression-editor", inputs: { service: "service" }, viewQueries: [{ propertyName: "formChild", first: true, predicate: ["form"], descendants: true }, { propertyName: "
|
|
13822
|
+
SmartFilterEditorContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartFilterEditorContentComponent, selector: "smart-filter-expression-editor", inputs: { service: "service" }, viewQueries: [{ propertyName: "formChild", first: true, predicate: ["form"], descendants: true }, { propertyName: "simpleFilterFormChild", first: true, predicate: ["simpleFilterFromChild"], descendants: true }], ngImport: i0, template: "<div class=\"targetGroupContentContainer\">\r\n <h3>{{ service.model?.model?.label }}</h3>\r\n\r\n <div *ngIf=\"service.model?.type === type.Simple; then simpleFilter; else complexFilter\"></div>\r\n\r\n <ng-template #simpleFilter>\r\n <div class=\"expressionsContainer\">\r\n <smartform #simpleFilterFromChild [smartForm]=\"simpleFilterForm\"></smartform>\r\n </div>\r\n </ng-template>\r\n <ng-template #complexFilter>\r\n <div class=\"uiActionsBar\" *ngIf=\"!service.model?.readOnly\">\r\n <div class=\"uiActionsInsideOfBar\">\r\n <smart-ui-action-toolbar [uiActionModels]=\"uiActionModels\"></smart-ui-action-toolbar>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n service?.model?.model?.workplaceList?.filters?.length;\r\n then withParameters;\r\n else withoutParameters\r\n \"\r\n ></div>\r\n <ng-template #withoutParameters>\r\n <div class=\"withoutParametersContainer\">\r\n <span class=\"mat-body\"> M\u00E9g nincs megadva param\u00E9ter </span>\r\n </div>\r\n </ng-template>\r\n <ng-template #withParameters>\r\n <div class=\"withParametersContainer\">\r\n <div\r\n class=\"expressionsContainer\"\r\n *ngIf=\"service?.model?.model?.workplaceList?.filters?.length\"\r\n >\r\n <app-expression-items\r\n [items]=\"(service.model?.model?.workplaceList)!.filters\"\r\n ></app-expression-items>\r\n </div>\r\n <div class=\"expressionEditorContainer\">\r\n <smartform #form [smartForm]=\"smartForm\"></smartform>\r\n <div *ngIf=\"smartForm\">\r\n <button (click)=\"remove()\" mat-raised-button color=\"primary\">T\u00F6rl\u00E9s</button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n", styles: [".targetGroupContentContainer{padding:1.5rem;display:flex;flex-direction:column;gap:2.5rem;height:calc(100% - 3rem);overflow:auto;position:relative}.targetGroupContentContainer h3{margin:0;font-weight:600}.uiActionsBar{padding:1.5rem;border-radius:.25rem;background-color:var(--container-color)}.uiActionsBar,.uiActionsInsideOfBar{display:flex;flex-direction:row;gap:1rem}.uiActionsInsideOfBar{position:relative;left:-3rem}.section,.notSection{display:flex;flex-direction:row;gap:1rem}.section:before{content:\"\";border:1px solid #d9d9d9;align-self:stretch}.withoutParametersContainer{display:flex;flex-direction:column;padding:2rem;background-color:var(--container-color);border-radius:.25rem}.withoutParametersContainer .mat-body{font-weight:600;text-align:center}.withParametersContainer{display:flex;flex-direction:column;padding:1.5rem;background-color:var(--container-color);border-radius:.25rem;gap:.75rem}.expressionsContainer{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;margin-bottom:1px solid #cdcdcd}.expressionEditorContainer{display:flex;flex-direction:column;gap:.75rem}\n"], components: [{ type: SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService"] }, { type: SmartFilterExpressionItemsComponent, selector: "app-expression-items", inputs: ["items"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
13746
13823
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartFilterEditorContentComponent, decorators: [{
|
|
13747
13824
|
type: Component,
|
|
13748
|
-
args: [{ selector: 'smart-filter-expression-editor', template: "<div class=\"targetGroupContentContainer\">\r\n <h3>{{ service.model?.model?.label }}</h3>\r\n\r\n <div *ngIf=\"service.model?.type === type.Simple; then simpleFilter; else complexFilter\"></div>\r\n\r\n <ng-template #simpleFilter>\r\n <div class=\"expressionsContainer\">\r\n <
|
|
13825
|
+
args: [{ selector: 'smart-filter-expression-editor', template: "<div class=\"targetGroupContentContainer\">\r\n <h3>{{ service.model?.model?.label }}</h3>\r\n\r\n <div *ngIf=\"service.model?.type === type.Simple; then simpleFilter; else complexFilter\"></div>\r\n\r\n <ng-template #simpleFilter>\r\n <div class=\"expressionsContainer\">\r\n <smartform #simpleFilterFromChild [smartForm]=\"simpleFilterForm\"></smartform>\r\n </div>\r\n </ng-template>\r\n <ng-template #complexFilter>\r\n <div class=\"uiActionsBar\" *ngIf=\"!service.model?.readOnly\">\r\n <div class=\"uiActionsInsideOfBar\">\r\n <smart-ui-action-toolbar [uiActionModels]=\"uiActionModels\"></smart-ui-action-toolbar>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n service?.model?.model?.workplaceList?.filters?.length;\r\n then withParameters;\r\n else withoutParameters\r\n \"\r\n ></div>\r\n <ng-template #withoutParameters>\r\n <div class=\"withoutParametersContainer\">\r\n <span class=\"mat-body\"> M\u00E9g nincs megadva param\u00E9ter </span>\r\n </div>\r\n </ng-template>\r\n <ng-template #withParameters>\r\n <div class=\"withParametersContainer\">\r\n <div\r\n class=\"expressionsContainer\"\r\n *ngIf=\"service?.model?.model?.workplaceList?.filters?.length\"\r\n >\r\n <app-expression-items\r\n [items]=\"(service.model?.model?.workplaceList)!.filters\"\r\n ></app-expression-items>\r\n </div>\r\n <div class=\"expressionEditorContainer\">\r\n <smartform #form [smartForm]=\"smartForm\"></smartform>\r\n <div *ngIf=\"smartForm\">\r\n <button (click)=\"remove()\" mat-raised-button color=\"primary\">T\u00F6rl\u00E9s</button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n", styles: [".targetGroupContentContainer{padding:1.5rem;display:flex;flex-direction:column;gap:2.5rem;height:calc(100% - 3rem);overflow:auto;position:relative}.targetGroupContentContainer h3{margin:0;font-weight:600}.uiActionsBar{padding:1.5rem;border-radius:.25rem;background-color:var(--container-color)}.uiActionsBar,.uiActionsInsideOfBar{display:flex;flex-direction:row;gap:1rem}.uiActionsInsideOfBar{position:relative;left:-3rem}.section,.notSection{display:flex;flex-direction:row;gap:1rem}.section:before{content:\"\";border:1px solid #d9d9d9;align-self:stretch}.withoutParametersContainer{display:flex;flex-direction:column;padding:2rem;background-color:var(--container-color);border-radius:.25rem}.withoutParametersContainer .mat-body{font-weight:600;text-align:center}.withParametersContainer{display:flex;flex-direction:column;padding:1.5rem;background-color:var(--container-color);border-radius:.25rem;gap:.75rem}.expressionsContainer{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;margin-bottom:1px solid #cdcdcd}.expressionEditorContainer{display:flex;flex-direction:column;gap:.75rem}\n"] }]
|
|
13749
13826
|
}], ctorParameters: function () { return [{ type: SmartformLayoutDefinitionService }]; }, propDecorators: { service: [{
|
|
13750
13827
|
type: Input
|
|
13751
13828
|
}], formChild: [{
|
|
13752
13829
|
type: ViewChild,
|
|
13753
13830
|
args: ['form']
|
|
13754
|
-
}],
|
|
13831
|
+
}], simpleFilterFormChild: [{
|
|
13755
13832
|
type: ViewChild,
|
|
13756
|
-
args: ['
|
|
13833
|
+
args: ['simpleFilterFromChild']
|
|
13757
13834
|
}] } });
|
|
13758
13835
|
|
|
13759
13836
|
class SmartFilterEditorModule {
|
|
@@ -13769,7 +13846,8 @@ SmartFilterEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
|
|
|
13769
13846
|
SmartViewContextModule,
|
|
13770
13847
|
SmartformModule,
|
|
13771
13848
|
MatButtonModule,
|
|
13772
|
-
SmartFilterModule
|
|
13849
|
+
SmartFilterModule,
|
|
13850
|
+
SmartformModule], exports: [SmartFilterParamsComponent,
|
|
13773
13851
|
SmartFilterParamComponent,
|
|
13774
13852
|
SmartFilterEditorContentComponent,
|
|
13775
13853
|
SmartFilterExpressionItemsComponent,
|
|
@@ -13782,6 +13860,7 @@ SmartFilterEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
13782
13860
|
SmartformModule,
|
|
13783
13861
|
MatButtonModule,
|
|
13784
13862
|
SmartFilterModule,
|
|
13863
|
+
SmartformModule,
|
|
13785
13864
|
]] });
|
|
13786
13865
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartFilterEditorModule, decorators: [{
|
|
13787
13866
|
type: NgModule,
|
|
@@ -13801,6 +13880,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13801
13880
|
SmartformModule,
|
|
13802
13881
|
MatButtonModule,
|
|
13803
13882
|
SmartFilterModule,
|
|
13883
|
+
SmartformModule,
|
|
13804
13884
|
],
|
|
13805
13885
|
exports: [
|
|
13806
13886
|
SmartFilterParamsComponent,
|