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,75 @@ 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
|
-
|
|
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
|
+
var _a;
|
|
2682
|
+
if (response && response.code === 200) {
|
|
2683
|
+
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2684
|
+
this.totalPages = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.totalPages;
|
|
2685
|
+
const data = response.data.dataSource;
|
|
2686
|
+
this.filteredOptionsLength = data.length;
|
|
2687
|
+
if (this.productList.length > 0) {
|
|
2688
|
+
data.map(item => {
|
|
2689
|
+
return item;
|
|
2690
|
+
}).forEach(i => this.productList.push(i));
|
|
2691
|
+
}
|
|
2692
|
+
else {
|
|
2693
|
+
this.productList = data;
|
|
2694
|
+
}
|
|
2695
|
+
// Update filteredOptions with transformedData
|
|
2696
|
+
var allProductList = this.transformResponseData(this.productList);
|
|
2697
|
+
this.filteredOptions = Promise.resolve(allProductList);
|
|
2698
|
+
this.searching = false;
|
|
2699
|
+
this.productsloadingFlag = true;
|
|
2700
|
+
setTimeout(() => {
|
|
2701
|
+
const ele = this.selectElem.panel.nativeElement;
|
|
2702
|
+
const trackHeight = ele.scrollHeight - ele.offsetHeight;
|
|
2703
|
+
const middlePosition = trackHeight / 2 - 50;
|
|
2704
|
+
ele.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
2705
|
+
}, 250);
|
|
2706
|
+
}
|
|
2707
|
+
}
|
|
2708
|
+
});
|
|
2705
2709
|
}
|
|
2706
2710
|
// Utility function to transform response data
|
|
2707
2711
|
transformResponseData(data) {
|
|
@@ -2753,7 +2757,7 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2753
2757
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2754
2758
|
this.selectElem.openedChange.subscribe((isOpen) => {
|
|
2755
2759
|
if (isOpen) {
|
|
2756
|
-
this.pageNumber =
|
|
2760
|
+
this.pageNumber = 2;
|
|
2757
2761
|
this.pageSize = 20;
|
|
2758
2762
|
this.searchQuery = '';
|
|
2759
2763
|
this.searching = false;
|
|
@@ -2812,37 +2816,11 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2812
2816
|
});
|
|
2813
2817
|
this.filteredOptions = this.selectOptions;
|
|
2814
2818
|
}
|
|
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
2819
|
compareObjects(o1, o2) {
|
|
2842
2820
|
return _.isEqual(o1, o2);
|
|
2843
2821
|
}
|
|
2844
2822
|
}
|
|
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$
|
|
2823
|
+
MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
2846
2824
|
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
2825
|
<mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
|
|
2848
2826
|
<ng-template #componentTemplate let-hasLabel>
|
|
@@ -2880,7 +2858,7 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
2880
2858
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2881
2859
|
{{ instance.component.suffix }}
|
|
2882
2860
|
</span>
|
|
2883
|
-
|
|
2861
|
+
<mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
|
|
2884
2862
|
</mat-form-field>
|
|
2885
2863
|
</ng-template>
|
|
2886
2864
|
`, 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 +2901,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
2923
2901
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2924
2902
|
{{ instance.component.suffix }}
|
|
2925
2903
|
</span>
|
|
2926
|
-
|
|
2904
|
+
<mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
|
|
2927
2905
|
</mat-form-field>
|
|
2928
2906
|
</ng-template>
|
|
2929
2907
|
`, 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$
|
|
2908
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.HttpClient }]; }, propDecorators: { multiSelect: [{
|
|
2931
2909
|
type: ViewChild,
|
|
2932
2910
|
args: ['multiSelect', { static: true }]
|
|
2933
2911
|
}], selectElem: [{
|
|
@@ -2986,32 +2964,477 @@ class ConfirmationDialogComponent {
|
|
|
2986
2964
|
ngOnInit() {
|
|
2987
2965
|
}
|
|
2988
2966
|
}
|
|
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$
|
|
2967
|
+
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 });
|
|
2968
|
+
ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ConfirmationDialogComponent, selector: "NgxMat-confirmation-dialog", ngImport: i0, template: "<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .data-grid-closed-btn .mat-button-focus-overlay{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i1$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
2969
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
2992
2970
|
type: Component,
|
|
2993
2971
|
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
2972
|
}], ctorParameters: function () {
|
|
2995
|
-
return [{ type: i1$
|
|
2973
|
+
return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
2996
2974
|
type: Inject,
|
|
2997
2975
|
args: [MAT_DIALOG_DATA]
|
|
2998
2976
|
}] }];
|
|
2999
2977
|
} });
|
|
3000
2978
|
|
|
2979
|
+
class CommonService {
|
|
2980
|
+
constructor(http) {
|
|
2981
|
+
this.http = http;
|
|
2982
|
+
this.holy = '';
|
|
2983
|
+
this.grail = '';
|
|
2984
|
+
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
2985
|
+
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
2986
|
+
this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));
|
|
2987
|
+
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
2988
|
+
}
|
|
2989
|
+
scrumble(msg) {
|
|
2990
|
+
if (!isNullOrUndefined(msg)) {
|
|
2991
|
+
var conceal = this.getcampaign(msg, this.holy, this.grail);
|
|
2992
|
+
var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
|
|
2993
|
+
var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
|
|
2994
|
+
let keyValue = {
|
|
2995
|
+
"value": conceal.toString(),
|
|
2996
|
+
"mac": hashInBase64
|
|
2997
|
+
};
|
|
2998
|
+
var result = JSON.stringify(keyValue);
|
|
2999
|
+
var jumbled = CryptoJS.enc.Utf8.parse(result);
|
|
3000
|
+
return CryptoJS.enc.Base64.stringify(jumbled);
|
|
3001
|
+
}
|
|
3002
|
+
}
|
|
3003
|
+
getcampaign(data, holy, grail) {
|
|
3004
|
+
return CryptoJS.AES.encrypt(data.toString(), holy, {
|
|
3005
|
+
blockSize: 128,
|
|
3006
|
+
iv: grail,
|
|
3007
|
+
mode: CryptoJS.mode.CBC,
|
|
3008
|
+
padding: CryptoJS.pad.Pkcs7
|
|
3009
|
+
});
|
|
3010
|
+
}
|
|
3011
|
+
getBaseApiUrl() {
|
|
3012
|
+
const baseUrlMapping = {
|
|
3013
|
+
'localhost': 'http://localhost:58504',
|
|
3014
|
+
'lincoln.vartopia.com': 'https://lincoln-api.vartopia.com',
|
|
3015
|
+
'stage.vartopia.com': 'https://stage-api.vartopia.com',
|
|
3016
|
+
'my.vartopia.com': 'https://reagan-api.vartopia.com',
|
|
3017
|
+
'jackson.vartopia.com': 'https://jackson-api.vartopia.com'
|
|
3018
|
+
};
|
|
3019
|
+
// Get the current hostname
|
|
3020
|
+
const hostname = window.location.hostname;
|
|
3021
|
+
return baseUrlMapping[hostname] || null;
|
|
3022
|
+
}
|
|
3023
|
+
listProductCategory() {
|
|
3024
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3025
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
3026
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsCategory?vendorId=${vendorId}`);
|
|
3027
|
+
}
|
|
3028
|
+
listSubCategory(category) {
|
|
3029
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3030
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
3031
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsSubCategory?vendorId=${vendorId}&categoryName=${category}`);
|
|
3032
|
+
}
|
|
3033
|
+
// Function to get value by key from the array
|
|
3034
|
+
getValueByKey(data, key) {
|
|
3035
|
+
if (!data || data.length === 0) {
|
|
3036
|
+
return null; // Return null if data is empty or undefined
|
|
3037
|
+
}
|
|
3038
|
+
const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());
|
|
3039
|
+
return item ? item.value : null;
|
|
3040
|
+
}
|
|
3041
|
+
// this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`, { headers }).subscribe(response => {
|
|
3042
|
+
loadProducts(pageNumber, pazeSize, search = '', onlyActive = true, description = false, category, subCategory) {
|
|
3043
|
+
const baseApiUrl = this.getBaseApiUrl();
|
|
3044
|
+
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3045
|
+
const encodeCat = encodeURIComponent(category);
|
|
3046
|
+
const encodeSubCat = encodeURIComponent(subCategory);
|
|
3047
|
+
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${vendorId}&pageNumber=${pageNumber}&pageSize=${pazeSize}&search=${search}&onlyActive=${onlyActive}&includeDescription=${description}&category=${encodeCat}&subCategory=${encodeSubCat}`);
|
|
3048
|
+
}
|
|
3049
|
+
}
|
|
3050
|
+
CommonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3051
|
+
CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, providedIn: 'root' });
|
|
3052
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, decorators: [{
|
|
3053
|
+
type: Injectable,
|
|
3054
|
+
args: [{
|
|
3055
|
+
providedIn: 'root'
|
|
3056
|
+
}]
|
|
3057
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }]; } });
|
|
3058
|
+
|
|
3059
|
+
class AddOnProductsComponent {
|
|
3060
|
+
constructor(matDialogRef, data, fb, dialog, commonSevice) {
|
|
3061
|
+
this.matDialogRef = matDialogRef;
|
|
3062
|
+
this.fb = fb;
|
|
3063
|
+
this.dialog = dialog;
|
|
3064
|
+
this.commonSevice = commonSevice;
|
|
3065
|
+
this.category = [];
|
|
3066
|
+
this.subCategory = [];
|
|
3067
|
+
this.filteredCategories = [];
|
|
3068
|
+
this.filteredSubCategories = [];
|
|
3069
|
+
this.addProductsColumns = ['select', 'productName', 'price'];
|
|
3070
|
+
this.showAllproductsColumns = ['delete', 'productName', 'categoryName', 'subCategory', 'Quantity', 'price'];
|
|
3071
|
+
this.quantityList = [5, 10, 15, 20, 25];
|
|
3072
|
+
this.ELEMENT_DATA = [];
|
|
3073
|
+
this.dataSource = new MatTableDataSource();
|
|
3074
|
+
this.selection = new SelectionModel(true, []);
|
|
3075
|
+
this.selectedDataSource = new MatTableDataSource([]);
|
|
3076
|
+
this.selectedCategory = null;
|
|
3077
|
+
this.selectedSubCategory = null;
|
|
3078
|
+
this.showCategory = false;
|
|
3079
|
+
this.showSubcategory = false;
|
|
3080
|
+
this.showPrice = true;
|
|
3081
|
+
this.showQuantity = true;
|
|
3082
|
+
this.showNewProductPicker = true;
|
|
3083
|
+
this.setCategory = '';
|
|
3084
|
+
this.setSubCategory = '';
|
|
3085
|
+
this.loadingFlag = false;
|
|
3086
|
+
this.pageNumber = 1;
|
|
3087
|
+
this.pageSize = 20;
|
|
3088
|
+
this.totalPages = 0;
|
|
3089
|
+
this.searchQuery = '';
|
|
3090
|
+
this.itemList = [];
|
|
3091
|
+
this.prevScrollPosition = 0; // Track the previous scroll position
|
|
3092
|
+
this.spinnerFlag = false;
|
|
3093
|
+
this.showCategory = data.attributesFlag.showCategory;
|
|
3094
|
+
this.showSubcategory = data.attributesFlag.showSubcategory;
|
|
3095
|
+
this.showPrice = data.attributesFlag.showPrice;
|
|
3096
|
+
this.showQuantity = data.attributesFlag.showQuantity;
|
|
3097
|
+
this.showNewProductPicker = data.showNewProductPicker;
|
|
3098
|
+
this.setCategory = data.category || '';
|
|
3099
|
+
this.setSubCategory = data.subCategory || '';
|
|
3100
|
+
this.selection = new SelectionModel(true, data.selectedProducts || []);
|
|
3101
|
+
this.form = this.fb.group({
|
|
3102
|
+
productCategory: [''],
|
|
3103
|
+
productSubcategory: [''],
|
|
3104
|
+
selectedProducts: this.fb.array([])
|
|
3105
|
+
});
|
|
3106
|
+
this.initializeFormArray();
|
|
3107
|
+
if (!this.showCategory) {
|
|
3108
|
+
this.removeColumn('categoryName');
|
|
3109
|
+
}
|
|
3110
|
+
if (!this.showPrice) {
|
|
3111
|
+
this.removeColumn('price');
|
|
3112
|
+
}
|
|
3113
|
+
if (!this.showSubcategory) {
|
|
3114
|
+
this.removeColumn('subCategory');
|
|
3115
|
+
}
|
|
3116
|
+
if (!this.showQuantity) {
|
|
3117
|
+
this.removeColumn('Quantity');
|
|
3118
|
+
}
|
|
3119
|
+
}
|
|
3120
|
+
removeColumn(columnName) {
|
|
3121
|
+
this.showAllproductsColumns = this.showAllproductsColumns.filter(column => column !== columnName);
|
|
3122
|
+
this.addProductsColumns = this.addProductsColumns.filter(column => column !== columnName);
|
|
3123
|
+
}
|
|
3124
|
+
initializeFormArray() {
|
|
3125
|
+
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3126
|
+
this.selection.selected.forEach(product => {
|
|
3127
|
+
selectedProductsArray.push(this.fb.group({
|
|
3128
|
+
price: [product.price || '', Validators.required],
|
|
3129
|
+
text: [product.text || ''],
|
|
3130
|
+
quantity: [product.quantity || '', Validators.required],
|
|
3131
|
+
category: [(product === null || product === void 0 ? void 0 : product.category) || ''],
|
|
3132
|
+
subCategory: [(product === null || product === void 0 ? void 0 : product.subCategory) || ''],
|
|
3133
|
+
value: [(product === null || product === void 0 ? void 0 : product.value) || '']
|
|
3134
|
+
}));
|
|
3135
|
+
});
|
|
3136
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3137
|
+
}
|
|
3138
|
+
initializeDataSources() {
|
|
3139
|
+
var _a, _b, _c, _d;
|
|
3140
|
+
// Ensure selected items are marked in the main data source
|
|
3141
|
+
if ((_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.selected) === null || _b === void 0 ? void 0 : _b.length) {
|
|
3142
|
+
(_d = (_c = this.selection) === null || _c === void 0 ? void 0 : _c.selected) === null || _d === void 0 ? void 0 : _d.forEach(selectedProduct => {
|
|
3143
|
+
const index = this.dataSource.data.findIndex(product => product.value === selectedProduct.value);
|
|
3144
|
+
if (index >= 0) {
|
|
3145
|
+
this.dataSource.data[index] = selectedProduct;
|
|
3146
|
+
}
|
|
3147
|
+
});
|
|
3148
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3149
|
+
}
|
|
3150
|
+
else {
|
|
3151
|
+
console.warn('No selected products found.');
|
|
3152
|
+
}
|
|
3153
|
+
}
|
|
3154
|
+
ngAfterViewInit() {
|
|
3155
|
+
}
|
|
3156
|
+
ngOnInit() {
|
|
3157
|
+
this.loadProductCategory();
|
|
3158
|
+
this.form.get('productCategory').valueChanges
|
|
3159
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'category1'))).subscribe(filterCat => {
|
|
3160
|
+
this.filteredCategories = filterCat;
|
|
3161
|
+
});
|
|
3162
|
+
this.form.get('productSubcategory').valueChanges
|
|
3163
|
+
.pipe(startWith(''), map(value => this.filterProducts(value, 'subCategory'))).subscribe(subCat => {
|
|
3164
|
+
this.filteredSubCategories = subCat;
|
|
3165
|
+
});
|
|
3166
|
+
}
|
|
3167
|
+
loadProductCategory() {
|
|
3168
|
+
this.spinnerFlag = true;
|
|
3169
|
+
this.commonSevice.listProductCategory().subscribe(response => {
|
|
3170
|
+
this.spinnerFlag = false;
|
|
3171
|
+
if (response && response.code === 200) {
|
|
3172
|
+
this.category = response.data;
|
|
3173
|
+
this.filteredCategories = this.filterProducts(this.setCategory, 'category1');
|
|
3174
|
+
this.form.get('productCategory').setValue(this.setCategory);
|
|
3175
|
+
if (this.setCategory !== '') {
|
|
3176
|
+
this.onOptionSelected(this.setCategory, 'category1');
|
|
3177
|
+
this.form.get('productSubcategory').setValue(this.setSubCategory);
|
|
3178
|
+
}
|
|
3179
|
+
}
|
|
3180
|
+
});
|
|
3181
|
+
}
|
|
3182
|
+
filterProducts(value, cat) {
|
|
3183
|
+
const filterValue = value.toLowerCase();
|
|
3184
|
+
const data = cat === 'category1' ? this.category : this.subCategory;
|
|
3185
|
+
if (!filterValue) {
|
|
3186
|
+
return data;
|
|
3187
|
+
}
|
|
3188
|
+
else {
|
|
3189
|
+
return data.filter(option => option.toLowerCase().includes(filterValue));
|
|
3190
|
+
}
|
|
3191
|
+
}
|
|
3192
|
+
onSubmit() {
|
|
3193
|
+
if (this.form.valid) {
|
|
3194
|
+
this.matDialogRef.close({
|
|
3195
|
+
data: {
|
|
3196
|
+
status: true,
|
|
3197
|
+
items: this.form.value
|
|
3198
|
+
}
|
|
3199
|
+
});
|
|
3200
|
+
}
|
|
3201
|
+
}
|
|
3202
|
+
isAllSelected() {
|
|
3203
|
+
const numSelected = this.selection.selected.length;
|
|
3204
|
+
const numRows = this.dataSource.data.length;
|
|
3205
|
+
return numSelected === numRows;
|
|
3206
|
+
}
|
|
3207
|
+
isIndeterminate() {
|
|
3208
|
+
const numSelected = this.selection.selected.length;
|
|
3209
|
+
const numRows = this.dataSource.data.length;
|
|
3210
|
+
return numSelected > 0 && numSelected < numRows;
|
|
3211
|
+
}
|
|
3212
|
+
masterToggle() {
|
|
3213
|
+
this.isAllSelected()
|
|
3214
|
+
? this.selection.clear()
|
|
3215
|
+
: this.dataSource.data.forEach(row => this.selection.select(row));
|
|
3216
|
+
this.updateSelectedProducts();
|
|
3217
|
+
}
|
|
3218
|
+
toggleSelection(row) {
|
|
3219
|
+
this.selection.toggle(row);
|
|
3220
|
+
this.updateSelectedProducts();
|
|
3221
|
+
}
|
|
3222
|
+
// Getter for the FormArray
|
|
3223
|
+
get selectedProducts() {
|
|
3224
|
+
return this.form.get('selectedProducts');
|
|
3225
|
+
}
|
|
3226
|
+
updateSelectedProducts() {
|
|
3227
|
+
var _a, _b;
|
|
3228
|
+
if (Array.isArray(this.selection.selected)) {
|
|
3229
|
+
this.selectedDataSource.data = [...this.selection.selected];
|
|
3230
|
+
const selectedProductsArray = this.selectedProducts;
|
|
3231
|
+
selectedProductsArray.clear();
|
|
3232
|
+
(_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.selected) === null || _b === void 0 ? void 0 : _b.forEach(product => {
|
|
3233
|
+
var _a, _b;
|
|
3234
|
+
selectedProductsArray === null || selectedProductsArray === void 0 ? void 0 : selectedProductsArray.push(this.fb.group({
|
|
3235
|
+
price: [(_a = product === null || product === void 0 ? void 0 : product.price) !== null && _a !== void 0 ? _a : '', this.showPrice ? Validators.required : []],
|
|
3236
|
+
text: [(product === null || product === void 0 ? void 0 : product.text) || ''],
|
|
3237
|
+
quantity: [(_b = product === null || product === void 0 ? void 0 : product.quantity) !== null && _b !== void 0 ? _b : '', this.showQuantity ? Validators.required : []],
|
|
3238
|
+
category: [(product === null || product === void 0 ? void 0 : product.category) || ''],
|
|
3239
|
+
subCategory: [(product === null || product === void 0 ? void 0 : product.subCategory) || ''],
|
|
3240
|
+
value: [(product === null || product === void 0 ? void 0 : product.value) || '']
|
|
3241
|
+
}));
|
|
3242
|
+
});
|
|
3243
|
+
}
|
|
3244
|
+
else {
|
|
3245
|
+
console.error('Selection.selected is not an array:', this.selection.selected);
|
|
3246
|
+
}
|
|
3247
|
+
}
|
|
3248
|
+
getTotalRows() {
|
|
3249
|
+
return this.dataSource.data.length;
|
|
3250
|
+
}
|
|
3251
|
+
getSelectedRowsCount() {
|
|
3252
|
+
return this.selection.selected.length;
|
|
3253
|
+
}
|
|
3254
|
+
onOptionSelected(event, category) {
|
|
3255
|
+
let selectedValue;
|
|
3256
|
+
if (event && event.option && event.option.value !== undefined) {
|
|
3257
|
+
selectedValue = event.option.value;
|
|
3258
|
+
}
|
|
3259
|
+
else {
|
|
3260
|
+
selectedValue = event;
|
|
3261
|
+
}
|
|
3262
|
+
if (category === 'category1') {
|
|
3263
|
+
this.selectedCategory = selectedValue;
|
|
3264
|
+
this.spinnerFlag = true;
|
|
3265
|
+
this.commonSevice.listSubCategory(selectedValue).subscribe(response => {
|
|
3266
|
+
this.spinnerFlag = false;
|
|
3267
|
+
if (response && response.code === 200) {
|
|
3268
|
+
this.subCategory = response.data;
|
|
3269
|
+
this.filteredSubCategories = this.filterProducts(this.setCategory, 'subCategory');
|
|
3270
|
+
if (this.setSubCategory !== '') {
|
|
3271
|
+
this.selectedSubCategory = this.setSubCategory;
|
|
3272
|
+
this.getProducts();
|
|
3273
|
+
}
|
|
3274
|
+
}
|
|
3275
|
+
});
|
|
3276
|
+
}
|
|
3277
|
+
else {
|
|
3278
|
+
if (category === 'subCategory') {
|
|
3279
|
+
this.selectedSubCategory = event.option.value;
|
|
3280
|
+
this.getProducts();
|
|
3281
|
+
}
|
|
3282
|
+
}
|
|
3283
|
+
}
|
|
3284
|
+
getProducts() {
|
|
3285
|
+
this.spinnerFlag = true;
|
|
3286
|
+
this.commonSevice.loadProducts(this.pageNumber, this.pageSize, '', true, false, this.selectedCategory, this.selectedSubCategory).subscribe(response => {
|
|
3287
|
+
var _a;
|
|
3288
|
+
this.spinnerFlag = false;
|
|
3289
|
+
if (response && response.code === 200) {
|
|
3290
|
+
//this.dataSource.data = response.data.dataSource;
|
|
3291
|
+
this.totalPages = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.totalPages;
|
|
3292
|
+
const data = response.data.dataSource;
|
|
3293
|
+
if (this.dataSource.data.length > 0) {
|
|
3294
|
+
data.forEach(item => this.dataSource.data.push(item));
|
|
3295
|
+
this.dataSource.data = [...this.dataSource.data];
|
|
3296
|
+
}
|
|
3297
|
+
else {
|
|
3298
|
+
this.dataSource.data = data;
|
|
3299
|
+
}
|
|
3300
|
+
this.loadingFlag = true;
|
|
3301
|
+
setTimeout(() => {
|
|
3302
|
+
const middlePosition = this.trackHeight / 2 - 50;
|
|
3303
|
+
if (this.firstscrollableDiv && this.firstscrollableDiv.nativeElement) {
|
|
3304
|
+
this.firstscrollableDiv.nativeElement.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
3305
|
+
}
|
|
3306
|
+
}, 250);
|
|
3307
|
+
this.initializeDataSources();
|
|
3308
|
+
}
|
|
3309
|
+
});
|
|
3310
|
+
}
|
|
3311
|
+
removeRow(event, element) {
|
|
3312
|
+
event.stopPropagation();
|
|
3313
|
+
event.preventDefault();
|
|
3314
|
+
let message = 'Are you sure you want to delete this product?';
|
|
3315
|
+
let showButton = true;
|
|
3316
|
+
const index = this.selectedDataSource.data.indexOf(element);
|
|
3317
|
+
if (index >= 0) {
|
|
3318
|
+
if (this.selectedDataSource.data.length === 1) {
|
|
3319
|
+
message = 'Please select at least one product.';
|
|
3320
|
+
showButton = false;
|
|
3321
|
+
}
|
|
3322
|
+
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
3323
|
+
disableClose: true,
|
|
3324
|
+
width: '90%',
|
|
3325
|
+
maxWidth: '400px',
|
|
3326
|
+
data: { message: message, buttonStatus: showButton }
|
|
3327
|
+
});
|
|
3328
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
3329
|
+
if (result) {
|
|
3330
|
+
this.selectedDataSource.data.splice(index, 1);
|
|
3331
|
+
this.selectedDataSource._updateChangeSubscription();
|
|
3332
|
+
this.selection.deselect(element);
|
|
3333
|
+
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3334
|
+
const productIndex = selectedProductsArray.controls.findIndex(control => control.value.productName === element.productName);
|
|
3335
|
+
if (productIndex >= 0) {
|
|
3336
|
+
selectedProductsArray.removeAt(productIndex);
|
|
3337
|
+
}
|
|
3338
|
+
}
|
|
3339
|
+
});
|
|
3340
|
+
}
|
|
3341
|
+
}
|
|
3342
|
+
onScroll(event) {
|
|
3343
|
+
this.trackHeight = event.target.scrollHeight - event.target.offsetHeight;
|
|
3344
|
+
if (this.loadingFlag && (Math.floor(event.target.scrollTop / this.trackHeight * 100) > 50)) {
|
|
3345
|
+
this.loadingFlag = false;
|
|
3346
|
+
if (this.pageNumber < this.totalPages) {
|
|
3347
|
+
this.pageNumber = this.pageNumber + 1;
|
|
3348
|
+
this.getProducts();
|
|
3349
|
+
}
|
|
3350
|
+
else {
|
|
3351
|
+
this.loadingFlag = true;
|
|
3352
|
+
}
|
|
3353
|
+
}
|
|
3354
|
+
this.prevScrollPosition = event.target.scrollTop;
|
|
3355
|
+
}
|
|
3356
|
+
}
|
|
3357
|
+
AddOnProductsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FormBuilder }, { token: i1$1.MatDialog }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3358
|
+
AddOnProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: AddOnProductsComponent, selector: "ngx-mat-add-on-products", viewQueries: [{ propertyName: "firstscrollableDiv", first: true, predicate: ["firstscrollableDiv"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i13.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i13.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i13.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i13.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "directive", type: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i14.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i14.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
|
|
3359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, decorators: [{
|
|
3360
|
+
type: Component,
|
|
3361
|
+
args: [{ selector: 'ngx-mat-add-on-products', template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"] }]
|
|
3362
|
+
}], ctorParameters: function () {
|
|
3363
|
+
return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
3364
|
+
type: Inject,
|
|
3365
|
+
args: [MAT_DIALOG_DATA]
|
|
3366
|
+
}] }, { type: i2.FormBuilder }, { type: i1$1.MatDialog }, { type: CommonService }];
|
|
3367
|
+
}, propDecorators: { firstscrollableDiv: [{
|
|
3368
|
+
type: ViewChild,
|
|
3369
|
+
args: ['firstscrollableDiv']
|
|
3370
|
+
}] } });
|
|
3371
|
+
|
|
3372
|
+
const ELEMENT_DATA = [];
|
|
3001
3373
|
class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
3002
|
-
constructor(element, ref, dialog) {
|
|
3374
|
+
constructor(element, ref, dialog, commonService) {
|
|
3003
3375
|
super(element, ref);
|
|
3004
3376
|
this.element = element;
|
|
3005
3377
|
this.ref = ref;
|
|
3006
3378
|
this.dialog = dialog;
|
|
3379
|
+
this.commonService = commonService;
|
|
3007
3380
|
this.dataSource = new MatTableDataSource();
|
|
3381
|
+
this.dataSourceNew = ELEMENT_DATA;
|
|
3382
|
+
this.displayedColumnsNew = ['productName', 'category', 'subCategory', 'quantity', 'price'];
|
|
3383
|
+
this.showNewProductPicker = false;
|
|
3384
|
+
this.showCategory = false;
|
|
3385
|
+
this.showSubcategory = false;
|
|
3386
|
+
this.showPrice = true;
|
|
3387
|
+
this.showQuantity = true;
|
|
3388
|
+
this.category = '';
|
|
3389
|
+
this.subCategory = '';
|
|
3390
|
+
this.hasInitialized = false;
|
|
3008
3391
|
}
|
|
3009
3392
|
getColumnLabel(column) {
|
|
3010
3393
|
return column.label || column.key;
|
|
3011
3394
|
}
|
|
3395
|
+
checkIsAttributeTrue(newProductPickerFlag, attributeName) {
|
|
3396
|
+
return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase() &&
|
|
3397
|
+
newProductPickerFlag[key].toLowerCase() === "true");
|
|
3398
|
+
}
|
|
3399
|
+
// ngOnInit(): void {
|
|
3400
|
+
// }
|
|
3012
3401
|
setInstance(instance) {
|
|
3402
|
+
var _a;
|
|
3403
|
+
const newProductPickerFlag = (_a = instance === null || instance === void 0 ? void 0 : instance.component) === null || _a === void 0 ? void 0 : _a.attributes;
|
|
3404
|
+
this.showNewProductPicker = this.checkIsAttributeTrue(newProductPickerFlag, "newproductpicker");
|
|
3405
|
+
this.showCategory = this.checkIsAttributeTrue(newProductPickerFlag, "showCategory");
|
|
3406
|
+
this.showSubcategory = this.checkIsAttributeTrue(newProductPickerFlag, "showSubcategory");
|
|
3407
|
+
this.showPrice = this.checkIsAttributeTrue(newProductPickerFlag, "showPrice");
|
|
3408
|
+
this.showQuantity = this.checkIsAttributeTrue(newProductPickerFlag, "showQuantity");
|
|
3013
3409
|
super.setInstance(instance);
|
|
3014
|
-
this.
|
|
3410
|
+
if (this.showNewProductPicker && !this.hasInitialized) {
|
|
3411
|
+
if (!this.showCategory) {
|
|
3412
|
+
this.removeColumn('category');
|
|
3413
|
+
}
|
|
3414
|
+
if (!this.showQuantity) {
|
|
3415
|
+
this.removeColumn('quantity');
|
|
3416
|
+
}
|
|
3417
|
+
if (!this.showPrice) {
|
|
3418
|
+
this.removeColumn('price');
|
|
3419
|
+
}
|
|
3420
|
+
if (!this.showSubcategory) {
|
|
3421
|
+
this.removeColumn('subCategory');
|
|
3422
|
+
}
|
|
3423
|
+
const checkProducts = JSON.parse(localStorage.getItem('dealData')) || [];
|
|
3424
|
+
const dealId = checkProducts === null || checkProducts === void 0 ? void 0 : checkProducts.dealId;
|
|
3425
|
+
const storedData = localStorage.getItem(`selectedProducts-${dealId}`);
|
|
3426
|
+
if (storedData === null || storedData === void 0 ? void 0 : storedData.length) {
|
|
3427
|
+
this.dataSourceNew = JSON.parse(storedData);
|
|
3428
|
+
}
|
|
3429
|
+
else {
|
|
3430
|
+
this.dataSourceNew = [];
|
|
3431
|
+
}
|
|
3432
|
+
// Set flag to true to prevent further execution
|
|
3433
|
+
this.hasInitialized = true;
|
|
3434
|
+
}
|
|
3435
|
+
else {
|
|
3436
|
+
this.dataSource.data = instance.dataValue;
|
|
3437
|
+
}
|
|
3015
3438
|
this.columns = {};
|
|
3016
3439
|
this.displayedColumns = [];
|
|
3017
3440
|
this.formColumns = [];
|
|
@@ -3039,7 +3462,10 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3039
3462
|
return viewContainer ? viewContainer : null;
|
|
3040
3463
|
};
|
|
3041
3464
|
}
|
|
3042
|
-
|
|
3465
|
+
removeColumn(columnName) {
|
|
3466
|
+
this.displayedColumnsNew = this.displayedColumnsNew.filter(column => column !== columnName);
|
|
3467
|
+
}
|
|
3468
|
+
addAnotherOld() {
|
|
3043
3469
|
this.checkRowsNumber();
|
|
3044
3470
|
this.instance.addRow();
|
|
3045
3471
|
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
@@ -3047,6 +3473,60 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3047
3473
|
}
|
|
3048
3474
|
this.dataSource.data = [...this.dataSource.data];
|
|
3049
3475
|
}
|
|
3476
|
+
addAnother() {
|
|
3477
|
+
var _a, _b;
|
|
3478
|
+
if (this.showNewProductPicker) {
|
|
3479
|
+
const savedData = JSON.parse(localStorage.getItem('saveCat'));
|
|
3480
|
+
const checkProducts = JSON.parse(localStorage.getItem('dealData')) || [];
|
|
3481
|
+
// Use optional chaining and nullish coalescing to set the values
|
|
3482
|
+
this.category = (_a = savedData === null || savedData === void 0 ? void 0 : savedData.category) !== null && _a !== void 0 ? _a : this.category;
|
|
3483
|
+
this.subCategory = (_b = savedData === null || savedData === void 0 ? void 0 : savedData.subCategory) !== null && _b !== void 0 ? _b : this.subCategory;
|
|
3484
|
+
const diologeRef = this.dialog.open(AddOnProductsComponent, {
|
|
3485
|
+
disableClose: true,
|
|
3486
|
+
width: '90%',
|
|
3487
|
+
maxWidth: '900px',
|
|
3488
|
+
autoFocus: false,
|
|
3489
|
+
data: { attributesFlag: { showNewProductPicker: this.showNewProductPicker, showCategory: this.showCategory, showSubcategory: this.showSubcategory, showPrice: this.showPrice, showQuantity: this.showQuantity }, selectedProducts: this.dataSourceNew, category: this.category, subCategory: this.subCategory }
|
|
3490
|
+
})
|
|
3491
|
+
.afterClosed().subscribe(response => {
|
|
3492
|
+
var _a;
|
|
3493
|
+
if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.status) {
|
|
3494
|
+
if (!this.showCategory) {
|
|
3495
|
+
this.removeColumn('category');
|
|
3496
|
+
}
|
|
3497
|
+
if (!this.showQuantity) {
|
|
3498
|
+
this.removeColumn('quantity');
|
|
3499
|
+
}
|
|
3500
|
+
if (!this.showPrice) {
|
|
3501
|
+
this.removeColumn('price');
|
|
3502
|
+
}
|
|
3503
|
+
if (!this.showSubcategory) {
|
|
3504
|
+
this.removeColumn('subCategory');
|
|
3505
|
+
}
|
|
3506
|
+
//localStorage.setItem('selectedProducts', JSON.stringify(response.data.items.selectedProducts))
|
|
3507
|
+
const dealId = checkProducts === null || checkProducts === void 0 ? void 0 : checkProducts.dealId;
|
|
3508
|
+
localStorage.setItem(`selectedProducts-${dealId}`, JSON.stringify(response.data.items.selectedProducts));
|
|
3509
|
+
this.dataSourceNew = response.data.items.selectedProducts;
|
|
3510
|
+
this.category = response.data.items.productCategory;
|
|
3511
|
+
this.subCategory = response.data.items.productSubcategory;
|
|
3512
|
+
const catObject = {
|
|
3513
|
+
category: this.category,
|
|
3514
|
+
subCategory: this.subCategory
|
|
3515
|
+
};
|
|
3516
|
+
localStorage.setItem('saveCat', JSON.stringify(catObject));
|
|
3517
|
+
this.instance.component.defaultValue = response.data.items.selectedProducts;
|
|
3518
|
+
}
|
|
3519
|
+
});
|
|
3520
|
+
}
|
|
3521
|
+
else {
|
|
3522
|
+
this.checkRowsNumber();
|
|
3523
|
+
this.instance.addRow();
|
|
3524
|
+
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
3525
|
+
this.dataSource.data.push({});
|
|
3526
|
+
}
|
|
3527
|
+
this.dataSource.data = [...this.dataSource.data];
|
|
3528
|
+
}
|
|
3529
|
+
}
|
|
3050
3530
|
checkRowsNumber() {
|
|
3051
3531
|
while (this.instance.rows.length < this.dataSource.data.length) {
|
|
3052
3532
|
this.instance.addRow();
|
|
@@ -3097,7 +3577,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3097
3577
|
super.setValue(value);
|
|
3098
3578
|
}
|
|
3099
3579
|
}
|
|
3100
|
-
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$
|
|
3580
|
+
MaterialDataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.MatDialog }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3101
3581
|
MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialDataGridComponent, selector: "mat-formio-datagrid", usesInheritance: true, ngImport: i0, template: `
|
|
3102
3582
|
<mat-formio-form-field [instance]="instance"
|
|
3103
3583
|
[componentTemplate]="componentTemplate"
|
|
@@ -3116,6 +3596,8 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3116
3596
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3117
3597
|
</button>
|
|
3118
3598
|
</mat-card-actions>
|
|
3599
|
+
<ng-container *ngIf="!showNewProductPicker">
|
|
3600
|
+
<div class="mat-elevation-z8">
|
|
3119
3601
|
<table
|
|
3120
3602
|
mat-table
|
|
3121
3603
|
[dataSource]="dataSource"
|
|
@@ -3124,7 +3606,8 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3124
3606
|
cdkDropList
|
|
3125
3607
|
[cdkDropListData]="dataSource"
|
|
3126
3608
|
(cdkDropListDropped)="dropTable($event)">
|
|
3127
|
-
|
|
3609
|
+
|
|
3610
|
+
|
|
3128
3611
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3129
3612
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3130
3613
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3154,6 +3637,51 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3154
3637
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3155
3638
|
</div>
|
|
3156
3639
|
</table>
|
|
3640
|
+
</div>
|
|
3641
|
+
</ng-container>
|
|
3642
|
+
|
|
3643
|
+
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3644
|
+
<!-- Product Name Column -->
|
|
3645
|
+
<ng-container matColumnDef="productName">
|
|
3646
|
+
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3647
|
+
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3648
|
+
</ng-container>
|
|
3649
|
+
|
|
3650
|
+
<!-- Quantity Column -->
|
|
3651
|
+
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3652
|
+
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3653
|
+
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3654
|
+
</ng-container>
|
|
3655
|
+
|
|
3656
|
+
<!-- Price Column -->
|
|
3657
|
+
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3658
|
+
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3659
|
+
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3660
|
+
</ng-container>
|
|
3661
|
+
|
|
3662
|
+
<!-- Category Column -->
|
|
3663
|
+
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3664
|
+
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3665
|
+
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3666
|
+
</ng-container>
|
|
3667
|
+
|
|
3668
|
+
<!-- Category Column -->
|
|
3669
|
+
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3670
|
+
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3671
|
+
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3672
|
+
</ng-container>
|
|
3673
|
+
|
|
3674
|
+
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3675
|
+
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3676
|
+
</table>
|
|
3677
|
+
<ng-template #noData>
|
|
3678
|
+
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3679
|
+
No product found please add some products.
|
|
3680
|
+
</div>
|
|
3681
|
+
</ng-template>
|
|
3682
|
+
|
|
3683
|
+
|
|
3684
|
+
|
|
3157
3685
|
</mat-card-content>
|
|
3158
3686
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3159
3687
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3169,7 +3697,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3169
3697
|
<span [instance]="instance" matFormioLabel></span>
|
|
3170
3698
|
</mat-card-title>
|
|
3171
3699
|
</ng-template>
|
|
3172
|
-
`, 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:
|
|
3700
|
+
`, 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"] }] });
|
|
3173
3701
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, decorators: [{
|
|
3174
3702
|
type: Component,
|
|
3175
3703
|
args: [{ selector: 'mat-formio-datagrid', template: `
|
|
@@ -3190,6 +3718,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3190
3718
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3191
3719
|
</button>
|
|
3192
3720
|
</mat-card-actions>
|
|
3721
|
+
<ng-container *ngIf="!showNewProductPicker">
|
|
3722
|
+
<div class="mat-elevation-z8">
|
|
3193
3723
|
<table
|
|
3194
3724
|
mat-table
|
|
3195
3725
|
[dataSource]="dataSource"
|
|
@@ -3198,7 +3728,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3198
3728
|
cdkDropList
|
|
3199
3729
|
[cdkDropListData]="dataSource"
|
|
3200
3730
|
(cdkDropListDropped)="dropTable($event)">
|
|
3201
|
-
|
|
3731
|
+
|
|
3732
|
+
|
|
3202
3733
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3203
3734
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3204
3735
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3228,6 +3759,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3228
3759
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3229
3760
|
</div>
|
|
3230
3761
|
</table>
|
|
3762
|
+
</div>
|
|
3763
|
+
</ng-container>
|
|
3764
|
+
|
|
3765
|
+
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3766
|
+
<!-- Product Name Column -->
|
|
3767
|
+
<ng-container matColumnDef="productName">
|
|
3768
|
+
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3769
|
+
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3770
|
+
</ng-container>
|
|
3771
|
+
|
|
3772
|
+
<!-- Quantity Column -->
|
|
3773
|
+
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3774
|
+
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3775
|
+
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3776
|
+
</ng-container>
|
|
3777
|
+
|
|
3778
|
+
<!-- Price Column -->
|
|
3779
|
+
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3780
|
+
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3781
|
+
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3782
|
+
</ng-container>
|
|
3783
|
+
|
|
3784
|
+
<!-- Category Column -->
|
|
3785
|
+
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3786
|
+
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3787
|
+
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3788
|
+
</ng-container>
|
|
3789
|
+
|
|
3790
|
+
<!-- Category Column -->
|
|
3791
|
+
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3792
|
+
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3793
|
+
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3794
|
+
</ng-container>
|
|
3795
|
+
|
|
3796
|
+
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3797
|
+
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3798
|
+
</table>
|
|
3799
|
+
<ng-template #noData>
|
|
3800
|
+
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3801
|
+
No product found please add some products.
|
|
3802
|
+
</div>
|
|
3803
|
+
</ng-template>
|
|
3804
|
+
|
|
3805
|
+
|
|
3806
|
+
|
|
3231
3807
|
</mat-card-content>
|
|
3232
3808
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3233
3809
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3243,8 +3819,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3243
3819
|
<span [instance]="instance" matFormioLabel></span>
|
|
3244
3820
|
</mat-card-title>
|
|
3245
3821
|
</ng-template>
|
|
3246
|
-
`, styles: [".datagrid-row{height:auto}\n"] }]
|
|
3247
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
3822
|
+
`, 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"] }]
|
|
3823
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.MatDialog }, { type: CommonService }]; } });
|
|
3248
3824
|
DataGridComponent.MaterialComponent = MaterialDataGridComponent;
|
|
3249
3825
|
|
|
3250
3826
|
var EditRowState;
|
|
@@ -3627,7 +4203,7 @@ MaterialWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
3627
4203
|
<button *ngIf="instance.hasButton('submit')" mat-raised-button color="primary" (click)="submit()">Submit</button>
|
|
3628
4204
|
</div>
|
|
3629
4205
|
</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:
|
|
4206
|
+
</mat-horizontal-stepper>`, isInline: true, styles: [":host .navigation-button-row{margin-top:8px}\n", ":host .navigation-button-row button{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: 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
4207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialWizardComponent, decorators: [{
|
|
3632
4208
|
type: Component,
|
|
3633
4209
|
args: [{ selector: 'mat-formio-wizard', template: `
|
|
@@ -3797,7 +4373,7 @@ FormioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
3797
4373
|
<div fxLayout="column" fxLayoutGap="1em">
|
|
3798
4374
|
<ng-template #formio></ng-template>
|
|
3799
4375
|
</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:
|
|
4376
|
+
`, isInline: true, styles: [".alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:.5rem;border:1px solid transparent;border-radius:.25rem}::ng-deep mat-card{box-sizing:border-box;-moz-box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: 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
4377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioComponent, decorators: [{
|
|
3802
4378
|
type: Component,
|
|
3803
4379
|
args: [{ selector: 'mat-formio', template: `
|
|
@@ -3869,7 +4445,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
3869
4445
|
FormioFormFieldComponent,
|
|
3870
4446
|
LabelComponent,
|
|
3871
4447
|
MaskDirective,
|
|
3872
|
-
ConfirmationDialogComponent
|
|
4448
|
+
ConfirmationDialogComponent,
|
|
4449
|
+
AddOnProductsComponent], imports: [CommonModule,
|
|
3873
4450
|
FormsModule,
|
|
3874
4451
|
ReactiveFormsModule,
|
|
3875
4452
|
MatInputModule,
|
|
@@ -3897,7 +4474,9 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
3897
4474
|
ScrollingModule,
|
|
3898
4475
|
NgxMatSelectSearchModule,
|
|
3899
4476
|
MatDialogModule,
|
|
3900
|
-
HttpClientModule
|
|
4477
|
+
HttpClientModule,
|
|
4478
|
+
MatAutocompleteModule], exports: [MatAutocompleteModule,
|
|
4479
|
+
NgxRenderMaterialFormsComponent,
|
|
3901
4480
|
FormioComponent,
|
|
3902
4481
|
MatInputModule,
|
|
3903
4482
|
MatFormFieldModule,
|
|
@@ -3951,7 +4530,9 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
|
|
|
3951
4530
|
ScrollingModule,
|
|
3952
4531
|
NgxMatSelectSearchModule,
|
|
3953
4532
|
MatDialogModule,
|
|
3954
|
-
HttpClientModule,
|
|
4533
|
+
HttpClientModule,
|
|
4534
|
+
MatAutocompleteModule, MatAutocompleteModule,
|
|
4535
|
+
MatInputModule,
|
|
3955
4536
|
MatFormFieldModule,
|
|
3956
4537
|
MatCheckboxModule,
|
|
3957
4538
|
MatRadioModule,
|
|
@@ -4019,7 +4600,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4019
4600
|
FormioFormFieldComponent,
|
|
4020
4601
|
LabelComponent,
|
|
4021
4602
|
MaskDirective,
|
|
4022
|
-
ConfirmationDialogComponent
|
|
4603
|
+
ConfirmationDialogComponent,
|
|
4604
|
+
AddOnProductsComponent
|
|
4023
4605
|
],
|
|
4024
4606
|
imports: [
|
|
4025
4607
|
CommonModule,
|
|
@@ -4050,9 +4632,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4050
4632
|
ScrollingModule,
|
|
4051
4633
|
NgxMatSelectSearchModule,
|
|
4052
4634
|
MatDialogModule,
|
|
4053
|
-
HttpClientModule
|
|
4635
|
+
HttpClientModule,
|
|
4636
|
+
MatAutocompleteModule
|
|
4054
4637
|
],
|
|
4055
4638
|
exports: [
|
|
4639
|
+
MatAutocompleteModule,
|
|
4056
4640
|
NgxRenderMaterialFormsComponent,
|
|
4057
4641
|
FormioComponent,
|
|
4058
4642
|
MatInputModule,
|