@smartbit4all/ng-client 6.0.54 → 6.0.56
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/smart-client/smart-component-api-client.mjs +4 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +22 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +25 -23
- package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +5 -1
- package/esm2022/lib/smart-filter-editor/project.mjs +2 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +8 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-widget/smart-filter-widget.component.mjs +58 -0
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +8 -5
- package/fesm2022/smartbit4all-ng-client.mjs +870 -785
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +6 -0
- package/lib/smart-component-layout/smart-component-layout.component.d.ts +6 -4
- package/lib/smart-component-layout/smart-component-layout.module.d.ts +4 -3
- package/lib/smart-filter-editor/project.d.ts +1 -0
- package/lib/smart-filter-editor/smart-filter-editor.module.d.ts +9 -8
- package/lib/smart-filter-editor/smart-filter-widget/smart-filter-widget.component.d.ts +23 -0
- package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +1 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-6.0.56.tgz +0 -0
- package/smartbit4all-ng-client-6.0.54.tgz +0 -0
|
@@ -7547,7 +7547,7 @@ class SmartfileuploaderComponent {
|
|
|
7547
7547
|
this.files = [validFiles[0]];
|
|
7548
7548
|
}
|
|
7549
7549
|
if (this.autoUpload && this.errors.length == 0) {
|
|
7550
|
-
this.uploadFile();
|
|
7550
|
+
this.uploadFile(null);
|
|
7551
7551
|
}
|
|
7552
7552
|
}
|
|
7553
7553
|
getFile(event) {
|
|
@@ -7589,7 +7589,10 @@ class SmartfileuploaderComponent {
|
|
|
7589
7589
|
remove(index) {
|
|
7590
7590
|
this.files.splice(index, 1);
|
|
7591
7591
|
}
|
|
7592
|
-
uploadFile() {
|
|
7592
|
+
uploadFile(event) {
|
|
7593
|
+
if (event && event.event) {
|
|
7594
|
+
event.event.stopPropagation();
|
|
7595
|
+
}
|
|
7593
7596
|
this.uploadCallback(this.files);
|
|
7594
7597
|
}
|
|
7595
7598
|
formatSize(bytes) {
|
|
@@ -7649,11 +7652,11 @@ class SmartfileuploaderComponent {
|
|
|
7649
7652
|
};
|
|
7650
7653
|
}
|
|
7651
7654
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, deps: [{ token: i1$4.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7652
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartfileuploaderComponent, selector: "smartfileuploader", inputs: { uploadCallback: "uploadCallback", fileFormats: "fileFormats", maxSizeMb: "maxSizeMb", i18n: "i18n", useIconButton: "useIconButton", isMultiple: "isMultiple", autoUpload: "autoUpload", isDisabled: "isDisabled" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"container\"\r\n [ngClass]=\"{ disabledWidget: isDisabled }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n [disabled]=\"isDisabled\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button\r\n (actionClick)=\"uploadFile()\"\r\n [code]=\"'default-upload'\"\r\n [descriptor]=\"uploadButton\"\r\n >\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-icon\r\n class=\"downloadIcon\"\r\n icon=\"download\"\r\n (click)=\"downloadFile(file)\"\r\n [attr.data-testid]=\"'default_download'\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"removeIcon\"\r\n icon=\"delete\"\r\n [attr.data-testid]=\"'default_remove'\"\r\n (click)=\"remove(i)\"\r\n ></smart-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "component", type: UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "identifier", "viewActivated", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
|
|
7655
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartfileuploaderComponent, selector: "smartfileuploader", inputs: { uploadCallback: "uploadCallback", fileFormats: "fileFormats", maxSizeMb: "maxSizeMb", i18n: "i18n", useIconButton: "useIconButton", isMultiple: "isMultiple", autoUpload: "autoUpload", isDisabled: "isDisabled" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"container\"\r\n [ngClass]=\"{ disabledWidget: isDisabled }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n [disabled]=\"isDisabled\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button\r\n (actionClick)=\"uploadFile($event)\"\r\n [code]=\"'default-upload'\"\r\n [descriptor]=\"uploadButton\"\r\n >\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-icon\r\n class=\"downloadIcon\"\r\n icon=\"download\"\r\n (click)=\"downloadFile(file)\"\r\n [attr.data-testid]=\"'default_download'\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"removeIcon\"\r\n icon=\"delete\"\r\n [attr.data-testid]=\"'default_remove'\"\r\n (click)=\"remove(i)\"\r\n ></smart-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "component", type: UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "identifier", "viewActivated", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
|
|
7653
7656
|
}
|
|
7654
7657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, decorators: [{
|
|
7655
7658
|
type: Component,
|
|
7656
|
-
args: [{ selector: 'smartfileuploader', template: "<div\r\n class=\"container\"\r\n [ngClass]=\"{ disabledWidget: isDisabled }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n [disabled]=\"isDisabled\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button\r\n (actionClick)=\"uploadFile()\"\r\n [code]=\"'default-upload'\"\r\n [descriptor]=\"uploadButton\"\r\n >\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-icon\r\n class=\"downloadIcon\"\r\n icon=\"download\"\r\n (click)=\"downloadFile(file)\"\r\n [attr.data-testid]=\"'default_download'\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"removeIcon\"\r\n icon=\"delete\"\r\n [attr.data-testid]=\"'default_remove'\"\r\n (click)=\"remove(i)\"\r\n ></smart-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"] }]
|
|
7659
|
+
args: [{ selector: 'smartfileuploader', template: "<div\r\n class=\"container\"\r\n [ngClass]=\"{ disabledWidget: isDisabled }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n [disabled]=\"isDisabled\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button\r\n (actionClick)=\"uploadFile($event)\"\r\n [code]=\"'default-upload'\"\r\n [descriptor]=\"uploadButton\"\r\n >\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-icon\r\n class=\"downloadIcon\"\r\n icon=\"download\"\r\n (click)=\"downloadFile(file)\"\r\n [attr.data-testid]=\"'default_download'\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"removeIcon\"\r\n icon=\"delete\"\r\n [attr.data-testid]=\"'default_remove'\"\r\n (click)=\"remove(i)\"\r\n ></smart-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"] }]
|
|
7657
7660
|
}], ctorParameters: () => [{ type: i1$4.MatSnackBar }], propDecorators: { fileInput: [{
|
|
7658
7661
|
type: ViewChild,
|
|
7659
7662
|
args: ['fileInput']
|
|
@@ -21247,6 +21250,27 @@ class SmartComponentLayoutUtility {
|
|
|
21247
21250
|
}
|
|
21248
21251
|
return result;
|
|
21249
21252
|
}
|
|
21253
|
+
/**
|
|
21254
|
+
* The editors of the filter widgets in the layout tree. A widget whose builder model has not
|
|
21255
|
+
* arrived yet has no editor and is left out until it does.
|
|
21256
|
+
*/
|
|
21257
|
+
static getFilters(comp) {
|
|
21258
|
+
const result = [];
|
|
21259
|
+
if (comp.components) {
|
|
21260
|
+
const children = comp.components
|
|
21261
|
+
.map((c) => SmartComponentLayoutUtility.getFilters(c))
|
|
21262
|
+
.reduce((acc, value) => acc.concat(value), []);
|
|
21263
|
+
result.push(...children);
|
|
21264
|
+
}
|
|
21265
|
+
const expandable = this.getExpandableComponent(comp);
|
|
21266
|
+
if (expandable) {
|
|
21267
|
+
result.push(...this.getFilters(expandable));
|
|
21268
|
+
}
|
|
21269
|
+
if (comp.smartFilterComponent?.contentComponent) {
|
|
21270
|
+
result.push(comp.smartFilterComponent.contentComponent);
|
|
21271
|
+
}
|
|
21272
|
+
return result;
|
|
21273
|
+
}
|
|
21250
21274
|
static getTrees(comp) {
|
|
21251
21275
|
let result = [];
|
|
21252
21276
|
if (comp.components) {
|
|
@@ -22340,501 +22364,389 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
22340
22364
|
type: Output
|
|
22341
22365
|
}] } });
|
|
22342
22366
|
|
|
22343
|
-
|
|
22344
|
-
|
|
22345
|
-
|
|
22346
|
-
|
|
22347
|
-
|
|
22348
|
-
|
|
22349
|
-
|
|
22367
|
+
/**
|
|
22368
|
+
* Custom HttpParameterCodec
|
|
22369
|
+
* Workaround for https://github.com/angular/angular/issues/18261
|
|
22370
|
+
*/
|
|
22371
|
+
class CustomHttpParameterCodec {
|
|
22372
|
+
encodeKey(k) {
|
|
22373
|
+
return encodeURIComponent(k);
|
|
22350
22374
|
}
|
|
22351
|
-
|
|
22352
|
-
return (
|
|
22353
|
-
(this.smartComponentLayout?.direction ?? 'vertical') === 'vertical');
|
|
22375
|
+
encodeValue(v) {
|
|
22376
|
+
return encodeURIComponent(v);
|
|
22354
22377
|
}
|
|
22355
|
-
|
|
22356
|
-
|
|
22357
|
-
if (vcRef) {
|
|
22358
|
-
this.tryRegisterEmbeddedSlot();
|
|
22359
|
-
}
|
|
22378
|
+
decodeKey(k) {
|
|
22379
|
+
return decodeURIComponent(k);
|
|
22360
22380
|
}
|
|
22361
|
-
|
|
22362
|
-
|
|
22363
|
-
this.viewContext = viewContext;
|
|
22364
|
-
this.element = element;
|
|
22365
|
-
this.renderer = renderer;
|
|
22366
|
-
this._destroy$ = new Subject();
|
|
22367
|
-
this.appRef = inject(ApplicationRef);
|
|
22368
|
-
this.formRef = viewChild(SmartformComponent);
|
|
22369
|
-
this.onFormChange = effect(() => {
|
|
22370
|
-
const form = this.formRef();
|
|
22371
|
-
if (this.smartForm && form && this.parentSmartComponent) {
|
|
22372
|
-
this.parentSmartComponent.handleDataChangeSubscriptions(form);
|
|
22373
|
-
this.parentSmartComponent.handleUploadCallback(form);
|
|
22374
|
-
form.markAllWidgetsForChangeDetection();
|
|
22375
|
-
}
|
|
22376
|
-
});
|
|
22377
|
-
this.pendingOrphanCleanup = false;
|
|
22378
|
-
this.embeddedSlotActive = false;
|
|
22381
|
+
decodeValue(v) {
|
|
22382
|
+
return decodeURIComponent(v);
|
|
22379
22383
|
}
|
|
22380
|
-
|
|
22381
|
-
|
|
22382
|
-
|
|
22383
|
-
|
|
22384
|
-
|
|
22385
|
-
|
|
22386
|
-
|
|
22387
|
-
|
|
22388
|
-
|
|
22389
|
-
|
|
22390
|
-
|
|
22384
|
+
}
|
|
22385
|
+
|
|
22386
|
+
const BASE_PATH = new InjectionToken('basePath');
|
|
22387
|
+
const COLLECTION_FORMATS = {
|
|
22388
|
+
'csv': ',',
|
|
22389
|
+
'tsv': ' ',
|
|
22390
|
+
'ssv': ' ',
|
|
22391
|
+
'pipes': '|'
|
|
22392
|
+
};
|
|
22393
|
+
|
|
22394
|
+
class Configuration {
|
|
22395
|
+
constructor(configurationParameters = {}) {
|
|
22396
|
+
this.apiKeys = configurationParameters.apiKeys;
|
|
22397
|
+
this.username = configurationParameters.username;
|
|
22398
|
+
this.password = configurationParameters.password;
|
|
22399
|
+
this.accessToken = configurationParameters.accessToken;
|
|
22400
|
+
this.basePath = configurationParameters.basePath;
|
|
22401
|
+
this.withCredentials = configurationParameters.withCredentials;
|
|
22402
|
+
this.encoder = configurationParameters.encoder;
|
|
22403
|
+
if (configurationParameters.encodeParam) {
|
|
22404
|
+
this.encodeParam = configurationParameters.encodeParam;
|
|
22391
22405
|
}
|
|
22392
|
-
|
|
22393
|
-
.
|
|
22394
|
-
.subscribe((list) => {
|
|
22395
|
-
this.setGridComponent(list.first);
|
|
22396
|
-
});
|
|
22397
|
-
if (this.smartMapList?.first) {
|
|
22398
|
-
this.setMapComponent(this.smartMapList?.first);
|
|
22406
|
+
else {
|
|
22407
|
+
this.encodeParam = param => this.defaultEncodeParam(param);
|
|
22399
22408
|
}
|
|
22400
|
-
|
|
22401
|
-
this.
|
|
22402
|
-
});
|
|
22403
|
-
if (this.smartDiagramList?.first) {
|
|
22404
|
-
this.setDiagramComponent(this.smartDiagramList?.first);
|
|
22409
|
+
if (configurationParameters.credentials) {
|
|
22410
|
+
this.credentials = configurationParameters.credentials;
|
|
22405
22411
|
}
|
|
22406
|
-
|
|
22407
|
-
this.
|
|
22408
|
-
});
|
|
22409
|
-
this.smartFilterList.changes
|
|
22410
|
-
.pipe(takeUntil(this._destroy$))
|
|
22411
|
-
.subscribe((list) => {
|
|
22412
|
-
if (!this.smartFilterComponent) {
|
|
22413
|
-
this.smartFilterComponent = list.first;
|
|
22414
|
-
this.bindFilter();
|
|
22415
|
-
}
|
|
22416
|
-
});
|
|
22417
|
-
if (this.toolbarList?.first) {
|
|
22418
|
-
this.setToolbarComponent(this.toolbarList?.first);
|
|
22412
|
+
else {
|
|
22413
|
+
this.credentials = {};
|
|
22419
22414
|
}
|
|
22420
|
-
this.toolbarList.changes
|
|
22421
|
-
.pipe(takeUntil(this._destroy$))
|
|
22422
|
-
.subscribe((list) => {
|
|
22423
|
-
this.setToolbarComponent(list.first);
|
|
22424
|
-
});
|
|
22425
|
-
this.setUp();
|
|
22426
22415
|
}
|
|
22427
|
-
|
|
22428
|
-
|
|
22429
|
-
|
|
22430
|
-
|
|
22416
|
+
/**
|
|
22417
|
+
* Select the correct content-type to use for a request.
|
|
22418
|
+
* Uses {@link Configuration#isJsonMime} to determine the correct content-type.
|
|
22419
|
+
* If no content type is found return the first found type if the contentTypes is not empty
|
|
22420
|
+
* @param contentTypes - the array of content types that are available for selection
|
|
22421
|
+
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
22422
|
+
*/
|
|
22423
|
+
selectHeaderContentType(contentTypes) {
|
|
22424
|
+
if (contentTypes.length === 0) {
|
|
22425
|
+
return undefined;
|
|
22426
|
+
}
|
|
22427
|
+
const type = contentTypes.find((x) => this.isJsonMime(x));
|
|
22428
|
+
if (type === undefined) {
|
|
22429
|
+
return contentTypes[0];
|
|
22431
22430
|
}
|
|
22431
|
+
return type;
|
|
22432
22432
|
}
|
|
22433
|
-
|
|
22434
|
-
|
|
22435
|
-
|
|
22433
|
+
/**
|
|
22434
|
+
* Select the correct accept content-type to use for a request.
|
|
22435
|
+
* Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.
|
|
22436
|
+
* If no content type is found return the first found type if the contentTypes is not empty
|
|
22437
|
+
* @param accepts - the array of content types that are available for selection.
|
|
22438
|
+
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
22439
|
+
*/
|
|
22440
|
+
selectHeaderAccept(accepts) {
|
|
22441
|
+
if (accepts.length === 0) {
|
|
22442
|
+
return undefined;
|
|
22436
22443
|
}
|
|
22437
|
-
this.
|
|
22438
|
-
|
|
22444
|
+
const type = accepts.find((x) => this.isJsonMime(x));
|
|
22445
|
+
if (type === undefined) {
|
|
22446
|
+
return accepts[0];
|
|
22447
|
+
}
|
|
22448
|
+
return type;
|
|
22439
22449
|
}
|
|
22440
|
-
|
|
22441
|
-
|
|
22450
|
+
/**
|
|
22451
|
+
* Check if the given MIME is a JSON MIME.
|
|
22452
|
+
* JSON MIME examples:
|
|
22453
|
+
* application/json
|
|
22454
|
+
* application/json; charset=UTF8
|
|
22455
|
+
* APPLICATION/JSON
|
|
22456
|
+
* application/vnd.company+json
|
|
22457
|
+
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
|
22458
|
+
* @return True if the given MIME is JSON, false otherwise.
|
|
22459
|
+
*/
|
|
22460
|
+
isJsonMime(mime) {
|
|
22461
|
+
const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
|
|
22462
|
+
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
|
|
22442
22463
|
}
|
|
22443
|
-
|
|
22444
|
-
|
|
22445
|
-
|
|
22464
|
+
lookupCredential(key) {
|
|
22465
|
+
const value = this.credentials[key];
|
|
22466
|
+
return typeof value === 'function'
|
|
22467
|
+
? value()
|
|
22468
|
+
: value;
|
|
22469
|
+
}
|
|
22470
|
+
defaultEncodeParam(param) {
|
|
22471
|
+
// This implementation exists as fallback for missing configuration
|
|
22472
|
+
// and for backwards compatibility to older typescript-angular generator versions.
|
|
22473
|
+
// It only works for the 'simple' parameter style.
|
|
22474
|
+
// Date-handling only works for the 'date-time' format.
|
|
22475
|
+
// All other styles and Date-formats are probably handled incorrectly.
|
|
22476
|
+
//
|
|
22477
|
+
// But: if that's all you need (i.e.: the most common use-case): no need for customization!
|
|
22478
|
+
const value = param.dataFormat === 'date-time' && param.value instanceof Date
|
|
22479
|
+
? param.value.toISOString()
|
|
22480
|
+
: param.value;
|
|
22481
|
+
return encodeURIComponent(String(value));
|
|
22482
|
+
}
|
|
22483
|
+
}
|
|
22484
|
+
|
|
22485
|
+
/**
|
|
22486
|
+
* Filter API 2
|
|
22487
|
+
* Filter API 2
|
|
22488
|
+
*
|
|
22489
|
+
* The version of the OpenAPI document: 1.0.0
|
|
22490
|
+
* Contact: info@it4all.hu
|
|
22491
|
+
*
|
|
22492
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
22493
|
+
* https://openapi-generator.tech
|
|
22494
|
+
* Do not edit the class manually.
|
|
22495
|
+
*/
|
|
22496
|
+
/* tslint:disable:no-unused-variable member-ordering */
|
|
22497
|
+
class FilterService {
|
|
22498
|
+
constructor(httpClient, basePath, configuration) {
|
|
22499
|
+
this.httpClient = httpClient;
|
|
22500
|
+
this.basePath = 'http://localhost';
|
|
22501
|
+
this.defaultHeaders = new HttpHeaders();
|
|
22502
|
+
this.configuration = new Configuration();
|
|
22503
|
+
if (configuration) {
|
|
22504
|
+
this.configuration = configuration;
|
|
22446
22505
|
}
|
|
22447
|
-
if (
|
|
22448
|
-
|
|
22449
|
-
|
|
22450
|
-
|
|
22506
|
+
if (typeof this.configuration.basePath !== 'string') {
|
|
22507
|
+
if (Array.isArray(basePath) && basePath.length > 0) {
|
|
22508
|
+
basePath = basePath[0];
|
|
22509
|
+
}
|
|
22510
|
+
if (typeof basePath !== 'string') {
|
|
22511
|
+
basePath = this.basePath;
|
|
22512
|
+
}
|
|
22513
|
+
this.configuration.basePath = basePath;
|
|
22451
22514
|
}
|
|
22452
|
-
|
|
22453
|
-
|
|
22454
|
-
|
|
22455
|
-
|
|
22456
|
-
|
|
22457
|
-
|
|
22458
|
-
// Top-level layout: detach embedded views before the tree is re-rendered,
|
|
22459
|
-
// so they survive *ngFor component destruction
|
|
22460
|
-
if (!this.parentLayoutComponent && this.uuid) {
|
|
22461
|
-
this.viewContext.detachAllEmbeddedViews(this.uuid);
|
|
22462
|
-
this.pendingOrphanCleanup = true;
|
|
22515
|
+
this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
|
|
22516
|
+
}
|
|
22517
|
+
// @ts-ignore
|
|
22518
|
+
addToHttpParams(httpParams, value, key) {
|
|
22519
|
+
if (typeof value === "object" && value instanceof Date === false) {
|
|
22520
|
+
httpParams = this.addToHttpParamsRecursive(httpParams, value);
|
|
22463
22521
|
}
|
|
22464
|
-
|
|
22465
|
-
|
|
22466
|
-
// template-related element, so no stale data is left on screen:
|
|
22467
|
-
this.expandableSection = undefined;
|
|
22468
|
-
this.smartForm = undefined;
|
|
22469
|
-
this.smartFormComponent = undefined;
|
|
22470
|
-
this.smartGrid = undefined;
|
|
22471
|
-
this.smartGridComponent = undefined;
|
|
22472
|
-
this.smartFilter = undefined;
|
|
22473
|
-
this.smartFilterComponent = undefined;
|
|
22474
|
-
this.smartGrid = undefined;
|
|
22475
|
-
this.toolbarId = undefined;
|
|
22476
|
-
this.toolbar = undefined;
|
|
22477
|
-
// null out toolbar?
|
|
22478
|
-
this.mapId = undefined;
|
|
22479
|
-
this.smartDiagramId = undefined;
|
|
22480
|
-
if (this.embeddedSlotContainerId && this.uuid) {
|
|
22481
|
-
this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
|
|
22482
|
-
}
|
|
22483
|
-
this.embeddedSlotActive = false;
|
|
22484
|
-
this.embeddedSlotContainerId = undefined;
|
|
22485
|
-
if (this.smartComponentLayout?.expandable) {
|
|
22486
|
-
this.constructExpandableSection();
|
|
22522
|
+
else {
|
|
22523
|
+
httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
|
|
22487
22524
|
}
|
|
22488
|
-
|
|
22489
|
-
|
|
22525
|
+
return httpParams;
|
|
22526
|
+
}
|
|
22527
|
+
addToHttpParamsRecursive(httpParams, value, key) {
|
|
22528
|
+
if (value == null) {
|
|
22529
|
+
return httpParams;
|
|
22490
22530
|
}
|
|
22491
|
-
|
|
22492
|
-
if (
|
|
22493
|
-
this.
|
|
22494
|
-
}
|
|
22495
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.FILTER) {
|
|
22496
|
-
console.warn('ComponentWidgetType.FILTER is not supported');
|
|
22497
|
-
// this.constructFilter();
|
|
22498
|
-
}
|
|
22499
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TREE) {
|
|
22500
|
-
this.constructTree();
|
|
22501
|
-
}
|
|
22502
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TOOLBAR) {
|
|
22503
|
-
this.constructToolbar();
|
|
22504
|
-
}
|
|
22505
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.MAP) {
|
|
22506
|
-
this.constructMap();
|
|
22507
|
-
}
|
|
22508
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.DIAGRAM) {
|
|
22509
|
-
this.construcDiagram();
|
|
22531
|
+
if (typeof value === "object") {
|
|
22532
|
+
if (Array.isArray(value)) {
|
|
22533
|
+
value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
|
|
22510
22534
|
}
|
|
22511
|
-
else if (
|
|
22512
|
-
|
|
22535
|
+
else if (value instanceof Date) {
|
|
22536
|
+
if (key != null) {
|
|
22537
|
+
httpParams = httpParams.append(key, value.toISOString().substr(0, 10));
|
|
22538
|
+
}
|
|
22539
|
+
else {
|
|
22540
|
+
throw Error("key may not be null if value is Date");
|
|
22541
|
+
}
|
|
22513
22542
|
}
|
|
22514
|
-
|
|
22515
|
-
|
|
22516
|
-
this.parentSmartComponent.initActions();
|
|
22543
|
+
else {
|
|
22544
|
+
Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
|
|
22517
22545
|
}
|
|
22518
22546
|
}
|
|
22519
|
-
|
|
22520
|
-
|
|
22521
|
-
type() {
|
|
22522
|
-
return ComponentType;
|
|
22523
|
-
}
|
|
22524
|
-
constructExpandableSection() {
|
|
22525
|
-
let data = { ...this.smartComponentLayout };
|
|
22526
|
-
data.expandable = false;
|
|
22527
|
-
this.expandableSection = {
|
|
22528
|
-
title: this.smartComponentLayout?.expandableSectionLabel ?? '',
|
|
22529
|
-
inputs: new Map([
|
|
22530
|
-
['smartComponentLayout', data],
|
|
22531
|
-
['parentSmartComponent', this.parentSmartComponent],
|
|
22532
|
-
['parentLayoutComponent', this.parentLayoutComponent],
|
|
22533
|
-
]),
|
|
22534
|
-
headerToolbarId: this.smartComponentLayout?.expandableSectionHeaderToolbarId,
|
|
22535
|
-
customComponent: SmartComponentLayoutComponent,
|
|
22536
|
-
};
|
|
22537
|
-
}
|
|
22538
|
-
constructForm() {
|
|
22539
|
-
const widgets = this.layoutService.render({
|
|
22540
|
-
layoutDefinitions: this.smartComponentLayout?.form,
|
|
22541
|
-
});
|
|
22542
|
-
if (this.gridRow && !this.gridRow.valueSets && this.parentSmartComponent?.model) {
|
|
22543
|
-
this.gridRow.valueSets = this.parentSmartComponent.model.valueSets;
|
|
22547
|
+
else if (key != null) {
|
|
22548
|
+
httpParams = httpParams.append(key, value);
|
|
22544
22549
|
}
|
|
22545
|
-
|
|
22546
|
-
|
|
22547
|
-
componentModel: this.gridRow ? this.gridRow : this.parentSmartComponent?.model,
|
|
22548
|
-
widgets,
|
|
22549
|
-
};
|
|
22550
|
-
this.bindForm();
|
|
22551
|
-
}
|
|
22552
|
-
getFormLayout() {
|
|
22553
|
-
if (this.smartComponentLayout?.direction) {
|
|
22554
|
-
return this.smartComponentLayout?.direction === LayoutDirection.HORIZONTAL
|
|
22555
|
-
? SmartFormWidgetDirection.ROW
|
|
22556
|
-
: SmartFormWidgetDirection.COL;
|
|
22550
|
+
else {
|
|
22551
|
+
throw Error("key may not be null if value is not object or array");
|
|
22557
22552
|
}
|
|
22558
|
-
return
|
|
22553
|
+
return httpParams;
|
|
22559
22554
|
}
|
|
22560
|
-
|
|
22561
|
-
if (
|
|
22562
|
-
|
|
22563
|
-
this.bindForm();
|
|
22555
|
+
load(uuid, filterIdentifier, observe = 'body', reportProgress = false, options) {
|
|
22556
|
+
if (uuid === null || uuid === undefined) {
|
|
22557
|
+
throw new Error('Required parameter uuid was null or undefined when calling load.');
|
|
22564
22558
|
}
|
|
22565
|
-
|
|
22566
|
-
|
|
22567
|
-
if (this.parentSmartComponent?.useQueryLists) {
|
|
22568
|
-
return;
|
|
22559
|
+
if (filterIdentifier === null || filterIdentifier === undefined) {
|
|
22560
|
+
throw new Error('Required parameter filterIdentifier was null or undefined when calling load.');
|
|
22569
22561
|
}
|
|
22570
|
-
|
|
22571
|
-
|
|
22572
|
-
|
|
22573
|
-
|
|
22562
|
+
let localVarHeaders = this.defaultHeaders;
|
|
22563
|
+
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
22564
|
+
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
22565
|
+
// to determine the Accept header
|
|
22566
|
+
const httpHeaderAccepts = [
|
|
22567
|
+
'application/json'
|
|
22568
|
+
];
|
|
22569
|
+
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
22574
22570
|
}
|
|
22575
|
-
|
|
22576
|
-
|
|
22577
|
-
let result = '';
|
|
22578
|
-
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
22579
|
-
const charactersLength = characters.length;
|
|
22580
|
-
let counter = 0;
|
|
22581
|
-
while (counter < length) {
|
|
22582
|
-
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
22583
|
-
counter += 1;
|
|
22571
|
+
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
22572
|
+
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
|
|
22584
22573
|
}
|
|
22585
|
-
|
|
22586
|
-
|
|
22587
|
-
|
|
22588
|
-
this.smartGrid = {
|
|
22589
|
-
gridIdentifier: this.smartComponentLayout?.widget?.identifier,
|
|
22590
|
-
gridModel: {
|
|
22591
|
-
page: {},
|
|
22592
|
-
},
|
|
22593
|
-
options: {
|
|
22594
|
-
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
22595
|
-
},
|
|
22596
|
-
layoutDef: SmartLayoutDef.TABLE,
|
|
22597
|
-
paginator: false,
|
|
22598
|
-
layoutComponent: SmartComponentLayoutComponent,
|
|
22599
|
-
layoutUtility: SmartComponentLayoutUtility,
|
|
22600
|
-
};
|
|
22601
|
-
this.bindGrid();
|
|
22602
|
-
}
|
|
22603
|
-
setGridComponent(comp) {
|
|
22604
|
-
if (!this.smartGridComponent) {
|
|
22605
|
-
this.smartGridComponent = comp;
|
|
22606
|
-
this.bindGrid();
|
|
22574
|
+
let localVarHttpContext = options && options.context;
|
|
22575
|
+
if (localVarHttpContext === undefined) {
|
|
22576
|
+
localVarHttpContext = new HttpContext();
|
|
22607
22577
|
}
|
|
22608
|
-
|
|
22609
|
-
|
|
22610
|
-
|
|
22611
|
-
|
|
22612
|
-
|
|
22578
|
+
let responseType_ = 'json';
|
|
22579
|
+
if (localVarHttpHeaderAcceptSelected) {
|
|
22580
|
+
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
22581
|
+
responseType_ = 'text';
|
|
22582
|
+
}
|
|
22583
|
+
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
22584
|
+
responseType_ = 'json';
|
|
22585
|
+
}
|
|
22586
|
+
else {
|
|
22587
|
+
responseType_ = 'blob';
|
|
22613
22588
|
}
|
|
22614
|
-
return;
|
|
22615
|
-
}
|
|
22616
|
-
if (this.smartGrid && this.smartGridComponent) {
|
|
22617
|
-
this.smartGrid = this.parentSmartComponent?.addGrid(this.smartGrid, {
|
|
22618
|
-
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
22619
|
-
}, false, this.smartGridComponent);
|
|
22620
22589
|
}
|
|
22590
|
+
let localVarPath = `/filter/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "filterIdentifier", value: filterIdentifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/load`;
|
|
22591
|
+
return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
|
|
22592
|
+
context: localVarHttpContext,
|
|
22593
|
+
responseType: responseType_,
|
|
22594
|
+
withCredentials: this.configuration.withCredentials,
|
|
22595
|
+
headers: localVarHeaders,
|
|
22596
|
+
observe: observe,
|
|
22597
|
+
reportProgress: reportProgress
|
|
22598
|
+
});
|
|
22621
22599
|
}
|
|
22622
|
-
|
|
22623
|
-
|
|
22624
|
-
|
|
22625
|
-
}
|
|
22626
|
-
construcDiagram() {
|
|
22627
|
-
this.smartDiagramId = this.smartComponentLayout?.widget?.identifier;
|
|
22628
|
-
this.bindDiagram();
|
|
22629
|
-
}
|
|
22630
|
-
setMapComponent(comp) {
|
|
22631
|
-
if (!this.smartMapComponent) {
|
|
22632
|
-
this.smartMapComponent = comp;
|
|
22633
|
-
this.bindMap();
|
|
22600
|
+
performWidgetAction(uuid, filterIdentifier, body, observe = 'body', reportProgress = false, options) {
|
|
22601
|
+
if (uuid === null || uuid === undefined) {
|
|
22602
|
+
throw new Error('Required parameter uuid was null or undefined when calling performWidgetAction.');
|
|
22634
22603
|
}
|
|
22635
|
-
|
|
22636
|
-
|
|
22637
|
-
if (!this.smartDiagramComponent) {
|
|
22638
|
-
this.smartDiagramComponent = comp;
|
|
22639
|
-
this.bindDiagram();
|
|
22604
|
+
if (filterIdentifier === null || filterIdentifier === undefined) {
|
|
22605
|
+
throw new Error('Required parameter filterIdentifier was null or undefined when calling performWidgetAction.');
|
|
22640
22606
|
}
|
|
22641
|
-
|
|
22642
|
-
|
|
22643
|
-
if (this.parentSmartComponent.useQueryLists) {
|
|
22644
|
-
return;
|
|
22607
|
+
if (body === null || body === undefined) {
|
|
22608
|
+
throw new Error('Required parameter body was null or undefined when calling performWidgetAction.');
|
|
22645
22609
|
}
|
|
22646
|
-
|
|
22647
|
-
|
|
22648
|
-
|
|
22649
|
-
|
|
22650
|
-
|
|
22610
|
+
let localVarHeaders = this.defaultHeaders;
|
|
22611
|
+
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
22612
|
+
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
22613
|
+
// to determine the Accept header
|
|
22614
|
+
const httpHeaderAccepts = [
|
|
22615
|
+
'application/json'
|
|
22616
|
+
];
|
|
22617
|
+
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
22651
22618
|
}
|
|
22652
|
-
|
|
22653
|
-
|
|
22654
|
-
setToolbarComponent(comp) {
|
|
22655
|
-
this.toolbar = comp;
|
|
22656
|
-
}
|
|
22657
|
-
// NOT USED, DOESN'T WORK
|
|
22658
|
-
// constructFilter(): void {
|
|
22659
|
-
// this.smartFilter = (this.smartComponentLayout!.parentComponent as any).addFilter(
|
|
22660
|
-
// `filter_${this.makeid(5)}`,
|
|
22661
|
-
// this.smartComponentLayout?.widget?.filterExpressionFieldList,
|
|
22662
|
-
// this.smartComponentLayout?.widget?.filterType,
|
|
22663
|
-
// this.smartFilterComponent
|
|
22664
|
-
// );
|
|
22665
|
-
// }
|
|
22666
|
-
bindFilter() {
|
|
22667
|
-
// TODO
|
|
22668
|
-
}
|
|
22669
|
-
constructTree() {
|
|
22670
|
-
if (this.parentSmartComponent?.useQueryLists) {
|
|
22671
|
-
return;
|
|
22619
|
+
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
22620
|
+
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
|
|
22672
22621
|
}
|
|
22673
|
-
|
|
22674
|
-
|
|
22675
|
-
|
|
22676
|
-
constructToolbar() {
|
|
22677
|
-
let toolbarId = this.smartComponentLayout?.widget?.identifier;
|
|
22678
|
-
if (this.toolbarId !== toolbarId) {
|
|
22679
|
-
this.toolbarId = toolbarId;
|
|
22622
|
+
let localVarHttpContext = options && options.context;
|
|
22623
|
+
if (localVarHttpContext === undefined) {
|
|
22624
|
+
localVarHttpContext = new HttpContext();
|
|
22680
22625
|
}
|
|
22681
|
-
|
|
22682
|
-
|
|
22683
|
-
|
|
22626
|
+
// to determine the Content-Type header
|
|
22627
|
+
const consumes = [
|
|
22628
|
+
'application/json'
|
|
22629
|
+
];
|
|
22630
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
22631
|
+
if (httpContentTypeSelected !== undefined) {
|
|
22632
|
+
localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
|
|
22684
22633
|
}
|
|
22634
|
+
let responseType_ = 'json';
|
|
22635
|
+
if (localVarHttpHeaderAcceptSelected) {
|
|
22636
|
+
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
22637
|
+
responseType_ = 'text';
|
|
22638
|
+
}
|
|
22639
|
+
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
22640
|
+
responseType_ = 'json';
|
|
22641
|
+
}
|
|
22642
|
+
else {
|
|
22643
|
+
responseType_ = 'blob';
|
|
22644
|
+
}
|
|
22645
|
+
}
|
|
22646
|
+
let localVarPath = `/filter/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "filterIdentifier", value: filterIdentifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/performWidgetAction`;
|
|
22647
|
+
return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
|
|
22648
|
+
context: localVarHttpContext,
|
|
22649
|
+
body: body,
|
|
22650
|
+
responseType: responseType_,
|
|
22651
|
+
withCredentials: this.configuration.withCredentials,
|
|
22652
|
+
headers: localVarHeaders,
|
|
22653
|
+
observe: observe,
|
|
22654
|
+
reportProgress: reportProgress
|
|
22655
|
+
});
|
|
22685
22656
|
}
|
|
22686
|
-
|
|
22687
|
-
|
|
22688
|
-
|
|
22689
|
-
|
|
22657
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22658
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, providedIn: 'root' }); }
|
|
22659
|
+
}
|
|
22660
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, decorators: [{
|
|
22661
|
+
type: Injectable,
|
|
22662
|
+
args: [{
|
|
22663
|
+
providedIn: 'root'
|
|
22664
|
+
}]
|
|
22665
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
22666
|
+
type: Optional
|
|
22667
|
+
}, {
|
|
22668
|
+
type: Inject,
|
|
22669
|
+
args: [BASE_PATH]
|
|
22670
|
+
}] }, { type: Configuration, decorators: [{
|
|
22671
|
+
type: Optional
|
|
22672
|
+
}] }] });
|
|
22673
|
+
|
|
22674
|
+
class SmartFilterEditorService {
|
|
22675
|
+
constructor(service, viewCtxService) {
|
|
22676
|
+
this.service = service;
|
|
22677
|
+
this.viewCtxService = viewCtxService;
|
|
22678
|
+
this.modelChanged = new Subject();
|
|
22679
|
+
this.submit = new Subject();
|
|
22680
|
+
this.itemSelected = new Subject();
|
|
22681
|
+
this.toolbars = [];
|
|
22690
22682
|
}
|
|
22691
|
-
|
|
22692
|
-
|
|
22693
|
-
|
|
22694
|
-
|
|
22695
|
-
|
|
22696
|
-
|
|
22683
|
+
submitForm(validate) {
|
|
22684
|
+
// NOPE
|
|
22685
|
+
}
|
|
22686
|
+
getInvalidFields() {
|
|
22687
|
+
return { invalidFieldKeys: [], invalidFieldNames: [] };
|
|
22688
|
+
}
|
|
22689
|
+
getComplexToolbars() {
|
|
22690
|
+
return [...this.toolbars];
|
|
22691
|
+
}
|
|
22692
|
+
setComplexToolbars(toolbars) {
|
|
22693
|
+
this.toolbars = [...toolbars];
|
|
22694
|
+
this.parentSmartComponent?.initActions();
|
|
22695
|
+
}
|
|
22696
|
+
async load() {
|
|
22697
|
+
if (this.config.uuid) {
|
|
22698
|
+
this.model = await this.service.load(this.config.uuid, this.config.identifier).toPromise();
|
|
22699
|
+
this.modelChanged.next();
|
|
22697
22700
|
}
|
|
22698
22701
|
}
|
|
22699
|
-
|
|
22700
|
-
|
|
22701
|
-
|
|
22702
|
-
|
|
22703
|
-
|
|
22704
|
-
|
|
22702
|
+
async peformWidgetAction(request) {
|
|
22703
|
+
if (this.config.uuid) {
|
|
22704
|
+
let filterView = this.viewCtxService
|
|
22705
|
+
.getCurrentViewContext()
|
|
22706
|
+
?.views.find((view) => view.uuid == this.config.uuid);
|
|
22707
|
+
if (filterView && filterView.state != ViewState.CLOSED) {
|
|
22708
|
+
this.model = await this.service
|
|
22709
|
+
.performWidgetAction(this.config.uuid, this.config.identifier, request)
|
|
22710
|
+
.toPromise();
|
|
22711
|
+
this.modelChanged.next();
|
|
22705
22712
|
}
|
|
22706
|
-
this.tryRegisterEmbeddedSlot();
|
|
22707
22713
|
}
|
|
22708
22714
|
}
|
|
22709
|
-
|
|
22710
|
-
|
|
22711
|
-
}
|
|
22712
|
-
|
|
22713
|
-
|
|
22714
|
-
|
|
22715
|
-
|
|
22716
|
-
type: Input
|
|
22717
|
-
}], parentLayoutComponent: [{
|
|
22718
|
-
type: Input
|
|
22719
|
-
}], parentSmartComponent: [{
|
|
22720
|
-
type: Input
|
|
22721
|
-
}], gridRow: [{
|
|
22722
|
-
type: Input
|
|
22723
|
-
}], testId: [{
|
|
22724
|
-
type: HostBinding,
|
|
22725
|
-
args: ['attr.data-testid']
|
|
22726
|
-
}], isHorizontal: [{
|
|
22727
|
-
type: HostBinding,
|
|
22728
|
-
args: ['class.horizontal']
|
|
22729
|
-
}], isVertical: [{
|
|
22730
|
-
type: HostBinding,
|
|
22731
|
-
args: ['class.vertical']
|
|
22732
|
-
}], smartFormList: [{
|
|
22733
|
-
type: ViewChildren,
|
|
22734
|
-
args: ['form']
|
|
22735
|
-
}], smartGridList: [{
|
|
22736
|
-
type: ViewChildren,
|
|
22737
|
-
args: ['grid']
|
|
22738
|
-
}], smartMapList: [{
|
|
22739
|
-
type: ViewChildren,
|
|
22740
|
-
args: ['map']
|
|
22741
|
-
}], smartDiagramList: [{
|
|
22742
|
-
type: ViewChildren,
|
|
22743
|
-
args: ['diagram']
|
|
22744
|
-
}], smartFilterList: [{
|
|
22745
|
-
type: ViewChildren,
|
|
22746
|
-
args: ['filter']
|
|
22747
|
-
}], toolbarList: [{
|
|
22748
|
-
type: ViewChildren,
|
|
22749
|
-
args: ['toolbar']
|
|
22750
|
-
}], embeddedSlotVcRefSetter: [{
|
|
22751
|
-
type: ViewChild,
|
|
22752
|
-
args: ['embeddedSlot', { read: ViewContainerRef, static: false }]
|
|
22753
|
-
}], expandableComponents: [{
|
|
22754
|
-
type: ViewChildren,
|
|
22755
|
-
args: [ExpandableSectionComponent]
|
|
22756
|
-
}], components: [{
|
|
22757
|
-
type: ViewChildren,
|
|
22758
|
-
args: [SmartComponentLayoutComponent]
|
|
22759
|
-
}] } });
|
|
22760
|
-
|
|
22761
|
-
const DEFAULT_PROVIDERS = [
|
|
22762
|
-
DefaultChartOptionsProvider,
|
|
22763
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: barChart, multi: true },
|
|
22764
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: scatterChart, multi: true },
|
|
22765
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: bubbleChart, multi: true },
|
|
22766
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalBarChart, multi: true },
|
|
22767
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: stackedBarChart, multi: true },
|
|
22768
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalStackedBarChart, multi: true },
|
|
22769
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: multiAxisLineChart, multi: true },
|
|
22770
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: polarAreaChart, multi: true },
|
|
22771
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: radarChart, multi: true },
|
|
22772
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: doughnutChart, multi: true },
|
|
22773
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: pieChart, multi: true },
|
|
22774
|
-
];
|
|
22775
|
-
class SmartDiagramModule {
|
|
22776
|
-
static forRoot(providers) {
|
|
22715
|
+
getModel() {
|
|
22716
|
+
return this.model;
|
|
22717
|
+
}
|
|
22718
|
+
async performUiActionRequest(uiActionRequest, widgetId, nodeId) {
|
|
22719
|
+
await this.peformWidgetAction(uiActionRequest);
|
|
22720
|
+
}
|
|
22721
|
+
async handleSpecificDemandsAsynchronously(uiAction, uiActionRequest) {
|
|
22777
22722
|
return {
|
|
22778
|
-
|
|
22779
|
-
|
|
22723
|
+
shouldPerformAction: true,
|
|
22724
|
+
uiActionRequest: uiActionRequest,
|
|
22780
22725
|
};
|
|
22781
22726
|
}
|
|
22782
|
-
|
|
22783
|
-
|
|
22784
|
-
|
|
22785
|
-
|
|
22786
|
-
|
|
22787
|
-
|
|
22788
|
-
|
|
22789
|
-
|
|
22790
|
-
|
|
22791
|
-
|
|
22792
|
-
|
|
22793
|
-
|
|
22794
|
-
|
|
22795
|
-
|
|
22796
|
-
|
|
22797
|
-
|
|
22798
|
-
|
|
22799
|
-
|
|
22800
|
-
|
|
22801
|
-
SmarttreeModule,
|
|
22802
|
-
SmartViewContextModule,
|
|
22803
|
-
SmartMapModule,
|
|
22804
|
-
SmartDiagramModule,
|
|
22805
|
-
InputGroupModule,
|
|
22806
|
-
InputGroupAddonModule], exports: [SmartComponentLayoutComponent] }); }
|
|
22807
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, imports: [BrowserModule,
|
|
22808
|
-
MatCommonModule,
|
|
22809
|
-
SmartGridModule,
|
|
22810
|
-
SmartExpandableSectionModule,
|
|
22811
|
-
SmarttreeModule,
|
|
22812
|
-
SmartViewContextModule,
|
|
22813
|
-
SmartMapModule,
|
|
22814
|
-
SmartDiagramModule,
|
|
22815
|
-
InputGroupModule,
|
|
22816
|
-
InputGroupAddonModule] }); }
|
|
22727
|
+
getAdditionalParams(uiAction) {
|
|
22728
|
+
throw new Error('Method not implemented.');
|
|
22729
|
+
}
|
|
22730
|
+
async bulkUpdateFilterExpression(operationType, item) {
|
|
22731
|
+
if (!this.model?.readOnly) {
|
|
22732
|
+
if (item) {
|
|
22733
|
+
item.expressionData.boolOperator = operationType;
|
|
22734
|
+
}
|
|
22735
|
+
await this.peformWidgetAction({
|
|
22736
|
+
code: 'BULK_UPDATE_FILTER_EXPRESSION',
|
|
22737
|
+
params: {
|
|
22738
|
+
model: item,
|
|
22739
|
+
operator: operationType,
|
|
22740
|
+
},
|
|
22741
|
+
});
|
|
22742
|
+
}
|
|
22743
|
+
}
|
|
22744
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorService, deps: [{ token: FilterService }, { token: SmartViewContextService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22745
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorService }); }
|
|
22817
22746
|
}
|
|
22818
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type:
|
|
22819
|
-
type:
|
|
22820
|
-
|
|
22821
|
-
declarations: [SmartComponentLayoutComponent],
|
|
22822
|
-
imports: [
|
|
22823
|
-
BrowserModule,
|
|
22824
|
-
MatCommonModule,
|
|
22825
|
-
SmartGridModule,
|
|
22826
|
-
SmartExpandableSectionModule,
|
|
22827
|
-
SmarttreeModule,
|
|
22828
|
-
SmartViewContextModule,
|
|
22829
|
-
SmartMapModule,
|
|
22830
|
-
SmartDiagramModule,
|
|
22831
|
-
InputGroupModule,
|
|
22832
|
-
InputGroupAddonModule,
|
|
22833
|
-
],
|
|
22834
|
-
exports: [SmartComponentLayoutComponent],
|
|
22835
|
-
providers: [],
|
|
22836
|
-
}]
|
|
22837
|
-
}] });
|
|
22747
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorService, decorators: [{
|
|
22748
|
+
type: Injectable
|
|
22749
|
+
}], ctorParameters: () => [{ type: FilterService }, { type: SmartViewContextService }] });
|
|
22838
22750
|
|
|
22839
22751
|
class SmartFilterParamComponent {
|
|
22840
22752
|
constructor() { }
|
|
@@ -23468,397 +23380,516 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
23468
23380
|
type: Optional
|
|
23469
23381
|
}] }], propDecorators: { service: [{
|
|
23470
23382
|
type: Input
|
|
23471
|
-
}], vcRef: [{
|
|
23472
|
-
type: ViewChild,
|
|
23473
|
-
args: ['form', { read: ViewContainerRef }]
|
|
23474
|
-
}], simpleFilterVcRef: [{
|
|
23383
|
+
}], vcRef: [{
|
|
23384
|
+
type: ViewChild,
|
|
23385
|
+
args: ['form', { read: ViewContainerRef }]
|
|
23386
|
+
}], simpleFilterVcRef: [{
|
|
23387
|
+
type: ViewChild,
|
|
23388
|
+
args: ['simpleFilterFromChild', { read: ViewContainerRef }]
|
|
23389
|
+
}] } });
|
|
23390
|
+
|
|
23391
|
+
/**
|
|
23392
|
+
* A filter builder placed in a component layout. The identifier is the builder's filterId in the
|
|
23393
|
+
* view: the widget loads the builder by it, and the client above the layout finds the widget by it
|
|
23394
|
+
* for push updates and toolbar collection. Each widget owns its own SmartFilterEditorService.
|
|
23395
|
+
*/
|
|
23396
|
+
class SmartFilterWidgetComponent {
|
|
23397
|
+
// A template reference instead of the class token: a value import of the editor would pull
|
|
23398
|
+
// the library's module cycle into this file. The editor subscribes to modelChanged in its own
|
|
23399
|
+
// ngAfterViewInit, which runs before this setter fires, so the action refresh below always
|
|
23400
|
+
// follows the editor's toolbar rebuild.
|
|
23401
|
+
set contentComponentSetter(comp) {
|
|
23402
|
+
if (comp && !this.contentComponent) {
|
|
23403
|
+
this.service.modelChanged
|
|
23404
|
+
.pipe(takeUntil(this._destroy$))
|
|
23405
|
+
.subscribe(() => this.parent?.initActions());
|
|
23406
|
+
}
|
|
23407
|
+
this.contentComponent = comp;
|
|
23408
|
+
}
|
|
23409
|
+
constructor(service) {
|
|
23410
|
+
this.service = service;
|
|
23411
|
+
this._destroy$ = new Subject();
|
|
23412
|
+
}
|
|
23413
|
+
ngOnChanges() {
|
|
23414
|
+
this.service.config = { uuid: this.uuid, identifier: this.identifier };
|
|
23415
|
+
this.service.parentSmartComponent = this.parent;
|
|
23416
|
+
if (this.uuid) {
|
|
23417
|
+
this.service.load();
|
|
23418
|
+
}
|
|
23419
|
+
}
|
|
23420
|
+
ngOnDestroy() {
|
|
23421
|
+
this._destroy$.next();
|
|
23422
|
+
this._destroy$.complete();
|
|
23423
|
+
}
|
|
23424
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterWidgetComponent, deps: [{ token: SmartFilterEditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23425
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartFilterWidgetComponent, selector: "smart-filter-widget", inputs: { uuid: "uuid", identifier: "identifier", parent: "parent" }, providers: [SmartFilterEditorService], viewQueries: [{ propertyName: "contentComponentSetter", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"filter-widget-container\" *ngIf=\"service.model\">\r\n <smart-filter-group-params [service]=\"service\"></smart-filter-group-params>\r\n <smart-filter-expression-editor #editor [service]=\"service\"></smart-filter-expression-editor>\r\n</div>\r\n", styles: [".filter-widget-container{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SmartFilterParamsComponent, selector: "smart-filter-group-params", inputs: ["service"] }, { kind: "component", type: SmartFilterEditorContentComponent, selector: "smart-filter-expression-editor", inputs: ["service"] }] }); }
|
|
23426
|
+
}
|
|
23427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterWidgetComponent, decorators: [{
|
|
23428
|
+
type: Component,
|
|
23429
|
+
args: [{ selector: 'smart-filter-widget', providers: [SmartFilterEditorService], template: "<div class=\"filter-widget-container\" *ngIf=\"service.model\">\r\n <smart-filter-group-params [service]=\"service\"></smart-filter-group-params>\r\n <smart-filter-expression-editor #editor [service]=\"service\"></smart-filter-expression-editor>\r\n</div>\r\n", styles: [".filter-widget-container{display:flex;flex-direction:row}\n"] }]
|
|
23430
|
+
}], ctorParameters: () => [{ type: SmartFilterEditorService }], propDecorators: { uuid: [{
|
|
23431
|
+
type: Input
|
|
23432
|
+
}], identifier: [{
|
|
23433
|
+
type: Input
|
|
23434
|
+
}], parent: [{
|
|
23435
|
+
type: Input
|
|
23436
|
+
}], contentComponentSetter: [{
|
|
23475
23437
|
type: ViewChild,
|
|
23476
|
-
args: ['
|
|
23438
|
+
args: ['editor']
|
|
23477
23439
|
}] } });
|
|
23478
23440
|
|
|
23479
|
-
|
|
23480
|
-
|
|
23481
|
-
|
|
23482
|
-
*/
|
|
23483
|
-
class CustomHttpParameterCodec {
|
|
23484
|
-
encodeKey(k) {
|
|
23485
|
-
return encodeURIComponent(k);
|
|
23441
|
+
class SmartComponentLayoutComponent {
|
|
23442
|
+
get testId() {
|
|
23443
|
+
return this.smartComponentLayout?.identifier ?? null;
|
|
23486
23444
|
}
|
|
23487
|
-
|
|
23488
|
-
return
|
|
23445
|
+
get isHorizontal() {
|
|
23446
|
+
return (this.smartComponentLayout?.type === this.type().CONTAINER &&
|
|
23447
|
+
this.smartComponentLayout?.direction === 'horizontal');
|
|
23489
23448
|
}
|
|
23490
|
-
|
|
23491
|
-
return
|
|
23449
|
+
get isVertical() {
|
|
23450
|
+
return (this.smartComponentLayout?.type === this.type().CONTAINER &&
|
|
23451
|
+
(this.smartComponentLayout?.direction ?? 'vertical') === 'vertical');
|
|
23492
23452
|
}
|
|
23493
|
-
|
|
23494
|
-
|
|
23453
|
+
set embeddedSlotVcRefSetter(vcRef) {
|
|
23454
|
+
this._embeddedSlotVcRef = vcRef;
|
|
23455
|
+
if (vcRef) {
|
|
23456
|
+
this.tryRegisterEmbeddedSlot();
|
|
23457
|
+
}
|
|
23495
23458
|
}
|
|
23496
|
-
|
|
23497
|
-
|
|
23498
|
-
|
|
23499
|
-
|
|
23500
|
-
|
|
23501
|
-
|
|
23502
|
-
|
|
23503
|
-
|
|
23504
|
-
|
|
23505
|
-
|
|
23506
|
-
|
|
23507
|
-
|
|
23508
|
-
|
|
23509
|
-
|
|
23510
|
-
|
|
23511
|
-
|
|
23512
|
-
this.
|
|
23513
|
-
this.
|
|
23514
|
-
|
|
23515
|
-
|
|
23516
|
-
|
|
23459
|
+
constructor(layoutService, viewContext, element, renderer) {
|
|
23460
|
+
this.layoutService = layoutService;
|
|
23461
|
+
this.viewContext = viewContext;
|
|
23462
|
+
this.element = element;
|
|
23463
|
+
this.renderer = renderer;
|
|
23464
|
+
this._destroy$ = new Subject();
|
|
23465
|
+
this.appRef = inject(ApplicationRef);
|
|
23466
|
+
this.formRef = viewChild(SmartformComponent);
|
|
23467
|
+
this.onFormChange = effect(() => {
|
|
23468
|
+
const form = this.formRef();
|
|
23469
|
+
if (this.smartForm && form && this.parentSmartComponent) {
|
|
23470
|
+
this.parentSmartComponent.handleDataChangeSubscriptions(form);
|
|
23471
|
+
this.parentSmartComponent.handleUploadCallback(form);
|
|
23472
|
+
form.markAllWidgetsForChangeDetection();
|
|
23473
|
+
}
|
|
23474
|
+
});
|
|
23475
|
+
this.pendingOrphanCleanup = false;
|
|
23476
|
+
this.embeddedSlotActive = false;
|
|
23477
|
+
}
|
|
23478
|
+
ngAfterViewInit() {
|
|
23479
|
+
if (this.smartFormList?.first) {
|
|
23480
|
+
this.setFormComponent(this.smartFormList?.first);
|
|
23517
23481
|
}
|
|
23518
|
-
|
|
23519
|
-
|
|
23482
|
+
this.smartFormList.changes
|
|
23483
|
+
.pipe(takeUntil(this._destroy$))
|
|
23484
|
+
.subscribe((list) => {
|
|
23485
|
+
this.setFormComponent(list.first);
|
|
23486
|
+
});
|
|
23487
|
+
if (this.smartGridList?.first) {
|
|
23488
|
+
this.setGridComponent(this.smartGridList?.first);
|
|
23520
23489
|
}
|
|
23521
|
-
|
|
23522
|
-
this.
|
|
23490
|
+
this.smartGridList.changes
|
|
23491
|
+
.pipe(takeUntil(this._destroy$))
|
|
23492
|
+
.subscribe((list) => {
|
|
23493
|
+
this.setGridComponent(list.first);
|
|
23494
|
+
});
|
|
23495
|
+
if (this.smartMapList?.first) {
|
|
23496
|
+
this.setMapComponent(this.smartMapList?.first);
|
|
23523
23497
|
}
|
|
23524
|
-
|
|
23525
|
-
this.
|
|
23498
|
+
this.smartMapList.changes.pipe(takeUntil(this._destroy$)).subscribe((maps) => {
|
|
23499
|
+
this.setMapComponent(maps.first);
|
|
23500
|
+
});
|
|
23501
|
+
if (this.smartDiagramList?.first) {
|
|
23502
|
+
this.setDiagramComponent(this.smartDiagramList?.first);
|
|
23526
23503
|
}
|
|
23527
|
-
|
|
23528
|
-
|
|
23529
|
-
|
|
23530
|
-
|
|
23531
|
-
|
|
23532
|
-
* @param contentTypes - the array of content types that are available for selection
|
|
23533
|
-
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
23534
|
-
*/
|
|
23535
|
-
selectHeaderContentType(contentTypes) {
|
|
23536
|
-
if (contentTypes.length === 0) {
|
|
23537
|
-
return undefined;
|
|
23504
|
+
this.smartDiagramList.changes.pipe(takeUntil(this._destroy$)).subscribe((diagrams) => {
|
|
23505
|
+
this.setDiagramComponent(diagrams.first);
|
|
23506
|
+
});
|
|
23507
|
+
if (this.smartFilterList?.first) {
|
|
23508
|
+
this.setFilterComponent(this.smartFilterList?.first);
|
|
23538
23509
|
}
|
|
23539
|
-
|
|
23540
|
-
|
|
23541
|
-
|
|
23510
|
+
this.smartFilterList.changes.pipe(takeUntil(this._destroy$)).subscribe((filters) => {
|
|
23511
|
+
this.setFilterComponent(filters.first);
|
|
23512
|
+
});
|
|
23513
|
+
if (this.toolbarList?.first) {
|
|
23514
|
+
this.setToolbarComponent(this.toolbarList?.first);
|
|
23542
23515
|
}
|
|
23543
|
-
|
|
23516
|
+
this.toolbarList.changes
|
|
23517
|
+
.pipe(takeUntil(this._destroy$))
|
|
23518
|
+
.subscribe((list) => {
|
|
23519
|
+
this.setToolbarComponent(list.first);
|
|
23520
|
+
});
|
|
23521
|
+
this.setUp();
|
|
23544
23522
|
}
|
|
23545
|
-
|
|
23546
|
-
|
|
23547
|
-
|
|
23548
|
-
|
|
23549
|
-
* @param accepts - the array of content types that are available for selection.
|
|
23550
|
-
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
23551
|
-
*/
|
|
23552
|
-
selectHeaderAccept(accepts) {
|
|
23553
|
-
if (accepts.length === 0) {
|
|
23554
|
-
return undefined;
|
|
23555
|
-
}
|
|
23556
|
-
const type = accepts.find((x) => this.isJsonMime(x));
|
|
23557
|
-
if (type === undefined) {
|
|
23558
|
-
return accepts[0];
|
|
23523
|
+
ngAfterViewChecked() {
|
|
23524
|
+
if (this.pendingOrphanCleanup) {
|
|
23525
|
+
this.pendingOrphanCleanup = false;
|
|
23526
|
+
this.viewContext.cleanupOrphanedEmbeddedViews(this.uuid);
|
|
23559
23527
|
}
|
|
23560
|
-
return type;
|
|
23561
|
-
}
|
|
23562
|
-
/**
|
|
23563
|
-
* Check if the given MIME is a JSON MIME.
|
|
23564
|
-
* JSON MIME examples:
|
|
23565
|
-
* application/json
|
|
23566
|
-
* application/json; charset=UTF8
|
|
23567
|
-
* APPLICATION/JSON
|
|
23568
|
-
* application/vnd.company+json
|
|
23569
|
-
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
|
23570
|
-
* @return True if the given MIME is JSON, false otherwise.
|
|
23571
|
-
*/
|
|
23572
|
-
isJsonMime(mime) {
|
|
23573
|
-
const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
|
|
23574
|
-
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
|
|
23575
23528
|
}
|
|
23576
|
-
|
|
23577
|
-
|
|
23578
|
-
|
|
23579
|
-
|
|
23580
|
-
|
|
23529
|
+
ngOnDestroy() {
|
|
23530
|
+
if (this.embeddedSlotContainerId && this.uuid) {
|
|
23531
|
+
this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
|
|
23532
|
+
}
|
|
23533
|
+
this._destroy$.next();
|
|
23534
|
+
this._destroy$.complete();
|
|
23581
23535
|
}
|
|
23582
|
-
|
|
23583
|
-
|
|
23584
|
-
// and for backwards compatibility to older typescript-angular generator versions.
|
|
23585
|
-
// It only works for the 'simple' parameter style.
|
|
23586
|
-
// Date-handling only works for the 'date-time' format.
|
|
23587
|
-
// All other styles and Date-formats are probably handled incorrectly.
|
|
23588
|
-
//
|
|
23589
|
-
// But: if that's all you need (i.e.: the most common use-case): no need for customization!
|
|
23590
|
-
const value = param.dataFormat === 'date-time' && param.value instanceof Date
|
|
23591
|
-
? param.value.toISOString()
|
|
23592
|
-
: param.value;
|
|
23593
|
-
return encodeURIComponent(String(value));
|
|
23536
|
+
ngOnChanges(changes) {
|
|
23537
|
+
this.setUp();
|
|
23594
23538
|
}
|
|
23595
|
-
|
|
23596
|
-
|
|
23597
|
-
|
|
23598
|
-
* Filter API 2
|
|
23599
|
-
* Filter API 2
|
|
23600
|
-
*
|
|
23601
|
-
* The version of the OpenAPI document: 1.0.0
|
|
23602
|
-
* Contact: info@it4all.hu
|
|
23603
|
-
*
|
|
23604
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
23605
|
-
* https://openapi-generator.tech
|
|
23606
|
-
* Do not edit the class manually.
|
|
23607
|
-
*/
|
|
23608
|
-
/* tslint:disable:no-unused-variable member-ordering */
|
|
23609
|
-
class FilterService {
|
|
23610
|
-
constructor(httpClient, basePath, configuration) {
|
|
23611
|
-
this.httpClient = httpClient;
|
|
23612
|
-
this.basePath = 'http://localhost';
|
|
23613
|
-
this.defaultHeaders = new HttpHeaders();
|
|
23614
|
-
this.configuration = new Configuration();
|
|
23615
|
-
if (configuration) {
|
|
23616
|
-
this.configuration = configuration;
|
|
23539
|
+
setUp() {
|
|
23540
|
+
if (!this.parentSmartComponent || !this.smartComponentLayout) {
|
|
23541
|
+
return;
|
|
23617
23542
|
}
|
|
23618
|
-
if (
|
|
23619
|
-
|
|
23620
|
-
|
|
23621
|
-
|
|
23622
|
-
if (typeof basePath !== 'string') {
|
|
23623
|
-
basePath = this.basePath;
|
|
23624
|
-
}
|
|
23625
|
-
this.configuration.basePath = basePath;
|
|
23543
|
+
if (deepEqual(this.smartComponentLayout, this.currentLayout)) {
|
|
23544
|
+
// no layout change, keep current state
|
|
23545
|
+
this.smartComponentLayout = this.currentLayout;
|
|
23546
|
+
return;
|
|
23626
23547
|
}
|
|
23627
|
-
|
|
23628
|
-
|
|
23629
|
-
|
|
23630
|
-
|
|
23631
|
-
|
|
23632
|
-
|
|
23548
|
+
// layout changed, render, but save current
|
|
23549
|
+
// this.currentLayout = JSON.parse(JSON.stringify(this.smartComponentLayout));
|
|
23550
|
+
SmartComponentLayoutUtility.clearFormHandlers(this);
|
|
23551
|
+
this.currentLayout = this.smartComponentLayout;
|
|
23552
|
+
this.uuid = this.parentSmartComponent.uuid;
|
|
23553
|
+
this.treeService = this.parentSmartComponent.smartTreeService;
|
|
23554
|
+
// Top-level layout: detach embedded views before the tree is re-rendered,
|
|
23555
|
+
// so they survive *ngFor component destruction
|
|
23556
|
+
if (!this.parentLayoutComponent && this.uuid) {
|
|
23557
|
+
this.viewContext.detachAllEmbeddedViews(this.uuid);
|
|
23558
|
+
this.pendingOrphanCleanup = true;
|
|
23559
|
+
}
|
|
23560
|
+
this.smartComponentLayout?.direction;
|
|
23561
|
+
// the nature of the layout might have changed (e.g. from GRID to FORM), we null out every
|
|
23562
|
+
// template-related element, so no stale data is left on screen:
|
|
23563
|
+
this.expandableSection = undefined;
|
|
23564
|
+
this.smartForm = undefined;
|
|
23565
|
+
this.smartFormComponent = undefined;
|
|
23566
|
+
this.smartGrid = undefined;
|
|
23567
|
+
this.smartGridComponent = undefined;
|
|
23568
|
+
this.filterId = undefined;
|
|
23569
|
+
this.smartFilterComponent = undefined;
|
|
23570
|
+
this.smartGrid = undefined;
|
|
23571
|
+
this.toolbarId = undefined;
|
|
23572
|
+
this.toolbar = undefined;
|
|
23573
|
+
// null out toolbar?
|
|
23574
|
+
this.mapId = undefined;
|
|
23575
|
+
this.smartDiagramId = undefined;
|
|
23576
|
+
if (this.embeddedSlotContainerId && this.uuid) {
|
|
23577
|
+
this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
|
|
23633
23578
|
}
|
|
23634
|
-
|
|
23635
|
-
|
|
23579
|
+
this.embeddedSlotActive = false;
|
|
23580
|
+
this.embeddedSlotContainerId = undefined;
|
|
23581
|
+
if (this.smartComponentLayout?.expandable) {
|
|
23582
|
+
this.constructExpandableSection();
|
|
23636
23583
|
}
|
|
23637
|
-
|
|
23638
|
-
|
|
23639
|
-
addToHttpParamsRecursive(httpParams, value, key) {
|
|
23640
|
-
if (value == null) {
|
|
23641
|
-
return httpParams;
|
|
23584
|
+
else if (this.smartComponentLayout?.type === ComponentType.FORM) {
|
|
23585
|
+
this.constructForm();
|
|
23642
23586
|
}
|
|
23643
|
-
if (
|
|
23644
|
-
if (
|
|
23645
|
-
|
|
23587
|
+
else if (this.smartComponentLayout?.type === ComponentType.WIDGET) {
|
|
23588
|
+
if (this.smartComponentLayout.widget?.type === ComponentWidgetType.GRID) {
|
|
23589
|
+
this.constructGrid();
|
|
23646
23590
|
}
|
|
23647
|
-
else if (
|
|
23648
|
-
|
|
23649
|
-
httpParams = httpParams.append(key, value.toISOString().substr(0, 10));
|
|
23650
|
-
}
|
|
23651
|
-
else {
|
|
23652
|
-
throw Error("key may not be null if value is Date");
|
|
23653
|
-
}
|
|
23591
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.FILTER) {
|
|
23592
|
+
this.constructFilter();
|
|
23654
23593
|
}
|
|
23655
|
-
else {
|
|
23656
|
-
|
|
23594
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TREE) {
|
|
23595
|
+
this.constructTree();
|
|
23657
23596
|
}
|
|
23658
|
-
|
|
23659
|
-
|
|
23660
|
-
httpParams = httpParams.append(key, value);
|
|
23661
|
-
}
|
|
23662
|
-
else {
|
|
23663
|
-
throw Error("key may not be null if value is not object or array");
|
|
23664
|
-
}
|
|
23665
|
-
return httpParams;
|
|
23666
|
-
}
|
|
23667
|
-
load(uuid, filterIdentifier, observe = 'body', reportProgress = false, options) {
|
|
23668
|
-
if (uuid === null || uuid === undefined) {
|
|
23669
|
-
throw new Error('Required parameter uuid was null or undefined when calling load.');
|
|
23670
|
-
}
|
|
23671
|
-
if (filterIdentifier === null || filterIdentifier === undefined) {
|
|
23672
|
-
throw new Error('Required parameter filterIdentifier was null or undefined when calling load.');
|
|
23673
|
-
}
|
|
23674
|
-
let localVarHeaders = this.defaultHeaders;
|
|
23675
|
-
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
23676
|
-
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
23677
|
-
// to determine the Accept header
|
|
23678
|
-
const httpHeaderAccepts = [
|
|
23679
|
-
'application/json'
|
|
23680
|
-
];
|
|
23681
|
-
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
23682
|
-
}
|
|
23683
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
23684
|
-
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
|
|
23685
|
-
}
|
|
23686
|
-
let localVarHttpContext = options && options.context;
|
|
23687
|
-
if (localVarHttpContext === undefined) {
|
|
23688
|
-
localVarHttpContext = new HttpContext();
|
|
23689
|
-
}
|
|
23690
|
-
let responseType_ = 'json';
|
|
23691
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
23692
|
-
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
23693
|
-
responseType_ = 'text';
|
|
23597
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TOOLBAR) {
|
|
23598
|
+
this.constructToolbar();
|
|
23694
23599
|
}
|
|
23695
|
-
else if (this.
|
|
23696
|
-
|
|
23600
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.MAP) {
|
|
23601
|
+
this.constructMap();
|
|
23697
23602
|
}
|
|
23698
|
-
else {
|
|
23699
|
-
|
|
23603
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.DIAGRAM) {
|
|
23604
|
+
this.construcDiagram();
|
|
23605
|
+
}
|
|
23606
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.EMBEDDED_SLOT) {
|
|
23607
|
+
this.constructEmbeddedSlot();
|
|
23608
|
+
}
|
|
23609
|
+
if (!this.parentLayoutComponent) {
|
|
23610
|
+
// only top level component should call init actions
|
|
23611
|
+
this.parentSmartComponent.initActions();
|
|
23700
23612
|
}
|
|
23701
23613
|
}
|
|
23702
|
-
|
|
23703
|
-
return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
|
|
23704
|
-
context: localVarHttpContext,
|
|
23705
|
-
responseType: responseType_,
|
|
23706
|
-
withCredentials: this.configuration.withCredentials,
|
|
23707
|
-
headers: localVarHeaders,
|
|
23708
|
-
observe: observe,
|
|
23709
|
-
reportProgress: reportProgress
|
|
23710
|
-
});
|
|
23614
|
+
SmartStyleUtility.applyStyle(this.smartComponentLayout.style, this.element, this.renderer);
|
|
23711
23615
|
}
|
|
23712
|
-
|
|
23713
|
-
|
|
23714
|
-
|
|
23715
|
-
|
|
23716
|
-
|
|
23717
|
-
|
|
23616
|
+
type() {
|
|
23617
|
+
return ComponentType;
|
|
23618
|
+
}
|
|
23619
|
+
constructExpandableSection() {
|
|
23620
|
+
let data = { ...this.smartComponentLayout };
|
|
23621
|
+
data.expandable = false;
|
|
23622
|
+
this.expandableSection = {
|
|
23623
|
+
title: this.smartComponentLayout?.expandableSectionLabel ?? '',
|
|
23624
|
+
inputs: new Map([
|
|
23625
|
+
['smartComponentLayout', data],
|
|
23626
|
+
['parentSmartComponent', this.parentSmartComponent],
|
|
23627
|
+
['parentLayoutComponent', this.parentLayoutComponent],
|
|
23628
|
+
]),
|
|
23629
|
+
headerToolbarId: this.smartComponentLayout?.expandableSectionHeaderToolbarId,
|
|
23630
|
+
customComponent: SmartComponentLayoutComponent,
|
|
23631
|
+
};
|
|
23632
|
+
}
|
|
23633
|
+
constructForm() {
|
|
23634
|
+
const widgets = this.layoutService.render({
|
|
23635
|
+
layoutDefinitions: this.smartComponentLayout?.form,
|
|
23636
|
+
});
|
|
23637
|
+
if (this.gridRow && !this.gridRow.valueSets && this.parentSmartComponent?.model) {
|
|
23638
|
+
this.gridRow.valueSets = this.parentSmartComponent.model.valueSets;
|
|
23718
23639
|
}
|
|
23719
|
-
|
|
23720
|
-
|
|
23640
|
+
this.smartForm = {
|
|
23641
|
+
direction: this.getFormLayout(),
|
|
23642
|
+
componentModel: this.gridRow ? this.gridRow : this.parentSmartComponent?.model,
|
|
23643
|
+
widgets,
|
|
23644
|
+
};
|
|
23645
|
+
this.bindForm();
|
|
23646
|
+
}
|
|
23647
|
+
getFormLayout() {
|
|
23648
|
+
if (this.smartComponentLayout?.direction) {
|
|
23649
|
+
return this.smartComponentLayout?.direction === LayoutDirection.HORIZONTAL
|
|
23650
|
+
? SmartFormWidgetDirection.ROW
|
|
23651
|
+
: SmartFormWidgetDirection.COL;
|
|
23721
23652
|
}
|
|
23722
|
-
|
|
23723
|
-
|
|
23724
|
-
|
|
23725
|
-
|
|
23726
|
-
|
|
23727
|
-
|
|
23728
|
-
];
|
|
23729
|
-
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
23653
|
+
return SmartFormWidgetDirection.COL;
|
|
23654
|
+
}
|
|
23655
|
+
setFormComponent(comp) {
|
|
23656
|
+
if (!this.smartFormComponent) {
|
|
23657
|
+
this.smartFormComponent = comp;
|
|
23658
|
+
this.bindForm();
|
|
23730
23659
|
}
|
|
23731
|
-
|
|
23732
|
-
|
|
23660
|
+
}
|
|
23661
|
+
bindForm() {
|
|
23662
|
+
if (this.parentSmartComponent?.useQueryLists) {
|
|
23663
|
+
return;
|
|
23733
23664
|
}
|
|
23734
|
-
|
|
23735
|
-
|
|
23736
|
-
|
|
23665
|
+
if (this.smartForm && this.smartFormComponent) {
|
|
23666
|
+
this.parentSmartComponent?.addForm(
|
|
23667
|
+
// unique identifier for the form
|
|
23668
|
+
`form_${this.makeid(5)}`, this.smartForm, this.smartFormComponent);
|
|
23737
23669
|
}
|
|
23738
|
-
|
|
23739
|
-
|
|
23740
|
-
|
|
23741
|
-
|
|
23742
|
-
const
|
|
23743
|
-
|
|
23744
|
-
|
|
23670
|
+
}
|
|
23671
|
+
makeid(length) {
|
|
23672
|
+
let result = '';
|
|
23673
|
+
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
23674
|
+
const charactersLength = characters.length;
|
|
23675
|
+
let counter = 0;
|
|
23676
|
+
while (counter < length) {
|
|
23677
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
23678
|
+
counter += 1;
|
|
23745
23679
|
}
|
|
23746
|
-
|
|
23747
|
-
|
|
23748
|
-
|
|
23749
|
-
|
|
23750
|
-
|
|
23751
|
-
|
|
23752
|
-
|
|
23753
|
-
}
|
|
23754
|
-
|
|
23755
|
-
|
|
23756
|
-
}
|
|
23680
|
+
return result;
|
|
23681
|
+
}
|
|
23682
|
+
constructGrid() {
|
|
23683
|
+
this.smartGrid = {
|
|
23684
|
+
gridIdentifier: this.smartComponentLayout?.widget?.identifier,
|
|
23685
|
+
gridModel: {
|
|
23686
|
+
page: {},
|
|
23687
|
+
},
|
|
23688
|
+
options: {
|
|
23689
|
+
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
23690
|
+
},
|
|
23691
|
+
layoutDef: SmartLayoutDef.TABLE,
|
|
23692
|
+
paginator: false,
|
|
23693
|
+
layoutComponent: SmartComponentLayoutComponent,
|
|
23694
|
+
layoutUtility: SmartComponentLayoutUtility,
|
|
23695
|
+
};
|
|
23696
|
+
this.bindGrid();
|
|
23697
|
+
}
|
|
23698
|
+
setGridComponent(comp) {
|
|
23699
|
+
if (!this.smartGridComponent) {
|
|
23700
|
+
this.smartGridComponent = comp;
|
|
23701
|
+
this.bindGrid();
|
|
23757
23702
|
}
|
|
23758
|
-
let localVarPath = `/filter/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "filterIdentifier", value: filterIdentifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/performWidgetAction`;
|
|
23759
|
-
return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
|
|
23760
|
-
context: localVarHttpContext,
|
|
23761
|
-
body: body,
|
|
23762
|
-
responseType: responseType_,
|
|
23763
|
-
withCredentials: this.configuration.withCredentials,
|
|
23764
|
-
headers: localVarHeaders,
|
|
23765
|
-
observe: observe,
|
|
23766
|
-
reportProgress: reportProgress
|
|
23767
|
-
});
|
|
23768
23703
|
}
|
|
23769
|
-
|
|
23770
|
-
|
|
23771
|
-
|
|
23772
|
-
|
|
23773
|
-
|
|
23774
|
-
|
|
23775
|
-
|
|
23776
|
-
|
|
23777
|
-
|
|
23778
|
-
|
|
23779
|
-
|
|
23780
|
-
|
|
23781
|
-
args: [BASE_PATH]
|
|
23782
|
-
}] }, { type: Configuration, decorators: [{
|
|
23783
|
-
type: Optional
|
|
23784
|
-
}] }] });
|
|
23785
|
-
|
|
23786
|
-
class SmartFilterEditorService {
|
|
23787
|
-
constructor(service, viewCtxService) {
|
|
23788
|
-
this.service = service;
|
|
23789
|
-
this.viewCtxService = viewCtxService;
|
|
23790
|
-
this.modelChanged = new Subject();
|
|
23791
|
-
this.submit = new Subject();
|
|
23792
|
-
this.itemSelected = new Subject();
|
|
23793
|
-
this.toolbars = [];
|
|
23704
|
+
bindGrid() {
|
|
23705
|
+
if (this.parentSmartComponent?.useQueryLists) {
|
|
23706
|
+
if (this.smartGrid && this.smartGridComponent && this.parentSmartComponent) {
|
|
23707
|
+
this.parentSmartComponent.setupGridServices(this.smartGridComponent);
|
|
23708
|
+
}
|
|
23709
|
+
return;
|
|
23710
|
+
}
|
|
23711
|
+
if (this.smartGrid && this.smartGridComponent) {
|
|
23712
|
+
this.smartGrid = this.parentSmartComponent?.addGrid(this.smartGrid, {
|
|
23713
|
+
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
23714
|
+
}, false, this.smartGridComponent);
|
|
23715
|
+
}
|
|
23794
23716
|
}
|
|
23795
|
-
|
|
23796
|
-
|
|
23717
|
+
constructMap() {
|
|
23718
|
+
this.mapId = this.smartComponentLayout?.widget?.identifier;
|
|
23719
|
+
this.bindMap();
|
|
23797
23720
|
}
|
|
23798
|
-
|
|
23799
|
-
|
|
23721
|
+
construcDiagram() {
|
|
23722
|
+
this.smartDiagramId = this.smartComponentLayout?.widget?.identifier;
|
|
23723
|
+
this.bindDiagram();
|
|
23800
23724
|
}
|
|
23801
|
-
|
|
23802
|
-
|
|
23725
|
+
setMapComponent(comp) {
|
|
23726
|
+
if (!this.smartMapComponent) {
|
|
23727
|
+
this.smartMapComponent = comp;
|
|
23728
|
+
this.bindMap();
|
|
23729
|
+
}
|
|
23803
23730
|
}
|
|
23804
|
-
|
|
23805
|
-
this.
|
|
23806
|
-
|
|
23731
|
+
setDiagramComponent(comp) {
|
|
23732
|
+
if (!this.smartDiagramComponent) {
|
|
23733
|
+
this.smartDiagramComponent = comp;
|
|
23734
|
+
this.bindDiagram();
|
|
23735
|
+
}
|
|
23807
23736
|
}
|
|
23808
|
-
|
|
23809
|
-
if (this.
|
|
23810
|
-
this.
|
|
23811
|
-
this.
|
|
23737
|
+
setFilterComponent(comp) {
|
|
23738
|
+
if (!this.smartFilterComponent) {
|
|
23739
|
+
this.smartFilterComponent = comp;
|
|
23740
|
+
this.bindFilter();
|
|
23812
23741
|
}
|
|
23813
23742
|
}
|
|
23814
|
-
|
|
23815
|
-
if (this.
|
|
23816
|
-
|
|
23817
|
-
.getCurrentViewContext()
|
|
23818
|
-
?.views.find((view) => view.uuid == this.config.uuid);
|
|
23819
|
-
if (filterView && filterView.state != ViewState.CLOSED) {
|
|
23820
|
-
this.model = await this.service
|
|
23821
|
-
.performWidgetAction(this.config.uuid, this.config.identifier, request)
|
|
23822
|
-
.toPromise();
|
|
23823
|
-
this.modelChanged.next();
|
|
23824
|
-
}
|
|
23743
|
+
bindMap() {
|
|
23744
|
+
if (this.parentSmartComponent.useQueryLists) {
|
|
23745
|
+
return;
|
|
23825
23746
|
}
|
|
23747
|
+
console.warn('Map components are only supported through QueryLists!');
|
|
23826
23748
|
}
|
|
23827
|
-
|
|
23828
|
-
|
|
23749
|
+
bindDiagram() {
|
|
23750
|
+
if (this.parentSmartComponent.useQueryLists) {
|
|
23751
|
+
return;
|
|
23752
|
+
}
|
|
23753
|
+
console.warn('Diagram components are only supported through QueryLists!');
|
|
23829
23754
|
}
|
|
23830
|
-
|
|
23831
|
-
|
|
23755
|
+
setToolbarComponent(comp) {
|
|
23756
|
+
this.toolbar = comp;
|
|
23832
23757
|
}
|
|
23833
|
-
|
|
23834
|
-
|
|
23835
|
-
|
|
23836
|
-
uiActionRequest: uiActionRequest,
|
|
23837
|
-
};
|
|
23758
|
+
constructFilter() {
|
|
23759
|
+
this.filterId = this.smartComponentLayout?.widget?.identifier;
|
|
23760
|
+
this.bindFilter();
|
|
23838
23761
|
}
|
|
23839
|
-
|
|
23840
|
-
|
|
23762
|
+
bindFilter() {
|
|
23763
|
+
if (this.parentSmartComponent.useQueryLists) {
|
|
23764
|
+
return;
|
|
23765
|
+
}
|
|
23766
|
+
console.warn('Filter widgets are only supported through QueryLists!');
|
|
23841
23767
|
}
|
|
23842
|
-
|
|
23843
|
-
if (
|
|
23844
|
-
|
|
23845
|
-
|
|
23768
|
+
constructTree() {
|
|
23769
|
+
if (this.parentSmartComponent?.useQueryLists) {
|
|
23770
|
+
return;
|
|
23771
|
+
}
|
|
23772
|
+
this.parentSmartComponent.setUpDefaultTree(this.smartComponentLayout?.widget?.identifier);
|
|
23773
|
+
this.treeService?.initialize();
|
|
23774
|
+
}
|
|
23775
|
+
constructToolbar() {
|
|
23776
|
+
let toolbarId = this.smartComponentLayout?.widget?.identifier;
|
|
23777
|
+
if (this.toolbarId !== toolbarId) {
|
|
23778
|
+
this.toolbarId = toolbarId;
|
|
23779
|
+
}
|
|
23780
|
+
let properties = this.smartComponentLayout?.widget?.properties;
|
|
23781
|
+
if (properties && properties['toolbar_properties']) {
|
|
23782
|
+
this.toolbarPropertes = properties['toolbar_properties'];
|
|
23783
|
+
}
|
|
23784
|
+
}
|
|
23785
|
+
constructEmbeddedSlot() {
|
|
23786
|
+
this.embeddedSlotContainerId = this.smartComponentLayout?.widget?.identifier;
|
|
23787
|
+
this.embeddedSlotActive = true;
|
|
23788
|
+
this.tryRegisterEmbeddedSlot();
|
|
23789
|
+
}
|
|
23790
|
+
tryRegisterEmbeddedSlot() {
|
|
23791
|
+
if (this.embeddedSlotContainerId && this.uuid && this._embeddedSlotVcRef) {
|
|
23792
|
+
// An EMBEDDED_SLOT widget slot is LAYOUT-kind: it lives inside the re-rendering
|
|
23793
|
+
// layout *ngFor, so its child must be detached before a top-level re-render and
|
|
23794
|
+
// reattaches when this slot re-registers. (#28870)
|
|
23795
|
+
this.viewContext.registerEmbeddedSlot(this.uuid, this.embeddedSlotContainerId, this._embeddedSlotVcRef, 'layout');
|
|
23796
|
+
}
|
|
23797
|
+
}
|
|
23798
|
+
updateUuid(newUuid) {
|
|
23799
|
+
const oldUuid = this.uuid;
|
|
23800
|
+
this.uuid = newUuid;
|
|
23801
|
+
if (oldUuid !== newUuid && this.embeddedSlotContainerId) {
|
|
23802
|
+
if (oldUuid) {
|
|
23803
|
+
this.viewContext.unregisterEmbeddedSlot(oldUuid, this.embeddedSlotContainerId);
|
|
23846
23804
|
}
|
|
23847
|
-
|
|
23848
|
-
code: 'BULK_UPDATE_FILTER_EXPRESSION',
|
|
23849
|
-
params: {
|
|
23850
|
-
model: item,
|
|
23851
|
-
operator: operationType,
|
|
23852
|
-
},
|
|
23853
|
-
});
|
|
23805
|
+
this.tryRegisterEmbeddedSlot();
|
|
23854
23806
|
}
|
|
23855
23807
|
}
|
|
23856
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type:
|
|
23857
|
-
static { this.ɵ
|
|
23808
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, deps: [{ token: SmartformLayoutDefinitionService }, { token: SmartViewContextService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23809
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: { smartComponentLayout: "smartComponentLayout", parentLayoutComponent: "parentLayoutComponent", parentSmartComponent: "parentSmartComponent", gridRow: "gridRow" }, host: { properties: { "attr.data-testid": "this.testId", "class.horizontal": "this.isHorizontal", "class.vertical": "this.isVertical" } }, viewQueries: [{ propertyName: "formRef", first: true, predicate: SmartformComponent, descendants: true, isSignal: true }, { propertyName: "embeddedSlotVcRefSetter", first: true, predicate: ["embeddedSlot"], descendants: true, read: ViewContainerRef }, { propertyName: "smartFormList", predicate: ["form"], descendants: true }, { propertyName: "smartGridList", predicate: ["grid"], descendants: true }, { propertyName: "smartMapList", predicate: ["map"], descendants: true }, { propertyName: "smartDiagramList", predicate: ["diagram"], descendants: true }, { propertyName: "smartFilterList", predicate: ["filter"], descendants: true }, { propertyName: "toolbarList", predicate: ["toolbar"], descendants: true }, { propertyName: "expandableComponents", predicate: ExpandableSectionComponent, descendants: true }, { propertyName: "components", predicate: SmartComponentLayoutComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n @if (smartComponentLayout?.type === type().CONTAINER) {\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n }\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid\r\n *ngIf=\"smartGrid\"\r\n #grid\r\n [smartGrid]=\"smartGrid\"\r\n [uuid]=\"uuid!\"\r\n [parentLayoutComponent]=\"this\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-grid>\r\n <smart-map\r\n *ngIf=\"!!uuid && !!mapId\"\r\n #map\r\n [uuid]=\"uuid\"\r\n [identifier]=\"mapId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-map>\r\n <smart-diagram\r\n *ngIf=\"!!uuid && !!smartDiagramId\"\r\n #diagram\r\n [uuid]=\"uuid\"\r\n [identifier]=\"smartDiagramId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-diagram>\r\n <smart-filter-widget\r\n *ngIf=\"!!uuid && !!filterId\"\r\n #filter\r\n [uuid]=\"uuid\"\r\n [identifier]=\"filterId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-filter-widget>\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar\r\n *ngIf=\"!!toolbarId\"\r\n #toolbar\r\n [id]=\"toolbarId\"\r\n [toolbarPropertes]=\"toolbarPropertes\"\r\n ></smart-ui-action-toolbar>\r\n <ng-container *ngIf=\"embeddedSlotActive\" #embeddedSlot></ng-container>\r\n</ng-template>\r\n", styles: [":host(.horizontal){display:flex;flex-direction:row}:host(.vertical){display:flex;flex-direction:column}:host(.horizontal) smart-component-layout{display:flex}:host(.horizontal) smartform{flex:1;display:flex}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SmartGridComponent, selector: "smart-grid", inputs: ["smartGrid", "uuid", "parent", "parentLayoutComponent", "dev"] }, { kind: "component", type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { kind: "component", type: SmartTreeComponent, selector: "smart-tree", inputs: ["treeStyle", "treeService"] }, { kind: "component", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: SmartMapComponent, selector: "smart-map", inputs: ["uuid", "identifier", "parent"] }, { kind: "component", type: SmartDiagramComponent, selector: "smart-diagram", inputs: ["uuid", "identifier", "parent", "diagramModel", "options", "plugins"], outputs: ["elementSelect", "canvasClick", "dataClick"] }, { kind: "component", type: SmartFilterWidgetComponent, selector: "smart-filter-widget", inputs: ["uuid", "identifier", "parent"] }, { kind: "component", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: ["smartComponentLayout", "parentLayoutComponent", "parentSmartComponent", "gridRow"] }] }); }
|
|
23858
23810
|
}
|
|
23859
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type:
|
|
23860
|
-
type:
|
|
23861
|
-
|
|
23811
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, decorators: [{
|
|
23812
|
+
type: Component,
|
|
23813
|
+
args: [{ selector: 'smart-component-layout', template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n @if (smartComponentLayout?.type === type().CONTAINER) {\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n }\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid\r\n *ngIf=\"smartGrid\"\r\n #grid\r\n [smartGrid]=\"smartGrid\"\r\n [uuid]=\"uuid!\"\r\n [parentLayoutComponent]=\"this\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-grid>\r\n <smart-map\r\n *ngIf=\"!!uuid && !!mapId\"\r\n #map\r\n [uuid]=\"uuid\"\r\n [identifier]=\"mapId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-map>\r\n <smart-diagram\r\n *ngIf=\"!!uuid && !!smartDiagramId\"\r\n #diagram\r\n [uuid]=\"uuid\"\r\n [identifier]=\"smartDiagramId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-diagram>\r\n <smart-filter-widget\r\n *ngIf=\"!!uuid && !!filterId\"\r\n #filter\r\n [uuid]=\"uuid\"\r\n [identifier]=\"filterId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-filter-widget>\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar\r\n *ngIf=\"!!toolbarId\"\r\n #toolbar\r\n [id]=\"toolbarId\"\r\n [toolbarPropertes]=\"toolbarPropertes\"\r\n ></smart-ui-action-toolbar>\r\n <ng-container *ngIf=\"embeddedSlotActive\" #embeddedSlot></ng-container>\r\n</ng-template>\r\n", styles: [":host(.horizontal){display:flex;flex-direction:row}:host(.vertical){display:flex;flex-direction:column}:host(.horizontal) smart-component-layout{display:flex}:host(.horizontal) smartform{flex:1;display:flex}\n"] }]
|
|
23814
|
+
}], ctorParameters: () => [{ type: SmartformLayoutDefinitionService }, { type: SmartViewContextService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { smartComponentLayout: [{
|
|
23815
|
+
type: Input
|
|
23816
|
+
}], parentLayoutComponent: [{
|
|
23817
|
+
type: Input
|
|
23818
|
+
}], parentSmartComponent: [{
|
|
23819
|
+
type: Input
|
|
23820
|
+
}], gridRow: [{
|
|
23821
|
+
type: Input
|
|
23822
|
+
}], testId: [{
|
|
23823
|
+
type: HostBinding,
|
|
23824
|
+
args: ['attr.data-testid']
|
|
23825
|
+
}], isHorizontal: [{
|
|
23826
|
+
type: HostBinding,
|
|
23827
|
+
args: ['class.horizontal']
|
|
23828
|
+
}], isVertical: [{
|
|
23829
|
+
type: HostBinding,
|
|
23830
|
+
args: ['class.vertical']
|
|
23831
|
+
}], smartFormList: [{
|
|
23832
|
+
type: ViewChildren,
|
|
23833
|
+
args: ['form']
|
|
23834
|
+
}], smartGridList: [{
|
|
23835
|
+
type: ViewChildren,
|
|
23836
|
+
args: ['grid']
|
|
23837
|
+
}], smartMapList: [{
|
|
23838
|
+
type: ViewChildren,
|
|
23839
|
+
args: ['map']
|
|
23840
|
+
}], smartDiagramList: [{
|
|
23841
|
+
type: ViewChildren,
|
|
23842
|
+
args: ['diagram']
|
|
23843
|
+
}], smartFilterList: [{
|
|
23844
|
+
type: ViewChildren,
|
|
23845
|
+
args: ['filter']
|
|
23846
|
+
}], toolbarList: [{
|
|
23847
|
+
type: ViewChildren,
|
|
23848
|
+
args: ['toolbar']
|
|
23849
|
+
}], embeddedSlotVcRefSetter: [{
|
|
23850
|
+
type: ViewChild,
|
|
23851
|
+
args: ['embeddedSlot', { read: ViewContainerRef, static: false }]
|
|
23852
|
+
}], expandableComponents: [{
|
|
23853
|
+
type: ViewChildren,
|
|
23854
|
+
args: [ExpandableSectionComponent]
|
|
23855
|
+
}], components: [{
|
|
23856
|
+
type: ViewChildren,
|
|
23857
|
+
args: [SmartComponentLayoutComponent]
|
|
23858
|
+
}] } });
|
|
23859
|
+
|
|
23860
|
+
const DEFAULT_PROVIDERS = [
|
|
23861
|
+
DefaultChartOptionsProvider,
|
|
23862
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: barChart, multi: true },
|
|
23863
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: scatterChart, multi: true },
|
|
23864
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: bubbleChart, multi: true },
|
|
23865
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalBarChart, multi: true },
|
|
23866
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: stackedBarChart, multi: true },
|
|
23867
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalStackedBarChart, multi: true },
|
|
23868
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: multiAxisLineChart, multi: true },
|
|
23869
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: polarAreaChart, multi: true },
|
|
23870
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: radarChart, multi: true },
|
|
23871
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: doughnutChart, multi: true },
|
|
23872
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: pieChart, multi: true },
|
|
23873
|
+
];
|
|
23874
|
+
class SmartDiagramModule {
|
|
23875
|
+
static forRoot(providers) {
|
|
23876
|
+
return {
|
|
23877
|
+
ngModule: SmartDiagramModule,
|
|
23878
|
+
providers: [...DEFAULT_PROVIDERS, ...providers],
|
|
23879
|
+
};
|
|
23880
|
+
}
|
|
23881
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23882
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, declarations: [SmartDiagramComponent], imports: [BrowserModule, ChartModule], exports: [SmartDiagramComponent] }); }
|
|
23883
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, imports: [BrowserModule, ChartModule] }); }
|
|
23884
|
+
}
|
|
23885
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, decorators: [{
|
|
23886
|
+
type: NgModule,
|
|
23887
|
+
args: [{
|
|
23888
|
+
declarations: [SmartDiagramComponent],
|
|
23889
|
+
imports: [BrowserModule, ChartModule],
|
|
23890
|
+
exports: [SmartDiagramComponent],
|
|
23891
|
+
}]
|
|
23892
|
+
}] });
|
|
23862
23893
|
|
|
23863
23894
|
class SmartFilterEditorModule {
|
|
23864
23895
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -23869,7 +23900,8 @@ class SmartFilterEditorModule {
|
|
|
23869
23900
|
SmartFilterExpressionItemComponent,
|
|
23870
23901
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23871
23902
|
AdvancedRelationButtonComponent,
|
|
23872
|
-
ExpressionEditorDialogComponent
|
|
23903
|
+
ExpressionEditorDialogComponent,
|
|
23904
|
+
SmartFilterWidgetComponent], imports: [CommonModule,
|
|
23873
23905
|
SmartIconModule,
|
|
23874
23906
|
SmartExpandableSectionModule,
|
|
23875
23907
|
SmartViewContextModule,
|
|
@@ -23882,7 +23914,8 @@ class SmartFilterEditorModule {
|
|
|
23882
23914
|
SmartFilterExpressionItemComponent,
|
|
23883
23915
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23884
23916
|
AdvancedRelationButtonComponent,
|
|
23885
|
-
ExpressionEditorDialogComponent
|
|
23917
|
+
ExpressionEditorDialogComponent,
|
|
23918
|
+
SmartFilterWidgetComponent] }); }
|
|
23886
23919
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorModule, imports: [CommonModule,
|
|
23887
23920
|
SmartIconModule,
|
|
23888
23921
|
SmartExpandableSectionModule,
|
|
@@ -23903,6 +23936,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
23903
23936
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23904
23937
|
AdvancedRelationButtonComponent,
|
|
23905
23938
|
ExpressionEditorDialogComponent,
|
|
23939
|
+
SmartFilterWidgetComponent,
|
|
23906
23940
|
],
|
|
23907
23941
|
imports: [
|
|
23908
23942
|
CommonModule,
|
|
@@ -23922,7 +23956,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
23922
23956
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23923
23957
|
AdvancedRelationButtonComponent,
|
|
23924
23958
|
ExpressionEditorDialogComponent,
|
|
23959
|
+
SmartFilterWidgetComponent,
|
|
23960
|
+
],
|
|
23961
|
+
providers: [],
|
|
23962
|
+
}]
|
|
23963
|
+
}] });
|
|
23964
|
+
|
|
23965
|
+
class SmartComponentLayoutModule {
|
|
23966
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23967
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, declarations: [SmartComponentLayoutComponent], imports: [BrowserModule,
|
|
23968
|
+
MatCommonModule,
|
|
23969
|
+
SmartGridModule,
|
|
23970
|
+
SmartExpandableSectionModule,
|
|
23971
|
+
SmarttreeModule,
|
|
23972
|
+
SmartViewContextModule,
|
|
23973
|
+
SmartMapModule,
|
|
23974
|
+
SmartDiagramModule,
|
|
23975
|
+
SmartFilterEditorModule,
|
|
23976
|
+
InputGroupModule,
|
|
23977
|
+
InputGroupAddonModule], exports: [SmartComponentLayoutComponent] }); }
|
|
23978
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, imports: [BrowserModule,
|
|
23979
|
+
MatCommonModule,
|
|
23980
|
+
SmartGridModule,
|
|
23981
|
+
SmartExpandableSectionModule,
|
|
23982
|
+
SmarttreeModule,
|
|
23983
|
+
SmartViewContextModule,
|
|
23984
|
+
SmartMapModule,
|
|
23985
|
+
SmartDiagramModule,
|
|
23986
|
+
SmartFilterEditorModule,
|
|
23987
|
+
InputGroupModule,
|
|
23988
|
+
InputGroupAddonModule] }); }
|
|
23989
|
+
}
|
|
23990
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, decorators: [{
|
|
23991
|
+
type: NgModule,
|
|
23992
|
+
args: [{
|
|
23993
|
+
declarations: [SmartComponentLayoutComponent],
|
|
23994
|
+
imports: [
|
|
23995
|
+
BrowserModule,
|
|
23996
|
+
MatCommonModule,
|
|
23997
|
+
SmartGridModule,
|
|
23998
|
+
SmartExpandableSectionModule,
|
|
23999
|
+
SmarttreeModule,
|
|
24000
|
+
SmartViewContextModule,
|
|
24001
|
+
SmartMapModule,
|
|
24002
|
+
SmartDiagramModule,
|
|
24003
|
+
SmartFilterEditorModule,
|
|
24004
|
+
InputGroupModule,
|
|
24005
|
+
InputGroupAddonModule,
|
|
23925
24006
|
],
|
|
24007
|
+
exports: [SmartComponentLayoutComponent],
|
|
23926
24008
|
providers: [],
|
|
23927
24009
|
}]
|
|
23928
24010
|
}] });
|
|
@@ -24509,6 +24591,9 @@ class SmartComponentApiClient {
|
|
|
24509
24591
|
}
|
|
24510
24592
|
getAllSmartFilterEditorContentComponents() {
|
|
24511
24593
|
let filters = this.getSmartFilterEditorContentComponentsQL()?.toArray() ?? [];
|
|
24594
|
+
this.getSmartComponentLayoutsQL()?.forEach((comp) => {
|
|
24595
|
+
filters.push(...SmartComponentLayoutUtility.getFilters(comp));
|
|
24596
|
+
});
|
|
24512
24597
|
return filters;
|
|
24513
24598
|
}
|
|
24514
24599
|
getAllSmartUiActionToolbars() {
|
|
@@ -25970,5 +26055,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
25970
26055
|
* Generated bundle index. Do not edit.
|
|
25971
26056
|
*/
|
|
25972
26057
|
|
|
25973
|
-
export { APIS$5 as APIS, AbstractMap, AclEditingViewComponent, AdvancedRelationButtonComponent, AdvancedSmartFilterExpressionItemComponent, ApiModule$5 as ApiModule, ApiQueueService, BASE_PATH$7 as BASE_PATH, COLLECTION_FORMATS$7 as COLLECTION_FORMATS, COMPONENT_LIBRARY, CUSTOM_DIAGRAM_OPTIONS, ClickMenuComponent, CloseResult, ComparableDropdownDirective, ComparableMultiselectDirective, ComponentFactoryService, ComponentFactoryServiceModule, ComponentLibrary, ComponentType, ComponentWidgetType, Configuration$7 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultChartOptionsProvider, DefaultUiActionCode_CLOSE, DrawTime, EMPTY_PARAMS, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, ExpressionEditorDialogComponent, FilterExpressionBoolOperator$1 as FilterExpressionBoolOperator, FilterExpressionBuilderGroupBuilderGroupKindEnum, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderByOrderEnum, GenericPageComponent, GeoMapDataLoadingMode, GeoMapDataSourceType, GeoMapItemKind, GeoMapOperationMode, GeoMapSelectionMode, GeoMapTextType, GoogleMap, GridColumnContentType, GridDataAccessConfigKindEnum, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptorKindEnum, HighlightPipe, HoverMenuComponent, IS_ASYNC_PARAM_NAME, IconPosition, ImageResourceKindEnum, InvalidSmartlinkComponent, LayoutDirection, LeafletMap, LinkTargetEnum, MAP_ENGINE, MapEngine, MenuOpenDirection, MenuTriggerType, MessageOptionType, MessageTextType, MessageType, NAMED_VALIDATOR, NamedValidatorOperationEnum, NamedValidatorService, NoPermissionPageComponent, PhotoCaptureWidgetComponent, REUSE_ROUTER_SLOT_COMPONENT, ROOT_CONTAINER_UUID, ROUTER_SLOT_ID, RecordingUploaderPropertiesOpenDirectionEnum, SMART_DEFAULT_VIEW_COMPONENTS, SearchPageComponent, SelectionDefinitionTypeEnum, SelectionDefinitionValueSetValueTypeEnum, ServerRequestType, SessionAPIS, SessionErrorBehaviour, SessionService, SharedModule, SmartActionType, SmartBackendBootstrapService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDefaultErrorUiService, SmartDiagramComponent, SmartDiagramModule, SmartDialog, SmartEmbeddedSlotDirective, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileEditorComponent, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterEditorContentComponent, SmartFilterEditorModule, SmartFilterEditorService, SmartFilterExpressionItemComponent, SmartFilterExpressionItemsComponent, SmartFilterModule, SmartFilterParamComponent, SmartFilterParamsComponent, SmartFilterPosition, SmartFilterType, SmartFormInputMode, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGenericPagesModule, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkMigrationStatusStatusEnum, SmartLinkUuidVariableInPath, SmartMapComponent, SmartMapModule, SmartMultiFileEditorComponent, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSubject, SmartTabGroupModule, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTooltipDirective, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidationModule, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartVoiceRecorderComponent, SmartWidgetHintPosition, SmartWidgetHintPositionEnum, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, SubjectSelectorComponent, ThemeService, ToggleLabelPosition, ToolbarAlignment, ToolbarDirection, USE_ADVANCED_FILTER, UiActionButtonComponent, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogButtonComponent, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, UiActionTooltipTooltipPositionEnum, UiBadgeComponent, UiBadgeDirective, UploadWidgetComponent, UploadWidgetType, ValidationResultPageComponent, ValueChangeMode, ViewContextRebuiltError, ViewEventHandlerViewEventTypeEnum, ViewService, ViewState, ViewType, VoiceRecordWidgetComponent, barChart, bubbleChart, createBasicOptions, doughnutChart, horizontalBarChart, horizontalStackedBarChart, multiAxisLineChart, pieChart, polarAreaChart, radarChart, resolveSlot, resolveViewHandler, scatterChart, stackedBarChart, transformDataToBarLikeDataSet, transformDataToBasicDataSets, transformDataToBubble, transformDataToScatter };
|
|
26058
|
+
export { APIS$5 as APIS, AbstractMap, AclEditingViewComponent, AdvancedRelationButtonComponent, AdvancedSmartFilterExpressionItemComponent, ApiModule$5 as ApiModule, ApiQueueService, BASE_PATH$7 as BASE_PATH, COLLECTION_FORMATS$7 as COLLECTION_FORMATS, COMPONENT_LIBRARY, CUSTOM_DIAGRAM_OPTIONS, ClickMenuComponent, CloseResult, ComparableDropdownDirective, ComparableMultiselectDirective, ComponentFactoryService, ComponentFactoryServiceModule, ComponentLibrary, ComponentType, ComponentWidgetType, Configuration$7 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultChartOptionsProvider, DefaultUiActionCode_CLOSE, DrawTime, EMPTY_PARAMS, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, ExpressionEditorDialogComponent, FilterExpressionBoolOperator$1 as FilterExpressionBoolOperator, FilterExpressionBuilderGroupBuilderGroupKindEnum, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderByOrderEnum, GenericPageComponent, GeoMapDataLoadingMode, GeoMapDataSourceType, GeoMapItemKind, GeoMapOperationMode, GeoMapSelectionMode, GeoMapTextType, GoogleMap, GridColumnContentType, GridDataAccessConfigKindEnum, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptorKindEnum, HighlightPipe, HoverMenuComponent, IS_ASYNC_PARAM_NAME, IconPosition, ImageResourceKindEnum, InvalidSmartlinkComponent, LayoutDirection, LeafletMap, LinkTargetEnum, MAP_ENGINE, MapEngine, MenuOpenDirection, MenuTriggerType, MessageOptionType, MessageTextType, MessageType, NAMED_VALIDATOR, NamedValidatorOperationEnum, NamedValidatorService, NoPermissionPageComponent, PhotoCaptureWidgetComponent, REUSE_ROUTER_SLOT_COMPONENT, ROOT_CONTAINER_UUID, ROUTER_SLOT_ID, RecordingUploaderPropertiesOpenDirectionEnum, SMART_DEFAULT_VIEW_COMPONENTS, SearchPageComponent, SelectionDefinitionTypeEnum, SelectionDefinitionValueSetValueTypeEnum, ServerRequestType, SessionAPIS, SessionErrorBehaviour, SessionService, SharedModule, SmartActionType, SmartBackendBootstrapService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDefaultErrorUiService, SmartDiagramComponent, SmartDiagramModule, SmartDialog, SmartEmbeddedSlotDirective, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileEditorComponent, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterEditorContentComponent, SmartFilterEditorModule, SmartFilterEditorService, SmartFilterExpressionItemComponent, SmartFilterExpressionItemsComponent, SmartFilterModule, SmartFilterParamComponent, SmartFilterParamsComponent, SmartFilterPosition, SmartFilterType, SmartFilterWidgetComponent, SmartFormInputMode, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGenericPagesModule, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkMigrationStatusStatusEnum, SmartLinkUuidVariableInPath, SmartMapComponent, SmartMapModule, SmartMultiFileEditorComponent, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSubject, SmartTabGroupModule, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTooltipDirective, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidationModule, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartVoiceRecorderComponent, SmartWidgetHintPosition, SmartWidgetHintPositionEnum, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, SubjectSelectorComponent, ThemeService, ToggleLabelPosition, ToolbarAlignment, ToolbarDirection, USE_ADVANCED_FILTER, UiActionButtonComponent, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogButtonComponent, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, UiActionTooltipTooltipPositionEnum, UiBadgeComponent, UiBadgeDirective, UploadWidgetComponent, UploadWidgetType, ValidationResultPageComponent, ValueChangeMode, ViewContextRebuiltError, ViewEventHandlerViewEventTypeEnum, ViewService, ViewState, ViewType, VoiceRecordWidgetComponent, barChart, bubbleChart, createBasicOptions, doughnutChart, horizontalBarChart, horizontalStackedBarChart, multiAxisLineChart, pieChart, polarAreaChart, radarChart, resolveSlot, resolveViewHandler, scatterChart, stackedBarChart, transformDataToBarLikeDataSet, transformDataToBasicDataSets, transformDataToBubble, transformDataToScatter };
|
|
25974
26059
|
//# sourceMappingURL=smartbit4all-ng-client.mjs.map
|