ngx-render-material-forms 1.7.0 → 1.7.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/add-on-products/add-on-products.component.mjs +451 -0
- package/esm2020/lib/components/button/button.component.mjs +15 -11
- package/esm2020/lib/components/common.service.mjs +62 -3
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +257 -7
- package/esm2020/lib/components/select/select.component.mjs +19 -68
- package/esm2020/lib/ngx-render-material-forms.module.mjs +16 -6
- package/fesm2015/ngx-render-material-forms.js +814 -108
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
- package/fesm2020/ngx-render-material-forms.js +803 -105
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
- package/lib/components/add-on-products/add-on-products.component.d.ts +102 -0
- package/lib/components/button/button.component.d.ts +6 -0
- package/lib/components/common.service.d.ts +10 -0
- package/lib/components/datagrid/datagrid.component.d.ts +32 -0
- package/lib/ngx-render-material-forms.module.d.ts +29 -27
- package/package.json +1 -1
|
@@ -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$2 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, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import { FormControl, NG_VALUE_ACCESSOR, Validators, 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,18 +27,20 @@ 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 i10$1 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 i11 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$1 from '@angular/material/dialog';
|
|
41
41
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
42
|
+
import * as i16 from '@angular/material/autocomplete';
|
|
43
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
42
44
|
import Webform from 'formiojs/Webform.js';
|
|
43
45
|
import FormioComponent$2 from 'formiojs/components/_classes/component/Component.js';
|
|
44
46
|
import TextFieldComponent from 'formiojs/components/textfield/TextField.js';
|
|
@@ -81,7 +83,7 @@ import RadioComponent from 'formiojs/components/radio/Radio.js';
|
|
|
81
83
|
import SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';
|
|
82
84
|
import SelectComponent from 'formiojs/components/select/Select.js';
|
|
83
85
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
84
|
-
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
86
|
+
import { debounceTime, distinctUntilChanged, takeUntil, startWith, map } from 'rxjs/operators';
|
|
85
87
|
import * as CryptoJS from 'crypto-js';
|
|
86
88
|
import { isNullOrUndefined } from 'util';
|
|
87
89
|
import * as i10 from 'ngx-mat-select-search';
|
|
@@ -90,14 +92,15 @@ import WellComponent from 'formiojs/components/well/Well.js';
|
|
|
90
92
|
import DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';
|
|
91
93
|
import * as i9 from '@angular/cdk/drag-drop';
|
|
92
94
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
95
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
96
|
+
import * as i15 from '@angular/material/stepper';
|
|
97
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
93
98
|
import EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';
|
|
94
99
|
import Components$2 from 'formiojs/components/Components';
|
|
95
100
|
import isString from 'lodash/isString';
|
|
96
101
|
import TableComponent from 'formiojs/components/table/Table.js';
|
|
97
102
|
import Wizard from 'formiojs/Wizard';
|
|
98
103
|
import Displays from 'formiojs/displays/Displays';
|
|
99
|
-
import * as i3$3 from '@angular/material/stepper';
|
|
100
|
-
import { MatStepperModule } from '@angular/material/stepper';
|
|
101
104
|
import * as i1$3 from '@formio/angular';
|
|
102
105
|
import { FormioBaseComponent } from '@formio/angular';
|
|
103
106
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
@@ -983,8 +986,11 @@ var AngularButtonsThemes;
|
|
|
983
986
|
})(AngularButtonsThemes || (AngularButtonsThemes = {}));
|
|
984
987
|
|
|
985
988
|
class MaterialButtonComponent extends MaterialComponent {
|
|
986
|
-
constructor() {
|
|
987
|
-
super(
|
|
989
|
+
constructor(element, ref, dialog) {
|
|
990
|
+
super(element, ref);
|
|
991
|
+
this.element = element;
|
|
992
|
+
this.ref = ref;
|
|
993
|
+
this.dialog = dialog;
|
|
988
994
|
this.loading = false;
|
|
989
995
|
this.done = false;
|
|
990
996
|
this.error = false;
|
|
@@ -1055,12 +1061,12 @@ class MaterialButtonComponent extends MaterialComponent {
|
|
|
1055
1061
|
return retVal;
|
|
1056
1062
|
}
|
|
1057
1063
|
}
|
|
1058
|
-
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, deps:
|
|
1059
|
-
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"] }] });
|
|
1064
|
+
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
1065
|
+
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 && instance.component.label != 'Click to add Products'\"\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\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"] }] });
|
|
1060
1066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, decorators: [{
|
|
1061
1067
|
type: Component,
|
|
1062
|
-
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"] }]
|
|
1063
|
-
}] });
|
|
1068
|
+
args: [{ selector: 'mat-formio-button', template: "<button *ngIf=\"instance && instance.component.label != 'Click to add Products'\"\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\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"] }]
|
|
1069
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.MatDialog }]; } });
|
|
1064
1070
|
ButtonComponent.MaterialComponent = MaterialButtonComponent;
|
|
1065
1071
|
|
|
1066
1072
|
class MaterialTextareaComponent extends MaterialComponent {
|
|
@@ -2550,8 +2556,12 @@ class CommonService {
|
|
|
2550
2556
|
this.dropdownItems$ = this.dropdownItemsSubject.asObservable();
|
|
2551
2557
|
this.setFlag = new BehaviorSubject(false); // Initialize with false
|
|
2552
2558
|
this.dropdownflag$ = this.setFlag.asObservable(); // Observable that emits the boolean value
|
|
2553
|
-
this.
|
|
2559
|
+
this.holy = '';
|
|
2560
|
+
this.grail = '';
|
|
2554
2561
|
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
2562
|
+
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
2563
|
+
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
2564
|
+
this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));
|
|
2555
2565
|
}
|
|
2556
2566
|
getBaseApiUrl() {
|
|
2557
2567
|
const baseUrlMapping = {
|
|
@@ -2565,6 +2575,28 @@ class CommonService {
|
|
|
2565
2575
|
const hostname = window.location.hostname;
|
|
2566
2576
|
return baseUrlMapping[hostname] || null;
|
|
2567
2577
|
}
|
|
2578
|
+
scrumble(msg) {
|
|
2579
|
+
if (!isNullOrUndefined(msg)) {
|
|
2580
|
+
var conceal = this.getcampaign(msg, this.holy, this.grail);
|
|
2581
|
+
var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
|
|
2582
|
+
var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
|
|
2583
|
+
let keyValue = {
|
|
2584
|
+
"value": conceal.toString(),
|
|
2585
|
+
"mac": hashInBase64
|
|
2586
|
+
};
|
|
2587
|
+
var result = JSON.stringify(keyValue);
|
|
2588
|
+
var jumbled = CryptoJS.enc.Utf8.parse(result);
|
|
2589
|
+
return CryptoJS.enc.Base64.stringify(jumbled);
|
|
2590
|
+
}
|
|
2591
|
+
}
|
|
2592
|
+
getcampaign(data, holy, grail) {
|
|
2593
|
+
return CryptoJS.AES.encrypt(data.toString(), holy, {
|
|
2594
|
+
blockSize: 128,
|
|
2595
|
+
iv: grail,
|
|
2596
|
+
mode: CryptoJS.mode.CBC,
|
|
2597
|
+
padding: CryptoJS.pad.Pkcs7
|
|
2598
|
+
});
|
|
2599
|
+
}
|
|
2568
2600
|
/* Intialization of api path and queryparams */
|
|
2569
2601
|
initializeApiPath(getUrl, queryParams) {
|
|
2570
2602
|
if (queryParams?.length) {
|
|
@@ -2588,6 +2620,16 @@ class CommonService {
|
|
|
2588
2620
|
return obj;
|
|
2589
2621
|
}
|
|
2590
2622
|
}
|
|
2623
|
+
loadProducts(pageNumber, pazeSize, search = '', onlyActive = true, description = false, levelOneId, levelTwoId, levelThreeId, levelFourId) {
|
|
2624
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
2625
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
2626
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProductsV2?vendorId=${vendorId}&pageNumber=${pageNumber}&pageSize=${pazeSize}&search=${search}&onlyActive=${onlyActive}&includeDescription=${description}&levelOne=${levelOneId}&levelTwo=${levelTwoId}&levelThree=${levelThreeId}&levelFour=${levelFourId}`);
|
|
2627
|
+
}
|
|
2628
|
+
listSubCategory(category) {
|
|
2629
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
2630
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
2631
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsSubCategory?vendorId=${vendorId}&categoryName=${category}`);
|
|
2632
|
+
}
|
|
2591
2633
|
/* Append key and value to query string */
|
|
2592
2634
|
convertToQueryString(queryParams) {
|
|
2593
2635
|
const queryString = Object.keys(queryParams)
|
|
@@ -2609,10 +2651,30 @@ class CommonService {
|
|
|
2609
2651
|
const baseApiUrl = this.getBaseApiUrl();
|
|
2610
2652
|
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsCategory?vendorId=${vendorId}`);
|
|
2611
2653
|
}
|
|
2654
|
+
productLevelOne() {
|
|
2655
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
2656
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
2657
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelOne?vendorId=${vendorId}`);
|
|
2658
|
+
}
|
|
2659
|
+
productLevelTwo(levelOneId) {
|
|
2660
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
2661
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
2662
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelTwo?levelOneId=${levelOneId}&vendorId=${vendorId}`);
|
|
2663
|
+
}
|
|
2664
|
+
productLevelThree(levelOneId, levelTwoId) {
|
|
2665
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
2666
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
2667
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelThree?levelOneId=${levelOneId}&levelTwoId=${levelTwoId}&vendorId=${vendorId}`);
|
|
2668
|
+
}
|
|
2669
|
+
productLevelFour(levelOneId, levelTwoId, levelThreeId) {
|
|
2670
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
2671
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
2672
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelFour?levelOneId=${levelOneId}&levelTwoId=${levelTwoId}&levelThreeId=${levelThreeId}&vendorId=${vendorId}`);
|
|
2673
|
+
}
|
|
2612
2674
|
// Function to get value by key from the array
|
|
2613
2675
|
getValueByKey(data, key) {
|
|
2614
2676
|
if (!data || data.length === 0) {
|
|
2615
|
-
return null;
|
|
2677
|
+
return null;
|
|
2616
2678
|
}
|
|
2617
2679
|
const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());
|
|
2618
2680
|
return item ? item.value : null;
|
|
@@ -2636,19 +2698,20 @@ class CommonService {
|
|
|
2636
2698
|
getDropDownFlag() {
|
|
2637
2699
|
return this.setFlag.getValue();
|
|
2638
2700
|
}
|
|
2701
|
+
/*Funtion to check if property is matched with given attributes in formBuilder or not */
|
|
2639
2702
|
checkIsAttributeTrue(newProductPickerFlag, attributeName) {
|
|
2640
2703
|
return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase() &&
|
|
2641
2704
|
newProductPickerFlag[key].toLowerCase() === "true");
|
|
2642
2705
|
}
|
|
2643
2706
|
}
|
|
2644
|
-
CommonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, deps: [{ token: i1$
|
|
2707
|
+
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 });
|
|
2645
2708
|
CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, providedIn: 'root' });
|
|
2646
2709
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, decorators: [{
|
|
2647
2710
|
type: Injectable,
|
|
2648
2711
|
args: [{
|
|
2649
2712
|
providedIn: 'root'
|
|
2650
2713
|
}]
|
|
2651
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
2714
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }]; } });
|
|
2652
2715
|
|
|
2653
2716
|
class MaterialSelectComponent extends MaterialComponent {
|
|
2654
2717
|
constructor(element, ref, http, commonService) {
|
|
@@ -2887,74 +2950,25 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2887
2950
|
}
|
|
2888
2951
|
}
|
|
2889
2952
|
updateSecondDropdown(value) {
|
|
2890
|
-
const
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
const apiEndPoint = items?.component?.selectValues;
|
|
2898
|
-
if (apiEndPoint != '') {
|
|
2899
|
-
var parameters = [
|
|
2900
|
-
{
|
|
2901
|
-
"key": "userId",
|
|
2902
|
-
"value": JSON.parse(localStorage.getItem('currentUser')).UserId
|
|
2903
|
-
},
|
|
2904
|
-
{
|
|
2905
|
-
"key": "vendorId",
|
|
2906
|
-
"value": vendorId
|
|
2907
|
-
},
|
|
2908
|
-
{
|
|
2909
|
-
"key": "loginUserId",
|
|
2910
|
-
"value": JSON.parse(localStorage.getItem('currentUser')).UserId
|
|
2911
|
-
},
|
|
2912
|
-
{
|
|
2913
|
-
"key": "country",
|
|
2914
|
-
"value": typeof value === 'string' ? value.trim() : ''
|
|
2915
|
-
},
|
|
2916
|
-
{
|
|
2917
|
-
"key": "dataValue",
|
|
2918
|
-
"value": typeof value === 'string' ? value.trim() : ''
|
|
2919
|
-
},
|
|
2920
|
-
{
|
|
2921
|
-
"key": "dealId",
|
|
2922
|
-
"value": dealId
|
|
2923
|
-
},
|
|
2924
|
-
{
|
|
2925
|
-
"key": "isEdit",
|
|
2926
|
-
"value": isEdit
|
|
2927
|
-
},
|
|
2928
|
-
{
|
|
2929
|
-
"key": "referenceListName",
|
|
2930
|
-
"value": items?.component?.key
|
|
2931
|
-
},
|
|
2932
|
-
{
|
|
2933
|
-
"key": "referenceListFieldName",
|
|
2934
|
-
"value": this.instance?.component?.key
|
|
2935
|
-
}
|
|
2936
|
-
];
|
|
2937
|
-
finalParams = parameters?.filter(f1 => items?.component?.data?.headers.some(f2 => f1.key === f2.key));
|
|
2938
|
-
if (Array.isArray(finalParams)) {
|
|
2939
|
-
const index = finalParams.findIndex(param => param.key === 'dataValue');
|
|
2940
|
-
if (index !== -1) {
|
|
2941
|
-
// If the object exists, update its value
|
|
2942
|
-
finalParams[index].value = value;
|
|
2943
|
-
}
|
|
2944
|
-
else {
|
|
2945
|
-
// If the object doesn't exist, add it to the array
|
|
2946
|
-
finalParams.push({ key: 'dataValue', value: value });
|
|
2947
|
-
}
|
|
2948
|
-
this.commonService.initializeApiPath(apiEndPoint, finalParams).subscribe(response => {
|
|
2949
|
-
if (response && response.code === 200) {
|
|
2950
|
-
this.secondDropdownItems = response.data;
|
|
2951
|
-
this.commonService.setDropdownItems(this.secondDropdownItems);
|
|
2952
|
-
}
|
|
2953
|
-
});
|
|
2954
|
-
}
|
|
2955
|
-
}
|
|
2953
|
+
const apiEndPoint = 'ManageVendors/GetReferenceDataItemsByVendorIdAndDataValue';
|
|
2954
|
+
let finalParams = JSON.parse(localStorage.getItem('cascadingDropdownsParams'));
|
|
2955
|
+
if (Array.isArray(finalParams)) {
|
|
2956
|
+
const index = finalParams.findIndex(param => param.key === 'dataValue');
|
|
2957
|
+
if (index !== -1) {
|
|
2958
|
+
// If the object exists, update its value
|
|
2959
|
+
finalParams[index].value = value;
|
|
2956
2960
|
}
|
|
2957
|
-
|
|
2961
|
+
else {
|
|
2962
|
+
// If the object doesn't exist, add it to the array
|
|
2963
|
+
finalParams.push({ key: 'dataValue', value: value });
|
|
2964
|
+
}
|
|
2965
|
+
this.commonService.initializeApiPath(apiEndPoint, finalParams).subscribe(response => {
|
|
2966
|
+
if (response && response.code === 200) {
|
|
2967
|
+
this.secondDropdownItems = response.data;
|
|
2968
|
+
this.commonService.setDropdownItems(this.secondDropdownItems);
|
|
2969
|
+
}
|
|
2970
|
+
});
|
|
2971
|
+
}
|
|
2958
2972
|
}
|
|
2959
2973
|
ngAfterViewInit() {
|
|
2960
2974
|
this.selectElem.openedChange.subscribe(async (isOpen) => {
|
|
@@ -3108,7 +3122,7 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
3108
3122
|
return _.isEqual(o1, o2);
|
|
3109
3123
|
}
|
|
3110
3124
|
}
|
|
3111
|
-
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$
|
|
3125
|
+
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$2.HttpClient }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3112
3126
|
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: `
|
|
3113
3127
|
<mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
|
|
3114
3128
|
<ng-template #componentTemplate let-hasLabel>
|
|
@@ -3193,7 +3207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3193
3207
|
</mat-form-field>
|
|
3194
3208
|
</ng-template>
|
|
3195
3209
|
`, 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"] }]
|
|
3196
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
3210
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.HttpClient }, { type: CommonService }]; }, propDecorators: { multiSelect: [{
|
|
3197
3211
|
type: ViewChild,
|
|
3198
3212
|
args: ['multiSelect', { static: true }]
|
|
3199
3213
|
}], selectElem: [{
|
|
@@ -3252,16 +3266,444 @@ class ConfirmationDialogComponent {
|
|
|
3252
3266
|
ngOnInit() {
|
|
3253
3267
|
}
|
|
3254
3268
|
}
|
|
3255
|
-
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$
|
|
3256
|
-
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$
|
|
3269
|
+
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
3270
|
+
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$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
3257
3271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
3258
3272
|
type: Component,
|
|
3259
3273
|
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"] }]
|
|
3260
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3274
|
+
}], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
3261
3275
|
type: Inject,
|
|
3262
3276
|
args: [MAT_DIALOG_DATA]
|
|
3263
3277
|
}] }]; } });
|
|
3264
3278
|
|
|
3279
|
+
class AddOnProductsComponent {
|
|
3280
|
+
constructor(matDialogRef, data, fb, dialog, commonSevice) {
|
|
3281
|
+
this.matDialogRef = matDialogRef;
|
|
3282
|
+
this.fb = fb;
|
|
3283
|
+
this.dialog = dialog;
|
|
3284
|
+
this.commonSevice = commonSevice;
|
|
3285
|
+
this.dropdownOne = [];
|
|
3286
|
+
this.dropdownTwo = [];
|
|
3287
|
+
this.dropdownThree = [];
|
|
3288
|
+
this.dropdownFour = [];
|
|
3289
|
+
this.filteredDropdownOne = [];
|
|
3290
|
+
this.filteredDropdownTwo = [];
|
|
3291
|
+
this.filteredDropdownThree = [];
|
|
3292
|
+
this.filteredDropdownFour = [];
|
|
3293
|
+
this.addProductsColumns = ['select', 'productName', 'skuNumber'];
|
|
3294
|
+
this.showAllproductsColumns = ['delete', 'productName', 'categoryName', 'subCategory', 'Quantity', 'price', 'skuNumber'];
|
|
3295
|
+
this.quantityList = [5, 10, 15, 20, 25];
|
|
3296
|
+
this.ELEMENT_DATA = [];
|
|
3297
|
+
this.dataSource = new MatTableDataSource();
|
|
3298
|
+
this.selection = new SelectionModel(true, []);
|
|
3299
|
+
this.selectedDataSource = new MatTableDataSource([]);
|
|
3300
|
+
this.selectedCategory = null;
|
|
3301
|
+
this.selectedSubCategory = null;
|
|
3302
|
+
this.showCategory = false;
|
|
3303
|
+
this.showSubcategory = false;
|
|
3304
|
+
this.showPrice = true;
|
|
3305
|
+
this.showQuantity = true;
|
|
3306
|
+
this.showSkuNumber = false;
|
|
3307
|
+
this.showNewProductPicker = true;
|
|
3308
|
+
this.setCategory = '';
|
|
3309
|
+
this.setSubCategory = '';
|
|
3310
|
+
this.loadingFlag = false;
|
|
3311
|
+
this.pageNumber = 1;
|
|
3312
|
+
this.pageSize = 20;
|
|
3313
|
+
this.totalPages = 0;
|
|
3314
|
+
this.searchQuery = '';
|
|
3315
|
+
this.itemList = [];
|
|
3316
|
+
this.prevScrollPosition = 0; // Track the previous scroll position
|
|
3317
|
+
this.spinnerFlag = false;
|
|
3318
|
+
this.dropdownL1 = false;
|
|
3319
|
+
this.dropdownL2 = false;
|
|
3320
|
+
this.dropdownL3 = false;
|
|
3321
|
+
this.dropdownL4 = false;
|
|
3322
|
+
this.dropdownL1Label = '';
|
|
3323
|
+
this.dropdownL2Label = '';
|
|
3324
|
+
this.dropdownL3Label = '';
|
|
3325
|
+
this.dropdownL4Label = '';
|
|
3326
|
+
this.dropDownCount = 0;
|
|
3327
|
+
this.disablePrice = true;
|
|
3328
|
+
this.showCategory = data.dropdownsFlag.showDialogCategory;
|
|
3329
|
+
this.showSubcategory = data.dropdownsFlag.showDialogSubCategory;
|
|
3330
|
+
this.showPrice = data.dropdownsFlag.showDialogPrice;
|
|
3331
|
+
this.showQuantity = data.dropdownsFlag.showDialogQuantity;
|
|
3332
|
+
this.showSkuNumber = data.dropdownsFlag.showDialogSkuNumber;
|
|
3333
|
+
this.showNewProductPicker = data.dropdownsFlag.showNewProductPicker;
|
|
3334
|
+
this.dropdownL1 = data.dropdownsFlag.dropdownL1;
|
|
3335
|
+
this.dropdownL2 = data.dropdownsFlag.dropdownL2;
|
|
3336
|
+
this.dropdownL3 = data.dropdownsFlag.dropdownL3;
|
|
3337
|
+
this.dropdownL4 = data.dropdownsFlag.dropdownL4;
|
|
3338
|
+
this.dropdownL1Label = data.dropdownsFlag.dropdownL1Label;
|
|
3339
|
+
this.dropdownL2Label = data.dropdownsFlag.dropdownL2Label;
|
|
3340
|
+
this.dropdownL3Label = data.dropdownsFlag.dropdownL3Label;
|
|
3341
|
+
this.dropdownL4Label = data.dropdownsFlag.dropdownL4Label;
|
|
3342
|
+
this.dropDownCount = this.countTrueDropdowns(data.dropdownsFlag);
|
|
3343
|
+
this.selection = new SelectionModel(true, data.selectedProducts || []);
|
|
3344
|
+
this.form = this.fb.group({
|
|
3345
|
+
dropdownLevel1: [''],
|
|
3346
|
+
dropdownLevel2: [''],
|
|
3347
|
+
dropdownLevel3: [''],
|
|
3348
|
+
dropdownLevel4: [''],
|
|
3349
|
+
searchProductName: [''],
|
|
3350
|
+
selectedProducts: this.fb.array([])
|
|
3351
|
+
});
|
|
3352
|
+
this.initializeFormArray();
|
|
3353
|
+
if (!this.showCategory) {
|
|
3354
|
+
this.removeColumn('categoryName');
|
|
3355
|
+
}
|
|
3356
|
+
if (!this.showPrice) {
|
|
3357
|
+
this.removeColumn('price');
|
|
3358
|
+
}
|
|
3359
|
+
if (!this.showSubcategory) {
|
|
3360
|
+
this.removeColumn('subCategory');
|
|
3361
|
+
}
|
|
3362
|
+
if (!this.showQuantity) {
|
|
3363
|
+
this.removeColumn('Quantity');
|
|
3364
|
+
}
|
|
3365
|
+
if (!this.showSkuNumber) {
|
|
3366
|
+
this.removeColumn('skuNumber');
|
|
3367
|
+
}
|
|
3368
|
+
}
|
|
3369
|
+
removeColumn(columnName) {
|
|
3370
|
+
this.showAllproductsColumns = this.showAllproductsColumns.filter(column => column !== columnName);
|
|
3371
|
+
this.addProductsColumns = this.addProductsColumns.filter(column => column !== columnName);
|
|
3372
|
+
}
|
|
3373
|
+
initializeFormArray() {
|
|
3374
|
+
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3375
|
+
this.selection.selected.forEach(product => {
|
|
3376
|
+
selectedProductsArray.push(this.fb.group({
|
|
3377
|
+
price: [product.price || '', Validators.required],
|
|
3378
|
+
text: [product.text || ''],
|
|
3379
|
+
quantity: [product.quantity || '', Validators.required],
|
|
3380
|
+
category: [product?.category || ''],
|
|
3381
|
+
subCategory: [product?.subCategory || ''],
|
|
3382
|
+
value: [product?.value || ''],
|
|
3383
|
+
skuNumber: [product?.value || '']
|
|
3384
|
+
}));
|
|
3385
|
+
});
|
|
3386
|
+
selectedProductsArray.controls.forEach(control => {
|
|
3387
|
+
control.get('price')?.disable();
|
|
3388
|
+
});
|
|
3389
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3390
|
+
}
|
|
3391
|
+
initializeDataSources() {
|
|
3392
|
+
// Ensure selected items are marked in the main data source
|
|
3393
|
+
if (this.selection?.selected?.length) {
|
|
3394
|
+
this.selection?.selected?.forEach(selectedProduct => {
|
|
3395
|
+
const index = this.dataSource.data.findIndex(product => product.value === selectedProduct.value);
|
|
3396
|
+
if (index >= 0) {
|
|
3397
|
+
this.dataSource.data[index] = selectedProduct;
|
|
3398
|
+
}
|
|
3399
|
+
});
|
|
3400
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3401
|
+
}
|
|
3402
|
+
else {
|
|
3403
|
+
console.warn('No selected products found.');
|
|
3404
|
+
}
|
|
3405
|
+
}
|
|
3406
|
+
ngAfterViewInit() {
|
|
3407
|
+
}
|
|
3408
|
+
ngOnInit() {
|
|
3409
|
+
// this.loadProductCategory();
|
|
3410
|
+
this.loadDropdownL1();
|
|
3411
|
+
this.form.get('dropdownLevel1').valueChanges
|
|
3412
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'category1'))).subscribe(l1 => {
|
|
3413
|
+
this.filteredDropdownOne = l1;
|
|
3414
|
+
});
|
|
3415
|
+
this.form.get('dropdownLevel2').valueChanges
|
|
3416
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'category2'))).subscribe(l2 => {
|
|
3417
|
+
this.filteredDropdownTwo = l2;
|
|
3418
|
+
});
|
|
3419
|
+
this.form.get('dropdownLevel3').valueChanges
|
|
3420
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'category3'))).subscribe(l3 => {
|
|
3421
|
+
this.filteredDropdownThree = l3;
|
|
3422
|
+
});
|
|
3423
|
+
this.form.get('dropdownLevel4').valueChanges
|
|
3424
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'category4'))).subscribe(l4 => {
|
|
3425
|
+
this.filteredDropdownFour = l4;
|
|
3426
|
+
});
|
|
3427
|
+
}
|
|
3428
|
+
handleDropdownFilter() {
|
|
3429
|
+
if (this.form.controls.dropdownLevel1.value !== '' || this.form.controls.searchProductName.value !== '') {
|
|
3430
|
+
this.searchQuery = this.form.controls.searchProductName?.value;
|
|
3431
|
+
this.levelOneId = this.form.controls.dropdownLevel1.value?.id;
|
|
3432
|
+
this.levelTwoId = this.form.controls.dropdownLevel2.value?.id;
|
|
3433
|
+
this.levelThreeId = this.form.controls.dropdownLevel3.value?.id;
|
|
3434
|
+
this.levelFourId = this.form.controls.dropdownLevel4.value?.id;
|
|
3435
|
+
this.getProducts(false);
|
|
3436
|
+
}
|
|
3437
|
+
}
|
|
3438
|
+
loadDropdownL1() {
|
|
3439
|
+
this.spinnerFlag = true;
|
|
3440
|
+
this.commonSevice.productLevelOne().subscribe(response => {
|
|
3441
|
+
this.spinnerFlag = false;
|
|
3442
|
+
if (response && response.code === 200) {
|
|
3443
|
+
this.dropdownOne = response.data;
|
|
3444
|
+
this.filteredDropdownOne = this.filterProducts('', 'category1');
|
|
3445
|
+
}
|
|
3446
|
+
});
|
|
3447
|
+
}
|
|
3448
|
+
loadDropdownL2(levelOneId) {
|
|
3449
|
+
this.spinnerFlag = true;
|
|
3450
|
+
this.commonSevice.productLevelTwo(levelOneId).subscribe(response => {
|
|
3451
|
+
this.spinnerFlag = false;
|
|
3452
|
+
if (response && response.code === 200) {
|
|
3453
|
+
this.dropdownTwo = response.data;
|
|
3454
|
+
this.filteredDropdownTwo = this.filterProducts('', 'category2');
|
|
3455
|
+
}
|
|
3456
|
+
});
|
|
3457
|
+
}
|
|
3458
|
+
loadDropdownL3(levelOneId, levelTwoId) {
|
|
3459
|
+
this.spinnerFlag = true;
|
|
3460
|
+
this.commonSevice.productLevelThree(levelOneId, levelTwoId).subscribe(response => {
|
|
3461
|
+
this.spinnerFlag = false;
|
|
3462
|
+
if (response && response.code === 200) {
|
|
3463
|
+
this.dropdownThree = response.data;
|
|
3464
|
+
this.filteredDropdownThree = this.filterProducts('', 'category3');
|
|
3465
|
+
}
|
|
3466
|
+
});
|
|
3467
|
+
}
|
|
3468
|
+
loadDropdownL4(levelOneId, levelTwoId, levelThreeId) {
|
|
3469
|
+
this.spinnerFlag = true;
|
|
3470
|
+
this.commonSevice.productLevelFour(levelOneId, levelTwoId, levelThreeId).subscribe(response => {
|
|
3471
|
+
this.spinnerFlag = false;
|
|
3472
|
+
if (response && response.code === 200) {
|
|
3473
|
+
this.dropdownFour = response.data;
|
|
3474
|
+
this.filteredDropdownFour = this.filterProducts('', 'category4');
|
|
3475
|
+
}
|
|
3476
|
+
});
|
|
3477
|
+
}
|
|
3478
|
+
filterProducts(value, cat) {
|
|
3479
|
+
const filterValue = typeof value === 'string' ? value?.toLowerCase() : value;
|
|
3480
|
+
let data;
|
|
3481
|
+
// Dynamically assign the data array based on the category
|
|
3482
|
+
switch (cat) {
|
|
3483
|
+
case 'category1':
|
|
3484
|
+
data = this.dropdownOne;
|
|
3485
|
+
break;
|
|
3486
|
+
case 'category2':
|
|
3487
|
+
data = this.dropdownTwo;
|
|
3488
|
+
break;
|
|
3489
|
+
case 'category3':
|
|
3490
|
+
data = this.dropdownThree;
|
|
3491
|
+
break;
|
|
3492
|
+
case 'category4':
|
|
3493
|
+
data = this.dropdownFour;
|
|
3494
|
+
break;
|
|
3495
|
+
default:
|
|
3496
|
+
data = [];
|
|
3497
|
+
}
|
|
3498
|
+
if (!filterValue) {
|
|
3499
|
+
return data;
|
|
3500
|
+
}
|
|
3501
|
+
else {
|
|
3502
|
+
return data?.filter(option => option['name']?.toLowerCase().includes(filterValue));
|
|
3503
|
+
}
|
|
3504
|
+
}
|
|
3505
|
+
onSubmit() {
|
|
3506
|
+
if (this.form.valid) {
|
|
3507
|
+
this.matDialogRef.close({
|
|
3508
|
+
data: {
|
|
3509
|
+
status: true,
|
|
3510
|
+
items: this.form.getRawValue()
|
|
3511
|
+
}
|
|
3512
|
+
});
|
|
3513
|
+
}
|
|
3514
|
+
}
|
|
3515
|
+
isAllSelected() {
|
|
3516
|
+
const numSelected = this.selection.selected.length;
|
|
3517
|
+
const numRows = this.dataSource.data.length;
|
|
3518
|
+
return numSelected === numRows;
|
|
3519
|
+
}
|
|
3520
|
+
isIndeterminate() {
|
|
3521
|
+
const numSelected = this.selection.selected.length;
|
|
3522
|
+
const numRows = this.dataSource.data.length;
|
|
3523
|
+
return numSelected > 0 && numSelected < numRows;
|
|
3524
|
+
}
|
|
3525
|
+
masterToggle() {
|
|
3526
|
+
this.isAllSelected()
|
|
3527
|
+
? this.selection.clear()
|
|
3528
|
+
: this.dataSource.data.forEach(row => this.selection.select(row));
|
|
3529
|
+
this.updateSelectedProducts();
|
|
3530
|
+
}
|
|
3531
|
+
toggleSelection(row) {
|
|
3532
|
+
this.selection.toggle(row);
|
|
3533
|
+
this.updateSelectedProducts();
|
|
3534
|
+
}
|
|
3535
|
+
// Getter for the FormArray
|
|
3536
|
+
get selectedProducts() {
|
|
3537
|
+
return this.form.get('selectedProducts');
|
|
3538
|
+
}
|
|
3539
|
+
updateSelectedProducts() {
|
|
3540
|
+
if (Array.isArray(this.selection.selected)) {
|
|
3541
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3542
|
+
const selectedProductsArray = this.selectedProducts;
|
|
3543
|
+
selectedProductsArray.clear();
|
|
3544
|
+
this.selection?.selected?.forEach(product => {
|
|
3545
|
+
selectedProductsArray?.push(this.fb.group({
|
|
3546
|
+
price: [product?.price ?? '', this.showPrice ? Validators.required : []],
|
|
3547
|
+
text: [product?.text || ''],
|
|
3548
|
+
quantity: [product?.quantity ?? '', this.showQuantity ? Validators.required : []],
|
|
3549
|
+
category: [product?.category || ''],
|
|
3550
|
+
subCategory: [product?.subCategory || ''],
|
|
3551
|
+
value: [product?.value || ''],
|
|
3552
|
+
skuNumber: [product?.value || '']
|
|
3553
|
+
}));
|
|
3554
|
+
});
|
|
3555
|
+
selectedProductsArray.controls.forEach(control => {
|
|
3556
|
+
control.get('price')?.disable();
|
|
3557
|
+
});
|
|
3558
|
+
}
|
|
3559
|
+
else {
|
|
3560
|
+
console.error('Selection.selected is not an array:', this.selection.selected);
|
|
3561
|
+
}
|
|
3562
|
+
}
|
|
3563
|
+
getTotalRows() {
|
|
3564
|
+
return this.dataSource.data.length;
|
|
3565
|
+
}
|
|
3566
|
+
getSelectedRowsCount() {
|
|
3567
|
+
return this.selection.selected.length;
|
|
3568
|
+
}
|
|
3569
|
+
onOptionSelected(event, category) {
|
|
3570
|
+
let selectedValue;
|
|
3571
|
+
if (event && event.option && event.option.value !== undefined) {
|
|
3572
|
+
selectedValue = event.option.value.id;
|
|
3573
|
+
}
|
|
3574
|
+
else {
|
|
3575
|
+
selectedValue = event;
|
|
3576
|
+
}
|
|
3577
|
+
if (category === 'category1') {
|
|
3578
|
+
this.levelOneId = selectedValue;
|
|
3579
|
+
this.form.get('dropdownLevel2').setValue(null);
|
|
3580
|
+
this.form.get('dropdownLevel3').setValue(null);
|
|
3581
|
+
this.form.get('dropdownLevel4').setValue(null);
|
|
3582
|
+
this.filteredDropdownTwo = [];
|
|
3583
|
+
this.filteredDropdownThree = [];
|
|
3584
|
+
this.filteredDropdownFour = [];
|
|
3585
|
+
if (this.dropdownL2) {
|
|
3586
|
+
this.loadDropdownL2(this.levelOneId);
|
|
3587
|
+
}
|
|
3588
|
+
}
|
|
3589
|
+
if (category === 'category2') {
|
|
3590
|
+
this.levelTwoId = selectedValue;
|
|
3591
|
+
this.form.get('dropdownLevel3').setValue(null);
|
|
3592
|
+
this.form.get('dropdownLevel4').setValue(null);
|
|
3593
|
+
this.filteredDropdownThree = [];
|
|
3594
|
+
this.filteredDropdownFour = [];
|
|
3595
|
+
if (this.dropdownL3) {
|
|
3596
|
+
this.loadDropdownL3(this.levelOneId, this.levelTwoId);
|
|
3597
|
+
}
|
|
3598
|
+
}
|
|
3599
|
+
if (category === 'category3') {
|
|
3600
|
+
this.levelThreeId = selectedValue;
|
|
3601
|
+
this.form.get('dropdownLevel4').setValue(null);
|
|
3602
|
+
this.filteredDropdownFour = [];
|
|
3603
|
+
if (this.dropdownL4) {
|
|
3604
|
+
this.loadDropdownL4(this.levelOneId, this.levelTwoId, this.levelThreeId);
|
|
3605
|
+
}
|
|
3606
|
+
}
|
|
3607
|
+
if (category === 'category4') {
|
|
3608
|
+
this.levelFourId = selectedValue;
|
|
3609
|
+
}
|
|
3610
|
+
}
|
|
3611
|
+
getProducts(flag) {
|
|
3612
|
+
this.spinnerFlag = true;
|
|
3613
|
+
const search = this.searchQuery;
|
|
3614
|
+
this.commonSevice.loadProducts(this.pageNumber, this.pageSize, search, true, false, this.levelOneId, this.levelTwoId, this.levelThreeId, this.levelFourId).subscribe(response => {
|
|
3615
|
+
this.spinnerFlag = false;
|
|
3616
|
+
if (response && response.code === 200) {
|
|
3617
|
+
this.totalPages = response?.data?.totalPages;
|
|
3618
|
+
const data = response.data.dataSource;
|
|
3619
|
+
if (this.dataSource.data.length > 0 && flag) {
|
|
3620
|
+
data.forEach(item => this.dataSource.data.push(item));
|
|
3621
|
+
this.dataSource.data = [...this.dataSource.data, ...data];
|
|
3622
|
+
}
|
|
3623
|
+
else {
|
|
3624
|
+
this.dataSource.data = data;
|
|
3625
|
+
}
|
|
3626
|
+
this.loadingFlag = true;
|
|
3627
|
+
setTimeout(() => {
|
|
3628
|
+
const middlePosition = this.trackHeight / 2 - 50;
|
|
3629
|
+
if (this.firstscrollableDiv && this.firstscrollableDiv.nativeElement) {
|
|
3630
|
+
this.firstscrollableDiv.nativeElement.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
3631
|
+
}
|
|
3632
|
+
}, 250);
|
|
3633
|
+
this.initializeDataSources();
|
|
3634
|
+
}
|
|
3635
|
+
});
|
|
3636
|
+
}
|
|
3637
|
+
removeRow(event, element) {
|
|
3638
|
+
event.stopPropagation();
|
|
3639
|
+
event.preventDefault();
|
|
3640
|
+
let message = 'Are you sure you want to delete this product?';
|
|
3641
|
+
let showButton = true;
|
|
3642
|
+
const index = this.selectedDataSource.data.indexOf(element);
|
|
3643
|
+
if (index >= 0) {
|
|
3644
|
+
if (this.selectedDataSource.data.length === 1) {
|
|
3645
|
+
message = 'Please select at least one product.';
|
|
3646
|
+
showButton = false;
|
|
3647
|
+
}
|
|
3648
|
+
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
3649
|
+
disableClose: true,
|
|
3650
|
+
width: '90%',
|
|
3651
|
+
maxWidth: '400px',
|
|
3652
|
+
data: { message: message, buttonStatus: showButton }
|
|
3653
|
+
});
|
|
3654
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
3655
|
+
if (result) {
|
|
3656
|
+
this.selectedDataSource.data.splice(index, 1);
|
|
3657
|
+
this.selectedDataSource._updateChangeSubscription();
|
|
3658
|
+
this.selection.deselect(element);
|
|
3659
|
+
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3660
|
+
const productIndex = selectedProductsArray.controls.findIndex(control => control.value.productName === element.productName);
|
|
3661
|
+
if (productIndex >= 0) {
|
|
3662
|
+
selectedProductsArray.removeAt(productIndex);
|
|
3663
|
+
}
|
|
3664
|
+
}
|
|
3665
|
+
});
|
|
3666
|
+
}
|
|
3667
|
+
}
|
|
3668
|
+
onScroll(event) {
|
|
3669
|
+
this.trackHeight = event.target.scrollHeight - event.target.offsetHeight;
|
|
3670
|
+
if (this.loadingFlag && (Math.floor(event.target.scrollTop / this.trackHeight * 100) > 50)) {
|
|
3671
|
+
this.loadingFlag = false;
|
|
3672
|
+
if (this.pageNumber < this.totalPages) {
|
|
3673
|
+
this.pageNumber = this.pageNumber + 1;
|
|
3674
|
+
this.getProducts(true);
|
|
3675
|
+
}
|
|
3676
|
+
else {
|
|
3677
|
+
this.loadingFlag = true;
|
|
3678
|
+
}
|
|
3679
|
+
}
|
|
3680
|
+
this.prevScrollPosition = event.target.scrollTop;
|
|
3681
|
+
}
|
|
3682
|
+
countTrueDropdowns(obj) {
|
|
3683
|
+
// Dynamically find all keys that start with 'dropdownL' and are boolean (true/false)
|
|
3684
|
+
return Object.keys(obj)
|
|
3685
|
+
.filter(key => key.startsWith('dropdownL') && typeof obj[key] === 'boolean' && obj[key] === true)
|
|
3686
|
+
.length;
|
|
3687
|
+
}
|
|
3688
|
+
/* Use the property that should display in the input field */
|
|
3689
|
+
displayFn(option) {
|
|
3690
|
+
return option ? option.name : '';
|
|
3691
|
+
}
|
|
3692
|
+
}
|
|
3693
|
+
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 });
|
|
3694
|
+
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\" mat-dialog-content>\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=\"product-selection-container\">\r\n <!-- <h3>Select Products</h3> -->\r\n <p class=\"product-selection-desc\">Your ideal match is just a few preferences away. Start discovering now!</p>\r\n <mat-form-field class=\"global-search\" appearance=\"outline\">\r\n <mat-icon matPrefix class=\"material-symbols-outlined product-picker-icon\">search</mat-icon>\r\n <input matInput placeholder=\"Search Product Name\" formControlName=\"searchProductName\" />\r\n </mat-form-field>\r\n <div class=\"dropdown-selection\">\r\n <div [ngClass]=\"dropDownCount === 1 ? 'no-child': 'child'\">\r\n <div class=\"row\">\r\n <mat-form-field *ngIf=\"dropdownL1\">\r\n <mat-label>{{dropdownL1Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel1\"\r\n [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownOne\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"dropdownL2\">\r\n <mat-label>{{dropdownL2Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel2\"\r\n [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category2')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownTwo\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"dropdownL3\">\r\n <mat-label>{{dropdownL3Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel3\"\r\n [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category3')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownThree\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"dropdownL4\">\r\n <mat-label>{{dropdownL4Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel4\"\r\n [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category4')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownFour\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Search Button -->\r\n <div fxLayout=\"row\" fxLayoutAlign=\"left\" class=\"margin-top search-btn-wrp\">\r\n <button mat-button color=\"primary\" mat-raised-button\r\n (click)=\"handleDropdownFilter();$event.stopPropagation();\">Search</button>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class first-div\"\r\n (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 </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 <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> SKU Number </th>\r\n <td mat-cell *matCellDef=\"let element\"> #SkuNumber-{{element?.value}} </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\r\n [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\">\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 class=\"delete-btn-picker\" 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=\"showSubcategory\">\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 showSkuNumber={{showSkuNumber}}\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> SKU Number </th>\r\n <td mat-cell *matCellDef=\"let element\">#SkuNumber-{{element?.value}} </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{margin:20px 0;border:1px solid #ddd;border-radius:5px}.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%)}.product-selection-container{max-width:800px;margin:0 auto;text-align:center}.global-search{width:100%;margin-bottom:20px}.dropdown-selection{display:flex;flex-direction:column;width:100%}.row{display:flex;justify-content:space-between;width:100%;margin-bottom:20px;flex-wrap:wrap}.dropdown-item{flex:1;margin-right:10px}.dropdown-item:last-child{margin-right:0}.scrollable-div{max-height:350px;overflow-y:auto;margin-top:20px;margin-bottom:20px}.mat-table{width:100%;border-collapse:collapse}.dropdown-selection>div{display:flex;justify-content:space-between;border:1px solid #ddd;border-radius:5px;padding:20px;flex-wrap:wrap}.mat-form-field:last-child{margin-right:0}.search-btn-wrp{justify-content:flex-start}.no-child .mat-form-field{width:100%}.child .mat-form-field{flex:0 0 calc(50% - 20px)}.delete-btn-picker .mat-icon{color:#e53935!important;font-size:24px;width:auto;height:auto}.delete-btn-picker{margin:0}.product-selection-desc{text-align:left}::ng-deep .product-selection-container .mat-form-field-infix{padding:5px 4px 12px}::ng-deep .product-selection-container .mat-form-field-flex{align-items:center}::ng-deep .product-selection-container .product-picker-icon{font-size:18px;width:auto;height:auto;color:#0000004d}::ng-deep .product-selection-container .mat-form-field-appearance-outline .mat-form-field-outline-thick,::ng-deep .product-selection-container .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#0000001f}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i3.MatPrefix, selector: "[matPrefix]" }, { 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$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10$1.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: "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.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { 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: "component", type: i15.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i15.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i15.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: i15.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i15.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: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i16.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i16.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
|
|
3695
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, decorators: [{
|
|
3696
|
+
type: Component,
|
|
3697
|
+
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\" mat-dialog-content>\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=\"product-selection-container\">\r\n <!-- <h3>Select Products</h3> -->\r\n <p class=\"product-selection-desc\">Your ideal match is just a few preferences away. Start discovering now!</p>\r\n <mat-form-field class=\"global-search\" appearance=\"outline\">\r\n <mat-icon matPrefix class=\"material-symbols-outlined product-picker-icon\">search</mat-icon>\r\n <input matInput placeholder=\"Search Product Name\" formControlName=\"searchProductName\" />\r\n </mat-form-field>\r\n <div class=\"dropdown-selection\">\r\n <div [ngClass]=\"dropDownCount === 1 ? 'no-child': 'child'\">\r\n <div class=\"row\">\r\n <mat-form-field *ngIf=\"dropdownL1\">\r\n <mat-label>{{dropdownL1Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel1\"\r\n [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownOne\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"dropdownL2\">\r\n <mat-label>{{dropdownL2Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel2\"\r\n [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category2')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownTwo\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"dropdownL3\">\r\n <mat-label>{{dropdownL3Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel3\"\r\n [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category3')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownThree\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"dropdownL4\">\r\n <mat-label>{{dropdownL4Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel4\"\r\n [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category4')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownFour\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Search Button -->\r\n <div fxLayout=\"row\" fxLayoutAlign=\"left\" class=\"margin-top search-btn-wrp\">\r\n <button mat-button color=\"primary\" mat-raised-button\r\n (click)=\"handleDropdownFilter();$event.stopPropagation();\">Search</button>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class first-div\"\r\n (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 </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 <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> SKU Number </th>\r\n <td mat-cell *matCellDef=\"let element\"> #SkuNumber-{{element?.value}} </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\r\n [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\">\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 class=\"delete-btn-picker\" 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=\"showSubcategory\">\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 showSkuNumber={{showSkuNumber}}\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> SKU Number </th>\r\n <td mat-cell *matCellDef=\"let element\">#SkuNumber-{{element?.value}} </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{margin:20px 0;border:1px solid #ddd;border-radius:5px}.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%)}.product-selection-container{max-width:800px;margin:0 auto;text-align:center}.global-search{width:100%;margin-bottom:20px}.dropdown-selection{display:flex;flex-direction:column;width:100%}.row{display:flex;justify-content:space-between;width:100%;margin-bottom:20px;flex-wrap:wrap}.dropdown-item{flex:1;margin-right:10px}.dropdown-item:last-child{margin-right:0}.scrollable-div{max-height:350px;overflow-y:auto;margin-top:20px;margin-bottom:20px}.mat-table{width:100%;border-collapse:collapse}.dropdown-selection>div{display:flex;justify-content:space-between;border:1px solid #ddd;border-radius:5px;padding:20px;flex-wrap:wrap}.mat-form-field:last-child{margin-right:0}.search-btn-wrp{justify-content:flex-start}.no-child .mat-form-field{width:100%}.child .mat-form-field{flex:0 0 calc(50% - 20px)}.delete-btn-picker .mat-icon{color:#e53935!important;font-size:24px;width:auto;height:auto}.delete-btn-picker{margin:0}.product-selection-desc{text-align:left}::ng-deep .product-selection-container .mat-form-field-infix{padding:5px 4px 12px}::ng-deep .product-selection-container .mat-form-field-flex{align-items:center}::ng-deep .product-selection-container .product-picker-icon{font-size:18px;width:auto;height:auto;color:#0000004d}::ng-deep .product-selection-container .mat-form-field-appearance-outline .mat-form-field-outline-thick,::ng-deep .product-selection-container .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#0000001f}\n"] }]
|
|
3698
|
+
}], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
3699
|
+
type: Inject,
|
|
3700
|
+
args: [MAT_DIALOG_DATA]
|
|
3701
|
+
}] }, { type: i2.FormBuilder }, { type: i1$1.MatDialog }, { type: CommonService }]; }, propDecorators: { firstscrollableDiv: [{
|
|
3702
|
+
type: ViewChild,
|
|
3703
|
+
args: ['firstscrollableDiv']
|
|
3704
|
+
}] } });
|
|
3705
|
+
|
|
3706
|
+
const ELEMENT_DATA = [];
|
|
3265
3707
|
class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
3266
3708
|
constructor(element, ref, dialog, commonService) {
|
|
3267
3709
|
super(element, ref);
|
|
@@ -3270,18 +3712,117 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3270
3712
|
this.dialog = dialog;
|
|
3271
3713
|
this.commonService = commonService;
|
|
3272
3714
|
this.dataSource = new MatTableDataSource();
|
|
3715
|
+
this.dataSourceNew = ELEMENT_DATA;
|
|
3716
|
+
this.displayedColumnsNew = ['productName', 'category', 'subCategory', 'quantity', 'price', 'skuNumber'];
|
|
3717
|
+
this.showNewProductPicker = false;
|
|
3718
|
+
this.showCategory = false;
|
|
3719
|
+
this.showSubcategory = false;
|
|
3720
|
+
this.showPrice = true;
|
|
3721
|
+
this.showQuantity = true;
|
|
3722
|
+
this.showSkuNumber = false;
|
|
3723
|
+
this.hasInitialized = false;
|
|
3273
3724
|
this.checkSubmissionStatus = false;
|
|
3274
3725
|
this.showDataGrid = true;
|
|
3275
3726
|
this.hasValueAndEditMode = false;
|
|
3727
|
+
this.dropdownL1 = false;
|
|
3728
|
+
this.dropdownL2 = false;
|
|
3729
|
+
this.dropdownL3 = false;
|
|
3730
|
+
this.dropdownL4 = false;
|
|
3731
|
+
this.showDialogQuantity = false;
|
|
3732
|
+
this.showDialogPrice = false;
|
|
3733
|
+
this.showDialogCategory = false;
|
|
3734
|
+
this.showDialogSkuNumber = false;
|
|
3735
|
+
this.showDialogSubCategory = false;
|
|
3736
|
+
this.dropdownL1Label = '';
|
|
3737
|
+
this.dropdownL2Label = '';
|
|
3738
|
+
this.dropdownL3Label = '';
|
|
3739
|
+
this.dropdownL4Label = '';
|
|
3276
3740
|
}
|
|
3277
3741
|
getColumnLabel(column) {
|
|
3278
3742
|
return column.label || column.key;
|
|
3279
3743
|
}
|
|
3744
|
+
checkIsAttributeTrue(newProductPickerFlag, attributeName) {
|
|
3745
|
+
return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase() &&
|
|
3746
|
+
newProductPickerFlag[key].toLowerCase() === "true");
|
|
3747
|
+
}
|
|
3748
|
+
getLabelName(newProductPickerFlag, attributeName) {
|
|
3749
|
+
if (newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase())) {
|
|
3750
|
+
// Find the key that matches attributeName case-insensitively
|
|
3751
|
+
const matchingKey = Object.keys(newProductPickerFlag).find(key => key.toLocaleLowerCase() === attributeName.toLowerCase());
|
|
3752
|
+
// Return the value of the matching key
|
|
3753
|
+
return newProductPickerFlag[matchingKey];
|
|
3754
|
+
}
|
|
3755
|
+
return '';
|
|
3756
|
+
}
|
|
3757
|
+
// ngOnInit(): void {
|
|
3758
|
+
// }
|
|
3280
3759
|
setInstance(instance) {
|
|
3760
|
+
//const newProductPickerFlag = instance?.component?.attributes;
|
|
3281
3761
|
const checkAttribute = instance?.component?.attributes;
|
|
3762
|
+
this.showNewProductPicker = this.checkIsAttributeTrue(checkAttribute, "newproductpicker");
|
|
3763
|
+
this.showCategory = this.checkIsAttributeTrue(checkAttribute, "showCategory");
|
|
3764
|
+
this.showSubcategory = this.checkIsAttributeTrue(checkAttribute, "showSubcategory");
|
|
3765
|
+
this.showPrice = this.checkIsAttributeTrue(checkAttribute, "showPrice");
|
|
3766
|
+
this.showQuantity = this.checkIsAttributeTrue(checkAttribute, "showQuantity");
|
|
3767
|
+
this.showSkuNumber = this.checkIsAttributeTrue(checkAttribute, "showSkuNumber");
|
|
3768
|
+
this.showDialogQuantity = this.checkIsAttributeTrue(checkAttribute, "showDialogQuantity");
|
|
3769
|
+
this.showDialogPrice = this.checkIsAttributeTrue(checkAttribute, "showDialogPrice");
|
|
3770
|
+
this.showDialogCategory = this.checkIsAttributeTrue(checkAttribute, "showDialogCategory");
|
|
3771
|
+
this.showDialogSkuNumber = this.checkIsAttributeTrue(checkAttribute, "showDialogSkuNumber");
|
|
3772
|
+
this.showDialogSubCategory = this.checkIsAttributeTrue(checkAttribute, "showDialogSubCategory");
|
|
3773
|
+
const l1 = this.getLabelName(checkAttribute, "dropdownL1");
|
|
3774
|
+
const l2 = this.getLabelName(checkAttribute, "dropdownL2");
|
|
3775
|
+
const l3 = this.getLabelName(checkAttribute, "dropdownL3");
|
|
3776
|
+
const l4 = this.getLabelName(checkAttribute, "dropdownL4");
|
|
3777
|
+
this.dropdownL1 = l1 !== null && l1 !== undefined && (typeof l1 === 'string' ? l1.trim() !== "" : l1 !== "") ? true : false;
|
|
3778
|
+
this.dropdownL2 = l2 !== null && l2 !== undefined && (typeof l2 === 'string' ? l2.trim() !== "" : l2 !== "") ? true : false;
|
|
3779
|
+
this.dropdownL3 = l3 !== null && l3 !== undefined && (typeof l3 === 'string' ? l3.trim() !== "" : l3 !== "") ? true : false;
|
|
3780
|
+
this.dropdownL4 = l4 !== null && l4 !== undefined && (typeof l4 === 'string' ? l4.trim() !== "" : l4 !== "") ? true : false;
|
|
3781
|
+
if (this.dropdownL1) {
|
|
3782
|
+
this.dropdownL1Label = l1;
|
|
3783
|
+
}
|
|
3784
|
+
if (this.dropdownL2) {
|
|
3785
|
+
this.dropdownL2Label = l2;
|
|
3786
|
+
}
|
|
3787
|
+
if (this.dropdownL3) {
|
|
3788
|
+
this.dropdownL3Label = l3;
|
|
3789
|
+
}
|
|
3790
|
+
if (this.dropdownL4) {
|
|
3791
|
+
this.dropdownL4Label = l4;
|
|
3792
|
+
}
|
|
3282
3793
|
this.checkSubmissionStatus = this.commonService.checkIsAttributeTrue(checkAttribute, 'isProductOptional');
|
|
3283
|
-
this.hasValueAndEditMode = (
|
|
3794
|
+
this.hasValueAndEditMode = (checkAttribute?.hasValue === 'yes') && (checkAttribute?.editMode === 'true');
|
|
3284
3795
|
super.setInstance(instance);
|
|
3796
|
+
if (this.showNewProductPicker && !this.hasInitialized) {
|
|
3797
|
+
if (!this.showCategory) {
|
|
3798
|
+
this.removeColumn('category');
|
|
3799
|
+
}
|
|
3800
|
+
if (!this.showQuantity) {
|
|
3801
|
+
this.removeColumn('quantity');
|
|
3802
|
+
}
|
|
3803
|
+
if (!this.showPrice) {
|
|
3804
|
+
this.removeColumn('price');
|
|
3805
|
+
}
|
|
3806
|
+
if (!this.showSubcategory) {
|
|
3807
|
+
this.removeColumn('subCategory');
|
|
3808
|
+
}
|
|
3809
|
+
if (!this.showSkuNumber) {
|
|
3810
|
+
this.removeColumn('skuNumber');
|
|
3811
|
+
}
|
|
3812
|
+
this.dealId = this.getLabelName(checkAttribute, "dealId");
|
|
3813
|
+
const storedData = localStorage.getItem(`showGridPickerProducts-${this.dealId}`);
|
|
3814
|
+
if (storedData?.length) {
|
|
3815
|
+
this.dataSourceNew = JSON.parse(storedData);
|
|
3816
|
+
}
|
|
3817
|
+
else {
|
|
3818
|
+
this.dataSourceNew = [];
|
|
3819
|
+
}
|
|
3820
|
+
// Set flag to true to prevent further execution
|
|
3821
|
+
this.hasInitialized = true;
|
|
3822
|
+
}
|
|
3823
|
+
else {
|
|
3824
|
+
this.dataSource.data = instance.dataValue;
|
|
3825
|
+
}
|
|
3285
3826
|
if (this.checkSubmissionStatus && !this.hasValueAndEditMode) {
|
|
3286
3827
|
this.showDataGrid = false;
|
|
3287
3828
|
this.dataSource.data = [];
|
|
@@ -3317,7 +3858,10 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3317
3858
|
return viewContainer ? viewContainer : null;
|
|
3318
3859
|
};
|
|
3319
3860
|
}
|
|
3320
|
-
|
|
3861
|
+
removeColumn(columnName) {
|
|
3862
|
+
this.displayedColumnsNew = this.displayedColumnsNew.filter(column => column !== columnName);
|
|
3863
|
+
}
|
|
3864
|
+
addAnotherOld() {
|
|
3321
3865
|
this.showDataGrid = true;
|
|
3322
3866
|
this.checkRowsNumber();
|
|
3323
3867
|
this.instance.addRow();
|
|
@@ -3326,6 +3870,44 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3326
3870
|
}
|
|
3327
3871
|
this.dataSource.data = [...this.dataSource.data];
|
|
3328
3872
|
}
|
|
3873
|
+
addAnother() {
|
|
3874
|
+
if (this.showNewProductPicker) {
|
|
3875
|
+
const diologeRef = this.dialog.open(AddOnProductsComponent, {
|
|
3876
|
+
disableClose: true,
|
|
3877
|
+
width: '90%',
|
|
3878
|
+
maxWidth: '900px',
|
|
3879
|
+
autoFocus: false,
|
|
3880
|
+
data: { dropdownsFlag: { showNewProductPicker: this.showNewProductPicker, showDialogSubCategory: this.showDialogSubCategory, showDialogSkuNumber: this.showDialogSkuNumber, showDialogCategory: this.showDialogCategory, showDialogPrice: this.showDialogPrice, showDialogQuantity: this.showDialogQuantity, dropdownL1: this.dropdownL1, dropdownL2: this.dropdownL2, dropdownL3: this.dropdownL3, dropdownL4: this.dropdownL4, dropdownL1Label: this.dropdownL1Label, dropdownL2Label: this.dropdownL2Label, dropdownL3Label: this.dropdownL3Label, dropdownL4Label: this.dropdownL4Label }, selectedProducts: this.dataSourceNew }
|
|
3881
|
+
})
|
|
3882
|
+
.afterClosed().subscribe(response => {
|
|
3883
|
+
if (response?.data?.status) {
|
|
3884
|
+
if (!this.showCategory) {
|
|
3885
|
+
this.removeColumn('category');
|
|
3886
|
+
}
|
|
3887
|
+
if (!this.showQuantity) {
|
|
3888
|
+
this.removeColumn('quantity');
|
|
3889
|
+
}
|
|
3890
|
+
if (!this.showPrice) {
|
|
3891
|
+
this.removeColumn('price');
|
|
3892
|
+
}
|
|
3893
|
+
if (!this.showSubcategory) {
|
|
3894
|
+
this.removeColumn('subCategory');
|
|
3895
|
+
}
|
|
3896
|
+
localStorage.setItem(`selectedProducts-${this.dealId}`, JSON.stringify(response.data.items.selectedProducts));
|
|
3897
|
+
this.dataSourceNew = response.data.items.selectedProducts;
|
|
3898
|
+
this.instance.component.defaultValue = response.data.items.selectedProducts;
|
|
3899
|
+
}
|
|
3900
|
+
});
|
|
3901
|
+
}
|
|
3902
|
+
else {
|
|
3903
|
+
this.checkRowsNumber();
|
|
3904
|
+
this.instance.addRow();
|
|
3905
|
+
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
3906
|
+
this.dataSource.data.push({});
|
|
3907
|
+
}
|
|
3908
|
+
this.dataSource.data = [...this.dataSource.data];
|
|
3909
|
+
}
|
|
3910
|
+
}
|
|
3329
3911
|
checkRowsNumber() {
|
|
3330
3912
|
while (this.instance.rows.length < this.dataSource.data.length) {
|
|
3331
3913
|
this.instance.addRow();
|
|
@@ -3378,7 +3960,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3378
3960
|
super.setValue(value);
|
|
3379
3961
|
}
|
|
3380
3962
|
}
|
|
3381
|
-
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$
|
|
3963
|
+
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$1.MatDialog }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3382
3964
|
MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialDataGridComponent, selector: "mat-formio-datagrid", usesInheritance: true, ngImport: i0, template: `
|
|
3383
3965
|
<mat-formio-form-field [instance]="instance"
|
|
3384
3966
|
[componentTemplate]="componentTemplate"
|
|
@@ -3397,6 +3979,8 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3397
3979
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3398
3980
|
</button>
|
|
3399
3981
|
</mat-card-actions>
|
|
3982
|
+
<ng-container *ngIf="!showNewProductPicker">
|
|
3983
|
+
<div class="mat-elevation-z8">
|
|
3400
3984
|
<table
|
|
3401
3985
|
mat-table
|
|
3402
3986
|
[dataSource]="dataSource"
|
|
@@ -3405,7 +3989,8 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3405
3989
|
cdkDropList
|
|
3406
3990
|
[cdkDropListData]="dataSource"
|
|
3407
3991
|
(cdkDropListDropped)="dropTable($event)">
|
|
3408
|
-
|
|
3992
|
+
|
|
3993
|
+
|
|
3409
3994
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3410
3995
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3411
3996
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3435,6 +4020,57 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3435
4020
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3436
4021
|
</div>
|
|
3437
4022
|
</table>
|
|
4023
|
+
</div>
|
|
4024
|
+
</ng-container>
|
|
4025
|
+
|
|
4026
|
+
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
4027
|
+
<!-- Product Name Column -->
|
|
4028
|
+
<ng-container matColumnDef="productName">
|
|
4029
|
+
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
4030
|
+
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
4031
|
+
</ng-container>
|
|
4032
|
+
|
|
4033
|
+
<!-- Quantity Column -->
|
|
4034
|
+
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
4035
|
+
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
4036
|
+
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
4037
|
+
</ng-container>
|
|
4038
|
+
|
|
4039
|
+
<!-- Price Column -->
|
|
4040
|
+
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
4041
|
+
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
4042
|
+
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
4043
|
+
</ng-container>
|
|
4044
|
+
|
|
4045
|
+
<!-- Category Column -->
|
|
4046
|
+
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
4047
|
+
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
4048
|
+
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
4049
|
+
</ng-container>
|
|
4050
|
+
|
|
4051
|
+
<!-- Category Column -->
|
|
4052
|
+
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
4053
|
+
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
4054
|
+
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
4055
|
+
</ng-container>
|
|
4056
|
+
|
|
4057
|
+
<!-- SKU Column -->
|
|
4058
|
+
<ng-container matColumnDef="skuNumber" *ngIf="showSkuNumber">
|
|
4059
|
+
<th mat-header-cell *matHeaderCellDef> SKU Number </th>
|
|
4060
|
+
<td mat-cell *matCellDef="let element"> #SkuNumber-{{element.value}} </td>
|
|
4061
|
+
</ng-container>
|
|
4062
|
+
|
|
4063
|
+
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
4064
|
+
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
4065
|
+
</table>
|
|
4066
|
+
<ng-template #noData>
|
|
4067
|
+
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
4068
|
+
No product found please add some products.
|
|
4069
|
+
</div>
|
|
4070
|
+
</ng-template>
|
|
4071
|
+
|
|
4072
|
+
|
|
4073
|
+
|
|
3438
4074
|
</mat-card-content>
|
|
3439
4075
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3440
4076
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3450,7 +4086,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3450
4086
|
<span [instance]="instance" matFormioLabel></span>
|
|
3451
4087
|
</mat-card-title>
|
|
3452
4088
|
</ng-template>
|
|
3453
|
-
`, 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:
|
|
4089
|
+
`, isInline: true, styles: [".datagrid-row{height:auto}.mat-table{width:100%}.mat-header-cell,.mat-cell{padding:8px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}\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: i10$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10$1.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: i9.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: i9.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: i9.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"] }] });
|
|
3454
4090
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, decorators: [{
|
|
3455
4091
|
type: Component,
|
|
3456
4092
|
args: [{ selector: 'mat-formio-datagrid', template: `
|
|
@@ -3471,6 +4107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3471
4107
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3472
4108
|
</button>
|
|
3473
4109
|
</mat-card-actions>
|
|
4110
|
+
<ng-container *ngIf="!showNewProductPicker">
|
|
4111
|
+
<div class="mat-elevation-z8">
|
|
3474
4112
|
<table
|
|
3475
4113
|
mat-table
|
|
3476
4114
|
[dataSource]="dataSource"
|
|
@@ -3479,7 +4117,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3479
4117
|
cdkDropList
|
|
3480
4118
|
[cdkDropListData]="dataSource"
|
|
3481
4119
|
(cdkDropListDropped)="dropTable($event)">
|
|
3482
|
-
|
|
4120
|
+
|
|
4121
|
+
|
|
3483
4122
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3484
4123
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3485
4124
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3509,6 +4148,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3509
4148
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3510
4149
|
</div>
|
|
3511
4150
|
</table>
|
|
4151
|
+
</div>
|
|
4152
|
+
</ng-container>
|
|
4153
|
+
|
|
4154
|
+
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
4155
|
+
<!-- Product Name Column -->
|
|
4156
|
+
<ng-container matColumnDef="productName">
|
|
4157
|
+
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
4158
|
+
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
4159
|
+
</ng-container>
|
|
4160
|
+
|
|
4161
|
+
<!-- Quantity Column -->
|
|
4162
|
+
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
4163
|
+
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
4164
|
+
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
4165
|
+
</ng-container>
|
|
4166
|
+
|
|
4167
|
+
<!-- Price Column -->
|
|
4168
|
+
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
4169
|
+
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
4170
|
+
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
4171
|
+
</ng-container>
|
|
4172
|
+
|
|
4173
|
+
<!-- Category Column -->
|
|
4174
|
+
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
4175
|
+
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
4176
|
+
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
4177
|
+
</ng-container>
|
|
4178
|
+
|
|
4179
|
+
<!-- Category Column -->
|
|
4180
|
+
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
4181
|
+
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
4182
|
+
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
4183
|
+
</ng-container>
|
|
4184
|
+
|
|
4185
|
+
<!-- SKU Column -->
|
|
4186
|
+
<ng-container matColumnDef="skuNumber" *ngIf="showSkuNumber">
|
|
4187
|
+
<th mat-header-cell *matHeaderCellDef> SKU Number </th>
|
|
4188
|
+
<td mat-cell *matCellDef="let element"> #SkuNumber-{{element.value}} </td>
|
|
4189
|
+
</ng-container>
|
|
4190
|
+
|
|
4191
|
+
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
4192
|
+
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
4193
|
+
</table>
|
|
4194
|
+
<ng-template #noData>
|
|
4195
|
+
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
4196
|
+
No product found please add some products.
|
|
4197
|
+
</div>
|
|
4198
|
+
</ng-template>
|
|
4199
|
+
|
|
4200
|
+
|
|
4201
|
+
|
|
3512
4202
|
</mat-card-content>
|
|
3513
4203
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3514
4204
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3524,8 +4214,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3524
4214
|
<span [instance]="instance" matFormioLabel></span>
|
|
3525
4215
|
</mat-card-title>
|
|
3526
4216
|
</ng-template>
|
|
3527
|
-
`, styles: [".datagrid-row{height:auto}\n"] }]
|
|
3528
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
4217
|
+
`, styles: [".datagrid-row{height:auto}.mat-table{width:100%}.mat-header-cell,.mat-cell{padding:8px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}\n"] }]
|
|
4218
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.MatDialog }, { type: CommonService }]; } });
|
|
3529
4219
|
DataGridComponent.MaterialComponent = MaterialDataGridComponent;
|
|
3530
4220
|
|
|
3531
4221
|
var EditRowState;
|
|
@@ -3911,7 +4601,7 @@ MaterialWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
3911
4601
|
<button *ngIf="instance.hasButton('submit')" mat-raised-button color="primary" (click)="submit()">Submit</button>
|
|
3912
4602
|
</div>
|
|
3913
4603
|
</mat-step>
|
|
3914
|
-
</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:
|
|
4604
|
+
</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: i15.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i15.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] });
|
|
3915
4605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialWizardComponent, decorators: [{
|
|
3916
4606
|
type: Component,
|
|
3917
4607
|
args: [{ selector: 'mat-formio-wizard', template: `
|
|
@@ -4081,7 +4771,7 @@ FormioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
4081
4771
|
<div fxLayout="column" fxLayoutGap="1em">
|
|
4082
4772
|
<ng-template #formio></ng-template>
|
|
4083
4773
|
</div>
|
|
4084
|
-
`, 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:
|
|
4774
|
+
`, 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: i11.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"] }] });
|
|
4085
4775
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioComponent, decorators: [{
|
|
4086
4776
|
type: Component,
|
|
4087
4777
|
args: [{ selector: 'mat-formio', template: `
|
|
@@ -4151,7 +4841,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
4151
4841
|
FormioFormFieldComponent,
|
|
4152
4842
|
LabelComponent,
|
|
4153
4843
|
MaskDirective,
|
|
4154
|
-
ConfirmationDialogComponent
|
|
4844
|
+
ConfirmationDialogComponent,
|
|
4845
|
+
AddOnProductsComponent], imports: [CommonModule,
|
|
4155
4846
|
FormsModule,
|
|
4156
4847
|
ReactiveFormsModule,
|
|
4157
4848
|
MatInputModule,
|
|
@@ -4179,7 +4870,9 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
4179
4870
|
ScrollingModule,
|
|
4180
4871
|
NgxMatSelectSearchModule,
|
|
4181
4872
|
MatDialogModule,
|
|
4182
|
-
HttpClientModule
|
|
4873
|
+
HttpClientModule,
|
|
4874
|
+
MatAutocompleteModule], exports: [MatAutocompleteModule,
|
|
4875
|
+
NgxRenderMaterialFormsComponent,
|
|
4183
4876
|
FormioComponent,
|
|
4184
4877
|
MatInputModule,
|
|
4185
4878
|
MatFormFieldModule,
|
|
@@ -4233,7 +4926,9 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
|
|
|
4233
4926
|
ScrollingModule,
|
|
4234
4927
|
NgxMatSelectSearchModule,
|
|
4235
4928
|
MatDialogModule,
|
|
4236
|
-
HttpClientModule,
|
|
4929
|
+
HttpClientModule,
|
|
4930
|
+
MatAutocompleteModule, MatAutocompleteModule,
|
|
4931
|
+
MatInputModule,
|
|
4237
4932
|
MatFormFieldModule,
|
|
4238
4933
|
MatCheckboxModule,
|
|
4239
4934
|
MatRadioModule,
|
|
@@ -4301,7 +4996,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4301
4996
|
FormioFormFieldComponent,
|
|
4302
4997
|
LabelComponent,
|
|
4303
4998
|
MaskDirective,
|
|
4304
|
-
ConfirmationDialogComponent
|
|
4999
|
+
ConfirmationDialogComponent,
|
|
5000
|
+
AddOnProductsComponent
|
|
4305
5001
|
],
|
|
4306
5002
|
imports: [
|
|
4307
5003
|
CommonModule,
|
|
@@ -4332,9 +5028,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4332
5028
|
ScrollingModule,
|
|
4333
5029
|
NgxMatSelectSearchModule,
|
|
4334
5030
|
MatDialogModule,
|
|
4335
|
-
HttpClientModule
|
|
5031
|
+
HttpClientModule,
|
|
5032
|
+
MatAutocompleteModule
|
|
4336
5033
|
],
|
|
4337
5034
|
exports: [
|
|
5035
|
+
MatAutocompleteModule,
|
|
4338
5036
|
NgxRenderMaterialFormsComponent,
|
|
4339
5037
|
FormioComponent,
|
|
4340
5038
|
MatInputModule,
|