ngx-render-material-forms 1.4.8 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/add-on-products/add-on-products.component.mjs +329 -0
- package/esm2020/lib/components/button/button.component.mjs +15 -11
- package/esm2020/lib/components/common.service.mjs +85 -0
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +223 -19
- package/esm2020/lib/components/select/select.component.mjs +99 -127
- package/esm2020/lib/ngx-render-material-forms.module.mjs +16 -6
- package/fesm2015/ngx-render-material-forms.js +747 -163
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
- package/fesm2020/ngx-render-material-forms.js +737 -163
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
- package/lib/components/add-on-products/add-on-products.component.d.ts +76 -0
- package/lib/components/button/button.component.d.ts +6 -0
- package/lib/components/common.service.d.ts +23 -0
- package/lib/components/datagrid/datagrid.component.d.ts +21 -1
- package/lib/components/select/select.component.d.ts +2 -2
- 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$
|
|
4
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
+
import * as i1$2 from '@angular/common/http';
|
|
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 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 i14 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,21 +83,24 @@ 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 { Subject } from 'rxjs';
|
|
84
|
-
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
86
|
+
import { debounceTime, distinctUntilChanged, takeUntil, startWith, map } from 'rxjs/operators';
|
|
87
|
+
import * as CryptoJS from 'crypto-js';
|
|
88
|
+
import { isNullOrUndefined } from 'util';
|
|
85
89
|
import * as i9 from 'ngx-mat-select-search';
|
|
86
90
|
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
|
|
87
91
|
import WellComponent from 'formiojs/components/well/Well.js';
|
|
88
92
|
import DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';
|
|
89
|
-
import * as
|
|
93
|
+
import * as i9$1 from '@angular/cdk/drag-drop';
|
|
90
94
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
95
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
96
|
+
import * as i13 from '@angular/material/stepper';
|
|
97
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
91
98
|
import EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';
|
|
92
99
|
import Components$2 from 'formiojs/components/Components';
|
|
93
100
|
import isString from 'lodash/isString';
|
|
94
101
|
import TableComponent from 'formiojs/components/table/Table.js';
|
|
95
102
|
import Wizard from 'formiojs/Wizard';
|
|
96
103
|
import Displays from 'formiojs/displays/Displays';
|
|
97
|
-
import * as i3$3 from '@angular/material/stepper';
|
|
98
|
-
import { MatStepperModule } from '@angular/material/stepper';
|
|
99
104
|
import * as i1$3 from '@formio/angular';
|
|
100
105
|
import { FormioBaseComponent } from '@formio/angular';
|
|
101
106
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
@@ -974,8 +979,11 @@ var AngularButtonsThemes;
|
|
|
974
979
|
})(AngularButtonsThemes || (AngularButtonsThemes = {}));
|
|
975
980
|
|
|
976
981
|
class MaterialButtonComponent extends MaterialComponent {
|
|
977
|
-
constructor() {
|
|
978
|
-
super(
|
|
982
|
+
constructor(element, ref, dialog) {
|
|
983
|
+
super(element, ref);
|
|
984
|
+
this.element = element;
|
|
985
|
+
this.ref = ref;
|
|
986
|
+
this.dialog = dialog;
|
|
979
987
|
this.loading = false;
|
|
980
988
|
this.done = false;
|
|
981
989
|
this.error = false;
|
|
@@ -1046,12 +1054,12 @@ class MaterialButtonComponent extends MaterialComponent {
|
|
|
1046
1054
|
return retVal;
|
|
1047
1055
|
}
|
|
1048
1056
|
}
|
|
1049
|
-
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, deps:
|
|
1050
|
-
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"] }] });
|
|
1057
|
+
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 });
|
|
1058
|
+
MaterialButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialButtonComponent, selector: "mat-formio-button", usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"instance && 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"] }] });
|
|
1051
1059
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, decorators: [{
|
|
1052
1060
|
type: Component,
|
|
1053
|
-
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"] }]
|
|
1054
|
-
}] });
|
|
1061
|
+
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"] }]
|
|
1062
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.MatDialog }]; } });
|
|
1055
1063
|
ButtonComponent.MaterialComponent = MaterialButtonComponent;
|
|
1056
1064
|
|
|
1057
1065
|
class MaterialTextareaComponent extends MaterialComponent {
|
|
@@ -2556,8 +2564,8 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2556
2564
|
// Variable to hold the reference to the current panel element
|
|
2557
2565
|
this.currentPanelElement = null;
|
|
2558
2566
|
this.openCounter = 1;
|
|
2559
|
-
|
|
2560
|
-
|
|
2567
|
+
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
2568
|
+
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
2561
2569
|
}
|
|
2562
2570
|
onInputChange(event) {
|
|
2563
2571
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid' && event.target.value === '') {
|
|
@@ -2569,29 +2577,28 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2569
2577
|
this.onClearAll();
|
|
2570
2578
|
}
|
|
2571
2579
|
}
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
// }
|
|
2580
|
+
scrumble(msg) {
|
|
2581
|
+
if (!isNullOrUndefined(msg)) {
|
|
2582
|
+
var conceal = this.getcampaign(msg, this.holy, this.grail);
|
|
2583
|
+
var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
|
|
2584
|
+
var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
|
|
2585
|
+
let keyValue = {
|
|
2586
|
+
"value": conceal.toString(),
|
|
2587
|
+
"mac": hashInBase64
|
|
2588
|
+
};
|
|
2589
|
+
var result = JSON.stringify(keyValue);
|
|
2590
|
+
var jumbled = CryptoJS.enc.Utf8.parse(result);
|
|
2591
|
+
return CryptoJS.enc.Base64.stringify(jumbled);
|
|
2592
|
+
}
|
|
2593
|
+
}
|
|
2594
|
+
getcampaign(data, holy, grail) {
|
|
2595
|
+
return CryptoJS.AES.encrypt(data.toString(), holy, {
|
|
2596
|
+
blockSize: 128,
|
|
2597
|
+
iv: grail,
|
|
2598
|
+
mode: CryptoJS.mode.CBC,
|
|
2599
|
+
padding: CryptoJS.pad.Pkcs7
|
|
2600
|
+
});
|
|
2601
|
+
}
|
|
2595
2602
|
registerPanelScrollEvent(selectElem) {
|
|
2596
2603
|
const panelElement = selectElem.panel.nativeElement;
|
|
2597
2604
|
panelElement.addEventListener('scroll', this.onScroll.bind(this));
|
|
@@ -2630,78 +2637,74 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2630
2637
|
return item ? item.value : null;
|
|
2631
2638
|
}
|
|
2632
2639
|
loadData(pageNumber, pageSize, searchQuery) {
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
// if
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
//
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
//
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
// }, 250);
|
|
2702
|
-
// }
|
|
2703
|
-
// }
|
|
2704
|
-
// });
|
|
2640
|
+
const paramsData = JSON.parse(localStorage.getItem('productPickerParams'));
|
|
2641
|
+
const includeDescription = this.getValueByKey(paramsData, 'includeDescription');
|
|
2642
|
+
const vendorId = this.getValueByKey(paramsData, 'vendorId');
|
|
2643
|
+
const onlyActive = this.getValueByKey(paramsData, 'onlyActive');
|
|
2644
|
+
var currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
2645
|
+
let headers;
|
|
2646
|
+
if (currentUser && currentUser.Tokens && currentUser.Tokens.AccessToken) {
|
|
2647
|
+
var accessToken = currentUser.Tokens.AccessToken;
|
|
2648
|
+
headers = new HttpHeaders({
|
|
2649
|
+
'Content-Type': 'application/json',
|
|
2650
|
+
'Authorization': 'Bearer ' + accessToken
|
|
2651
|
+
});
|
|
2652
|
+
}
|
|
2653
|
+
else {
|
|
2654
|
+
console.error('User not authenticated or tokens missing.');
|
|
2655
|
+
}
|
|
2656
|
+
const envendorId = this.scrumble(vendorId);
|
|
2657
|
+
const enpageNumber = this.scrumble(pageNumber);
|
|
2658
|
+
const enpageSize = this.scrumble(pageSize);
|
|
2659
|
+
const ensearchQuery = this.scrumble(searchQuery);
|
|
2660
|
+
let enactive = this.scrumble(onlyActive);
|
|
2661
|
+
//Check if enactive is undefined, null, or blank
|
|
2662
|
+
if (enactive === undefined || enactive === null || enactive === '') {
|
|
2663
|
+
enactive = this.scrumble(true); // Set default value to true
|
|
2664
|
+
}
|
|
2665
|
+
// Scrumble and handle the includeDescription parameter
|
|
2666
|
+
let endescription = this.scrumble(includeDescription);
|
|
2667
|
+
if (!endescription) {
|
|
2668
|
+
endescription = this.scrumble(false); // Set to 'false' if undefined, null, or blank
|
|
2669
|
+
}
|
|
2670
|
+
const baseUrlMapping = {
|
|
2671
|
+
'localhost': 'http://localhost:58504',
|
|
2672
|
+
'lincoln.vartopia.com': 'https://lincoln-api.vartopia.com',
|
|
2673
|
+
'stage.vartopia.com': 'https://stage-api.vartopia.com',
|
|
2674
|
+
'my.vartopia.com': 'https://reagan-api.vartopia.com',
|
|
2675
|
+
'jackson.vartopia.com': 'https://jackson-api.vartopia.com'
|
|
2676
|
+
};
|
|
2677
|
+
// Get the current hostname
|
|
2678
|
+
const hostname = window.location.hostname;
|
|
2679
|
+
const baseApiUrl = baseUrlMapping[hostname] || null;
|
|
2680
|
+
this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`, { headers }).subscribe(response => {
|
|
2681
|
+
if (response && response.code === 200) {
|
|
2682
|
+
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2683
|
+
this.totalPages = response?.data?.totalPages;
|
|
2684
|
+
const data = response.data.dataSource;
|
|
2685
|
+
this.filteredOptionsLength = data.length;
|
|
2686
|
+
if (this.productList.length > 0) {
|
|
2687
|
+
data.map(item => {
|
|
2688
|
+
return item;
|
|
2689
|
+
}).forEach(i => this.productList.push(i));
|
|
2690
|
+
}
|
|
2691
|
+
else {
|
|
2692
|
+
this.productList = data;
|
|
2693
|
+
}
|
|
2694
|
+
// Update filteredOptions with transformedData
|
|
2695
|
+
var allProductList = this.transformResponseData(this.productList);
|
|
2696
|
+
this.filteredOptions = Promise.resolve(allProductList);
|
|
2697
|
+
this.searching = false;
|
|
2698
|
+
this.productsloadingFlag = true;
|
|
2699
|
+
setTimeout(() => {
|
|
2700
|
+
const ele = this.selectElem.panel.nativeElement;
|
|
2701
|
+
const trackHeight = ele.scrollHeight - ele.offsetHeight;
|
|
2702
|
+
const middlePosition = trackHeight / 2 - 50;
|
|
2703
|
+
ele.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
2704
|
+
}, 250);
|
|
2705
|
+
}
|
|
2706
|
+
}
|
|
2707
|
+
});
|
|
2705
2708
|
}
|
|
2706
2709
|
// Utility function to transform response data
|
|
2707
2710
|
transformResponseData(data) {
|
|
@@ -2753,7 +2756,7 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2753
2756
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2754
2757
|
this.selectElem.openedChange.subscribe((isOpen) => {
|
|
2755
2758
|
if (isOpen) {
|
|
2756
|
-
this.pageNumber =
|
|
2759
|
+
this.pageNumber = 2;
|
|
2757
2760
|
this.pageSize = 20;
|
|
2758
2761
|
this.searchQuery = '';
|
|
2759
2762
|
this.searching = false;
|
|
@@ -2812,37 +2815,11 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2812
2815
|
});
|
|
2813
2816
|
this.filteredOptions = this.selectOptions;
|
|
2814
2817
|
}
|
|
2815
|
-
isError() {
|
|
2816
|
-
if (this.instance.error) {
|
|
2817
|
-
this.control.setErrors(this.instance.component.validate);
|
|
2818
|
-
return true;
|
|
2819
|
-
}
|
|
2820
|
-
else {
|
|
2821
|
-
return false;
|
|
2822
|
-
}
|
|
2823
|
-
}
|
|
2824
|
-
getErrorMessage() {
|
|
2825
|
-
if (this.instance.error && this.instance.error.messages) {
|
|
2826
|
-
const { messages } = this.instance.error;
|
|
2827
|
-
if (messages.length) {
|
|
2828
|
-
for (const msg of messages) {
|
|
2829
|
-
if (msg.context) {
|
|
2830
|
-
if (this.instance && this.instance.parent && this.instance.parent._data) {
|
|
2831
|
-
if (this.instance.parent._data.submit) {
|
|
2832
|
-
this.control.markAllAsTouched();
|
|
2833
|
-
}
|
|
2834
|
-
}
|
|
2835
|
-
return this.instance.error ? this.instance.error.message : '';
|
|
2836
|
-
}
|
|
2837
|
-
}
|
|
2838
|
-
}
|
|
2839
|
-
}
|
|
2840
|
-
}
|
|
2841
2818
|
compareObjects(o1, o2) {
|
|
2842
2819
|
return _.isEqual(o1, o2);
|
|
2843
2820
|
}
|
|
2844
2821
|
}
|
|
2845
|
-
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$
|
|
2822
|
+
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 }], target: i0.ɵɵFactoryTarget.Component });
|
|
2846
2823
|
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: `
|
|
2847
2824
|
<mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
|
|
2848
2825
|
<ng-template #componentTemplate let-hasLabel>
|
|
@@ -2880,7 +2857,7 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
2880
2857
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2881
2858
|
{{ instance.component.suffix }}
|
|
2882
2859
|
</span>
|
|
2883
|
-
|
|
2860
|
+
<mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
|
|
2884
2861
|
</mat-form-field>
|
|
2885
2862
|
</ng-template>
|
|
2886
2863
|
`, isInline: true, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i9.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: i9.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
@@ -2923,11 +2900,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
2923
2900
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2924
2901
|
{{ instance.component.suffix }}
|
|
2925
2902
|
</span>
|
|
2926
|
-
|
|
2903
|
+
<mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
|
|
2927
2904
|
</mat-form-field>
|
|
2928
2905
|
</ng-template>
|
|
2929
2906
|
`, 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"] }]
|
|
2930
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
2907
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.HttpClient }]; }, propDecorators: { multiSelect: [{
|
|
2931
2908
|
type: ViewChild,
|
|
2932
2909
|
args: ['multiSelect', { static: true }]
|
|
2933
2910
|
}], selectElem: [{
|
|
@@ -2986,30 +2963,468 @@ class ConfirmationDialogComponent {
|
|
|
2986
2963
|
ngOnInit() {
|
|
2987
2964
|
}
|
|
2988
2965
|
}
|
|
2989
|
-
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$
|
|
2990
|
-
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$
|
|
2966
|
+
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 });
|
|
2967
|
+
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"] }] });
|
|
2991
2968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
2992
2969
|
type: Component,
|
|
2993
2970
|
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"] }]
|
|
2994
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
2971
|
+
}], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
2995
2972
|
type: Inject,
|
|
2996
2973
|
args: [MAT_DIALOG_DATA]
|
|
2997
2974
|
}] }]; } });
|
|
2998
2975
|
|
|
2976
|
+
class CommonService {
|
|
2977
|
+
constructor(http) {
|
|
2978
|
+
this.http = http;
|
|
2979
|
+
this.holy = '';
|
|
2980
|
+
this.grail = '';
|
|
2981
|
+
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
2982
|
+
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
2983
|
+
this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));
|
|
2984
|
+
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
2985
|
+
}
|
|
2986
|
+
scrumble(msg) {
|
|
2987
|
+
if (!isNullOrUndefined(msg)) {
|
|
2988
|
+
var conceal = this.getcampaign(msg, this.holy, this.grail);
|
|
2989
|
+
var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
|
|
2990
|
+
var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
|
|
2991
|
+
let keyValue = {
|
|
2992
|
+
"value": conceal.toString(),
|
|
2993
|
+
"mac": hashInBase64
|
|
2994
|
+
};
|
|
2995
|
+
var result = JSON.stringify(keyValue);
|
|
2996
|
+
var jumbled = CryptoJS.enc.Utf8.parse(result);
|
|
2997
|
+
return CryptoJS.enc.Base64.stringify(jumbled);
|
|
2998
|
+
}
|
|
2999
|
+
}
|
|
3000
|
+
getcampaign(data, holy, grail) {
|
|
3001
|
+
return CryptoJS.AES.encrypt(data.toString(), holy, {
|
|
3002
|
+
blockSize: 128,
|
|
3003
|
+
iv: grail,
|
|
3004
|
+
mode: CryptoJS.mode.CBC,
|
|
3005
|
+
padding: CryptoJS.pad.Pkcs7
|
|
3006
|
+
});
|
|
3007
|
+
}
|
|
3008
|
+
getBaseApiUrl() {
|
|
3009
|
+
const baseUrlMapping = {
|
|
3010
|
+
'localhost': 'http://localhost:58504',
|
|
3011
|
+
'lincoln.vartopia.com': 'https://lincoln-api.vartopia.com',
|
|
3012
|
+
'stage.vartopia.com': 'https://stage-api.vartopia.com',
|
|
3013
|
+
'my.vartopia.com': 'https://reagan-api.vartopia.com',
|
|
3014
|
+
'jackson.vartopia.com': 'https://jackson-api.vartopia.com'
|
|
3015
|
+
};
|
|
3016
|
+
// Get the current hostname
|
|
3017
|
+
const hostname = window.location.hostname;
|
|
3018
|
+
return baseUrlMapping[hostname] || null;
|
|
3019
|
+
}
|
|
3020
|
+
listProductCategory() {
|
|
3021
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3022
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
3023
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsCategory?vendorId=${vendorId}`);
|
|
3024
|
+
}
|
|
3025
|
+
listSubCategory(category) {
|
|
3026
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3027
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
3028
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsSubCategory?vendorId=${vendorId}&categoryName=${category}`);
|
|
3029
|
+
}
|
|
3030
|
+
// Function to get value by key from the array
|
|
3031
|
+
getValueByKey(data, key) {
|
|
3032
|
+
if (!data || data.length === 0) {
|
|
3033
|
+
return null; // Return null if data is empty or undefined
|
|
3034
|
+
}
|
|
3035
|
+
const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());
|
|
3036
|
+
return item ? item.value : null;
|
|
3037
|
+
}
|
|
3038
|
+
// this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`, { headers }).subscribe(response => {
|
|
3039
|
+
loadProducts(pageNumber, pazeSize, search = '', onlyActive = true, description = false, category, subCategory) {
|
|
3040
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
3041
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3042
|
+
const encodeCat = encodeURIComponent(category);
|
|
3043
|
+
const encodeSubCat = encodeURIComponent(subCategory);
|
|
3044
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${vendorId}&pageNumber=${pageNumber}&pageSize=${pazeSize}&search=${search}&onlyActive=${onlyActive}&includeDescription=${description}&category=${encodeCat}&subCategory=${encodeSubCat}`);
|
|
3045
|
+
}
|
|
3046
|
+
}
|
|
3047
|
+
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 });
|
|
3048
|
+
CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, providedIn: 'root' });
|
|
3049
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, decorators: [{
|
|
3050
|
+
type: Injectable,
|
|
3051
|
+
args: [{
|
|
3052
|
+
providedIn: 'root'
|
|
3053
|
+
}]
|
|
3054
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }]; } });
|
|
3055
|
+
|
|
3056
|
+
class AddOnProductsComponent {
|
|
3057
|
+
constructor(matDialogRef, data, fb, dialog, commonSevice) {
|
|
3058
|
+
this.matDialogRef = matDialogRef;
|
|
3059
|
+
this.fb = fb;
|
|
3060
|
+
this.dialog = dialog;
|
|
3061
|
+
this.commonSevice = commonSevice;
|
|
3062
|
+
this.category = [];
|
|
3063
|
+
this.subCategory = [];
|
|
3064
|
+
this.filteredCategories = [];
|
|
3065
|
+
this.filteredSubCategories = [];
|
|
3066
|
+
this.addProductsColumns = ['select', 'productName', 'price'];
|
|
3067
|
+
this.showAllproductsColumns = ['delete', 'productName', 'categoryName', 'subCategory', 'Quantity', 'price'];
|
|
3068
|
+
this.quantityList = [5, 10, 15, 20, 25];
|
|
3069
|
+
this.ELEMENT_DATA = [];
|
|
3070
|
+
this.dataSource = new MatTableDataSource();
|
|
3071
|
+
this.selection = new SelectionModel(true, []);
|
|
3072
|
+
this.selectedDataSource = new MatTableDataSource([]);
|
|
3073
|
+
this.selectedCategory = null;
|
|
3074
|
+
this.selectedSubCategory = null;
|
|
3075
|
+
this.showCategory = false;
|
|
3076
|
+
this.showSubcategory = false;
|
|
3077
|
+
this.showPrice = true;
|
|
3078
|
+
this.showQuantity = true;
|
|
3079
|
+
this.showNewProductPicker = true;
|
|
3080
|
+
this.setCategory = '';
|
|
3081
|
+
this.setSubCategory = '';
|
|
3082
|
+
this.loadingFlag = false;
|
|
3083
|
+
this.pageNumber = 1;
|
|
3084
|
+
this.pageSize = 20;
|
|
3085
|
+
this.totalPages = 0;
|
|
3086
|
+
this.searchQuery = '';
|
|
3087
|
+
this.itemList = [];
|
|
3088
|
+
this.prevScrollPosition = 0; // Track the previous scroll position
|
|
3089
|
+
this.spinnerFlag = false;
|
|
3090
|
+
this.showCategory = data.attributesFlag.showCategory;
|
|
3091
|
+
this.showSubcategory = data.attributesFlag.showSubcategory;
|
|
3092
|
+
this.showPrice = data.attributesFlag.showPrice;
|
|
3093
|
+
this.showQuantity = data.attributesFlag.showQuantity;
|
|
3094
|
+
this.showNewProductPicker = data.showNewProductPicker;
|
|
3095
|
+
this.setCategory = data.category || '';
|
|
3096
|
+
this.setSubCategory = data.subCategory || '';
|
|
3097
|
+
this.selection = new SelectionModel(true, data.selectedProducts || []);
|
|
3098
|
+
this.form = this.fb.group({
|
|
3099
|
+
productCategory: [''],
|
|
3100
|
+
productSubcategory: [''],
|
|
3101
|
+
selectedProducts: this.fb.array([])
|
|
3102
|
+
});
|
|
3103
|
+
this.initializeFormArray();
|
|
3104
|
+
if (!this.showCategory) {
|
|
3105
|
+
this.removeColumn('categoryName');
|
|
3106
|
+
}
|
|
3107
|
+
if (!this.showPrice) {
|
|
3108
|
+
this.removeColumn('price');
|
|
3109
|
+
}
|
|
3110
|
+
if (!this.showSubcategory) {
|
|
3111
|
+
this.removeColumn('subCategory');
|
|
3112
|
+
}
|
|
3113
|
+
if (!this.showQuantity) {
|
|
3114
|
+
this.removeColumn('Quantity');
|
|
3115
|
+
}
|
|
3116
|
+
}
|
|
3117
|
+
removeColumn(columnName) {
|
|
3118
|
+
this.showAllproductsColumns = this.showAllproductsColumns.filter(column => column !== columnName);
|
|
3119
|
+
this.addProductsColumns = this.addProductsColumns.filter(column => column !== columnName);
|
|
3120
|
+
}
|
|
3121
|
+
initializeFormArray() {
|
|
3122
|
+
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3123
|
+
this.selection.selected.forEach(product => {
|
|
3124
|
+
selectedProductsArray.push(this.fb.group({
|
|
3125
|
+
price: [product.price || '', Validators.required],
|
|
3126
|
+
text: [product.text || ''],
|
|
3127
|
+
quantity: [product.quantity || '', Validators.required],
|
|
3128
|
+
category: [product?.category || ''],
|
|
3129
|
+
subCategory: [product?.subCategory || ''],
|
|
3130
|
+
value: [product?.value || '']
|
|
3131
|
+
}));
|
|
3132
|
+
});
|
|
3133
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3134
|
+
}
|
|
3135
|
+
initializeDataSources() {
|
|
3136
|
+
// Ensure selected items are marked in the main data source
|
|
3137
|
+
if (this.selection?.selected?.length) {
|
|
3138
|
+
this.selection?.selected?.forEach(selectedProduct => {
|
|
3139
|
+
const index = this.dataSource.data.findIndex(product => product.value === selectedProduct.value);
|
|
3140
|
+
if (index >= 0) {
|
|
3141
|
+
this.dataSource.data[index] = selectedProduct;
|
|
3142
|
+
}
|
|
3143
|
+
});
|
|
3144
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3145
|
+
}
|
|
3146
|
+
else {
|
|
3147
|
+
console.warn('No selected products found.');
|
|
3148
|
+
}
|
|
3149
|
+
}
|
|
3150
|
+
ngAfterViewInit() {
|
|
3151
|
+
}
|
|
3152
|
+
ngOnInit() {
|
|
3153
|
+
this.loadProductCategory();
|
|
3154
|
+
this.form.get('productCategory').valueChanges
|
|
3155
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'category1'))).subscribe(filterCat => {
|
|
3156
|
+
this.filteredCategories = filterCat;
|
|
3157
|
+
});
|
|
3158
|
+
this.form.get('productSubcategory').valueChanges
|
|
3159
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'subCategory'))).subscribe(subCat => {
|
|
3160
|
+
this.filteredSubCategories = subCat;
|
|
3161
|
+
});
|
|
3162
|
+
}
|
|
3163
|
+
loadProductCategory() {
|
|
3164
|
+
this.spinnerFlag = true;
|
|
3165
|
+
this.commonSevice.listProductCategory().subscribe(response => {
|
|
3166
|
+
this.spinnerFlag = false;
|
|
3167
|
+
if (response && response.code === 200) {
|
|
3168
|
+
this.category = response.data;
|
|
3169
|
+
this.filteredCategories = this.filterProducts(this.setCategory, 'category1');
|
|
3170
|
+
this.form.get('productCategory').setValue(this.setCategory);
|
|
3171
|
+
if (this.setCategory !== '') {
|
|
3172
|
+
this.onOptionSelected(this.setCategory, 'category1');
|
|
3173
|
+
this.form.get('productSubcategory').setValue(this.setSubCategory);
|
|
3174
|
+
}
|
|
3175
|
+
}
|
|
3176
|
+
});
|
|
3177
|
+
}
|
|
3178
|
+
filterProducts(value, cat) {
|
|
3179
|
+
const filterValue = value.toLowerCase();
|
|
3180
|
+
const data = cat === 'category1' ? this.category : this.subCategory;
|
|
3181
|
+
if (!filterValue) {
|
|
3182
|
+
return data;
|
|
3183
|
+
}
|
|
3184
|
+
else {
|
|
3185
|
+
return data.filter(option => option.toLowerCase().includes(filterValue));
|
|
3186
|
+
}
|
|
3187
|
+
}
|
|
3188
|
+
onSubmit() {
|
|
3189
|
+
if (this.form.valid) {
|
|
3190
|
+
this.matDialogRef.close({
|
|
3191
|
+
data: {
|
|
3192
|
+
status: true,
|
|
3193
|
+
items: this.form.value
|
|
3194
|
+
}
|
|
3195
|
+
});
|
|
3196
|
+
}
|
|
3197
|
+
}
|
|
3198
|
+
isAllSelected() {
|
|
3199
|
+
const numSelected = this.selection.selected.length;
|
|
3200
|
+
const numRows = this.dataSource.data.length;
|
|
3201
|
+
return numSelected === numRows;
|
|
3202
|
+
}
|
|
3203
|
+
isIndeterminate() {
|
|
3204
|
+
const numSelected = this.selection.selected.length;
|
|
3205
|
+
const numRows = this.dataSource.data.length;
|
|
3206
|
+
return numSelected > 0 && numSelected < numRows;
|
|
3207
|
+
}
|
|
3208
|
+
masterToggle() {
|
|
3209
|
+
this.isAllSelected()
|
|
3210
|
+
? this.selection.clear()
|
|
3211
|
+
: this.dataSource.data.forEach(row => this.selection.select(row));
|
|
3212
|
+
this.updateSelectedProducts();
|
|
3213
|
+
}
|
|
3214
|
+
toggleSelection(row) {
|
|
3215
|
+
this.selection.toggle(row);
|
|
3216
|
+
this.updateSelectedProducts();
|
|
3217
|
+
}
|
|
3218
|
+
// Getter for the FormArray
|
|
3219
|
+
get selectedProducts() {
|
|
3220
|
+
return this.form.get('selectedProducts');
|
|
3221
|
+
}
|
|
3222
|
+
updateSelectedProducts() {
|
|
3223
|
+
if (Array.isArray(this.selection.selected)) {
|
|
3224
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3225
|
+
const selectedProductsArray = this.selectedProducts;
|
|
3226
|
+
selectedProductsArray.clear();
|
|
3227
|
+
this.selection?.selected?.forEach(product => {
|
|
3228
|
+
selectedProductsArray?.push(this.fb.group({
|
|
3229
|
+
price: [product?.price ?? '', this.showPrice ? Validators.required : []],
|
|
3230
|
+
text: [product?.text || ''],
|
|
3231
|
+
quantity: [product?.quantity ?? '', this.showQuantity ? Validators.required : []],
|
|
3232
|
+
category: [product?.category || ''],
|
|
3233
|
+
subCategory: [product?.subCategory || ''],
|
|
3234
|
+
value: [product?.value || '']
|
|
3235
|
+
}));
|
|
3236
|
+
});
|
|
3237
|
+
}
|
|
3238
|
+
else {
|
|
3239
|
+
console.error('Selection.selected is not an array:', this.selection.selected);
|
|
3240
|
+
}
|
|
3241
|
+
}
|
|
3242
|
+
getTotalRows() {
|
|
3243
|
+
return this.dataSource.data.length;
|
|
3244
|
+
}
|
|
3245
|
+
getSelectedRowsCount() {
|
|
3246
|
+
return this.selection.selected.length;
|
|
3247
|
+
}
|
|
3248
|
+
onOptionSelected(event, category) {
|
|
3249
|
+
let selectedValue;
|
|
3250
|
+
if (event && event.option && event.option.value !== undefined) {
|
|
3251
|
+
selectedValue = event.option.value;
|
|
3252
|
+
}
|
|
3253
|
+
else {
|
|
3254
|
+
selectedValue = event;
|
|
3255
|
+
}
|
|
3256
|
+
if (category === 'category1') {
|
|
3257
|
+
this.selectedCategory = selectedValue;
|
|
3258
|
+
this.spinnerFlag = true;
|
|
3259
|
+
this.commonSevice.listSubCategory(selectedValue).subscribe(response => {
|
|
3260
|
+
this.spinnerFlag = false;
|
|
3261
|
+
if (response && response.code === 200) {
|
|
3262
|
+
this.subCategory = response.data;
|
|
3263
|
+
this.filteredSubCategories = this.filterProducts(this.setCategory, 'subCategory');
|
|
3264
|
+
if (this.setSubCategory !== '') {
|
|
3265
|
+
this.selectedSubCategory = this.setSubCategory;
|
|
3266
|
+
this.getProducts();
|
|
3267
|
+
}
|
|
3268
|
+
}
|
|
3269
|
+
});
|
|
3270
|
+
}
|
|
3271
|
+
else {
|
|
3272
|
+
if (category === 'subCategory') {
|
|
3273
|
+
this.selectedSubCategory = event.option.value;
|
|
3274
|
+
this.getProducts();
|
|
3275
|
+
}
|
|
3276
|
+
}
|
|
3277
|
+
}
|
|
3278
|
+
getProducts() {
|
|
3279
|
+
this.spinnerFlag = true;
|
|
3280
|
+
this.commonSevice.loadProducts(this.pageNumber, this.pageSize, '', true, false, this.selectedCategory, this.selectedSubCategory).subscribe(response => {
|
|
3281
|
+
this.spinnerFlag = false;
|
|
3282
|
+
if (response && response.code === 200) {
|
|
3283
|
+
//this.dataSource.data = response.data.dataSource;
|
|
3284
|
+
this.totalPages = response?.data?.totalPages;
|
|
3285
|
+
const data = response.data.dataSource;
|
|
3286
|
+
if (this.dataSource.data.length > 0) {
|
|
3287
|
+
data.forEach(item => this.dataSource.data.push(item));
|
|
3288
|
+
this.dataSource.data = [...this.dataSource.data];
|
|
3289
|
+
}
|
|
3290
|
+
else {
|
|
3291
|
+
this.dataSource.data = data;
|
|
3292
|
+
}
|
|
3293
|
+
this.loadingFlag = true;
|
|
3294
|
+
setTimeout(() => {
|
|
3295
|
+
const middlePosition = this.trackHeight / 2 - 50;
|
|
3296
|
+
if (this.firstscrollableDiv && this.firstscrollableDiv.nativeElement) {
|
|
3297
|
+
this.firstscrollableDiv.nativeElement.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
3298
|
+
}
|
|
3299
|
+
}, 250);
|
|
3300
|
+
this.initializeDataSources();
|
|
3301
|
+
}
|
|
3302
|
+
});
|
|
3303
|
+
}
|
|
3304
|
+
removeRow(event, element) {
|
|
3305
|
+
event.stopPropagation();
|
|
3306
|
+
event.preventDefault();
|
|
3307
|
+
let message = 'Are you sure you want to delete this product?';
|
|
3308
|
+
let showButton = true;
|
|
3309
|
+
const index = this.selectedDataSource.data.indexOf(element);
|
|
3310
|
+
if (index >= 0) {
|
|
3311
|
+
if (this.selectedDataSource.data.length === 1) {
|
|
3312
|
+
message = 'Please select at least one product.';
|
|
3313
|
+
showButton = false;
|
|
3314
|
+
}
|
|
3315
|
+
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
3316
|
+
disableClose: true,
|
|
3317
|
+
width: '90%',
|
|
3318
|
+
maxWidth: '400px',
|
|
3319
|
+
data: { message: message, buttonStatus: showButton }
|
|
3320
|
+
});
|
|
3321
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
3322
|
+
if (result) {
|
|
3323
|
+
this.selectedDataSource.data.splice(index, 1);
|
|
3324
|
+
this.selectedDataSource._updateChangeSubscription();
|
|
3325
|
+
this.selection.deselect(element);
|
|
3326
|
+
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3327
|
+
const productIndex = selectedProductsArray.controls.findIndex(control => control.value.productName === element.productName);
|
|
3328
|
+
if (productIndex >= 0) {
|
|
3329
|
+
selectedProductsArray.removeAt(productIndex);
|
|
3330
|
+
}
|
|
3331
|
+
}
|
|
3332
|
+
});
|
|
3333
|
+
}
|
|
3334
|
+
}
|
|
3335
|
+
onScroll(event) {
|
|
3336
|
+
this.trackHeight = event.target.scrollHeight - event.target.offsetHeight;
|
|
3337
|
+
if (this.loadingFlag && (Math.floor(event.target.scrollTop / this.trackHeight * 100) > 50)) {
|
|
3338
|
+
this.loadingFlag = false;
|
|
3339
|
+
if (this.pageNumber < this.totalPages) {
|
|
3340
|
+
this.pageNumber = this.pageNumber + 1;
|
|
3341
|
+
this.getProducts();
|
|
3342
|
+
}
|
|
3343
|
+
else {
|
|
3344
|
+
this.loadingFlag = true;
|
|
3345
|
+
}
|
|
3346
|
+
}
|
|
3347
|
+
this.prevScrollPosition = event.target.scrollTop;
|
|
3348
|
+
}
|
|
3349
|
+
}
|
|
3350
|
+
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 });
|
|
3351
|
+
AddOnProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: AddOnProductsComponent, selector: "ngx-mat-add-on-products", viewQueries: [{ propertyName: "firstscrollableDiv", first: true, predicate: ["firstscrollableDiv"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i13.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i13.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i13.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i13.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "directive", type: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i14.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i14.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
|
|
3352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, decorators: [{
|
|
3353
|
+
type: Component,
|
|
3354
|
+
args: [{ selector: 'ngx-mat-add-on-products', template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"] }]
|
|
3355
|
+
}], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
3356
|
+
type: Inject,
|
|
3357
|
+
args: [MAT_DIALOG_DATA]
|
|
3358
|
+
}] }, { type: i2.FormBuilder }, { type: i1$1.MatDialog }, { type: CommonService }]; }, propDecorators: { firstscrollableDiv: [{
|
|
3359
|
+
type: ViewChild,
|
|
3360
|
+
args: ['firstscrollableDiv']
|
|
3361
|
+
}] } });
|
|
3362
|
+
|
|
3363
|
+
const ELEMENT_DATA = [];
|
|
2999
3364
|
class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
3000
|
-
constructor(element, ref, dialog) {
|
|
3365
|
+
constructor(element, ref, dialog, commonService) {
|
|
3001
3366
|
super(element, ref);
|
|
3002
3367
|
this.element = element;
|
|
3003
3368
|
this.ref = ref;
|
|
3004
3369
|
this.dialog = dialog;
|
|
3370
|
+
this.commonService = commonService;
|
|
3005
3371
|
this.dataSource = new MatTableDataSource();
|
|
3372
|
+
this.dataSourceNew = ELEMENT_DATA;
|
|
3373
|
+
this.displayedColumnsNew = ['productName', 'category', 'subCategory', 'quantity', 'price'];
|
|
3374
|
+
this.showNewProductPicker = false;
|
|
3375
|
+
this.showCategory = false;
|
|
3376
|
+
this.showSubcategory = false;
|
|
3377
|
+
this.showPrice = true;
|
|
3378
|
+
this.showQuantity = true;
|
|
3379
|
+
this.category = '';
|
|
3380
|
+
this.subCategory = '';
|
|
3381
|
+
this.hasInitialized = false;
|
|
3006
3382
|
}
|
|
3007
3383
|
getColumnLabel(column) {
|
|
3008
3384
|
return column.label || column.key;
|
|
3009
3385
|
}
|
|
3386
|
+
checkIsAttributeTrue(newProductPickerFlag, attributeName) {
|
|
3387
|
+
return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase() &&
|
|
3388
|
+
newProductPickerFlag[key].toLowerCase() === "true");
|
|
3389
|
+
}
|
|
3390
|
+
// ngOnInit(): void {
|
|
3391
|
+
// }
|
|
3010
3392
|
setInstance(instance) {
|
|
3393
|
+
const newProductPickerFlag = instance?.component?.attributes;
|
|
3394
|
+
this.showNewProductPicker = this.checkIsAttributeTrue(newProductPickerFlag, "newproductpicker");
|
|
3395
|
+
this.showCategory = this.checkIsAttributeTrue(newProductPickerFlag, "showCategory");
|
|
3396
|
+
this.showSubcategory = this.checkIsAttributeTrue(newProductPickerFlag, "showSubcategory");
|
|
3397
|
+
this.showPrice = this.checkIsAttributeTrue(newProductPickerFlag, "showPrice");
|
|
3398
|
+
this.showQuantity = this.checkIsAttributeTrue(newProductPickerFlag, "showQuantity");
|
|
3011
3399
|
super.setInstance(instance);
|
|
3012
|
-
this.
|
|
3400
|
+
if (this.showNewProductPicker && !this.hasInitialized) {
|
|
3401
|
+
if (!this.showCategory) {
|
|
3402
|
+
this.removeColumn('category');
|
|
3403
|
+
}
|
|
3404
|
+
if (!this.showQuantity) {
|
|
3405
|
+
this.removeColumn('quantity');
|
|
3406
|
+
}
|
|
3407
|
+
if (!this.showPrice) {
|
|
3408
|
+
this.removeColumn('price');
|
|
3409
|
+
}
|
|
3410
|
+
if (!this.showSubcategory) {
|
|
3411
|
+
this.removeColumn('subCategory');
|
|
3412
|
+
}
|
|
3413
|
+
const checkProducts = JSON.parse(localStorage.getItem('dealData')) || [];
|
|
3414
|
+
const dealId = checkProducts?.dealId;
|
|
3415
|
+
const storedData = localStorage.getItem(`selectedProducts-${dealId}`);
|
|
3416
|
+
if (storedData?.length) {
|
|
3417
|
+
this.dataSourceNew = JSON.parse(storedData);
|
|
3418
|
+
}
|
|
3419
|
+
else {
|
|
3420
|
+
this.dataSourceNew = [];
|
|
3421
|
+
}
|
|
3422
|
+
// Set flag to true to prevent further execution
|
|
3423
|
+
this.hasInitialized = true;
|
|
3424
|
+
}
|
|
3425
|
+
else {
|
|
3426
|
+
this.dataSource.data = instance.dataValue;
|
|
3427
|
+
}
|
|
3013
3428
|
this.columns = {};
|
|
3014
3429
|
this.displayedColumns = [];
|
|
3015
3430
|
this.formColumns = [];
|
|
@@ -3037,7 +3452,10 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3037
3452
|
return viewContainer ? viewContainer : null;
|
|
3038
3453
|
};
|
|
3039
3454
|
}
|
|
3040
|
-
|
|
3455
|
+
removeColumn(columnName) {
|
|
3456
|
+
this.displayedColumnsNew = this.displayedColumnsNew.filter(column => column !== columnName);
|
|
3457
|
+
}
|
|
3458
|
+
addAnotherOld() {
|
|
3041
3459
|
this.checkRowsNumber();
|
|
3042
3460
|
this.instance.addRow();
|
|
3043
3461
|
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
@@ -3045,6 +3463,58 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3045
3463
|
}
|
|
3046
3464
|
this.dataSource.data = [...this.dataSource.data];
|
|
3047
3465
|
}
|
|
3466
|
+
addAnother() {
|
|
3467
|
+
if (this.showNewProductPicker) {
|
|
3468
|
+
const savedData = JSON.parse(localStorage.getItem('saveCat'));
|
|
3469
|
+
const checkProducts = JSON.parse(localStorage.getItem('dealData')) || [];
|
|
3470
|
+
// Use optional chaining and nullish coalescing to set the values
|
|
3471
|
+
this.category = savedData?.category ?? this.category;
|
|
3472
|
+
this.subCategory = savedData?.subCategory ?? this.subCategory;
|
|
3473
|
+
const diologeRef = this.dialog.open(AddOnProductsComponent, {
|
|
3474
|
+
disableClose: true,
|
|
3475
|
+
width: '90%',
|
|
3476
|
+
maxWidth: '900px',
|
|
3477
|
+
autoFocus: false,
|
|
3478
|
+
data: { attributesFlag: { showNewProductPicker: this.showNewProductPicker, showCategory: this.showCategory, showSubcategory: this.showSubcategory, showPrice: this.showPrice, showQuantity: this.showQuantity }, selectedProducts: this.dataSourceNew, category: this.category, subCategory: this.subCategory }
|
|
3479
|
+
})
|
|
3480
|
+
.afterClosed().subscribe(response => {
|
|
3481
|
+
if (response?.data?.status) {
|
|
3482
|
+
if (!this.showCategory) {
|
|
3483
|
+
this.removeColumn('category');
|
|
3484
|
+
}
|
|
3485
|
+
if (!this.showQuantity) {
|
|
3486
|
+
this.removeColumn('quantity');
|
|
3487
|
+
}
|
|
3488
|
+
if (!this.showPrice) {
|
|
3489
|
+
this.removeColumn('price');
|
|
3490
|
+
}
|
|
3491
|
+
if (!this.showSubcategory) {
|
|
3492
|
+
this.removeColumn('subCategory');
|
|
3493
|
+
}
|
|
3494
|
+
//localStorage.setItem('selectedProducts', JSON.stringify(response.data.items.selectedProducts))
|
|
3495
|
+
const dealId = checkProducts?.dealId;
|
|
3496
|
+
localStorage.setItem(`selectedProducts-${dealId}`, JSON.stringify(response.data.items.selectedProducts));
|
|
3497
|
+
this.dataSourceNew = response.data.items.selectedProducts;
|
|
3498
|
+
this.category = response.data.items.productCategory;
|
|
3499
|
+
this.subCategory = response.data.items.productSubcategory;
|
|
3500
|
+
const catObject = {
|
|
3501
|
+
category: this.category,
|
|
3502
|
+
subCategory: this.subCategory
|
|
3503
|
+
};
|
|
3504
|
+
localStorage.setItem('saveCat', JSON.stringify(catObject));
|
|
3505
|
+
this.instance.component.defaultValue = response.data.items.selectedProducts;
|
|
3506
|
+
}
|
|
3507
|
+
});
|
|
3508
|
+
}
|
|
3509
|
+
else {
|
|
3510
|
+
this.checkRowsNumber();
|
|
3511
|
+
this.instance.addRow();
|
|
3512
|
+
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
3513
|
+
this.dataSource.data.push({});
|
|
3514
|
+
}
|
|
3515
|
+
this.dataSource.data = [...this.dataSource.data];
|
|
3516
|
+
}
|
|
3517
|
+
}
|
|
3048
3518
|
checkRowsNumber() {
|
|
3049
3519
|
while (this.instance.rows.length < this.dataSource.data.length) {
|
|
3050
3520
|
this.instance.addRow();
|
|
@@ -3094,7 +3564,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3094
3564
|
super.setValue(value);
|
|
3095
3565
|
}
|
|
3096
3566
|
}
|
|
3097
|
-
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$
|
|
3567
|
+
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 });
|
|
3098
3568
|
MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialDataGridComponent, selector: "mat-formio-datagrid", usesInheritance: true, ngImport: i0, template: `
|
|
3099
3569
|
<mat-formio-form-field [instance]="instance"
|
|
3100
3570
|
[componentTemplate]="componentTemplate"
|
|
@@ -3113,6 +3583,8 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3113
3583
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3114
3584
|
</button>
|
|
3115
3585
|
</mat-card-actions>
|
|
3586
|
+
<ng-container *ngIf="!showNewProductPicker">
|
|
3587
|
+
<div class="mat-elevation-z8">
|
|
3116
3588
|
<table
|
|
3117
3589
|
mat-table
|
|
3118
3590
|
[dataSource]="dataSource"
|
|
@@ -3121,7 +3593,8 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3121
3593
|
cdkDropList
|
|
3122
3594
|
[cdkDropListData]="dataSource"
|
|
3123
3595
|
(cdkDropListDropped)="dropTable($event)">
|
|
3124
|
-
|
|
3596
|
+
|
|
3597
|
+
|
|
3125
3598
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3126
3599
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3127
3600
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3151,6 +3624,51 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3151
3624
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3152
3625
|
</div>
|
|
3153
3626
|
</table>
|
|
3627
|
+
</div>
|
|
3628
|
+
</ng-container>
|
|
3629
|
+
|
|
3630
|
+
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3631
|
+
<!-- Product Name Column -->
|
|
3632
|
+
<ng-container matColumnDef="productName">
|
|
3633
|
+
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3634
|
+
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3635
|
+
</ng-container>
|
|
3636
|
+
|
|
3637
|
+
<!-- Quantity Column -->
|
|
3638
|
+
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3639
|
+
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3640
|
+
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3641
|
+
</ng-container>
|
|
3642
|
+
|
|
3643
|
+
<!-- Price Column -->
|
|
3644
|
+
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3645
|
+
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3646
|
+
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3647
|
+
</ng-container>
|
|
3648
|
+
|
|
3649
|
+
<!-- Category Column -->
|
|
3650
|
+
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3651
|
+
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3652
|
+
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3653
|
+
</ng-container>
|
|
3654
|
+
|
|
3655
|
+
<!-- Category Column -->
|
|
3656
|
+
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3657
|
+
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3658
|
+
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3659
|
+
</ng-container>
|
|
3660
|
+
|
|
3661
|
+
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3662
|
+
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3663
|
+
</table>
|
|
3664
|
+
<ng-template #noData>
|
|
3665
|
+
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3666
|
+
No product found please add some products.
|
|
3667
|
+
</div>
|
|
3668
|
+
</ng-template>
|
|
3669
|
+
|
|
3670
|
+
|
|
3671
|
+
|
|
3154
3672
|
</mat-card-content>
|
|
3155
3673
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3156
3674
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3166,7 +3684,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3166
3684
|
<span [instance]="instance" matFormioLabel></span>
|
|
3167
3685
|
</mat-card-title>
|
|
3168
3686
|
</ng-template>
|
|
3169
|
-
`, 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:
|
|
3687
|
+
`, 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.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: 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$1.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$1.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$1.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"] }] });
|
|
3170
3688
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, decorators: [{
|
|
3171
3689
|
type: Component,
|
|
3172
3690
|
args: [{ selector: 'mat-formio-datagrid', template: `
|
|
@@ -3187,6 +3705,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3187
3705
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3188
3706
|
</button>
|
|
3189
3707
|
</mat-card-actions>
|
|
3708
|
+
<ng-container *ngIf="!showNewProductPicker">
|
|
3709
|
+
<div class="mat-elevation-z8">
|
|
3190
3710
|
<table
|
|
3191
3711
|
mat-table
|
|
3192
3712
|
[dataSource]="dataSource"
|
|
@@ -3195,7 +3715,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3195
3715
|
cdkDropList
|
|
3196
3716
|
[cdkDropListData]="dataSource"
|
|
3197
3717
|
(cdkDropListDropped)="dropTable($event)">
|
|
3198
|
-
|
|
3718
|
+
|
|
3719
|
+
|
|
3199
3720
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3200
3721
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3201
3722
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3225,6 +3746,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3225
3746
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3226
3747
|
</div>
|
|
3227
3748
|
</table>
|
|
3749
|
+
</div>
|
|
3750
|
+
</ng-container>
|
|
3751
|
+
|
|
3752
|
+
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3753
|
+
<!-- Product Name Column -->
|
|
3754
|
+
<ng-container matColumnDef="productName">
|
|
3755
|
+
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3756
|
+
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3757
|
+
</ng-container>
|
|
3758
|
+
|
|
3759
|
+
<!-- Quantity Column -->
|
|
3760
|
+
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3761
|
+
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3762
|
+
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3763
|
+
</ng-container>
|
|
3764
|
+
|
|
3765
|
+
<!-- Price Column -->
|
|
3766
|
+
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3767
|
+
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3768
|
+
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3769
|
+
</ng-container>
|
|
3770
|
+
|
|
3771
|
+
<!-- Category Column -->
|
|
3772
|
+
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3773
|
+
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3774
|
+
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3775
|
+
</ng-container>
|
|
3776
|
+
|
|
3777
|
+
<!-- Category Column -->
|
|
3778
|
+
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3779
|
+
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3780
|
+
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3781
|
+
</ng-container>
|
|
3782
|
+
|
|
3783
|
+
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3784
|
+
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3785
|
+
</table>
|
|
3786
|
+
<ng-template #noData>
|
|
3787
|
+
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3788
|
+
No product found please add some products.
|
|
3789
|
+
</div>
|
|
3790
|
+
</ng-template>
|
|
3791
|
+
|
|
3792
|
+
|
|
3793
|
+
|
|
3228
3794
|
</mat-card-content>
|
|
3229
3795
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3230
3796
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3240,8 +3806,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3240
3806
|
<span [instance]="instance" matFormioLabel></span>
|
|
3241
3807
|
</mat-card-title>
|
|
3242
3808
|
</ng-template>
|
|
3243
|
-
`, styles: [".datagrid-row{height:auto}\n"] }]
|
|
3244
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
3809
|
+
`, 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"] }]
|
|
3810
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.MatDialog }, { type: CommonService }]; } });
|
|
3245
3811
|
DataGridComponent.MaterialComponent = MaterialDataGridComponent;
|
|
3246
3812
|
|
|
3247
3813
|
var EditRowState;
|
|
@@ -3627,7 +4193,7 @@ MaterialWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
3627
4193
|
<button *ngIf="instance.hasButton('submit')" mat-raised-button color="primary" (click)="submit()">Submit</button>
|
|
3628
4194
|
</div>
|
|
3629
4195
|
</mat-step>
|
|
3630
|
-
</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:
|
|
4196
|
+
</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: i13.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i13.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] });
|
|
3631
4197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialWizardComponent, decorators: [{
|
|
3632
4198
|
type: Component,
|
|
3633
4199
|
args: [{ selector: 'mat-formio-wizard', template: `
|
|
@@ -3797,7 +4363,7 @@ FormioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
3797
4363
|
<div fxLayout="column" fxLayoutGap="1em">
|
|
3798
4364
|
<ng-template #formio></ng-template>
|
|
3799
4365
|
</div>
|
|
3800
|
-
`, 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:
|
|
4366
|
+
`, 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"] }] });
|
|
3801
4367
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioComponent, decorators: [{
|
|
3802
4368
|
type: Component,
|
|
3803
4369
|
args: [{ selector: 'mat-formio', template: `
|
|
@@ -3867,7 +4433,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
3867
4433
|
FormioFormFieldComponent,
|
|
3868
4434
|
LabelComponent,
|
|
3869
4435
|
MaskDirective,
|
|
3870
|
-
ConfirmationDialogComponent
|
|
4436
|
+
ConfirmationDialogComponent,
|
|
4437
|
+
AddOnProductsComponent], imports: [CommonModule,
|
|
3871
4438
|
FormsModule,
|
|
3872
4439
|
ReactiveFormsModule,
|
|
3873
4440
|
MatInputModule,
|
|
@@ -3895,7 +4462,9 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
3895
4462
|
ScrollingModule,
|
|
3896
4463
|
NgxMatSelectSearchModule,
|
|
3897
4464
|
MatDialogModule,
|
|
3898
|
-
HttpClientModule
|
|
4465
|
+
HttpClientModule,
|
|
4466
|
+
MatAutocompleteModule], exports: [MatAutocompleteModule,
|
|
4467
|
+
NgxRenderMaterialFormsComponent,
|
|
3899
4468
|
FormioComponent,
|
|
3900
4469
|
MatInputModule,
|
|
3901
4470
|
MatFormFieldModule,
|
|
@@ -3949,7 +4518,9 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
|
|
|
3949
4518
|
ScrollingModule,
|
|
3950
4519
|
NgxMatSelectSearchModule,
|
|
3951
4520
|
MatDialogModule,
|
|
3952
|
-
HttpClientModule,
|
|
4521
|
+
HttpClientModule,
|
|
4522
|
+
MatAutocompleteModule, MatAutocompleteModule,
|
|
4523
|
+
MatInputModule,
|
|
3953
4524
|
MatFormFieldModule,
|
|
3954
4525
|
MatCheckboxModule,
|
|
3955
4526
|
MatRadioModule,
|
|
@@ -4017,7 +4588,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4017
4588
|
FormioFormFieldComponent,
|
|
4018
4589
|
LabelComponent,
|
|
4019
4590
|
MaskDirective,
|
|
4020
|
-
ConfirmationDialogComponent
|
|
4591
|
+
ConfirmationDialogComponent,
|
|
4592
|
+
AddOnProductsComponent
|
|
4021
4593
|
],
|
|
4022
4594
|
imports: [
|
|
4023
4595
|
CommonModule,
|
|
@@ -4048,9 +4620,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4048
4620
|
ScrollingModule,
|
|
4049
4621
|
NgxMatSelectSearchModule,
|
|
4050
4622
|
MatDialogModule,
|
|
4051
|
-
HttpClientModule
|
|
4623
|
+
HttpClientModule,
|
|
4624
|
+
MatAutocompleteModule
|
|
4052
4625
|
],
|
|
4053
4626
|
exports: [
|
|
4627
|
+
MatAutocompleteModule,
|
|
4054
4628
|
NgxRenderMaterialFormsComponent,
|
|
4055
4629
|
FormioComponent,
|
|
4056
4630
|
MatInputModule,
|