ngx-render-material-forms 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/button/button.component.mjs +11 -15
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +19 -223
- package/esm2020/lib/components/select/select.component.mjs +37 -7
- package/esm2020/lib/ngx-render-material-forms.module.mjs +6 -16
- package/fesm2015/ngx-render-material-forms.js +75 -654
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
- package/fesm2020/ngx-render-material-forms.js +72 -645
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
- package/lib/components/button/button.component.d.ts +0 -6
- package/lib/components/datagrid/datagrid.component.d.ts +1 -21
- package/lib/components/select/select.component.d.ts +2 -0
- package/lib/ngx-render-material-forms.module.d.ts +27 -29
- package/package.json +1 -1
- package/esm2020/lib/components/add-on-products/add-on-products.component.mjs +0 -329
- package/esm2020/lib/components/common.service.mjs +0 -85
- package/lib/components/add-on-products/add-on-products.component.d.ts +0 -76
- package/lib/components/common.service.d.ts +0 -23
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, Input, ViewChild, ViewContainerRef, ViewChildren, EventEmitter, Output, forwardRef, Directive, Inject, Optional, NgModule } from '@angular/core';
|
|
3
|
-
import * as i1$
|
|
3
|
+
import * as i1$1 from '@angular/common/http';
|
|
4
4
|
import { HttpHeaders, HttpClientModule } from '@angular/common/http';
|
|
5
5
|
import * as i1 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i2 from '@angular/forms';
|
|
8
|
-
import { FormControl, NG_VALUE_ACCESSOR,
|
|
8
|
+
import { FormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
import * as i4$2 from '@angular/material/input';
|
|
10
10
|
import { MAT_INPUT_VALUE_ACCESSOR, MatInputModule } from '@angular/material/input';
|
|
11
11
|
import * as i3$2 from '@angular/material/button';
|
|
@@ -27,20 +27,18 @@ import * as i4 from '@angular/material/card';
|
|
|
27
27
|
import { MatCardModule } from '@angular/material/card';
|
|
28
28
|
import * as i2$2 from '@angular/material/tabs';
|
|
29
29
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
30
|
-
import * as
|
|
30
|
+
import * as i4$7 from '@angular/material/table';
|
|
31
31
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
32
32
|
import * as i5$2 from '@angular/material/datepicker';
|
|
33
33
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
34
|
-
import * as
|
|
34
|
+
import * as i3$4 from '@angular/material/progress-spinner';
|
|
35
35
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
36
36
|
import * as i4$1 from '@angular/material/icon';
|
|
37
37
|
import { MatIconModule } from '@angular/material/icon';
|
|
38
38
|
import * as i5$1 from '@angular/material/core';
|
|
39
39
|
import { MatNativeDateModule } from '@angular/material/core';
|
|
40
|
-
import * as i1$
|
|
40
|
+
import * as i1$2 from '@angular/material/dialog';
|
|
41
41
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
42
|
-
import * as i14 from '@angular/material/autocomplete';
|
|
43
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
44
42
|
import Webform from 'formiojs/Webform.js';
|
|
45
43
|
import FormioComponent$2 from 'formiojs/components/_classes/component/Component.js';
|
|
46
44
|
import TextFieldComponent from 'formiojs/components/textfield/TextField.js';
|
|
@@ -83,24 +81,23 @@ import RadioComponent from 'formiojs/components/radio/Radio.js';
|
|
|
83
81
|
import SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';
|
|
84
82
|
import SelectComponent from 'formiojs/components/select/Select.js';
|
|
85
83
|
import { Subject } from 'rxjs';
|
|
86
|
-
import { debounceTime, distinctUntilChanged, takeUntil
|
|
84
|
+
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
87
85
|
import * as CryptoJS from 'crypto-js';
|
|
88
86
|
import { isNullOrUndefined } from 'util';
|
|
89
87
|
import * as i9 from 'ngx-mat-select-search';
|
|
90
88
|
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
|
|
91
89
|
import WellComponent from 'formiojs/components/well/Well.js';
|
|
92
90
|
import DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';
|
|
93
|
-
import * as
|
|
91
|
+
import * as i8 from '@angular/cdk/drag-drop';
|
|
94
92
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
95
|
-
import { SelectionModel } from '@angular/cdk/collections';
|
|
96
|
-
import * as i13 from '@angular/material/stepper';
|
|
97
|
-
import { MatStepperModule } from '@angular/material/stepper';
|
|
98
93
|
import EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';
|
|
99
94
|
import Components$2 from 'formiojs/components/Components';
|
|
100
95
|
import isString from 'lodash/isString';
|
|
101
96
|
import TableComponent from 'formiojs/components/table/Table.js';
|
|
102
97
|
import Wizard from 'formiojs/Wizard';
|
|
103
98
|
import Displays from 'formiojs/displays/Displays';
|
|
99
|
+
import * as i3$3 from '@angular/material/stepper';
|
|
100
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
104
101
|
import * as i1$3 from '@formio/angular';
|
|
105
102
|
import { FormioBaseComponent } from '@formio/angular';
|
|
106
103
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
@@ -979,11 +976,8 @@ var AngularButtonsThemes;
|
|
|
979
976
|
})(AngularButtonsThemes || (AngularButtonsThemes = {}));
|
|
980
977
|
|
|
981
978
|
class MaterialButtonComponent extends MaterialComponent {
|
|
982
|
-
constructor(
|
|
983
|
-
super(
|
|
984
|
-
this.element = element;
|
|
985
|
-
this.ref = ref;
|
|
986
|
-
this.dialog = dialog;
|
|
979
|
+
constructor() {
|
|
980
|
+
super(...arguments);
|
|
987
981
|
this.loading = false;
|
|
988
982
|
this.done = false;
|
|
989
983
|
this.error = false;
|
|
@@ -1054,12 +1048,12 @@ class MaterialButtonComponent extends MaterialComponent {
|
|
|
1054
1048
|
return retVal;
|
|
1055
1049
|
}
|
|
1056
1050
|
}
|
|
1057
|
-
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, deps:
|
|
1058
|
-
MaterialButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialButtonComponent, selector: "mat-formio-button", usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"instance
|
|
1051
|
+
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1052
|
+
MaterialButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialButtonComponent, selector: "mat-formio-button", usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"instance\"\r\n [ngClass]=\"buttonClass\"\r\n type=\"{{ instance.component.action }}\"\r\n mat-raised-button [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n (click)=\"instance.onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"done\">done</mat-icon>\r\n <mat-icon *ngIf=\"error\">close</mat-icon>\r\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\r\n {{ instance.component.label }}\r\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\r\n</button>\r\n", styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host .mat-icon-spin{-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mat-formio-theme-success{background-color:#63d644!important}.mat-formio-theme-info{background-color:#49d9f4!important}.mat-formio-button-sm{font-size:14px;padding:8px 12px}.mat-formio-button-xs{font-size:14px;padding:4px 6px}.mat-formio-button-md{font-size:15px;padding:8px 12px}.mat-formio-button-lg{font-size:19px;padding:16px 20px}.mat-formio-button-block{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
|
|
1059
1053
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, decorators: [{
|
|
1060
1054
|
type: Component,
|
|
1061
|
-
args: [{ selector: 'mat-formio-button', template: "<button *ngIf=\"instance
|
|
1062
|
-
}]
|
|
1055
|
+
args: [{ selector: 'mat-formio-button', template: "<button *ngIf=\"instance\"\r\n [ngClass]=\"buttonClass\"\r\n type=\"{{ instance.component.action }}\"\r\n mat-raised-button [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n (click)=\"instance.onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"done\">done</mat-icon>\r\n <mat-icon *ngIf=\"error\">close</mat-icon>\r\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\r\n {{ instance.component.label }}\r\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\r\n</button>\r\n", styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host .mat-icon-spin{-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mat-formio-theme-success{background-color:#63d644!important}.mat-formio-theme-info{background-color:#49d9f4!important}.mat-formio-button-sm{font-size:14px;padding:8px 12px}.mat-formio-button-xs{font-size:14px;padding:4px 6px}.mat-formio-button-md{font-size:15px;padding:8px 12px}.mat-formio-button-lg{font-size:19px;padding:16px 20px}.mat-formio-button-block{display:block;width:100%}\n"] }]
|
|
1056
|
+
}] });
|
|
1063
1057
|
ButtonComponent.MaterialComponent = MaterialButtonComponent;
|
|
1064
1058
|
|
|
1065
1059
|
class MaterialTextareaComponent extends MaterialComponent {
|
|
@@ -2600,7 +2594,8 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2600
2594
|
});
|
|
2601
2595
|
}
|
|
2602
2596
|
registerPanelScrollEvent(selectElem) {
|
|
2603
|
-
|
|
2597
|
+
var _a;
|
|
2598
|
+
const panelElement = (_a = selectElem === null || selectElem === void 0 ? void 0 : selectElem.panel) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
2604
2599
|
panelElement.addEventListener('scroll', this.onScroll.bind(this));
|
|
2605
2600
|
}
|
|
2606
2601
|
onScroll(event) {
|
|
@@ -2698,7 +2693,8 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2698
2693
|
this.searching = false;
|
|
2699
2694
|
this.productsloadingFlag = true;
|
|
2700
2695
|
setTimeout(() => {
|
|
2701
|
-
|
|
2696
|
+
var _a, _b;
|
|
2697
|
+
const ele = (_b = (_a = this.selectElem) === null || _a === void 0 ? void 0 : _a.panel) === null || _b === void 0 ? void 0 : _b.nativeElement;
|
|
2702
2698
|
const trackHeight = ele.scrollHeight - ele.offsetHeight;
|
|
2703
2699
|
const middlePosition = trackHeight / 2 - 50;
|
|
2704
2700
|
ele.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
@@ -2756,8 +2752,9 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2756
2752
|
ngAfterViewInit() {
|
|
2757
2753
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2758
2754
|
this.selectElem.openedChange.subscribe((isOpen) => {
|
|
2755
|
+
var _a;
|
|
2759
2756
|
if (isOpen) {
|
|
2760
|
-
this.pageNumber =
|
|
2757
|
+
this.pageNumber = 1;
|
|
2761
2758
|
this.pageSize = 20;
|
|
2762
2759
|
this.searchQuery = '';
|
|
2763
2760
|
this.searching = false;
|
|
@@ -2768,8 +2765,11 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2768
2765
|
this.removePanelScrollEvent();
|
|
2769
2766
|
this.searching = false;
|
|
2770
2767
|
let selectedValue = this.getValue();
|
|
2771
|
-
if (selectedValue.toString().length == 0 && this.searchQuery == '') {
|
|
2768
|
+
if ((selectedValue.toString().length == 0 && this.searchQuery == '') || ((_a = this.productList) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
2772
2769
|
this.productList = [];
|
|
2770
|
+
this.pageNumber = 1;
|
|
2771
|
+
this.pageSize = 20;
|
|
2772
|
+
this.searchQuery = '';
|
|
2773
2773
|
this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
2774
2774
|
}
|
|
2775
2775
|
}
|
|
@@ -2796,6 +2796,7 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2796
2796
|
this.pageSize = 20;
|
|
2797
2797
|
this.productList = [];
|
|
2798
2798
|
this.searching = true;
|
|
2799
|
+
this.searchQuery = searchQuery;
|
|
2799
2800
|
this.loadData(this.pageNumber, this.pageSize, searchQuery);
|
|
2800
2801
|
}
|
|
2801
2802
|
});
|
|
@@ -2816,11 +2817,37 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2816
2817
|
});
|
|
2817
2818
|
this.filteredOptions = this.selectOptions;
|
|
2818
2819
|
}
|
|
2820
|
+
isError() {
|
|
2821
|
+
if (this.instance.error) {
|
|
2822
|
+
this.control.setErrors(this.instance.component.validate);
|
|
2823
|
+
return true;
|
|
2824
|
+
}
|
|
2825
|
+
else {
|
|
2826
|
+
return false;
|
|
2827
|
+
}
|
|
2828
|
+
}
|
|
2829
|
+
getErrorMessage() {
|
|
2830
|
+
if (this.instance.error && this.instance.error.messages) {
|
|
2831
|
+
const { messages } = this.instance.error;
|
|
2832
|
+
if (messages.length) {
|
|
2833
|
+
for (const msg of messages) {
|
|
2834
|
+
if (msg.context) {
|
|
2835
|
+
if (this.instance && this.instance.parent && this.instance.parent._data) {
|
|
2836
|
+
if (this.instance.parent._data.submit) {
|
|
2837
|
+
this.control.markAllAsTouched();
|
|
2838
|
+
}
|
|
2839
|
+
}
|
|
2840
|
+
return this.instance.error ? this.instance.error.message : '';
|
|
2841
|
+
}
|
|
2842
|
+
}
|
|
2843
|
+
}
|
|
2844
|
+
}
|
|
2845
|
+
}
|
|
2819
2846
|
compareObjects(o1, o2) {
|
|
2820
2847
|
return _.isEqual(o1, o2);
|
|
2821
2848
|
}
|
|
2822
2849
|
}
|
|
2823
|
-
MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$
|
|
2850
|
+
MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
2824
2851
|
MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSelectComponent, selector: "mat-formio-select", viewQueries: [{ propertyName: "multiSelect", first: true, predicate: ["multiSelect"], descendants: true, static: true }, { propertyName: "selectElem", first: true, predicate: ["productSelect"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
2825
2852
|
<mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
|
|
2826
2853
|
<ng-template #componentTemplate let-hasLabel>
|
|
@@ -2858,7 +2885,7 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
2858
2885
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2859
2886
|
{{ instance.component.suffix }}
|
|
2860
2887
|
</span>
|
|
2861
|
-
|
|
2888
|
+
<mat-error *ngIf="isError()" >{{ getErrorMessage() }}</mat-error>
|
|
2862
2889
|
</mat-form-field>
|
|
2863
2890
|
</ng-template>
|
|
2864
2891
|
`, isInline: true, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i9.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: i9.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
@@ -2901,11 +2928,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
2901
2928
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2902
2929
|
{{ instance.component.suffix }}
|
|
2903
2930
|
</span>
|
|
2904
|
-
|
|
2931
|
+
<mat-error *ngIf="isError()" >{{ getErrorMessage() }}</mat-error>
|
|
2905
2932
|
</mat-form-field>
|
|
2906
2933
|
</ng-template>
|
|
2907
2934
|
`, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"] }]
|
|
2908
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
2935
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.HttpClient }]; }, propDecorators: { multiSelect: [{
|
|
2909
2936
|
type: ViewChild,
|
|
2910
2937
|
args: ['multiSelect', { static: true }]
|
|
2911
2938
|
}], selectElem: [{
|
|
@@ -2964,477 +2991,32 @@ class ConfirmationDialogComponent {
|
|
|
2964
2991
|
ngOnInit() {
|
|
2965
2992
|
}
|
|
2966
2993
|
}
|
|
2967
|
-
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$
|
|
2968
|
-
ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ConfirmationDialogComponent, selector: "NgxMat-confirmation-dialog", ngImport: i0, template: "<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .data-grid-closed-btn .mat-button-focus-overlay{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i1$
|
|
2994
|
+
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
2995
|
+
ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ConfirmationDialogComponent, selector: "NgxMat-confirmation-dialog", ngImport: i0, template: "<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .data-grid-closed-btn .mat-button-focus-overlay{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
2969
2996
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
2970
2997
|
type: Component,
|
|
2971
2998
|
args: [{ selector: 'NgxMat-confirmation-dialog', template: "<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .data-grid-closed-btn .mat-button-focus-overlay{background-color:transparent}\n"] }]
|
|
2972
2999
|
}], ctorParameters: function () {
|
|
2973
|
-
return [{ type: i1$
|
|
3000
|
+
return [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
|
|
2974
3001
|
type: Inject,
|
|
2975
3002
|
args: [MAT_DIALOG_DATA]
|
|
2976
3003
|
}] }];
|
|
2977
3004
|
} });
|
|
2978
3005
|
|
|
2979
|
-
class CommonService {
|
|
2980
|
-
constructor(http) {
|
|
2981
|
-
this.http = http;
|
|
2982
|
-
this.holy = '';
|
|
2983
|
-
this.grail = '';
|
|
2984
|
-
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
2985
|
-
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
2986
|
-
this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));
|
|
2987
|
-
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
2988
|
-
}
|
|
2989
|
-
scrumble(msg) {
|
|
2990
|
-
if (!isNullOrUndefined(msg)) {
|
|
2991
|
-
var conceal = this.getcampaign(msg, this.holy, this.grail);
|
|
2992
|
-
var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
|
|
2993
|
-
var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
|
|
2994
|
-
let keyValue = {
|
|
2995
|
-
"value": conceal.toString(),
|
|
2996
|
-
"mac": hashInBase64
|
|
2997
|
-
};
|
|
2998
|
-
var result = JSON.stringify(keyValue);
|
|
2999
|
-
var jumbled = CryptoJS.enc.Utf8.parse(result);
|
|
3000
|
-
return CryptoJS.enc.Base64.stringify(jumbled);
|
|
3001
|
-
}
|
|
3002
|
-
}
|
|
3003
|
-
getcampaign(data, holy, grail) {
|
|
3004
|
-
return CryptoJS.AES.encrypt(data.toString(), holy, {
|
|
3005
|
-
blockSize: 128,
|
|
3006
|
-
iv: grail,
|
|
3007
|
-
mode: CryptoJS.mode.CBC,
|
|
3008
|
-
padding: CryptoJS.pad.Pkcs7
|
|
3009
|
-
});
|
|
3010
|
-
}
|
|
3011
|
-
getBaseApiUrl() {
|
|
3012
|
-
const baseUrlMapping = {
|
|
3013
|
-
'localhost': 'http://localhost:58504',
|
|
3014
|
-
'lincoln.vartopia.com': 'https://lincoln-api.vartopia.com',
|
|
3015
|
-
'stage.vartopia.com': 'https://stage-api.vartopia.com',
|
|
3016
|
-
'my.vartopia.com': 'https://reagan-api.vartopia.com',
|
|
3017
|
-
'jackson.vartopia.com': 'https://jackson-api.vartopia.com'
|
|
3018
|
-
};
|
|
3019
|
-
// Get the current hostname
|
|
3020
|
-
const hostname = window.location.hostname;
|
|
3021
|
-
return baseUrlMapping[hostname] || null;
|
|
3022
|
-
}
|
|
3023
|
-
listProductCategory() {
|
|
3024
|
-
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3025
|
-
const baseApiUrl = this.getBaseApiUrl();
|
|
3026
|
-
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsCategory?vendorId=${vendorId}`);
|
|
3027
|
-
}
|
|
3028
|
-
listSubCategory(category) {
|
|
3029
|
-
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3030
|
-
const baseApiUrl = this.getBaseApiUrl();
|
|
3031
|
-
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsSubCategory?vendorId=${vendorId}&categoryName=${category}`);
|
|
3032
|
-
}
|
|
3033
|
-
// Function to get value by key from the array
|
|
3034
|
-
getValueByKey(data, key) {
|
|
3035
|
-
if (!data || data.length === 0) {
|
|
3036
|
-
return null; // Return null if data is empty or undefined
|
|
3037
|
-
}
|
|
3038
|
-
const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());
|
|
3039
|
-
return item ? item.value : null;
|
|
3040
|
-
}
|
|
3041
|
-
// this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`, { headers }).subscribe(response => {
|
|
3042
|
-
loadProducts(pageNumber, pazeSize, search = '', onlyActive = true, description = false, category, subCategory) {
|
|
3043
|
-
const baseApiUrl = this.getBaseApiUrl();
|
|
3044
|
-
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3045
|
-
const encodeCat = encodeURIComponent(category);
|
|
3046
|
-
const encodeSubCat = encodeURIComponent(subCategory);
|
|
3047
|
-
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${vendorId}&pageNumber=${pageNumber}&pageSize=${pazeSize}&search=${search}&onlyActive=${onlyActive}&includeDescription=${description}&category=${encodeCat}&subCategory=${encodeSubCat}`);
|
|
3048
|
-
}
|
|
3049
|
-
}
|
|
3050
|
-
CommonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3051
|
-
CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, providedIn: 'root' });
|
|
3052
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, decorators: [{
|
|
3053
|
-
type: Injectable,
|
|
3054
|
-
args: [{
|
|
3055
|
-
providedIn: 'root'
|
|
3056
|
-
}]
|
|
3057
|
-
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }]; } });
|
|
3058
|
-
|
|
3059
|
-
class AddOnProductsComponent {
|
|
3060
|
-
constructor(matDialogRef, data, fb, dialog, commonSevice) {
|
|
3061
|
-
this.matDialogRef = matDialogRef;
|
|
3062
|
-
this.fb = fb;
|
|
3063
|
-
this.dialog = dialog;
|
|
3064
|
-
this.commonSevice = commonSevice;
|
|
3065
|
-
this.category = [];
|
|
3066
|
-
this.subCategory = [];
|
|
3067
|
-
this.filteredCategories = [];
|
|
3068
|
-
this.filteredSubCategories = [];
|
|
3069
|
-
this.addProductsColumns = ['select', 'productName', 'price'];
|
|
3070
|
-
this.showAllproductsColumns = ['delete', 'productName', 'categoryName', 'subCategory', 'Quantity', 'price'];
|
|
3071
|
-
this.quantityList = [5, 10, 15, 20, 25];
|
|
3072
|
-
this.ELEMENT_DATA = [];
|
|
3073
|
-
this.dataSource = new MatTableDataSource();
|
|
3074
|
-
this.selection = new SelectionModel(true, []);
|
|
3075
|
-
this.selectedDataSource = new MatTableDataSource([]);
|
|
3076
|
-
this.selectedCategory = null;
|
|
3077
|
-
this.selectedSubCategory = null;
|
|
3078
|
-
this.showCategory = false;
|
|
3079
|
-
this.showSubcategory = false;
|
|
3080
|
-
this.showPrice = true;
|
|
3081
|
-
this.showQuantity = true;
|
|
3082
|
-
this.showNewProductPicker = true;
|
|
3083
|
-
this.setCategory = '';
|
|
3084
|
-
this.setSubCategory = '';
|
|
3085
|
-
this.loadingFlag = false;
|
|
3086
|
-
this.pageNumber = 1;
|
|
3087
|
-
this.pageSize = 20;
|
|
3088
|
-
this.totalPages = 0;
|
|
3089
|
-
this.searchQuery = '';
|
|
3090
|
-
this.itemList = [];
|
|
3091
|
-
this.prevScrollPosition = 0; // Track the previous scroll position
|
|
3092
|
-
this.spinnerFlag = false;
|
|
3093
|
-
this.showCategory = data.attributesFlag.showCategory;
|
|
3094
|
-
this.showSubcategory = data.attributesFlag.showSubcategory;
|
|
3095
|
-
this.showPrice = data.attributesFlag.showPrice;
|
|
3096
|
-
this.showQuantity = data.attributesFlag.showQuantity;
|
|
3097
|
-
this.showNewProductPicker = data.showNewProductPicker;
|
|
3098
|
-
this.setCategory = data.category || '';
|
|
3099
|
-
this.setSubCategory = data.subCategory || '';
|
|
3100
|
-
this.selection = new SelectionModel(true, data.selectedProducts || []);
|
|
3101
|
-
this.form = this.fb.group({
|
|
3102
|
-
productCategory: [''],
|
|
3103
|
-
productSubcategory: [''],
|
|
3104
|
-
selectedProducts: this.fb.array([])
|
|
3105
|
-
});
|
|
3106
|
-
this.initializeFormArray();
|
|
3107
|
-
if (!this.showCategory) {
|
|
3108
|
-
this.removeColumn('categoryName');
|
|
3109
|
-
}
|
|
3110
|
-
if (!this.showPrice) {
|
|
3111
|
-
this.removeColumn('price');
|
|
3112
|
-
}
|
|
3113
|
-
if (!this.showSubcategory) {
|
|
3114
|
-
this.removeColumn('subCategory');
|
|
3115
|
-
}
|
|
3116
|
-
if (!this.showQuantity) {
|
|
3117
|
-
this.removeColumn('Quantity');
|
|
3118
|
-
}
|
|
3119
|
-
}
|
|
3120
|
-
removeColumn(columnName) {
|
|
3121
|
-
this.showAllproductsColumns = this.showAllproductsColumns.filter(column => column !== columnName);
|
|
3122
|
-
this.addProductsColumns = this.addProductsColumns.filter(column => column !== columnName);
|
|
3123
|
-
}
|
|
3124
|
-
initializeFormArray() {
|
|
3125
|
-
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3126
|
-
this.selection.selected.forEach(product => {
|
|
3127
|
-
selectedProductsArray.push(this.fb.group({
|
|
3128
|
-
price: [product.price || '', Validators.required],
|
|
3129
|
-
text: [product.text || ''],
|
|
3130
|
-
quantity: [product.quantity || '', Validators.required],
|
|
3131
|
-
category: [(product === null || product === void 0 ? void 0 : product.category) || ''],
|
|
3132
|
-
subCategory: [(product === null || product === void 0 ? void 0 : product.subCategory) || ''],
|
|
3133
|
-
value: [(product === null || product === void 0 ? void 0 : product.value) || '']
|
|
3134
|
-
}));
|
|
3135
|
-
});
|
|
3136
|
-
this.selectedDataSource.data = [...this.selection.selected];
|
|
3137
|
-
}
|
|
3138
|
-
initializeDataSources() {
|
|
3139
|
-
var _a, _b, _c, _d;
|
|
3140
|
-
// Ensure selected items are marked in the main data source
|
|
3141
|
-
if ((_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.selected) === null || _b === void 0 ? void 0 : _b.length) {
|
|
3142
|
-
(_d = (_c = this.selection) === null || _c === void 0 ? void 0 : _c.selected) === null || _d === void 0 ? void 0 : _d.forEach(selectedProduct => {
|
|
3143
|
-
const index = this.dataSource.data.findIndex(product => product.value === selectedProduct.value);
|
|
3144
|
-
if (index >= 0) {
|
|
3145
|
-
this.dataSource.data[index] = selectedProduct;
|
|
3146
|
-
}
|
|
3147
|
-
});
|
|
3148
|
-
this.selectedDataSource.data = [...this.selection.selected];
|
|
3149
|
-
}
|
|
3150
|
-
else {
|
|
3151
|
-
console.warn('No selected products found.');
|
|
3152
|
-
}
|
|
3153
|
-
}
|
|
3154
|
-
ngAfterViewInit() {
|
|
3155
|
-
}
|
|
3156
|
-
ngOnInit() {
|
|
3157
|
-
this.loadProductCategory();
|
|
3158
|
-
this.form.get('productCategory').valueChanges
|
|
3159
|
-
.pipe(startWith(''), map(value => this.filterProducts(value, 'category1'))).subscribe(filterCat => {
|
|
3160
|
-
this.filteredCategories = filterCat;
|
|
3161
|
-
});
|
|
3162
|
-
this.form.get('productSubcategory').valueChanges
|
|
3163
|
-
.pipe(startWith(''), map(value => this.filterProducts(value, 'subCategory'))).subscribe(subCat => {
|
|
3164
|
-
this.filteredSubCategories = subCat;
|
|
3165
|
-
});
|
|
3166
|
-
}
|
|
3167
|
-
loadProductCategory() {
|
|
3168
|
-
this.spinnerFlag = true;
|
|
3169
|
-
this.commonSevice.listProductCategory().subscribe(response => {
|
|
3170
|
-
this.spinnerFlag = false;
|
|
3171
|
-
if (response && response.code === 200) {
|
|
3172
|
-
this.category = response.data;
|
|
3173
|
-
this.filteredCategories = this.filterProducts(this.setCategory, 'category1');
|
|
3174
|
-
this.form.get('productCategory').setValue(this.setCategory);
|
|
3175
|
-
if (this.setCategory !== '') {
|
|
3176
|
-
this.onOptionSelected(this.setCategory, 'category1');
|
|
3177
|
-
this.form.get('productSubcategory').setValue(this.setSubCategory);
|
|
3178
|
-
}
|
|
3179
|
-
}
|
|
3180
|
-
});
|
|
3181
|
-
}
|
|
3182
|
-
filterProducts(value, cat) {
|
|
3183
|
-
const filterValue = value.toLowerCase();
|
|
3184
|
-
const data = cat === 'category1' ? this.category : this.subCategory;
|
|
3185
|
-
if (!filterValue) {
|
|
3186
|
-
return data;
|
|
3187
|
-
}
|
|
3188
|
-
else {
|
|
3189
|
-
return data.filter(option => option.toLowerCase().includes(filterValue));
|
|
3190
|
-
}
|
|
3191
|
-
}
|
|
3192
|
-
onSubmit() {
|
|
3193
|
-
if (this.form.valid) {
|
|
3194
|
-
this.matDialogRef.close({
|
|
3195
|
-
data: {
|
|
3196
|
-
status: true,
|
|
3197
|
-
items: this.form.value
|
|
3198
|
-
}
|
|
3199
|
-
});
|
|
3200
|
-
}
|
|
3201
|
-
}
|
|
3202
|
-
isAllSelected() {
|
|
3203
|
-
const numSelected = this.selection.selected.length;
|
|
3204
|
-
const numRows = this.dataSource.data.length;
|
|
3205
|
-
return numSelected === numRows;
|
|
3206
|
-
}
|
|
3207
|
-
isIndeterminate() {
|
|
3208
|
-
const numSelected = this.selection.selected.length;
|
|
3209
|
-
const numRows = this.dataSource.data.length;
|
|
3210
|
-
return numSelected > 0 && numSelected < numRows;
|
|
3211
|
-
}
|
|
3212
|
-
masterToggle() {
|
|
3213
|
-
this.isAllSelected()
|
|
3214
|
-
? this.selection.clear()
|
|
3215
|
-
: this.dataSource.data.forEach(row => this.selection.select(row));
|
|
3216
|
-
this.updateSelectedProducts();
|
|
3217
|
-
}
|
|
3218
|
-
toggleSelection(row) {
|
|
3219
|
-
this.selection.toggle(row);
|
|
3220
|
-
this.updateSelectedProducts();
|
|
3221
|
-
}
|
|
3222
|
-
// Getter for the FormArray
|
|
3223
|
-
get selectedProducts() {
|
|
3224
|
-
return this.form.get('selectedProducts');
|
|
3225
|
-
}
|
|
3226
|
-
updateSelectedProducts() {
|
|
3227
|
-
var _a, _b;
|
|
3228
|
-
if (Array.isArray(this.selection.selected)) {
|
|
3229
|
-
this.selectedDataSource.data = [...this.selection.selected];
|
|
3230
|
-
const selectedProductsArray = this.selectedProducts;
|
|
3231
|
-
selectedProductsArray.clear();
|
|
3232
|
-
(_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.selected) === null || _b === void 0 ? void 0 : _b.forEach(product => {
|
|
3233
|
-
var _a, _b;
|
|
3234
|
-
selectedProductsArray === null || selectedProductsArray === void 0 ? void 0 : selectedProductsArray.push(this.fb.group({
|
|
3235
|
-
price: [(_a = product === null || product === void 0 ? void 0 : product.price) !== null && _a !== void 0 ? _a : '', this.showPrice ? Validators.required : []],
|
|
3236
|
-
text: [(product === null || product === void 0 ? void 0 : product.text) || ''],
|
|
3237
|
-
quantity: [(_b = product === null || product === void 0 ? void 0 : product.quantity) !== null && _b !== void 0 ? _b : '', this.showQuantity ? Validators.required : []],
|
|
3238
|
-
category: [(product === null || product === void 0 ? void 0 : product.category) || ''],
|
|
3239
|
-
subCategory: [(product === null || product === void 0 ? void 0 : product.subCategory) || ''],
|
|
3240
|
-
value: [(product === null || product === void 0 ? void 0 : product.value) || '']
|
|
3241
|
-
}));
|
|
3242
|
-
});
|
|
3243
|
-
}
|
|
3244
|
-
else {
|
|
3245
|
-
console.error('Selection.selected is not an array:', this.selection.selected);
|
|
3246
|
-
}
|
|
3247
|
-
}
|
|
3248
|
-
getTotalRows() {
|
|
3249
|
-
return this.dataSource.data.length;
|
|
3250
|
-
}
|
|
3251
|
-
getSelectedRowsCount() {
|
|
3252
|
-
return this.selection.selected.length;
|
|
3253
|
-
}
|
|
3254
|
-
onOptionSelected(event, category) {
|
|
3255
|
-
let selectedValue;
|
|
3256
|
-
if (event && event.option && event.option.value !== undefined) {
|
|
3257
|
-
selectedValue = event.option.value;
|
|
3258
|
-
}
|
|
3259
|
-
else {
|
|
3260
|
-
selectedValue = event;
|
|
3261
|
-
}
|
|
3262
|
-
if (category === 'category1') {
|
|
3263
|
-
this.selectedCategory = selectedValue;
|
|
3264
|
-
this.spinnerFlag = true;
|
|
3265
|
-
this.commonSevice.listSubCategory(selectedValue).subscribe(response => {
|
|
3266
|
-
this.spinnerFlag = false;
|
|
3267
|
-
if (response && response.code === 200) {
|
|
3268
|
-
this.subCategory = response.data;
|
|
3269
|
-
this.filteredSubCategories = this.filterProducts(this.setCategory, 'subCategory');
|
|
3270
|
-
if (this.setSubCategory !== '') {
|
|
3271
|
-
this.selectedSubCategory = this.setSubCategory;
|
|
3272
|
-
this.getProducts();
|
|
3273
|
-
}
|
|
3274
|
-
}
|
|
3275
|
-
});
|
|
3276
|
-
}
|
|
3277
|
-
else {
|
|
3278
|
-
if (category === 'subCategory') {
|
|
3279
|
-
this.selectedSubCategory = event.option.value;
|
|
3280
|
-
this.getProducts();
|
|
3281
|
-
}
|
|
3282
|
-
}
|
|
3283
|
-
}
|
|
3284
|
-
getProducts() {
|
|
3285
|
-
this.spinnerFlag = true;
|
|
3286
|
-
this.commonSevice.loadProducts(this.pageNumber, this.pageSize, '', true, false, this.selectedCategory, this.selectedSubCategory).subscribe(response => {
|
|
3287
|
-
var _a;
|
|
3288
|
-
this.spinnerFlag = false;
|
|
3289
|
-
if (response && response.code === 200) {
|
|
3290
|
-
//this.dataSource.data = response.data.dataSource;
|
|
3291
|
-
this.totalPages = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.totalPages;
|
|
3292
|
-
const data = response.data.dataSource;
|
|
3293
|
-
if (this.dataSource.data.length > 0) {
|
|
3294
|
-
data.forEach(item => this.dataSource.data.push(item));
|
|
3295
|
-
this.dataSource.data = [...this.dataSource.data];
|
|
3296
|
-
}
|
|
3297
|
-
else {
|
|
3298
|
-
this.dataSource.data = data;
|
|
3299
|
-
}
|
|
3300
|
-
this.loadingFlag = true;
|
|
3301
|
-
setTimeout(() => {
|
|
3302
|
-
const middlePosition = this.trackHeight / 2 - 50;
|
|
3303
|
-
if (this.firstscrollableDiv && this.firstscrollableDiv.nativeElement) {
|
|
3304
|
-
this.firstscrollableDiv.nativeElement.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
3305
|
-
}
|
|
3306
|
-
}, 250);
|
|
3307
|
-
this.initializeDataSources();
|
|
3308
|
-
}
|
|
3309
|
-
});
|
|
3310
|
-
}
|
|
3311
|
-
removeRow(event, element) {
|
|
3312
|
-
event.stopPropagation();
|
|
3313
|
-
event.preventDefault();
|
|
3314
|
-
let message = 'Are you sure you want to delete this product?';
|
|
3315
|
-
let showButton = true;
|
|
3316
|
-
const index = this.selectedDataSource.data.indexOf(element);
|
|
3317
|
-
if (index >= 0) {
|
|
3318
|
-
if (this.selectedDataSource.data.length === 1) {
|
|
3319
|
-
message = 'Please select at least one product.';
|
|
3320
|
-
showButton = false;
|
|
3321
|
-
}
|
|
3322
|
-
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
3323
|
-
disableClose: true,
|
|
3324
|
-
width: '90%',
|
|
3325
|
-
maxWidth: '400px',
|
|
3326
|
-
data: { message: message, buttonStatus: showButton }
|
|
3327
|
-
});
|
|
3328
|
-
dialogRef.afterClosed().subscribe(result => {
|
|
3329
|
-
if (result) {
|
|
3330
|
-
this.selectedDataSource.data.splice(index, 1);
|
|
3331
|
-
this.selectedDataSource._updateChangeSubscription();
|
|
3332
|
-
this.selection.deselect(element);
|
|
3333
|
-
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3334
|
-
const productIndex = selectedProductsArray.controls.findIndex(control => control.value.productName === element.productName);
|
|
3335
|
-
if (productIndex >= 0) {
|
|
3336
|
-
selectedProductsArray.removeAt(productIndex);
|
|
3337
|
-
}
|
|
3338
|
-
}
|
|
3339
|
-
});
|
|
3340
|
-
}
|
|
3341
|
-
}
|
|
3342
|
-
onScroll(event) {
|
|
3343
|
-
this.trackHeight = event.target.scrollHeight - event.target.offsetHeight;
|
|
3344
|
-
if (this.loadingFlag && (Math.floor(event.target.scrollTop / this.trackHeight * 100) > 50)) {
|
|
3345
|
-
this.loadingFlag = false;
|
|
3346
|
-
if (this.pageNumber < this.totalPages) {
|
|
3347
|
-
this.pageNumber = this.pageNumber + 1;
|
|
3348
|
-
this.getProducts();
|
|
3349
|
-
}
|
|
3350
|
-
else {
|
|
3351
|
-
this.loadingFlag = true;
|
|
3352
|
-
}
|
|
3353
|
-
}
|
|
3354
|
-
this.prevScrollPosition = event.target.scrollTop;
|
|
3355
|
-
}
|
|
3356
|
-
}
|
|
3357
|
-
AddOnProductsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FormBuilder }, { token: i1$1.MatDialog }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3358
|
-
AddOnProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: AddOnProductsComponent, selector: "ngx-mat-add-on-products", viewQueries: [{ propertyName: "firstscrollableDiv", first: true, predicate: ["firstscrollableDiv"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i13.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i13.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i13.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i13.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "directive", type: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i14.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i14.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
|
|
3359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, decorators: [{
|
|
3360
|
-
type: Component,
|
|
3361
|
-
args: [{ selector: 'ngx-mat-add-on-products', template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"] }]
|
|
3362
|
-
}], ctorParameters: function () {
|
|
3363
|
-
return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
3364
|
-
type: Inject,
|
|
3365
|
-
args: [MAT_DIALOG_DATA]
|
|
3366
|
-
}] }, { type: i2.FormBuilder }, { type: i1$1.MatDialog }, { type: CommonService }];
|
|
3367
|
-
}, propDecorators: { firstscrollableDiv: [{
|
|
3368
|
-
type: ViewChild,
|
|
3369
|
-
args: ['firstscrollableDiv']
|
|
3370
|
-
}] } });
|
|
3371
|
-
|
|
3372
|
-
const ELEMENT_DATA = [];
|
|
3373
3006
|
class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
3374
|
-
constructor(element, ref, dialog
|
|
3007
|
+
constructor(element, ref, dialog) {
|
|
3375
3008
|
super(element, ref);
|
|
3376
3009
|
this.element = element;
|
|
3377
3010
|
this.ref = ref;
|
|
3378
3011
|
this.dialog = dialog;
|
|
3379
|
-
this.commonService = commonService;
|
|
3380
3012
|
this.dataSource = new MatTableDataSource();
|
|
3381
|
-
this.dataSourceNew = ELEMENT_DATA;
|
|
3382
|
-
this.displayedColumnsNew = ['productName', 'category', 'subCategory', 'quantity', 'price'];
|
|
3383
|
-
this.showNewProductPicker = false;
|
|
3384
|
-
this.showCategory = false;
|
|
3385
|
-
this.showSubcategory = false;
|
|
3386
|
-
this.showPrice = true;
|
|
3387
|
-
this.showQuantity = true;
|
|
3388
|
-
this.category = '';
|
|
3389
|
-
this.subCategory = '';
|
|
3390
|
-
this.hasInitialized = false;
|
|
3391
3013
|
}
|
|
3392
3014
|
getColumnLabel(column) {
|
|
3393
3015
|
return column.label || column.key;
|
|
3394
3016
|
}
|
|
3395
|
-
checkIsAttributeTrue(newProductPickerFlag, attributeName) {
|
|
3396
|
-
return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase() &&
|
|
3397
|
-
newProductPickerFlag[key].toLowerCase() === "true");
|
|
3398
|
-
}
|
|
3399
|
-
// ngOnInit(): void {
|
|
3400
|
-
// }
|
|
3401
3017
|
setInstance(instance) {
|
|
3402
|
-
var _a;
|
|
3403
|
-
const newProductPickerFlag = (_a = instance === null || instance === void 0 ? void 0 : instance.component) === null || _a === void 0 ? void 0 : _a.attributes;
|
|
3404
|
-
this.showNewProductPicker = this.checkIsAttributeTrue(newProductPickerFlag, "newproductpicker");
|
|
3405
|
-
this.showCategory = this.checkIsAttributeTrue(newProductPickerFlag, "showCategory");
|
|
3406
|
-
this.showSubcategory = this.checkIsAttributeTrue(newProductPickerFlag, "showSubcategory");
|
|
3407
|
-
this.showPrice = this.checkIsAttributeTrue(newProductPickerFlag, "showPrice");
|
|
3408
|
-
this.showQuantity = this.checkIsAttributeTrue(newProductPickerFlag, "showQuantity");
|
|
3409
3018
|
super.setInstance(instance);
|
|
3410
|
-
|
|
3411
|
-
if (!this.showCategory) {
|
|
3412
|
-
this.removeColumn('category');
|
|
3413
|
-
}
|
|
3414
|
-
if (!this.showQuantity) {
|
|
3415
|
-
this.removeColumn('quantity');
|
|
3416
|
-
}
|
|
3417
|
-
if (!this.showPrice) {
|
|
3418
|
-
this.removeColumn('price');
|
|
3419
|
-
}
|
|
3420
|
-
if (!this.showSubcategory) {
|
|
3421
|
-
this.removeColumn('subCategory');
|
|
3422
|
-
}
|
|
3423
|
-
const checkProducts = JSON.parse(localStorage.getItem('dealData')) || [];
|
|
3424
|
-
const dealId = checkProducts === null || checkProducts === void 0 ? void 0 : checkProducts.dealId;
|
|
3425
|
-
const storedData = localStorage.getItem(`selectedProducts-${dealId}`);
|
|
3426
|
-
if (storedData === null || storedData === void 0 ? void 0 : storedData.length) {
|
|
3427
|
-
this.dataSourceNew = JSON.parse(storedData);
|
|
3428
|
-
}
|
|
3429
|
-
else {
|
|
3430
|
-
this.dataSourceNew = [];
|
|
3431
|
-
}
|
|
3432
|
-
// Set flag to true to prevent further execution
|
|
3433
|
-
this.hasInitialized = true;
|
|
3434
|
-
}
|
|
3435
|
-
else {
|
|
3436
|
-
this.dataSource.data = instance.dataValue;
|
|
3437
|
-
}
|
|
3019
|
+
this.dataSource.data = instance.dataValue;
|
|
3438
3020
|
this.columns = {};
|
|
3439
3021
|
this.displayedColumns = [];
|
|
3440
3022
|
this.formColumns = [];
|
|
@@ -3462,10 +3044,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3462
3044
|
return viewContainer ? viewContainer : null;
|
|
3463
3045
|
};
|
|
3464
3046
|
}
|
|
3465
|
-
|
|
3466
|
-
this.displayedColumnsNew = this.displayedColumnsNew.filter(column => column !== columnName);
|
|
3467
|
-
}
|
|
3468
|
-
addAnotherOld() {
|
|
3047
|
+
addAnother() {
|
|
3469
3048
|
this.checkRowsNumber();
|
|
3470
3049
|
this.instance.addRow();
|
|
3471
3050
|
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
@@ -3473,60 +3052,6 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3473
3052
|
}
|
|
3474
3053
|
this.dataSource.data = [...this.dataSource.data];
|
|
3475
3054
|
}
|
|
3476
|
-
addAnother() {
|
|
3477
|
-
var _a, _b;
|
|
3478
|
-
if (this.showNewProductPicker) {
|
|
3479
|
-
const savedData = JSON.parse(localStorage.getItem('saveCat'));
|
|
3480
|
-
const checkProducts = JSON.parse(localStorage.getItem('dealData')) || [];
|
|
3481
|
-
// Use optional chaining and nullish coalescing to set the values
|
|
3482
|
-
this.category = (_a = savedData === null || savedData === void 0 ? void 0 : savedData.category) !== null && _a !== void 0 ? _a : this.category;
|
|
3483
|
-
this.subCategory = (_b = savedData === null || savedData === void 0 ? void 0 : savedData.subCategory) !== null && _b !== void 0 ? _b : this.subCategory;
|
|
3484
|
-
const diologeRef = this.dialog.open(AddOnProductsComponent, {
|
|
3485
|
-
disableClose: true,
|
|
3486
|
-
width: '90%',
|
|
3487
|
-
maxWidth: '900px',
|
|
3488
|
-
autoFocus: false,
|
|
3489
|
-
data: { attributesFlag: { showNewProductPicker: this.showNewProductPicker, showCategory: this.showCategory, showSubcategory: this.showSubcategory, showPrice: this.showPrice, showQuantity: this.showQuantity }, selectedProducts: this.dataSourceNew, category: this.category, subCategory: this.subCategory }
|
|
3490
|
-
})
|
|
3491
|
-
.afterClosed().subscribe(response => {
|
|
3492
|
-
var _a;
|
|
3493
|
-
if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.status) {
|
|
3494
|
-
if (!this.showCategory) {
|
|
3495
|
-
this.removeColumn('category');
|
|
3496
|
-
}
|
|
3497
|
-
if (!this.showQuantity) {
|
|
3498
|
-
this.removeColumn('quantity');
|
|
3499
|
-
}
|
|
3500
|
-
if (!this.showPrice) {
|
|
3501
|
-
this.removeColumn('price');
|
|
3502
|
-
}
|
|
3503
|
-
if (!this.showSubcategory) {
|
|
3504
|
-
this.removeColumn('subCategory');
|
|
3505
|
-
}
|
|
3506
|
-
//localStorage.setItem('selectedProducts', JSON.stringify(response.data.items.selectedProducts))
|
|
3507
|
-
const dealId = checkProducts === null || checkProducts === void 0 ? void 0 : checkProducts.dealId;
|
|
3508
|
-
localStorage.setItem(`selectedProducts-${dealId}`, JSON.stringify(response.data.items.selectedProducts));
|
|
3509
|
-
this.dataSourceNew = response.data.items.selectedProducts;
|
|
3510
|
-
this.category = response.data.items.productCategory;
|
|
3511
|
-
this.subCategory = response.data.items.productSubcategory;
|
|
3512
|
-
const catObject = {
|
|
3513
|
-
category: this.category,
|
|
3514
|
-
subCategory: this.subCategory
|
|
3515
|
-
};
|
|
3516
|
-
localStorage.setItem('saveCat', JSON.stringify(catObject));
|
|
3517
|
-
this.instance.component.defaultValue = response.data.items.selectedProducts;
|
|
3518
|
-
}
|
|
3519
|
-
});
|
|
3520
|
-
}
|
|
3521
|
-
else {
|
|
3522
|
-
this.checkRowsNumber();
|
|
3523
|
-
this.instance.addRow();
|
|
3524
|
-
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
3525
|
-
this.dataSource.data.push({});
|
|
3526
|
-
}
|
|
3527
|
-
this.dataSource.data = [...this.dataSource.data];
|
|
3528
|
-
}
|
|
3529
|
-
}
|
|
3530
3055
|
checkRowsNumber() {
|
|
3531
3056
|
while (this.instance.rows.length < this.dataSource.data.length) {
|
|
3532
3057
|
this.instance.addRow();
|
|
@@ -3577,7 +3102,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3577
3102
|
super.setValue(value);
|
|
3578
3103
|
}
|
|
3579
3104
|
}
|
|
3580
|
-
MaterialDataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$
|
|
3105
|
+
MaterialDataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
3581
3106
|
MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialDataGridComponent, selector: "mat-formio-datagrid", usesInheritance: true, ngImport: i0, template: `
|
|
3582
3107
|
<mat-formio-form-field [instance]="instance"
|
|
3583
3108
|
[componentTemplate]="componentTemplate"
|
|
@@ -3596,8 +3121,6 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3596
3121
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3597
3122
|
</button>
|
|
3598
3123
|
</mat-card-actions>
|
|
3599
|
-
<ng-container *ngIf="!showNewProductPicker">
|
|
3600
|
-
<div class="mat-elevation-z8">
|
|
3601
3124
|
<table
|
|
3602
3125
|
mat-table
|
|
3603
3126
|
[dataSource]="dataSource"
|
|
@@ -3606,8 +3129,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3606
3129
|
cdkDropList
|
|
3607
3130
|
[cdkDropListData]="dataSource"
|
|
3608
3131
|
(cdkDropListDropped)="dropTable($event)">
|
|
3609
|
-
|
|
3610
|
-
|
|
3132
|
+
>
|
|
3611
3133
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3612
3134
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3613
3135
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3637,51 +3159,6 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3637
3159
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3638
3160
|
</div>
|
|
3639
3161
|
</table>
|
|
3640
|
-
</div>
|
|
3641
|
-
</ng-container>
|
|
3642
|
-
|
|
3643
|
-
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3644
|
-
<!-- Product Name Column -->
|
|
3645
|
-
<ng-container matColumnDef="productName">
|
|
3646
|
-
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3647
|
-
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3648
|
-
</ng-container>
|
|
3649
|
-
|
|
3650
|
-
<!-- Quantity Column -->
|
|
3651
|
-
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3652
|
-
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3653
|
-
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3654
|
-
</ng-container>
|
|
3655
|
-
|
|
3656
|
-
<!-- Price Column -->
|
|
3657
|
-
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3658
|
-
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3659
|
-
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3660
|
-
</ng-container>
|
|
3661
|
-
|
|
3662
|
-
<!-- Category Column -->
|
|
3663
|
-
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3664
|
-
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3665
|
-
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3666
|
-
</ng-container>
|
|
3667
|
-
|
|
3668
|
-
<!-- Category Column -->
|
|
3669
|
-
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3670
|
-
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3671
|
-
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3672
|
-
</ng-container>
|
|
3673
|
-
|
|
3674
|
-
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3675
|
-
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3676
|
-
</table>
|
|
3677
|
-
<ng-template #noData>
|
|
3678
|
-
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3679
|
-
No product found please add some products.
|
|
3680
|
-
</div>
|
|
3681
|
-
</ng-template>
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
3162
|
</mat-card-content>
|
|
3686
3163
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3687
3164
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3697,7 +3174,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3697
3174
|
<span [instance]="instance" matFormioLabel></span>
|
|
3698
3175
|
</mat-card-title>
|
|
3699
3176
|
</ng-template>
|
|
3700
|
-
`, isInline: true, styles: [".datagrid-row{height:auto}
|
|
3177
|
+
`, isInline: true, styles: [".datagrid-row{height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
3701
3178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, decorators: [{
|
|
3702
3179
|
type: Component,
|
|
3703
3180
|
args: [{ selector: 'mat-formio-datagrid', template: `
|
|
@@ -3718,8 +3195,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3718
3195
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3719
3196
|
</button>
|
|
3720
3197
|
</mat-card-actions>
|
|
3721
|
-
<ng-container *ngIf="!showNewProductPicker">
|
|
3722
|
-
<div class="mat-elevation-z8">
|
|
3723
3198
|
<table
|
|
3724
3199
|
mat-table
|
|
3725
3200
|
[dataSource]="dataSource"
|
|
@@ -3728,8 +3203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3728
3203
|
cdkDropList
|
|
3729
3204
|
[cdkDropListData]="dataSource"
|
|
3730
3205
|
(cdkDropListDropped)="dropTable($event)">
|
|
3731
|
-
|
|
3732
|
-
|
|
3206
|
+
>
|
|
3733
3207
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3734
3208
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3735
3209
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3759,51 +3233,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3759
3233
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3760
3234
|
</div>
|
|
3761
3235
|
</table>
|
|
3762
|
-
</div>
|
|
3763
|
-
</ng-container>
|
|
3764
|
-
|
|
3765
|
-
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3766
|
-
<!-- Product Name Column -->
|
|
3767
|
-
<ng-container matColumnDef="productName">
|
|
3768
|
-
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3769
|
-
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3770
|
-
</ng-container>
|
|
3771
|
-
|
|
3772
|
-
<!-- Quantity Column -->
|
|
3773
|
-
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3774
|
-
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3775
|
-
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3776
|
-
</ng-container>
|
|
3777
|
-
|
|
3778
|
-
<!-- Price Column -->
|
|
3779
|
-
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3780
|
-
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3781
|
-
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3782
|
-
</ng-container>
|
|
3783
|
-
|
|
3784
|
-
<!-- Category Column -->
|
|
3785
|
-
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3786
|
-
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3787
|
-
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3788
|
-
</ng-container>
|
|
3789
|
-
|
|
3790
|
-
<!-- Category Column -->
|
|
3791
|
-
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3792
|
-
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3793
|
-
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3794
|
-
</ng-container>
|
|
3795
|
-
|
|
3796
|
-
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3797
|
-
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3798
|
-
</table>
|
|
3799
|
-
<ng-template #noData>
|
|
3800
|
-
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3801
|
-
No product found please add some products.
|
|
3802
|
-
</div>
|
|
3803
|
-
</ng-template>
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
3236
|
</mat-card-content>
|
|
3808
3237
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3809
3238
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3819,8 +3248,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3819
3248
|
<span [instance]="instance" matFormioLabel></span>
|
|
3820
3249
|
</mat-card-title>
|
|
3821
3250
|
</ng-template>
|
|
3822
|
-
`, styles: [".datagrid-row{height:auto}
|
|
3823
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
3251
|
+
`, styles: [".datagrid-row{height:auto}\n"] }]
|
|
3252
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.MatDialog }]; } });
|
|
3824
3253
|
DataGridComponent.MaterialComponent = MaterialDataGridComponent;
|
|
3825
3254
|
|
|
3826
3255
|
var EditRowState;
|
|
@@ -4203,7 +3632,7 @@ MaterialWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
4203
3632
|
<button *ngIf="instance.hasButton('submit')" mat-raised-button color="primary" (click)="submit()">Submit</button>
|
|
4204
3633
|
</div>
|
|
4205
3634
|
</mat-step>
|
|
4206
|
-
</mat-horizontal-stepper>`, isInline: true, styles: [":host .navigation-button-row{margin-top:8px}\n", ":host .navigation-button-row button{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type:
|
|
3635
|
+
</mat-horizontal-stepper>`, isInline: true, styles: [":host .navigation-button-row{margin-top:8px}\n", ":host .navigation-button-row button{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$3.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i3$3.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] });
|
|
4207
3636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialWizardComponent, decorators: [{
|
|
4208
3637
|
type: Component,
|
|
4209
3638
|
args: [{ selector: 'mat-formio-wizard', template: `
|
|
@@ -4373,7 +3802,7 @@ FormioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
4373
3802
|
<div fxLayout="column" fxLayoutGap="1em">
|
|
4374
3803
|
<ng-template #formio></ng-template>
|
|
4375
3804
|
</div>
|
|
4376
|
-
`, isInline: true, styles: [".alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:.5rem;border:1px solid transparent;border-radius:.25rem}::ng-deep mat-card{box-sizing:border-box;-moz-box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type:
|
|
3805
|
+
`, isInline: true, styles: [".alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:.5rem;border:1px solid transparent;border-radius:.25rem}::ng-deep mat-card{box-sizing:border-box;-moz-box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }] });
|
|
4377
3806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioComponent, decorators: [{
|
|
4378
3807
|
type: Component,
|
|
4379
3808
|
args: [{ selector: 'mat-formio', template: `
|
|
@@ -4445,8 +3874,7 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
4445
3874
|
FormioFormFieldComponent,
|
|
4446
3875
|
LabelComponent,
|
|
4447
3876
|
MaskDirective,
|
|
4448
|
-
ConfirmationDialogComponent,
|
|
4449
|
-
AddOnProductsComponent], imports: [CommonModule,
|
|
3877
|
+
ConfirmationDialogComponent], imports: [CommonModule,
|
|
4450
3878
|
FormsModule,
|
|
4451
3879
|
ReactiveFormsModule,
|
|
4452
3880
|
MatInputModule,
|
|
@@ -4474,9 +3902,7 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
4474
3902
|
ScrollingModule,
|
|
4475
3903
|
NgxMatSelectSearchModule,
|
|
4476
3904
|
MatDialogModule,
|
|
4477
|
-
HttpClientModule,
|
|
4478
|
-
MatAutocompleteModule], exports: [MatAutocompleteModule,
|
|
4479
|
-
NgxRenderMaterialFormsComponent,
|
|
3905
|
+
HttpClientModule], exports: [NgxRenderMaterialFormsComponent,
|
|
4480
3906
|
FormioComponent,
|
|
4481
3907
|
MatInputModule,
|
|
4482
3908
|
MatFormFieldModule,
|
|
@@ -4530,9 +3956,7 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
|
|
|
4530
3956
|
ScrollingModule,
|
|
4531
3957
|
NgxMatSelectSearchModule,
|
|
4532
3958
|
MatDialogModule,
|
|
4533
|
-
HttpClientModule,
|
|
4534
|
-
MatAutocompleteModule, MatAutocompleteModule,
|
|
4535
|
-
MatInputModule,
|
|
3959
|
+
HttpClientModule, MatInputModule,
|
|
4536
3960
|
MatFormFieldModule,
|
|
4537
3961
|
MatCheckboxModule,
|
|
4538
3962
|
MatRadioModule,
|
|
@@ -4600,8 +4024,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4600
4024
|
FormioFormFieldComponent,
|
|
4601
4025
|
LabelComponent,
|
|
4602
4026
|
MaskDirective,
|
|
4603
|
-
ConfirmationDialogComponent
|
|
4604
|
-
AddOnProductsComponent
|
|
4027
|
+
ConfirmationDialogComponent
|
|
4605
4028
|
],
|
|
4606
4029
|
imports: [
|
|
4607
4030
|
CommonModule,
|
|
@@ -4632,11 +4055,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4632
4055
|
ScrollingModule,
|
|
4633
4056
|
NgxMatSelectSearchModule,
|
|
4634
4057
|
MatDialogModule,
|
|
4635
|
-
HttpClientModule
|
|
4636
|
-
MatAutocompleteModule
|
|
4058
|
+
HttpClientModule
|
|
4637
4059
|
],
|
|
4638
4060
|
exports: [
|
|
4639
|
-
MatAutocompleteModule,
|
|
4640
4061
|
NgxRenderMaterialFormsComponent,
|
|
4641
4062
|
FormioComponent,
|
|
4642
4063
|
MatInputModule,
|