ngx-render-material-forms 1.4.5 → 1.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/button/button.component.mjs +11 -15
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +7 -198
- package/esm2020/lib/components/select/select.component.mjs +25 -4
- package/esm2020/lib/ngx-render-material-forms.module.mjs +6 -16
- package/fesm2015/ngx-render-material-forms.js +58 -637
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
- package/fesm2020/ngx-render-material-forms.js +58 -628
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
- package/lib/components/button/button.component.d.ts +0 -6
- package/lib/components/datagrid/datagrid.component.d.ts +0 -18
- package/lib/components/select/select.component.d.ts +2 -0
- package/lib/ngx-render-material-forms.module.d.ts +27 -29
- package/package.json +1 -1
- package/esm2020/lib/components/add-on-products/add-on-products.component.mjs +0 -329
- package/esm2020/lib/components/common.service.mjs +0 -85
- package/lib/components/add-on-products/add-on-products.component.d.ts +0 -76
- package/lib/components/common.service.d.ts +0 -23
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, Input, ViewChild, ViewContainerRef, ViewChildren, EventEmitter, Output, forwardRef, Directive, Inject, Optional, NgModule } from '@angular/core';
|
|
3
|
-
import * as i1$
|
|
3
|
+
import * as i1$1 from '@angular/common/http';
|
|
4
4
|
import { HttpHeaders, HttpClientModule } from '@angular/common/http';
|
|
5
5
|
import * as i1 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i2 from '@angular/forms';
|
|
8
|
-
import { FormControl, NG_VALUE_ACCESSOR,
|
|
8
|
+
import { FormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
import * as i4$2 from '@angular/material/input';
|
|
10
10
|
import { MAT_INPUT_VALUE_ACCESSOR, MatInputModule } from '@angular/material/input';
|
|
11
11
|
import * as i3$2 from '@angular/material/button';
|
|
@@ -27,20 +27,18 @@ import * as i4 from '@angular/material/card';
|
|
|
27
27
|
import { MatCardModule } from '@angular/material/card';
|
|
28
28
|
import * as i2$2 from '@angular/material/tabs';
|
|
29
29
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
30
|
-
import * as
|
|
30
|
+
import * as i4$7 from '@angular/material/table';
|
|
31
31
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
32
32
|
import * as i5$2 from '@angular/material/datepicker';
|
|
33
33
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
34
|
-
import * as
|
|
34
|
+
import * as i3$4 from '@angular/material/progress-spinner';
|
|
35
35
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
36
36
|
import * as i4$1 from '@angular/material/icon';
|
|
37
37
|
import { MatIconModule } from '@angular/material/icon';
|
|
38
38
|
import * as i5$1 from '@angular/material/core';
|
|
39
39
|
import { MatNativeDateModule } from '@angular/material/core';
|
|
40
|
-
import * as i1$
|
|
40
|
+
import * as i1$2 from '@angular/material/dialog';
|
|
41
41
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
42
|
-
import * as i14 from '@angular/material/autocomplete';
|
|
43
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
44
42
|
import Webform from 'formiojs/Webform.js';
|
|
45
43
|
import FormioComponent$2 from 'formiojs/components/_classes/component/Component.js';
|
|
46
44
|
import TextFieldComponent from 'formiojs/components/textfield/TextField.js';
|
|
@@ -83,7 +81,7 @@ import RadioComponent from 'formiojs/components/radio/Radio.js';
|
|
|
83
81
|
import SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';
|
|
84
82
|
import SelectComponent from 'formiojs/components/select/Select.js';
|
|
85
83
|
import { Subject } from 'rxjs';
|
|
86
|
-
import { debounceTime, distinctUntilChanged, takeUntil
|
|
84
|
+
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
87
85
|
import * as CryptoJS from 'crypto-js';
|
|
88
86
|
import { isNullOrUndefined } from 'util';
|
|
89
87
|
import * as i9 from 'ngx-mat-select-search';
|
|
@@ -92,15 +90,14 @@ import WellComponent from 'formiojs/components/well/Well.js';
|
|
|
92
90
|
import DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';
|
|
93
91
|
import * as i8 from '@angular/cdk/drag-drop';
|
|
94
92
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
95
|
-
import { SelectionModel } from '@angular/cdk/collections';
|
|
96
|
-
import * as i13 from '@angular/material/stepper';
|
|
97
|
-
import { MatStepperModule } from '@angular/material/stepper';
|
|
98
93
|
import EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';
|
|
99
94
|
import Components$2 from 'formiojs/components/Components';
|
|
100
95
|
import isString from 'lodash/isString';
|
|
101
96
|
import TableComponent from 'formiojs/components/table/Table.js';
|
|
102
97
|
import Wizard from 'formiojs/Wizard';
|
|
103
98
|
import Displays from 'formiojs/displays/Displays';
|
|
99
|
+
import * as i3$3 from '@angular/material/stepper';
|
|
100
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
104
101
|
import * as i1$3 from '@formio/angular';
|
|
105
102
|
import { FormioBaseComponent } from '@formio/angular';
|
|
106
103
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
@@ -979,11 +976,8 @@ var AngularButtonsThemes;
|
|
|
979
976
|
})(AngularButtonsThemes || (AngularButtonsThemes = {}));
|
|
980
977
|
|
|
981
978
|
class MaterialButtonComponent extends MaterialComponent {
|
|
982
|
-
constructor(
|
|
983
|
-
super(
|
|
984
|
-
this.element = element;
|
|
985
|
-
this.ref = ref;
|
|
986
|
-
this.dialog = dialog;
|
|
979
|
+
constructor() {
|
|
980
|
+
super(...arguments);
|
|
987
981
|
this.loading = false;
|
|
988
982
|
this.done = false;
|
|
989
983
|
this.error = false;
|
|
@@ -1054,12 +1048,12 @@ class MaterialButtonComponent extends MaterialComponent {
|
|
|
1054
1048
|
return retVal;
|
|
1055
1049
|
}
|
|
1056
1050
|
}
|
|
1057
|
-
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, deps:
|
|
1058
|
-
MaterialButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialButtonComponent, selector: "mat-formio-button", usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"instance
|
|
1051
|
+
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1052
|
+
MaterialButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialButtonComponent, selector: "mat-formio-button", usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"instance\"\r\n [ngClass]=\"buttonClass\"\r\n type=\"{{ instance.component.action }}\"\r\n mat-raised-button [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n (click)=\"instance.onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"done\">done</mat-icon>\r\n <mat-icon *ngIf=\"error\">close</mat-icon>\r\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\r\n {{ instance.component.label }}\r\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\r\n</button>\r\n", styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host .mat-icon-spin{-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mat-formio-theme-success{background-color:#63d644!important}.mat-formio-theme-info{background-color:#49d9f4!important}.mat-formio-button-sm{font-size:14px;padding:8px 12px}.mat-formio-button-xs{font-size:14px;padding:4px 6px}.mat-formio-button-md{font-size:15px;padding:8px 12px}.mat-formio-button-lg{font-size:19px;padding:16px 20px}.mat-formio-button-block{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
|
|
1059
1053
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialButtonComponent, decorators: [{
|
|
1060
1054
|
type: Component,
|
|
1061
|
-
args: [{ selector: 'mat-formio-button', template: "<button *ngIf=\"instance
|
|
1062
|
-
}]
|
|
1055
|
+
args: [{ selector: 'mat-formio-button', template: "<button *ngIf=\"instance\"\r\n [ngClass]=\"buttonClass\"\r\n type=\"{{ instance.component.action }}\"\r\n mat-raised-button [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n (click)=\"instance.onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"done\">done</mat-icon>\r\n <mat-icon *ngIf=\"error\">close</mat-icon>\r\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\r\n {{ instance.component.label }}\r\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\r\n</button>\r\n", styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host .mat-icon-spin{-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mat-formio-theme-success{background-color:#63d644!important}.mat-formio-theme-info{background-color:#49d9f4!important}.mat-formio-button-sm{font-size:14px;padding:8px 12px}.mat-formio-button-xs{font-size:14px;padding:4px 6px}.mat-formio-button-md{font-size:15px;padding:8px 12px}.mat-formio-button-lg{font-size:19px;padding:16px 20px}.mat-formio-button-block{display:block;width:100%}\n"] }]
|
|
1056
|
+
}] });
|
|
1063
1057
|
ButtonComponent.MaterialComponent = MaterialButtonComponent;
|
|
1064
1058
|
|
|
1065
1059
|
class MaterialTextareaComponent extends MaterialComponent {
|
|
@@ -2756,7 +2750,7 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2756
2750
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2757
2751
|
this.selectElem.openedChange.subscribe((isOpen) => {
|
|
2758
2752
|
if (isOpen) {
|
|
2759
|
-
this.pageNumber =
|
|
2753
|
+
this.pageNumber = 1;
|
|
2760
2754
|
this.pageSize = 20;
|
|
2761
2755
|
this.searchQuery = '';
|
|
2762
2756
|
this.searching = false;
|
|
@@ -2815,11 +2809,32 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2815
2809
|
});
|
|
2816
2810
|
this.filteredOptions = this.selectOptions;
|
|
2817
2811
|
}
|
|
2812
|
+
isError() {
|
|
2813
|
+
this.control.setErrors(this.instance.component.validate);
|
|
2814
|
+
return true;
|
|
2815
|
+
}
|
|
2816
|
+
getErrorMessage() {
|
|
2817
|
+
if (this.instance.error && this.instance.error.messages) {
|
|
2818
|
+
const { messages } = this.instance.error;
|
|
2819
|
+
if (messages.length) {
|
|
2820
|
+
for (const msg of messages) {
|
|
2821
|
+
if (msg.context) {
|
|
2822
|
+
if (this.instance && this.instance.parent && this.instance.parent._data) {
|
|
2823
|
+
if (this.instance.parent._data.submit) {
|
|
2824
|
+
this.control.markAllAsTouched();
|
|
2825
|
+
}
|
|
2826
|
+
}
|
|
2827
|
+
return this.instance.error ? this.instance.error.message : '';
|
|
2828
|
+
}
|
|
2829
|
+
}
|
|
2830
|
+
}
|
|
2831
|
+
}
|
|
2832
|
+
}
|
|
2818
2833
|
compareObjects(o1, o2) {
|
|
2819
2834
|
return _.isEqual(o1, o2);
|
|
2820
2835
|
}
|
|
2821
2836
|
}
|
|
2822
|
-
MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$
|
|
2837
|
+
MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
2823
2838
|
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: `
|
|
2824
2839
|
<mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
|
|
2825
2840
|
<ng-template #componentTemplate let-hasLabel>
|
|
@@ -2857,7 +2872,7 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
2857
2872
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2858
2873
|
{{ instance.component.suffix }}
|
|
2859
2874
|
</span>
|
|
2860
|
-
|
|
2875
|
+
<mat-error *ngIf="isError()" >{{ getErrorMessage() }}</mat-error>
|
|
2861
2876
|
</mat-form-field>
|
|
2862
2877
|
</ng-template>
|
|
2863
2878
|
`, 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" }] });
|
|
@@ -2900,11 +2915,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
2900
2915
|
<span *ngIf="instance.component.suffix" matSuffix>
|
|
2901
2916
|
{{ instance.component.suffix }}
|
|
2902
2917
|
</span>
|
|
2903
|
-
|
|
2918
|
+
<mat-error *ngIf="isError()" >{{ getErrorMessage() }}</mat-error>
|
|
2904
2919
|
</mat-form-field>
|
|
2905
2920
|
</ng-template>
|
|
2906
2921
|
`, 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"] }]
|
|
2907
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
2922
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.HttpClient }]; }, propDecorators: { multiSelect: [{
|
|
2908
2923
|
type: ViewChild,
|
|
2909
2924
|
args: ['multiSelect', { static: true }]
|
|
2910
2925
|
}], selectElem: [{
|
|
@@ -2963,404 +2978,16 @@ class ConfirmationDialogComponent {
|
|
|
2963
2978
|
ngOnInit() {
|
|
2964
2979
|
}
|
|
2965
2980
|
}
|
|
2966
|
-
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$
|
|
2967
|
-
ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ConfirmationDialogComponent, selector: "NgxMat-confirmation-dialog", ngImport: i0, template: "<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .data-grid-closed-btn .mat-button-focus-overlay{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i1$
|
|
2981
|
+
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
2982
|
+
ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ConfirmationDialogComponent, selector: "NgxMat-confirmation-dialog", ngImport: i0, template: "<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .data-grid-closed-btn .mat-button-focus-overlay{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
2968
2983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
2969
2984
|
type: Component,
|
|
2970
2985
|
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"] }]
|
|
2971
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
2986
|
+
}], ctorParameters: function () { return [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
|
|
2972
2987
|
type: Inject,
|
|
2973
2988
|
args: [MAT_DIALOG_DATA]
|
|
2974
2989
|
}] }]; } });
|
|
2975
2990
|
|
|
2976
|
-
class CommonService {
|
|
2977
|
-
constructor(http) {
|
|
2978
|
-
this.http = http;
|
|
2979
|
-
this.holy = '';
|
|
2980
|
-
this.grail = '';
|
|
2981
|
-
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
2982
|
-
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
2983
|
-
this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));
|
|
2984
|
-
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
2985
|
-
}
|
|
2986
|
-
scrumble(msg) {
|
|
2987
|
-
if (!isNullOrUndefined(msg)) {
|
|
2988
|
-
var conceal = this.getcampaign(msg, this.holy, this.grail);
|
|
2989
|
-
var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
|
|
2990
|
-
var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
|
|
2991
|
-
let keyValue = {
|
|
2992
|
-
"value": conceal.toString(),
|
|
2993
|
-
"mac": hashInBase64
|
|
2994
|
-
};
|
|
2995
|
-
var result = JSON.stringify(keyValue);
|
|
2996
|
-
var jumbled = CryptoJS.enc.Utf8.parse(result);
|
|
2997
|
-
return CryptoJS.enc.Base64.stringify(jumbled);
|
|
2998
|
-
}
|
|
2999
|
-
}
|
|
3000
|
-
getcampaign(data, holy, grail) {
|
|
3001
|
-
return CryptoJS.AES.encrypt(data.toString(), holy, {
|
|
3002
|
-
blockSize: 128,
|
|
3003
|
-
iv: grail,
|
|
3004
|
-
mode: CryptoJS.mode.CBC,
|
|
3005
|
-
padding: CryptoJS.pad.Pkcs7
|
|
3006
|
-
});
|
|
3007
|
-
}
|
|
3008
|
-
getBaseApiUrl() {
|
|
3009
|
-
const baseUrlMapping = {
|
|
3010
|
-
'localhost': 'http://localhost:58504',
|
|
3011
|
-
'lincoln.vartopia.com': 'https://lincoln-api.vartopia.com',
|
|
3012
|
-
'stage.vartopia.com': 'https://stage-api.vartopia.com',
|
|
3013
|
-
'my.vartopia.com': 'https://reagan-api.vartopia.com',
|
|
3014
|
-
'jackson.vartopia.com': 'https://jackson-api.vartopia.com'
|
|
3015
|
-
};
|
|
3016
|
-
// Get the current hostname
|
|
3017
|
-
const hostname = window.location.hostname;
|
|
3018
|
-
return baseUrlMapping[hostname] || null;
|
|
3019
|
-
}
|
|
3020
|
-
listProductCategory() {
|
|
3021
|
-
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3022
|
-
const baseApiUrl = this.getBaseApiUrl();
|
|
3023
|
-
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsCategory?vendorId=${vendorId}`);
|
|
3024
|
-
}
|
|
3025
|
-
listSubCategory(category) {
|
|
3026
|
-
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3027
|
-
const baseApiUrl = this.getBaseApiUrl();
|
|
3028
|
-
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetProductsSubCategory?vendorId=${vendorId}&categoryName=${category}`);
|
|
3029
|
-
}
|
|
3030
|
-
// Function to get value by key from the array
|
|
3031
|
-
getValueByKey(data, key) {
|
|
3032
|
-
if (!data || data.length === 0) {
|
|
3033
|
-
return null; // Return null if data is empty or undefined
|
|
3034
|
-
}
|
|
3035
|
-
const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());
|
|
3036
|
-
return item ? item.value : null;
|
|
3037
|
-
}
|
|
3038
|
-
// this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`, { headers }).subscribe(response => {
|
|
3039
|
-
loadProducts(pageNumber, pazeSize, search = '', onlyActive = true, description = false, category, subCategory) {
|
|
3040
|
-
const baseApiUrl = this.getBaseApiUrl();
|
|
3041
|
-
const vendorId = this.getValueByKey(this.paramsData, 'vendorId');
|
|
3042
|
-
const encodeCat = encodeURIComponent(category);
|
|
3043
|
-
const encodeSubCat = encodeURIComponent(subCategory);
|
|
3044
|
-
return this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${vendorId}&pageNumber=${pageNumber}&pageSize=${pazeSize}&search=${search}&onlyActive=${onlyActive}&includeDescription=${description}&category=${encodeCat}&subCategory=${encodeSubCat}`);
|
|
3045
|
-
}
|
|
3046
|
-
}
|
|
3047
|
-
CommonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3048
|
-
CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, providedIn: 'root' });
|
|
3049
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, decorators: [{
|
|
3050
|
-
type: Injectable,
|
|
3051
|
-
args: [{
|
|
3052
|
-
providedIn: 'root'
|
|
3053
|
-
}]
|
|
3054
|
-
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }]; } });
|
|
3055
|
-
|
|
3056
|
-
class AddOnProductsComponent {
|
|
3057
|
-
constructor(matDialogRef, data, fb, dialog, commonSevice) {
|
|
3058
|
-
this.matDialogRef = matDialogRef;
|
|
3059
|
-
this.fb = fb;
|
|
3060
|
-
this.dialog = dialog;
|
|
3061
|
-
this.commonSevice = commonSevice;
|
|
3062
|
-
this.category = [];
|
|
3063
|
-
this.subCategory = [];
|
|
3064
|
-
this.filteredCategories = [];
|
|
3065
|
-
this.filteredSubCategories = [];
|
|
3066
|
-
this.addProductsColumns = ['select', 'productName', 'price'];
|
|
3067
|
-
this.showAllproductsColumns = ['delete', 'productName', 'categoryName', 'subCategory', 'Quantity', 'price'];
|
|
3068
|
-
this.quantityList = [5, 10, 15, 20, 25];
|
|
3069
|
-
this.ELEMENT_DATA = [];
|
|
3070
|
-
this.dataSource = new MatTableDataSource();
|
|
3071
|
-
this.selection = new SelectionModel(true, []);
|
|
3072
|
-
this.selectedDataSource = new MatTableDataSource([]);
|
|
3073
|
-
this.selectedCategory = null;
|
|
3074
|
-
this.selectedSubCategory = null;
|
|
3075
|
-
this.showCategory = false;
|
|
3076
|
-
this.showSubcategory = false;
|
|
3077
|
-
this.showPrice = true;
|
|
3078
|
-
this.showQuantity = true;
|
|
3079
|
-
this.showNewProductPicker = true;
|
|
3080
|
-
this.setCategory = '';
|
|
3081
|
-
this.setSubCategory = '';
|
|
3082
|
-
this.loadingFlag = false;
|
|
3083
|
-
this.pageNumber = 1;
|
|
3084
|
-
this.pageSize = 20;
|
|
3085
|
-
this.totalPages = 0;
|
|
3086
|
-
this.searchQuery = '';
|
|
3087
|
-
this.itemList = [];
|
|
3088
|
-
this.prevScrollPosition = 0; // Track the previous scroll position
|
|
3089
|
-
this.spinnerFlag = false;
|
|
3090
|
-
this.showCategory = data.attributesFlag.showCategory;
|
|
3091
|
-
this.showSubcategory = data.attributesFlag.showSubcategory;
|
|
3092
|
-
this.showPrice = data.attributesFlag.showPrice;
|
|
3093
|
-
this.showQuantity = data.attributesFlag.showQuantity;
|
|
3094
|
-
this.showNewProductPicker = data.showNewProductPicker;
|
|
3095
|
-
this.setCategory = data.category || '';
|
|
3096
|
-
this.setSubCategory = data.subCategory || '';
|
|
3097
|
-
this.selection = new SelectionModel(true, data.selectedProducts || []);
|
|
3098
|
-
this.form = this.fb.group({
|
|
3099
|
-
productCategory: [''],
|
|
3100
|
-
productSubcategory: [''],
|
|
3101
|
-
selectedProducts: this.fb.array([])
|
|
3102
|
-
});
|
|
3103
|
-
this.initializeFormArray();
|
|
3104
|
-
if (!this.showCategory) {
|
|
3105
|
-
this.removeColumn('categoryName');
|
|
3106
|
-
}
|
|
3107
|
-
if (!this.showPrice) {
|
|
3108
|
-
this.removeColumn('price');
|
|
3109
|
-
}
|
|
3110
|
-
if (!this.showSubcategory) {
|
|
3111
|
-
this.removeColumn('subCategory');
|
|
3112
|
-
}
|
|
3113
|
-
if (!this.showQuantity) {
|
|
3114
|
-
this.removeColumn('Quantity');
|
|
3115
|
-
}
|
|
3116
|
-
}
|
|
3117
|
-
removeColumn(columnName) {
|
|
3118
|
-
this.showAllproductsColumns = this.showAllproductsColumns.filter(column => column !== columnName);
|
|
3119
|
-
this.addProductsColumns = this.addProductsColumns.filter(column => column !== columnName);
|
|
3120
|
-
}
|
|
3121
|
-
initializeFormArray() {
|
|
3122
|
-
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3123
|
-
this.selection.selected.forEach(product => {
|
|
3124
|
-
selectedProductsArray.push(this.fb.group({
|
|
3125
|
-
price: [product.price || '', Validators.required],
|
|
3126
|
-
text: [product.text || ''],
|
|
3127
|
-
quantity: [product.quantity || '', Validators.required],
|
|
3128
|
-
category: [product?.category || ''],
|
|
3129
|
-
subCategory: [product?.subCategory || ''],
|
|
3130
|
-
value: [product?.value || '']
|
|
3131
|
-
}));
|
|
3132
|
-
});
|
|
3133
|
-
this.selectedDataSource.data = [...this.selection.selected];
|
|
3134
|
-
}
|
|
3135
|
-
initializeDataSources() {
|
|
3136
|
-
// Ensure selected items are marked in the main data source
|
|
3137
|
-
if (this.selection?.selected?.length) {
|
|
3138
|
-
this.selection?.selected?.forEach(selectedProduct => {
|
|
3139
|
-
const index = this.dataSource.data.findIndex(product => product.value === selectedProduct.value);
|
|
3140
|
-
if (index >= 0) {
|
|
3141
|
-
this.dataSource.data[index] = selectedProduct;
|
|
3142
|
-
}
|
|
3143
|
-
});
|
|
3144
|
-
this.selectedDataSource.data = [...this.selection.selected];
|
|
3145
|
-
}
|
|
3146
|
-
else {
|
|
3147
|
-
console.warn('No selected products found.');
|
|
3148
|
-
}
|
|
3149
|
-
}
|
|
3150
|
-
ngAfterViewInit() {
|
|
3151
|
-
}
|
|
3152
|
-
ngOnInit() {
|
|
3153
|
-
this.loadProductCategory();
|
|
3154
|
-
this.form.get('productCategory').valueChanges
|
|
3155
|
-
.pipe(startWith(''), map(value => this.filterProducts(value, 'category1'))).subscribe(filterCat => {
|
|
3156
|
-
this.filteredCategories = filterCat;
|
|
3157
|
-
});
|
|
3158
|
-
this.form.get('productSubcategory').valueChanges
|
|
3159
|
-
.pipe(startWith(''), map(value => this.filterProducts(value, 'subCategory'))).subscribe(subCat => {
|
|
3160
|
-
this.filteredSubCategories = subCat;
|
|
3161
|
-
});
|
|
3162
|
-
}
|
|
3163
|
-
loadProductCategory() {
|
|
3164
|
-
this.spinnerFlag = true;
|
|
3165
|
-
this.commonSevice.listProductCategory().subscribe(response => {
|
|
3166
|
-
this.spinnerFlag = false;
|
|
3167
|
-
if (response && response.code === 200) {
|
|
3168
|
-
this.category = response.data;
|
|
3169
|
-
this.filteredCategories = this.filterProducts(this.setCategory, 'category1');
|
|
3170
|
-
this.form.get('productCategory').setValue(this.setCategory);
|
|
3171
|
-
if (this.setCategory !== '') {
|
|
3172
|
-
this.onOptionSelected(this.setCategory, 'category1');
|
|
3173
|
-
this.form.get('productSubcategory').setValue(this.setSubCategory);
|
|
3174
|
-
}
|
|
3175
|
-
}
|
|
3176
|
-
});
|
|
3177
|
-
}
|
|
3178
|
-
filterProducts(value, cat) {
|
|
3179
|
-
const filterValue = value.toLowerCase();
|
|
3180
|
-
const data = cat === 'category1' ? this.category : this.subCategory;
|
|
3181
|
-
if (!filterValue) {
|
|
3182
|
-
return data;
|
|
3183
|
-
}
|
|
3184
|
-
else {
|
|
3185
|
-
return data.filter(option => option.toLowerCase().includes(filterValue));
|
|
3186
|
-
}
|
|
3187
|
-
}
|
|
3188
|
-
onSubmit() {
|
|
3189
|
-
if (this.form.valid) {
|
|
3190
|
-
this.matDialogRef.close({
|
|
3191
|
-
data: {
|
|
3192
|
-
status: true,
|
|
3193
|
-
items: this.form.value
|
|
3194
|
-
}
|
|
3195
|
-
});
|
|
3196
|
-
}
|
|
3197
|
-
}
|
|
3198
|
-
isAllSelected() {
|
|
3199
|
-
const numSelected = this.selection.selected.length;
|
|
3200
|
-
const numRows = this.dataSource.data.length;
|
|
3201
|
-
return numSelected === numRows;
|
|
3202
|
-
}
|
|
3203
|
-
isIndeterminate() {
|
|
3204
|
-
const numSelected = this.selection.selected.length;
|
|
3205
|
-
const numRows = this.dataSource.data.length;
|
|
3206
|
-
return numSelected > 0 && numSelected < numRows;
|
|
3207
|
-
}
|
|
3208
|
-
masterToggle() {
|
|
3209
|
-
this.isAllSelected()
|
|
3210
|
-
? this.selection.clear()
|
|
3211
|
-
: this.dataSource.data.forEach(row => this.selection.select(row));
|
|
3212
|
-
this.updateSelectedProducts();
|
|
3213
|
-
}
|
|
3214
|
-
toggleSelection(row) {
|
|
3215
|
-
this.selection.toggle(row);
|
|
3216
|
-
this.updateSelectedProducts();
|
|
3217
|
-
}
|
|
3218
|
-
// Getter for the FormArray
|
|
3219
|
-
get selectedProducts() {
|
|
3220
|
-
return this.form.get('selectedProducts');
|
|
3221
|
-
}
|
|
3222
|
-
updateSelectedProducts() {
|
|
3223
|
-
if (Array.isArray(this.selection.selected)) {
|
|
3224
|
-
this.selectedDataSource.data = [...this.selection.selected];
|
|
3225
|
-
const selectedProductsArray = this.selectedProducts;
|
|
3226
|
-
selectedProductsArray.clear();
|
|
3227
|
-
this.selection?.selected?.forEach(product => {
|
|
3228
|
-
selectedProductsArray?.push(this.fb.group({
|
|
3229
|
-
price: [product?.price ?? '', this.showPrice ? Validators.required : []],
|
|
3230
|
-
text: [product?.text || ''],
|
|
3231
|
-
quantity: [product?.quantity ?? '', this.showQuantity ? Validators.required : []],
|
|
3232
|
-
category: [product?.category || ''],
|
|
3233
|
-
subCategory: [product?.subCategory || ''],
|
|
3234
|
-
value: [product?.value || '']
|
|
3235
|
-
}));
|
|
3236
|
-
});
|
|
3237
|
-
}
|
|
3238
|
-
else {
|
|
3239
|
-
console.error('Selection.selected is not an array:', this.selection.selected);
|
|
3240
|
-
}
|
|
3241
|
-
}
|
|
3242
|
-
getTotalRows() {
|
|
3243
|
-
return this.dataSource.data.length;
|
|
3244
|
-
}
|
|
3245
|
-
getSelectedRowsCount() {
|
|
3246
|
-
return this.selection.selected.length;
|
|
3247
|
-
}
|
|
3248
|
-
onOptionSelected(event, category) {
|
|
3249
|
-
let selectedValue;
|
|
3250
|
-
if (event && event.option && event.option.value !== undefined) {
|
|
3251
|
-
selectedValue = event.option.value;
|
|
3252
|
-
}
|
|
3253
|
-
else {
|
|
3254
|
-
selectedValue = event;
|
|
3255
|
-
}
|
|
3256
|
-
if (category === 'category1') {
|
|
3257
|
-
this.selectedCategory = selectedValue;
|
|
3258
|
-
this.spinnerFlag = true;
|
|
3259
|
-
this.commonSevice.listSubCategory(selectedValue).subscribe(response => {
|
|
3260
|
-
this.spinnerFlag = false;
|
|
3261
|
-
if (response && response.code === 200) {
|
|
3262
|
-
this.subCategory = response.data;
|
|
3263
|
-
this.filteredSubCategories = this.filterProducts(this.setCategory, 'subCategory');
|
|
3264
|
-
if (this.setSubCategory !== '') {
|
|
3265
|
-
this.selectedSubCategory = this.setSubCategory;
|
|
3266
|
-
this.getProducts();
|
|
3267
|
-
}
|
|
3268
|
-
}
|
|
3269
|
-
});
|
|
3270
|
-
}
|
|
3271
|
-
else {
|
|
3272
|
-
if (category === 'subCategory') {
|
|
3273
|
-
this.selectedSubCategory = event.option.value;
|
|
3274
|
-
this.getProducts();
|
|
3275
|
-
}
|
|
3276
|
-
}
|
|
3277
|
-
}
|
|
3278
|
-
getProducts() {
|
|
3279
|
-
this.spinnerFlag = true;
|
|
3280
|
-
this.commonSevice.loadProducts(this.pageNumber, this.pageSize, '', true, false, this.selectedCategory, this.selectedSubCategory).subscribe(response => {
|
|
3281
|
-
this.spinnerFlag = false;
|
|
3282
|
-
if (response && response.code === 200) {
|
|
3283
|
-
//this.dataSource.data = response.data.dataSource;
|
|
3284
|
-
this.totalPages = response?.data?.totalPages;
|
|
3285
|
-
const data = response.data.dataSource;
|
|
3286
|
-
if (this.dataSource.data.length > 0) {
|
|
3287
|
-
data.forEach(item => this.dataSource.data.push(item));
|
|
3288
|
-
this.dataSource.data = [...this.dataSource.data];
|
|
3289
|
-
}
|
|
3290
|
-
else {
|
|
3291
|
-
this.dataSource.data = data;
|
|
3292
|
-
}
|
|
3293
|
-
this.loadingFlag = true;
|
|
3294
|
-
setTimeout(() => {
|
|
3295
|
-
const middlePosition = this.trackHeight / 2 - 50;
|
|
3296
|
-
if (this.firstscrollableDiv && this.firstscrollableDiv.nativeElement) {
|
|
3297
|
-
this.firstscrollableDiv.nativeElement.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
3298
|
-
}
|
|
3299
|
-
}, 250);
|
|
3300
|
-
this.initializeDataSources();
|
|
3301
|
-
}
|
|
3302
|
-
});
|
|
3303
|
-
}
|
|
3304
|
-
removeRow(event, element) {
|
|
3305
|
-
event.stopPropagation();
|
|
3306
|
-
event.preventDefault();
|
|
3307
|
-
let message = 'Are you sure you want to delete this product?';
|
|
3308
|
-
let showButton = true;
|
|
3309
|
-
const index = this.selectedDataSource.data.indexOf(element);
|
|
3310
|
-
if (index >= 0) {
|
|
3311
|
-
if (this.selectedDataSource.data.length === 1) {
|
|
3312
|
-
message = 'Please select at least one product.';
|
|
3313
|
-
showButton = false;
|
|
3314
|
-
}
|
|
3315
|
-
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
3316
|
-
disableClose: true,
|
|
3317
|
-
width: '90%',
|
|
3318
|
-
maxWidth: '400px',
|
|
3319
|
-
data: { message: message, buttonStatus: showButton }
|
|
3320
|
-
});
|
|
3321
|
-
dialogRef.afterClosed().subscribe(result => {
|
|
3322
|
-
if (result) {
|
|
3323
|
-
this.selectedDataSource.data.splice(index, 1);
|
|
3324
|
-
this.selectedDataSource._updateChangeSubscription();
|
|
3325
|
-
this.selection.deselect(element);
|
|
3326
|
-
const selectedProductsArray = this.form.get('selectedProducts');
|
|
3327
|
-
const productIndex = selectedProductsArray.controls.findIndex(control => control.value.productName === element.productName);
|
|
3328
|
-
if (productIndex >= 0) {
|
|
3329
|
-
selectedProductsArray.removeAt(productIndex);
|
|
3330
|
-
}
|
|
3331
|
-
}
|
|
3332
|
-
});
|
|
3333
|
-
}
|
|
3334
|
-
}
|
|
3335
|
-
onScroll(event) {
|
|
3336
|
-
this.trackHeight = event.target.scrollHeight - event.target.offsetHeight;
|
|
3337
|
-
if (this.loadingFlag && (Math.floor(event.target.scrollTop / this.trackHeight * 100) > 50)) {
|
|
3338
|
-
this.loadingFlag = false;
|
|
3339
|
-
if (this.pageNumber < this.totalPages) {
|
|
3340
|
-
this.pageNumber = this.pageNumber + 1;
|
|
3341
|
-
this.getProducts();
|
|
3342
|
-
}
|
|
3343
|
-
else {
|
|
3344
|
-
this.loadingFlag = true;
|
|
3345
|
-
}
|
|
3346
|
-
}
|
|
3347
|
-
this.prevScrollPosition = event.target.scrollTop;
|
|
3348
|
-
}
|
|
3349
|
-
}
|
|
3350
|
-
AddOnProductsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FormBuilder }, { token: i1$1.MatDialog }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3351
|
-
AddOnProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: AddOnProductsComponent, selector: "ngx-mat-add-on-products", viewQueries: [{ propertyName: "firstscrollableDiv", first: true, predicate: ["firstscrollableDiv"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i13.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i13.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i13.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i13.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "directive", type: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i14.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i14.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
|
|
3352
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AddOnProductsComponent, decorators: [{
|
|
3353
|
-
type: Component,
|
|
3354
|
-
args: [{ selector: 'ngx-mat-add-on-products', template: "<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"product-selector\">\r\n <mat-stepper labelPosition=\"bottom\" #stepper>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\">\r\n <ng-template matStepLabel>Select Products</ng-template>\r\n <div class=\"dropdown-selection\">\r\n <div class=\"row-one\">\r\n <mat-form-field>\r\n <mat-label>Product Category</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productCategory\" [matAutocomplete]=\"auto3\">\r\n <mat-autocomplete #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field> \r\n\r\n <mat-form-field>\r\n <mat-label>Subcategory</mat-label>\r\n <input type=\"text\" matInput formControlName=\"productSubcategory\" [matAutocomplete]=\"auto4\">\r\n <mat-autocomplete #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'subCategory')\">\r\n <mat-option *ngFor=\"let option of filteredSubCategories\"\r\n [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class mat-elevation-z8 first-div\" (scroll)=\"onScroll($event)\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource.data.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <!-- <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"isAllSelected()\"\r\n [indeterminate]=\"isIndeterminate()\"></mat-checkbox> -->\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td> \r\n </ng-container> \r\n\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> Price </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\">\r\n <p>Rows: {{ getTotalRows() }} Selected: {{ getSelectedRowsCount() }}</p>\r\n </div>\r\n <div>\r\n <button mat-button [mat-dialog-close]=\"false\">Close</button>\r\n <button mat-button matStepperNext [disabled]=\"selection.selected.length ? false : true\">Next</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n <mat-step [stepControl]=\"form\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-template matStepLabel>Edit/Save</ng-template>\r\n <div class=\"new-class mat-elevation-z8\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-button (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> Product Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> Category Name </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"subCategory\">\r\n <th mat-header-cell *matHeaderCellDef>Sub Category </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>Price</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>Price</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n placeholder=\"Please enter price\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n Price is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> Quantity </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-qunatity\">\r\n <mat-label>Select quantity</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n placeholder=\"Please enter quantity\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n Quantity is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button matStepperNext type=\"submit\">Add products</button>\r\n </div>\r\n </form>\r\n </mat-step>\r\n</mat-stepper>\r\n</div>", styles: [".dropdown-section{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px}mat-form-field{flex:1}.new-class.mat-elevation-z8{margin-top:20px;max-height:350px;overflow-y:auto;margin-bottom:20px}.mat-column-select{width:50px;text-align:center}.mat-header-cell,.mat-cell{text-align:center}button{align-self:flex-end;margin-top:20px}.row-summary{margin-top:20px;font-weight:700}.new-class td{border:1px solid #ddd;padding:10px}.new-class th{background-color:#f2f2f2;position:-webkit-sticky;position:sticky;top:0;transform:none;z-index:99;padding:10px}table{width:100%;border-collapse:collapse}.select-qunatity,.select-price{width:110px}.no-data-message{text-align:center;margin:20px 0;font-size:18px;color:#888}.mat-step-header.cdk-keyboard-focused,mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:transparent}.OverlayDiv{position:fixed;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:500;cursor:pointer}.OverlayDivContent{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}\n"] }]
|
|
3355
|
-
}], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
3356
|
-
type: Inject,
|
|
3357
|
-
args: [MAT_DIALOG_DATA]
|
|
3358
|
-
}] }, { type: i2.FormBuilder }, { type: i1$1.MatDialog }, { type: CommonService }]; }, propDecorators: { firstscrollableDiv: [{
|
|
3359
|
-
type: ViewChild,
|
|
3360
|
-
args: ['firstscrollableDiv']
|
|
3361
|
-
}] } });
|
|
3362
|
-
|
|
3363
|
-
const ELEMENT_DATA = [];
|
|
3364
2991
|
class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
3365
2992
|
constructor(element, ref, dialog) {
|
|
3366
2993
|
super(element, ref);
|
|
@@ -3368,54 +2995,13 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3368
2995
|
this.ref = ref;
|
|
3369
2996
|
this.dialog = dialog;
|
|
3370
2997
|
this.dataSource = new MatTableDataSource();
|
|
3371
|
-
this.dataSourceNew = ELEMENT_DATA;
|
|
3372
|
-
this.displayedColumnsNew = ['productName', 'category', 'subCategory', 'quantity', 'price'];
|
|
3373
|
-
this.showNewProductPicker = false;
|
|
3374
|
-
this.showCategory = false;
|
|
3375
|
-
this.showSubcategory = false;
|
|
3376
|
-
this.showPrice = true;
|
|
3377
|
-
this.showQuantity = true;
|
|
3378
|
-
this.category = '';
|
|
3379
|
-
this.subCategory = '';
|
|
3380
|
-
this.hasInitialized = false;
|
|
3381
2998
|
}
|
|
3382
2999
|
getColumnLabel(column) {
|
|
3383
3000
|
return column.label || column.key;
|
|
3384
3001
|
}
|
|
3385
|
-
checkIsAttributeTrue(newProductPickerFlag, attributeName) {
|
|
3386
|
-
return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase() &&
|
|
3387
|
-
newProductPickerFlag[key].toLowerCase() === "true");
|
|
3388
|
-
}
|
|
3389
|
-
// ngOnInit(): void {
|
|
3390
|
-
// }
|
|
3391
3002
|
setInstance(instance) {
|
|
3392
|
-
const newProductPickerFlag = instance?.component?.attributes;
|
|
3393
|
-
this.showNewProductPicker = this.checkIsAttributeTrue(newProductPickerFlag, "newproductpicker");
|
|
3394
|
-
this.showCategory = this.checkIsAttributeTrue(newProductPickerFlag, "showCategory");
|
|
3395
|
-
this.showSubcategory = this.checkIsAttributeTrue(newProductPickerFlag, "showSubcategory");
|
|
3396
|
-
this.showPrice = this.checkIsAttributeTrue(newProductPickerFlag, "showPrice");
|
|
3397
|
-
this.showQuantity = this.checkIsAttributeTrue(newProductPickerFlag, "showQuantity");
|
|
3398
3003
|
super.setInstance(instance);
|
|
3399
|
-
|
|
3400
|
-
if (!this.showCategory) {
|
|
3401
|
-
this.removeColumn('category');
|
|
3402
|
-
}
|
|
3403
|
-
if (!this.showQuantity) {
|
|
3404
|
-
this.removeColumn('quantity');
|
|
3405
|
-
}
|
|
3406
|
-
if (!this.showPrice) {
|
|
3407
|
-
this.removeColumn('price');
|
|
3408
|
-
}
|
|
3409
|
-
if (!this.showSubcategory) {
|
|
3410
|
-
this.removeColumn('subCategory');
|
|
3411
|
-
}
|
|
3412
|
-
this.dataSourceNew = JSON.parse(localStorage.getItem('selectedProducts')) || [];
|
|
3413
|
-
// Set flag to true to prevent further execution
|
|
3414
|
-
this.hasInitialized = true;
|
|
3415
|
-
}
|
|
3416
|
-
else {
|
|
3417
|
-
this.dataSource.data = instance.dataValue;
|
|
3418
|
-
}
|
|
3004
|
+
this.dataSource.data = instance.dataValue;
|
|
3419
3005
|
this.columns = {};
|
|
3420
3006
|
this.displayedColumns = [];
|
|
3421
3007
|
this.formColumns = [];
|
|
@@ -3443,10 +3029,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3443
3029
|
return viewContainer ? viewContainer : null;
|
|
3444
3030
|
};
|
|
3445
3031
|
}
|
|
3446
|
-
|
|
3447
|
-
this.displayedColumnsNew = this.displayedColumnsNew.filter(column => column !== columnName);
|
|
3448
|
-
}
|
|
3449
|
-
addAnotherOld() {
|
|
3032
|
+
addAnother() {
|
|
3450
3033
|
this.checkRowsNumber();
|
|
3451
3034
|
this.instance.addRow();
|
|
3452
3035
|
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
@@ -3454,55 +3037,6 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3454
3037
|
}
|
|
3455
3038
|
this.dataSource.data = [...this.dataSource.data];
|
|
3456
3039
|
}
|
|
3457
|
-
addAnother() {
|
|
3458
|
-
if (this.showNewProductPicker) {
|
|
3459
|
-
const savedData = JSON.parse(localStorage.getItem('saveCat'));
|
|
3460
|
-
// Use optional chaining and nullish coalescing to set the values
|
|
3461
|
-
this.category = savedData?.category ?? this.category;
|
|
3462
|
-
this.subCategory = savedData?.subCategory ?? this.subCategory;
|
|
3463
|
-
const diologeRef = this.dialog.open(AddOnProductsComponent, {
|
|
3464
|
-
disableClose: true,
|
|
3465
|
-
width: '90%',
|
|
3466
|
-
maxWidth: '900px',
|
|
3467
|
-
autoFocus: false,
|
|
3468
|
-
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 }
|
|
3469
|
-
})
|
|
3470
|
-
.afterClosed().subscribe(response => {
|
|
3471
|
-
if (response?.data?.status) {
|
|
3472
|
-
if (!this.showCategory) {
|
|
3473
|
-
this.removeColumn('category');
|
|
3474
|
-
}
|
|
3475
|
-
if (!this.showQuantity) {
|
|
3476
|
-
this.removeColumn('quantity');
|
|
3477
|
-
}
|
|
3478
|
-
if (!this.showPrice) {
|
|
3479
|
-
this.removeColumn('price');
|
|
3480
|
-
}
|
|
3481
|
-
if (!this.showSubcategory) {
|
|
3482
|
-
this.removeColumn('subCategory');
|
|
3483
|
-
}
|
|
3484
|
-
localStorage.setItem('selectedProducts', JSON.stringify(response.data.items.selectedProducts));
|
|
3485
|
-
this.dataSourceNew = response.data.items.selectedProducts;
|
|
3486
|
-
this.category = response.data.items.productCategory;
|
|
3487
|
-
this.subCategory = response.data.items.productSubcategory;
|
|
3488
|
-
const catObject = {
|
|
3489
|
-
category: this.category,
|
|
3490
|
-
subCategory: this.subCategory
|
|
3491
|
-
};
|
|
3492
|
-
localStorage.setItem('saveCat', JSON.stringify(catObject));
|
|
3493
|
-
this.instance.component.defaultValue = response.data.items.selectedProducts;
|
|
3494
|
-
}
|
|
3495
|
-
});
|
|
3496
|
-
}
|
|
3497
|
-
else {
|
|
3498
|
-
this.checkRowsNumber();
|
|
3499
|
-
this.instance.addRow();
|
|
3500
|
-
if (this.dataSource.data.length < this.instance.rows.length) {
|
|
3501
|
-
this.dataSource.data.push({});
|
|
3502
|
-
}
|
|
3503
|
-
this.dataSource.data = [...this.dataSource.data];
|
|
3504
|
-
}
|
|
3505
|
-
}
|
|
3506
3040
|
checkRowsNumber() {
|
|
3507
3041
|
while (this.instance.rows.length < this.dataSource.data.length) {
|
|
3508
3042
|
this.instance.addRow();
|
|
@@ -3552,7 +3086,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
3552
3086
|
super.setValue(value);
|
|
3553
3087
|
}
|
|
3554
3088
|
}
|
|
3555
|
-
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$
|
|
3089
|
+
MaterialDataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
3556
3090
|
MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialDataGridComponent, selector: "mat-formio-datagrid", usesInheritance: true, ngImport: i0, template: `
|
|
3557
3091
|
<mat-formio-form-field [instance]="instance"
|
|
3558
3092
|
[componentTemplate]="componentTemplate"
|
|
@@ -3571,8 +3105,6 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3571
3105
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3572
3106
|
</button>
|
|
3573
3107
|
</mat-card-actions>
|
|
3574
|
-
<ng-container *ngIf="!showNewProductPicker">
|
|
3575
|
-
<div class="mat-elevation-z8">
|
|
3576
3108
|
<table
|
|
3577
3109
|
mat-table
|
|
3578
3110
|
[dataSource]="dataSource"
|
|
@@ -3581,8 +3113,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3581
3113
|
cdkDropList
|
|
3582
3114
|
[cdkDropListData]="dataSource"
|
|
3583
3115
|
(cdkDropListDropped)="dropTable($event)">
|
|
3584
|
-
|
|
3585
|
-
|
|
3116
|
+
>
|
|
3586
3117
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3587
3118
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3588
3119
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3612,51 +3143,6 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3612
3143
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3613
3144
|
</div>
|
|
3614
3145
|
</table>
|
|
3615
|
-
</div>
|
|
3616
|
-
</ng-container>
|
|
3617
|
-
|
|
3618
|
-
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3619
|
-
<!-- Product Name Column -->
|
|
3620
|
-
<ng-container matColumnDef="productName">
|
|
3621
|
-
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3622
|
-
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3623
|
-
</ng-container>
|
|
3624
|
-
|
|
3625
|
-
<!-- Quantity Column -->
|
|
3626
|
-
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3627
|
-
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3628
|
-
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3629
|
-
</ng-container>
|
|
3630
|
-
|
|
3631
|
-
<!-- Price Column -->
|
|
3632
|
-
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3633
|
-
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3634
|
-
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3635
|
-
</ng-container>
|
|
3636
|
-
|
|
3637
|
-
<!-- Category Column -->
|
|
3638
|
-
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3639
|
-
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3640
|
-
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3641
|
-
</ng-container>
|
|
3642
|
-
|
|
3643
|
-
<!-- Category Column -->
|
|
3644
|
-
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3645
|
-
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3646
|
-
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3647
|
-
</ng-container>
|
|
3648
|
-
|
|
3649
|
-
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3650
|
-
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3651
|
-
</table>
|
|
3652
|
-
<ng-template #noData>
|
|
3653
|
-
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3654
|
-
No product found please add some products.
|
|
3655
|
-
</div>
|
|
3656
|
-
</ng-template>
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
3146
|
</mat-card-content>
|
|
3661
3147
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3662
3148
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3672,7 +3158,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
3672
3158
|
<span [instance]="instance" matFormioLabel></span>
|
|
3673
3159
|
</mat-card-title>
|
|
3674
3160
|
</ng-template>
|
|
3675
|
-
`, isInline: true, styles: [".datagrid-row{height:auto}
|
|
3161
|
+
`, isInline: true, styles: [".datagrid-row{height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
|
|
3676
3162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, decorators: [{
|
|
3677
3163
|
type: Component,
|
|
3678
3164
|
args: [{ selector: 'mat-formio-datagrid', template: `
|
|
@@ -3693,8 +3179,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3693
3179
|
{{instance.component.addAnother || 'Add Another'}}
|
|
3694
3180
|
</button>
|
|
3695
3181
|
</mat-card-actions>
|
|
3696
|
-
<ng-container *ngIf="!showNewProductPicker">
|
|
3697
|
-
<div class="mat-elevation-z8">
|
|
3698
3182
|
<table
|
|
3699
3183
|
mat-table
|
|
3700
3184
|
[dataSource]="dataSource"
|
|
@@ -3703,8 +3187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3703
3187
|
cdkDropList
|
|
3704
3188
|
[cdkDropListData]="dataSource"
|
|
3705
3189
|
(cdkDropListDropped)="dropTable($event)">
|
|
3706
|
-
|
|
3707
|
-
|
|
3190
|
+
>
|
|
3708
3191
|
<ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
|
|
3709
3192
|
<th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
|
|
3710
3193
|
<td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
|
|
@@ -3734,51 +3217,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3734
3217
|
<tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
|
3735
3218
|
</div>
|
|
3736
3219
|
</table>
|
|
3737
|
-
</div>
|
|
3738
|
-
</ng-container>
|
|
3739
|
-
|
|
3740
|
-
<table mat-table [dataSource]="dataSourceNew" class="mat-table" *ngIf="dataSourceNew.length > 0 && showNewProductPicker; else noData" >
|
|
3741
|
-
<!-- Product Name Column -->
|
|
3742
|
-
<ng-container matColumnDef="productName">
|
|
3743
|
-
<th mat-header-cell *matHeaderCellDef> Product Name </th>
|
|
3744
|
-
<td mat-cell *matCellDef="let element"> {{element.text}} </td>
|
|
3745
|
-
</ng-container>
|
|
3746
|
-
|
|
3747
|
-
<!-- Quantity Column -->
|
|
3748
|
-
<ng-container matColumnDef="quantity" *ngIf="showQuantity">
|
|
3749
|
-
<th mat-header-cell *matHeaderCellDef> Quantity </th>
|
|
3750
|
-
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
|
|
3751
|
-
</ng-container>
|
|
3752
|
-
|
|
3753
|
-
<!-- Price Column -->
|
|
3754
|
-
<ng-container matColumnDef="price" *ngIf="showPrice">
|
|
3755
|
-
<th mat-header-cell *matHeaderCellDef> Price </th>
|
|
3756
|
-
<td mat-cell *matCellDef="let element"> {{element.price}} </td>
|
|
3757
|
-
</ng-container>
|
|
3758
|
-
|
|
3759
|
-
<!-- Category Column -->
|
|
3760
|
-
<ng-container matColumnDef="category" *ngIf="showCategory">
|
|
3761
|
-
<th mat-header-cell *matHeaderCellDef> Category </th>
|
|
3762
|
-
<td mat-cell *matCellDef="let element"> {{element.category}} </td>
|
|
3763
|
-
</ng-container>
|
|
3764
|
-
|
|
3765
|
-
<!-- Category Column -->
|
|
3766
|
-
<ng-container matColumnDef="subCategory" *ngIf="showSubcategory">
|
|
3767
|
-
<th mat-header-cell *matHeaderCellDef> Sub Category </th>
|
|
3768
|
-
<td mat-cell *matCellDef="let element"> {{element.subCategory}} </td>
|
|
3769
|
-
</ng-container>
|
|
3770
|
-
|
|
3771
|
-
<tr mat-header-row *matHeaderRowDef="displayedColumnsNew"></tr>
|
|
3772
|
-
<tr mat-row *matRowDef="let row; columns: displayedColumnsNew;"></tr>
|
|
3773
|
-
</table>
|
|
3774
|
-
<ng-template #noData>
|
|
3775
|
-
<div class="no-data-message" *ngIf="showNewProductPicker">
|
|
3776
|
-
No product found please add some products.
|
|
3777
|
-
</div>
|
|
3778
|
-
</ng-template>
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
3220
|
</mat-card-content>
|
|
3783
3221
|
<mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
|
|
3784
3222
|
<button mat-raised-button color="primary" (click)="addAnother()">
|
|
@@ -3794,8 +3232,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3794
3232
|
<span [instance]="instance" matFormioLabel></span>
|
|
3795
3233
|
</mat-card-title>
|
|
3796
3234
|
</ng-template>
|
|
3797
|
-
`, styles: [".datagrid-row{height:auto}
|
|
3798
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$
|
|
3235
|
+
`, styles: [".datagrid-row{height:auto}\n"] }]
|
|
3236
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.MatDialog }]; } });
|
|
3799
3237
|
DataGridComponent.MaterialComponent = MaterialDataGridComponent;
|
|
3800
3238
|
|
|
3801
3239
|
var EditRowState;
|
|
@@ -4181,7 +3619,7 @@ MaterialWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
4181
3619
|
<button *ngIf="instance.hasButton('submit')" mat-raised-button color="primary" (click)="submit()">Submit</button>
|
|
4182
3620
|
</div>
|
|
4183
3621
|
</mat-step>
|
|
4184
|
-
</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:
|
|
3622
|
+
</mat-horizontal-stepper>`, isInline: true, styles: [":host .navigation-button-row{margin-top:8px}\n", ":host .navigation-button-row button{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$3.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i3$3.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] });
|
|
4185
3623
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialWizardComponent, decorators: [{
|
|
4186
3624
|
type: Component,
|
|
4187
3625
|
args: [{ selector: 'mat-formio-wizard', template: `
|
|
@@ -4351,7 +3789,7 @@ FormioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
4351
3789
|
<div fxLayout="column" fxLayoutGap="1em">
|
|
4352
3790
|
<ng-template #formio></ng-template>
|
|
4353
3791
|
</div>
|
|
4354
|
-
`, 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:
|
|
3792
|
+
`, isInline: true, styles: [".alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:.5rem;border:1px solid transparent;border-radius:.25rem}::ng-deep mat-card{box-sizing:border-box;-moz-box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }] });
|
|
4355
3793
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioComponent, decorators: [{
|
|
4356
3794
|
type: Component,
|
|
4357
3795
|
args: [{ selector: 'mat-formio', template: `
|
|
@@ -4421,8 +3859,7 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
4421
3859
|
FormioFormFieldComponent,
|
|
4422
3860
|
LabelComponent,
|
|
4423
3861
|
MaskDirective,
|
|
4424
|
-
ConfirmationDialogComponent,
|
|
4425
|
-
AddOnProductsComponent], imports: [CommonModule,
|
|
3862
|
+
ConfirmationDialogComponent], imports: [CommonModule,
|
|
4426
3863
|
FormsModule,
|
|
4427
3864
|
ReactiveFormsModule,
|
|
4428
3865
|
MatInputModule,
|
|
@@ -4450,9 +3887,7 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
|
|
|
4450
3887
|
ScrollingModule,
|
|
4451
3888
|
NgxMatSelectSearchModule,
|
|
4452
3889
|
MatDialogModule,
|
|
4453
|
-
HttpClientModule,
|
|
4454
|
-
MatAutocompleteModule], exports: [MatAutocompleteModule,
|
|
4455
|
-
NgxRenderMaterialFormsComponent,
|
|
3890
|
+
HttpClientModule], exports: [NgxRenderMaterialFormsComponent,
|
|
4456
3891
|
FormioComponent,
|
|
4457
3892
|
MatInputModule,
|
|
4458
3893
|
MatFormFieldModule,
|
|
@@ -4506,9 +3941,7 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
|
|
|
4506
3941
|
ScrollingModule,
|
|
4507
3942
|
NgxMatSelectSearchModule,
|
|
4508
3943
|
MatDialogModule,
|
|
4509
|
-
HttpClientModule,
|
|
4510
|
-
MatAutocompleteModule, MatAutocompleteModule,
|
|
4511
|
-
MatInputModule,
|
|
3944
|
+
HttpClientModule, MatInputModule,
|
|
4512
3945
|
MatFormFieldModule,
|
|
4513
3946
|
MatCheckboxModule,
|
|
4514
3947
|
MatRadioModule,
|
|
@@ -4576,8 +4009,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4576
4009
|
FormioFormFieldComponent,
|
|
4577
4010
|
LabelComponent,
|
|
4578
4011
|
MaskDirective,
|
|
4579
|
-
ConfirmationDialogComponent
|
|
4580
|
-
AddOnProductsComponent
|
|
4012
|
+
ConfirmationDialogComponent
|
|
4581
4013
|
],
|
|
4582
4014
|
imports: [
|
|
4583
4015
|
CommonModule,
|
|
@@ -4608,11 +4040,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4608
4040
|
ScrollingModule,
|
|
4609
4041
|
NgxMatSelectSearchModule,
|
|
4610
4042
|
MatDialogModule,
|
|
4611
|
-
HttpClientModule
|
|
4612
|
-
MatAutocompleteModule
|
|
4043
|
+
HttpClientModule
|
|
4613
4044
|
],
|
|
4614
4045
|
exports: [
|
|
4615
|
-
MatAutocompleteModule,
|
|
4616
4046
|
NgxRenderMaterialFormsComponent,
|
|
4617
4047
|
FormioComponent,
|
|
4618
4048
|
MatInputModule,
|