ngx-render-material-forms 1.2.1 → 1.2.3

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.
@@ -1,5 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, Input, ViewChild, ViewContainerRef, ViewChildren, EventEmitter, Output, forwardRef, Directive, Optional, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@angular/common/http';
4
+ import { HttpHeaders, HttpClientModule } from '@angular/common/http';
3
5
  import * as i1 from '@angular/common';
4
6
  import { CommonModule } from '@angular/common';
5
7
  import * as i2 from '@angular/forms';
@@ -35,7 +37,7 @@ import * as i4$1 from '@angular/material/icon';
35
37
  import { MatIconModule } from '@angular/material/icon';
36
38
  import * as i5$1 from '@angular/material/core';
37
39
  import { MatNativeDateModule } from '@angular/material/core';
38
- import * as i1$1 from '@angular/material/dialog';
40
+ import * as i1$2 from '@angular/material/dialog';
39
41
  import { MatDialogModule } from '@angular/material/dialog';
40
42
  import Webform from 'formiojs/Webform.js';
41
43
  import FormioComponent$2 from 'formiojs/components/_classes/component/Component.js';
@@ -79,12 +81,14 @@ import RadioComponent from 'formiojs/components/radio/Radio.js';
79
81
  import SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';
80
82
  import SelectComponent from 'formiojs/components/select/Select.js';
81
83
  import { Subject } from 'rxjs';
82
- import { takeUntil } from 'rxjs/operators';
83
- import * as i7 from 'ngx-mat-select-search';
84
+ import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
85
+ import * as CryptoJS from 'crypto-js';
86
+ import { isNullOrUndefined } from 'util';
87
+ import * as i8 from 'ngx-mat-select-search';
84
88
  import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
85
89
  import WellComponent from 'formiojs/components/well/Well.js';
86
90
  import DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';
87
- import * as i8 from '@angular/cdk/drag-drop';
91
+ import * as i8$1 from '@angular/cdk/drag-drop';
88
92
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
89
93
  import EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';
90
94
  import Components$2 from 'formiojs/components/Components';
@@ -94,7 +98,7 @@ import Wizard from 'formiojs/Wizard';
94
98
  import Displays from 'formiojs/displays/Displays';
95
99
  import * as i3$2 from '@angular/material/stepper';
96
100
  import { MatStepperModule } from '@angular/material/stepper';
97
- import * as i1$2 from '@formio/angular';
101
+ import * as i1$3 from '@formio/angular';
98
102
  import { FormioBaseComponent } from '@formio/angular';
99
103
  import { FlexLayoutModule } from '@angular/flex-layout';
100
104
  import { ScrollingModule } from '@angular/cdk/scrolling';
@@ -2518,11 +2522,148 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
2518
2522
  SelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;
2519
2523
 
2520
2524
  class MaterialSelectComponent extends MaterialComponent {
2521
- constructor() {
2522
- super(...arguments);
2525
+ constructor(element, ref, http) {
2526
+ super(element, ref);
2527
+ this.element = element;
2528
+ this.ref = ref;
2529
+ this.http = http;
2523
2530
  this.websiteMultiCtrl = new FormControl();
2524
2531
  this.websiteMultiFilterCtrl = new FormControl();
2525
2532
  this._onDestroy = new Subject();
2533
+ // Variables to track pagination
2534
+ this.pageNumber = 1;
2535
+ this.pageSize = 3;
2536
+ this.totalPages = 3;
2537
+ this.searchQuery = '';
2538
+ this.holy = '';
2539
+ this.grail = '';
2540
+ this.productsloadingFlag = false;
2541
+ this.searchFlag = true;
2542
+ this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
2543
+ this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
2544
+ }
2545
+ onSearchInputChange(value) {
2546
+ if (value === '') {
2547
+ this.onClearAll();
2548
+ }
2549
+ }
2550
+ onChange(event) {
2551
+ if (event) {
2552
+ this.searchFlag = false;
2553
+ }
2554
+ }
2555
+ scrumble(msg) {
2556
+ if (!isNullOrUndefined(msg)) {
2557
+ var conceal = this.getcampaign(msg, this.holy, this.grail);
2558
+ var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
2559
+ var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
2560
+ let keyValue = {
2561
+ "value": conceal.toString(),
2562
+ "mac": hashInBase64
2563
+ };
2564
+ var result = JSON.stringify(keyValue);
2565
+ var jumbled = CryptoJS.enc.Utf8.parse(result);
2566
+ return CryptoJS.enc.Base64.stringify(jumbled);
2567
+ }
2568
+ }
2569
+ getcampaign(data, holy, grail) {
2570
+ return CryptoJS.AES.encrypt(data.toString(), holy, {
2571
+ blockSize: 128,
2572
+ iv: grail,
2573
+ mode: CryptoJS.mode.CBC,
2574
+ padding: CryptoJS.pad.Pkcs7
2575
+ });
2576
+ }
2577
+ // Method to handle when the mat-select is opened
2578
+ onMatSelectOpen(select) {
2579
+ this.selectElem = select;
2580
+ this.registerPanelScrollEvent();
2581
+ }
2582
+ registerPanelScrollEvent() {
2583
+ if (this.selectElem) {
2584
+ this.selectElem.panel.nativeElement.addEventListener('scroll', this.onScroll.bind(this));
2585
+ }
2586
+ }
2587
+ onScroll(event) {
2588
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
2589
+ const scrollElement = event.target;
2590
+ const trackHeight = scrollElement.scrollHeight - scrollElement.offsetHeight;
2591
+ if (this.productsloadingFlag && Math.floor(scrollElement.scrollTop / trackHeight * 100) > 50) {
2592
+ this.productsloadingFlag = false;
2593
+ if (this.pageNumber < this.totalPages && this.totalPages > 1) {
2594
+ this.pageNumber = this.pageNumber + 1;
2595
+ this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
2596
+ }
2597
+ }
2598
+ }
2599
+ }
2600
+ // Function to get value by key from the array
2601
+ getValueByKey(data, key) {
2602
+ if (!data || data.length === 0) {
2603
+ return null; // Return null if data is empty or undefined
2604
+ }
2605
+ const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());
2606
+ return item ? item.value : null;
2607
+ }
2608
+ loadData(pageNumber, pageSize, searchQuery) {
2609
+ const paramsData = JSON.parse(localStorage.getItem('productPicker'));
2610
+ const includeDescription = this.getValueByKey(paramsData, 'includeDescription');
2611
+ const vendorId = this.getValueByKey(paramsData, 'vendorId');
2612
+ const onlyActive = this.getValueByKey(paramsData, 'onlyActive');
2613
+ var currentUser = JSON.parse(localStorage.getItem('currentUser'));
2614
+ var accessToken = currentUser.Tokens.AccessToken;
2615
+ const headers = new HttpHeaders({
2616
+ 'Content-Type': 'application/json',
2617
+ 'Authorization': 'Bearer ' + accessToken
2618
+ });
2619
+ const envendorId = this.scrumble(vendorId);
2620
+ const enpageNumber = this.scrumble(pageNumber);
2621
+ const enpageSize = this.scrumble(pageSize);
2622
+ const ensearchQuery = this.scrumble(searchQuery);
2623
+ const enactive = this.scrumble(onlyActive);
2624
+ const endescription = this.scrumble(includeDescription);
2625
+ const baseUrlMapping = {
2626
+ 'localhost': 'http://localhost:58504',
2627
+ 'lincoln.vartopia.com': 'https://lincoln-api.vartopia.com',
2628
+ 'stage.vartopia.com': 'https://stage-api.vartopia.com',
2629
+ 'my.vartopia.com': 'https://reagan-api.vartopia.com',
2630
+ 'jackson.vartopia.com': 'https://jackson-api.vartopia.com'
2631
+ };
2632
+ // Get the current hostname
2633
+ const hostname = window.location.hostname;
2634
+ const baseApiUrl = baseUrlMapping[hostname] || null;
2635
+ this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`, { headers }).subscribe(response => {
2636
+ if (response && response.code === 200) {
2637
+ this.totalPages = response.data.dataSource;
2638
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
2639
+ const transformedData = this.transformResponseData(response.data.dataSource);
2640
+ // Process the transformed data
2641
+ this.filteredOptions = Promise.resolve(transformedData.map(item => ({
2642
+ label: item.label,
2643
+ value: item.value,
2644
+ date: item.date
2645
+ })));
2646
+ }
2647
+ setTimeout(() => {
2648
+ this.productsloadingFlag = true;
2649
+ }, 1000);
2650
+ }
2651
+ });
2652
+ }
2653
+ // Utility function to transform response data
2654
+ transformResponseData(data) {
2655
+ // Check if data is not null, undefined, and is an array with elements
2656
+ if (data && Array.isArray(data) && data.length > 0) {
2657
+ return data.map(item => ({
2658
+ label: item.text,
2659
+ value: item.value,
2660
+ date: item.date
2661
+ }));
2662
+ }
2663
+ else {
2664
+ // Return an empty array if data is null, undefined, or empty
2665
+ return [];
2666
+ }
2526
2667
  }
2527
2668
  filterWebsiteMulti() {
2528
2669
  if (!this.selectOptions) {
@@ -2545,13 +2686,46 @@ class MaterialSelectComponent extends MaterialComponent {
2545
2686
  super.setInstance(instance);
2546
2687
  this.instance.triggerUpdate();
2547
2688
  }
2689
+ onClearAll() {
2690
+ if (this.searchFlag) {
2691
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
2692
+ this.loadData(1, 20, '');
2693
+ }
2694
+ }
2695
+ }
2696
+ ngAfterViewInit() {
2697
+ this.selectElem.openedChange.subscribe((isOpen) => {
2698
+ if (isOpen) {
2699
+ this.searchFlag = false;
2700
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
2701
+ this.loadData(1, 20, '');
2702
+ }
2703
+ }
2704
+ else {
2705
+ this.searchFlag = false;
2706
+ }
2707
+ });
2708
+ }
2548
2709
  ngOnInit() {
2549
2710
  /*new logic */
2550
- this.websiteMultiFilterCtrl.valueChanges
2551
- .pipe(takeUntil(this._onDestroy))
2552
- .subscribe(() => {
2553
- this.filterWebsiteMulti();
2554
- });
2711
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
2712
+ this.websiteMultiFilterCtrl.valueChanges
2713
+ .pipe(debounceTime(1000), // Time in milliseconds between key events
2714
+ distinctUntilChanged(), takeUntil(this._onDestroy))
2715
+ .subscribe((searchQuery) => {
2716
+ if (searchQuery != '') {
2717
+ this.searchFlag = true;
2718
+ this.loadData(1, 20, searchQuery);
2719
+ }
2720
+ });
2721
+ }
2722
+ else {
2723
+ this.websiteMultiFilterCtrl.valueChanges
2724
+ .pipe(takeUntil(this._onDestroy))
2725
+ .subscribe(() => {
2726
+ this.filterWebsiteMulti();
2727
+ });
2728
+ }
2555
2729
  /*End */
2556
2730
  this.selectOptions = new Promise((resolve) => {
2557
2731
  this.selectOptionsResolve = resolve;
@@ -2565,8 +2739,8 @@ class MaterialSelectComponent extends MaterialComponent {
2565
2739
  return _.isEqual(o1, o2);
2566
2740
  }
2567
2741
  }
2568
- MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2569
- 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 }], usesInheritance: true, ngImport: i0, template: `
2742
+ 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 });
2743
+ 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: `
2570
2744
  <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
2571
2745
  <ng-template #componentTemplate let-hasLabel>
2572
2746
  <mat-form-field fxFill>
@@ -2582,12 +2756,14 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
2582
2756
  [multiple]="instance.component.multiple"
2583
2757
  [formControl]="control"
2584
2758
  [placeholder]="instance.component.placeholder"
2585
- (selectionChange)="onChange()"
2759
+ (selectionChange)="onChange($event)"
2586
2760
  [compareWith]="compareObjects"
2761
+ #productSelect
2762
+ (openedChange)="onMatSelectOpen($event ? selectElem : null)"
2587
2763
  >
2588
2764
 
2589
2765
  <mat-option>
2590
- <ngx-mat-select-search placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
2766
+ <ngx-mat-select-search (ngModelChange)="onSearchInputChange($event)" placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
2591
2767
  </mat-option>
2592
2768
 
2593
2769
  <mat-option *ngFor="let option of filteredOptions | async" [value]="option.value" class="virtual-full-view">
@@ -2605,7 +2781,7 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
2605
2781
  <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
2606
2782
  </mat-form-field>
2607
2783
  </ng-template>
2608
- `, 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: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i7.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: "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" }] });
2784
+ `, 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: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i8.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: "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" }] });
2609
2785
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, decorators: [{
2610
2786
  type: Component,
2611
2787
  args: [{ selector: 'mat-formio-select', template: `
@@ -2624,12 +2800,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
2624
2800
  [multiple]="instance.component.multiple"
2625
2801
  [formControl]="control"
2626
2802
  [placeholder]="instance.component.placeholder"
2627
- (selectionChange)="onChange()"
2803
+ (selectionChange)="onChange($event)"
2628
2804
  [compareWith]="compareObjects"
2805
+ #productSelect
2806
+ (openedChange)="onMatSelectOpen($event ? selectElem : null)"
2629
2807
  >
2630
2808
 
2631
2809
  <mat-option>
2632
- <ngx-mat-select-search placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
2810
+ <ngx-mat-select-search (ngModelChange)="onSearchInputChange($event)" placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
2633
2811
  </mat-option>
2634
2812
 
2635
2813
  <mat-option *ngFor="let option of filteredOptions | async" [value]="option.value" class="virtual-full-view">
@@ -2648,9 +2826,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
2648
2826
  </mat-form-field>
2649
2827
  </ng-template>
2650
2828
  `, 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"] }]
2651
- }], propDecorators: { multiSelect: [{
2829
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.HttpClient }]; }, propDecorators: { multiSelect: [{
2652
2830
  type: ViewChild,
2653
2831
  args: ['multiSelect', { static: true }]
2832
+ }], selectElem: [{
2833
+ type: ViewChild,
2834
+ args: ['productSelect']
2654
2835
  }] } });
2655
2836
  SelectComponent.MaterialComponent = MaterialSelectComponent;
2656
2837
  // Make sure we detect changes when new items make their way into the select dropdown.
@@ -2703,12 +2884,12 @@ class ConfirmationDialogComponent {
2703
2884
  ngOnInit() {
2704
2885
  }
2705
2886
  }
2706
- ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
2707
- 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\">\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\n<mat-dialog-content class=\"data-grid-popup-body\">\n Are you sure you want to delete this Product?\n</mat-dialog-content>\n<mat-dialog-actions class=\"data-grid-popup-footer\">\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\">Delete</button>\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\n</mat-dialog-actions>\n</div>", styles: [""], dependencies: [{ kind: "component", type: i2$1.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: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
2887
+ ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
2888
+ 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\">\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\n<mat-dialog-content class=\"data-grid-popup-body\">\n Are you sure you want to delete this Product?\n</mat-dialog-content>\n<mat-dialog-actions class=\"data-grid-popup-footer\">\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\">Delete</button>\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\n</mat-dialog-actions>\n</div>", styles: [""], dependencies: [{ kind: "component", type: i2$1.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: 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"] }] });
2708
2889
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
2709
2890
  type: Component,
2710
2891
  args: [{ selector: 'NgxMat-confirmation-dialog', template: "<div class=\"dialog-container\">\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\n<mat-dialog-content class=\"data-grid-popup-body\">\n Are you sure you want to delete this Product?\n</mat-dialog-content>\n<mat-dialog-actions class=\"data-grid-popup-footer\">\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\">Delete</button>\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\n</mat-dialog-actions>\n</div>" }]
2711
- }], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }]; } });
2892
+ }], ctorParameters: function () { return [{ type: i1$2.MatDialogRef }]; } });
2712
2893
 
2713
2894
  class MaterialDataGridComponent extends MaterialNestedComponent {
2714
2895
  constructor(element, ref, dialog) {
@@ -2797,7 +2978,7 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
2797
2978
  super.setValue(value);
2798
2979
  }
2799
2980
  }
2800
- MaterialDataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
2981
+ 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 });
2801
2982
  MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialDataGridComponent, selector: "mat-formio-datagrid", usesInheritance: true, ngImport: i0, template: `
2802
2983
  <mat-formio-form-field [instance]="instance"
2803
2984
  [componentTemplate]="componentTemplate"
@@ -2869,7 +3050,7 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
2869
3050
  <span [instance]="instance" matFormioLabel></span>
2870
3051
  </mat-card-title>
2871
3052
  </ng-template>
2872
- `, 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: i2$1.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"] }] });
3053
+ `, 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: i2$1.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$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
2873
3054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialDataGridComponent, decorators: [{
2874
3055
  type: Component,
2875
3056
  args: [{ selector: 'mat-formio-datagrid', template: `
@@ -2944,7 +3125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
2944
3125
  </mat-card-title>
2945
3126
  </ng-template>
2946
3127
  `, styles: [".datagrid-row{height:auto}\n"] }]
2947
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.MatDialog }]; } });
3128
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.MatDialog }]; } });
2948
3129
  DataGridComponent.MaterialComponent = MaterialDataGridComponent;
2949
3130
 
2950
3131
  var EditRowState;
@@ -3486,7 +3667,7 @@ class FormioComponent extends FormioBaseComponent {
3486
3667
  return form.instance;
3487
3668
  }
3488
3669
  }
3489
- FormioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1$2.FormioAppConfig, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3670
+ FormioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormioComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1$3.FormioAppConfig, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3490
3671
  FormioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: FormioComponent, selector: "mat-formio", viewQueries: [{ propertyName: "formioViewContainer", first: true, predicate: ["formio"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
3491
3672
  <mat-spinner *ngIf="isLoading"></mat-spinner>
3492
3673
  <div *ngIf="!this.options?.disableAlerts">
@@ -3517,7 +3698,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
3517
3698
  <ng-template #formio></ng-template>
3518
3699
  </div>
3519
3700
  `, 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"] }]
3520
- }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1$2.FormioAppConfig, decorators: [{
3701
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1$3.FormioAppConfig, decorators: [{
3521
3702
  type: Optional
3522
3703
  }] }]; }, propDecorators: { formioViewContainer: [{
3523
3704
  type: ViewChild,
@@ -3597,7 +3778,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
3597
3778
  DragDropModule,
3598
3779
  ScrollingModule,
3599
3780
  NgxMatSelectSearchModule,
3600
- MatDialogModule], exports: [NgxRenderMaterialFormsComponent,
3781
+ MatDialogModule,
3782
+ HttpClientModule], exports: [NgxRenderMaterialFormsComponent,
3601
3783
  FormioComponent,
3602
3784
  MatInputModule,
3603
3785
  MatFormFieldModule,
@@ -3621,7 +3803,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
3621
3803
  FlexLayoutModule,
3622
3804
  ScrollingModule,
3623
3805
  NgxMatSelectSearchModule,
3624
- MatDialogModule] });
3806
+ MatDialogModule,
3807
+ HttpClientModule] });
3625
3808
  NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NgxRenderMaterialFormsModule, imports: [CommonModule,
3626
3809
  FormsModule,
3627
3810
  ReactiveFormsModule,
@@ -3649,7 +3832,8 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
3649
3832
  DragDropModule,
3650
3833
  ScrollingModule,
3651
3834
  NgxMatSelectSearchModule,
3652
- MatDialogModule, MatInputModule,
3835
+ MatDialogModule,
3836
+ HttpClientModule, MatInputModule,
3653
3837
  MatFormFieldModule,
3654
3838
  MatCheckboxModule,
3655
3839
  MatRadioModule,
@@ -3671,7 +3855,8 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
3671
3855
  FlexLayoutModule,
3672
3856
  ScrollingModule,
3673
3857
  NgxMatSelectSearchModule,
3674
- MatDialogModule] });
3858
+ MatDialogModule,
3859
+ HttpClientModule] });
3675
3860
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NgxRenderMaterialFormsModule, decorators: [{
3676
3861
  type: NgModule,
3677
3862
  args: [{
@@ -3746,7 +3931,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
3746
3931
  DragDropModule,
3747
3932
  ScrollingModule,
3748
3933
  NgxMatSelectSearchModule,
3749
- MatDialogModule
3934
+ MatDialogModule,
3935
+ HttpClientModule
3750
3936
  ],
3751
3937
  exports: [
3752
3938
  NgxRenderMaterialFormsComponent,
@@ -3773,7 +3959,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
3773
3959
  FlexLayoutModule,
3774
3960
  ScrollingModule,
3775
3961
  NgxMatSelectSearchModule,
3776
- MatDialogModule
3962
+ MatDialogModule,
3963
+ HttpClientModule
3777
3964
  ],
3778
3965
  entryComponents: [
3779
3966
  MaterialButtonComponent,