@pongrass/utils 1.0.4-v20 → 1.1.1-v20
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/fesm2022/pongrass-utils.mjs +137 -20
- package/fesm2022/pongrass-utils.mjs.map +1 -1
- package/index.d.ts +67 -14
- package/package.json +1 -1
- package/README.md +0 -260
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, Injectable, Component, ViewChild, inject, EventEmitter, Input, Output, ElementRef, HostListener, Directive, Renderer2, NgModule, effect } from '@angular/core';
|
|
2
|
+
import { signal, Injectable, Component, ViewChild, inject, EventEmitter, Input, Output, ElementRef, HostListener, Directive, Renderer2, NgModule, effect, input, output } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule, NgClass } from '@angular/common';
|
|
5
5
|
import * as i3 from '@angular/forms';
|
|
6
6
|
import { FormsModule, NgControl, FormBuilder, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
7
7
|
import * as i2$1 from '@coreui/angular-pro';
|
|
8
|
-
import { FormModule, ButtonModule, MultiSelectModule, MultiSelectComponent, InputGroupComponent, DatePickerModule, ModalModule, TooltipModule, OffcanvasModule } from '@coreui/angular-pro';
|
|
8
|
+
import { FormModule, ButtonModule, MultiSelectModule, MultiSelectComponent, InputGroupComponent, DatePickerModule, ModalModule, TooltipModule, OffcanvasModule, SpinnerModule, FormPasswordDirective, AlertModule } from '@coreui/angular-pro';
|
|
9
9
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
10
10
|
import { map, lastValueFrom, Subject } from 'rxjs';
|
|
11
11
|
import * as i5 from '@coreui/icons-angular';
|
|
@@ -79,7 +79,7 @@ class ColorCellRendererComponent {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ColorCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: ColorCellRendererComponent, isStandalone: true, selector: "
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: ColorCellRendererComponent, isStandalone: true, selector: "prg-ws-color-cell-renderer", ngImport: i0, template: `
|
|
83
83
|
<div class="cell-wrapper align-items-center d-inline-flex gap-2">
|
|
84
84
|
<span class="color-box" [ngStyle]="{ 'background-color': colorCode }"></span>
|
|
85
85
|
<span class="text-truncate">
|
|
@@ -90,7 +90,7 @@ class ColorCellRendererComponent {
|
|
|
90
90
|
}
|
|
91
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ColorCellRendererComponent, decorators: [{
|
|
92
92
|
type: Component,
|
|
93
|
-
args: [{ standalone: true, imports: [CommonModule], selector: '
|
|
93
|
+
args: [{ standalone: true, imports: [CommonModule], selector: 'prg-ws-color-cell-renderer', template: `
|
|
94
94
|
<div class="cell-wrapper align-items-center d-inline-flex gap-2">
|
|
95
95
|
<span class="color-box" [ngStyle]="{ 'background-color': colorCode }"></span>
|
|
96
96
|
<span class="text-truncate">
|
|
@@ -186,7 +186,7 @@ class CustomSelectFilterComponent {
|
|
|
186
186
|
this.filteredValues = [...this.uniqueValues];
|
|
187
187
|
}
|
|
188
188
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CustomSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: CustomSelectFilterComponent, isStandalone: true, selector: "
|
|
189
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: CustomSelectFilterComponent, isStandalone: true, selector: "prg-ws-custom-set-filter", viewQueries: [{ propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: `
|
|
190
190
|
<div class="select-filter-container">
|
|
191
191
|
<input type="text" #searchInput cFormControl [(ngModel)]="searchText" (input)="onSearchChange()" placeholder="Search..." class="search-box" />
|
|
192
192
|
@if (filteredValues.length > 0) {
|
|
@@ -215,7 +215,7 @@ class CustomSelectFilterComponent {
|
|
|
215
215
|
}
|
|
216
216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CustomSelectFilterComponent, decorators: [{
|
|
217
217
|
type: Component,
|
|
218
|
-
args: [{ selector: '
|
|
218
|
+
args: [{ selector: 'prg-ws-custom-set-filter', standalone: true, imports: [FormsModule, FormModule], template: `
|
|
219
219
|
<div class="select-filter-container">
|
|
220
220
|
<input type="text" #searchInput cFormControl [(ngModel)]="searchText" (input)="onSearchChange()" placeholder="Search..." class="search-box" />
|
|
221
221
|
@if (filteredValues.length > 0) {
|
|
@@ -311,7 +311,7 @@ class CommentsButtonCellRendererComponent {
|
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CommentsButtonCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
314
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: CommentsButtonCellRendererComponent, isStandalone: true, selector: "
|
|
314
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: CommentsButtonCellRendererComponent, isStandalone: true, selector: "prg-ws-comments-button-cell-renderer", ngImport: i0, template: `
|
|
315
315
|
<div>
|
|
316
316
|
<button cButton [color]="params.data?.orders_notes ? 'primary' : 'secondary'" size="sm" data-action="comment-action" (click)="onCommentClick()">
|
|
317
317
|
Comments
|
|
@@ -321,7 +321,7 @@ class CommentsButtonCellRendererComponent {
|
|
|
321
321
|
}
|
|
322
322
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CommentsButtonCellRendererComponent, decorators: [{
|
|
323
323
|
type: Component,
|
|
324
|
-
args: [{ standalone: true, selector: '
|
|
324
|
+
args: [{ standalone: true, selector: 'prg-ws-comments-button-cell-renderer', imports: [ButtonModule], template: `
|
|
325
325
|
<div>
|
|
326
326
|
<button cButton [color]="params.data?.orders_notes ? 'primary' : 'secondary'" size="sm" data-action="comment-action" (click)="onCommentClick()">
|
|
327
327
|
Comments
|
|
@@ -334,7 +334,14 @@ var BrowserConstantsEnum;
|
|
|
334
334
|
(function (BrowserConstantsEnum) {
|
|
335
335
|
BrowserConstantsEnum["sessionid"] = "sessionId";
|
|
336
336
|
BrowserConstantsEnum["loginUid"] = "uid";
|
|
337
|
+
BrowserConstantsEnum["iframeTabs"] = "tabs";
|
|
338
|
+
BrowserConstantsEnum["connectExternalFlag"] = "connectExternal";
|
|
339
|
+
BrowserConstantsEnum["lastUserName"] = "lastUserName";
|
|
340
|
+
BrowserConstantsEnum["logoutReason"] = "logoutReason";
|
|
337
341
|
BrowserConstantsEnum["tablePreference"] = "table_preference";
|
|
342
|
+
BrowserConstantsEnum["cookieSidebarUnfoldable"] = "pongrass_sidebar_state";
|
|
343
|
+
BrowserConstantsEnum["cookieTheme"] = "pongrass_theme";
|
|
344
|
+
BrowserConstantsEnum["menuItems"] = "_menu_items";
|
|
338
345
|
})(BrowserConstantsEnum || (BrowserConstantsEnum = {}));
|
|
339
346
|
|
|
340
347
|
var JSONRPCMethods;
|
|
@@ -590,11 +597,11 @@ class EditionListGroupedComponent {
|
|
|
590
597
|
});
|
|
591
598
|
}
|
|
592
599
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: EditionListGroupedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
593
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: EditionListGroupedComponent, isStandalone: true, selector: "
|
|
600
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: EditionListGroupedComponent, isStandalone: true, selector: "prg-ws-edition-list-grouped", inputs: { label: "label", multiple: "multiple", hasFormError: "hasFormError" }, outputs: { selectedEditionsChange: "selectedEditionsChange" }, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12\">\n @if (label) {\n <label for=\"sel-group-edition\">{{ label }}</label>\n }\n <c-multi-select\n [cleaner]=\"true\"\n [selectionType]=\"multiple ? 'counter' : 'text'\"\n [multiple]=\"multiple\"\n clearSearchOnSelect\n [ngClass]=\"{ 'form-invalid': hasFormError }\"\n placeholder=\"All Editions\"\n visibleItems=\"8\"\n (valueChange)=\"onEditionSelection($event)\"\n (visibleChange)=\"onVisibleChange($event)\">\n @for (option of editionPublicationList; track $index + '_' + option.region) {\n <c-multi-select-optgroup>\n <c-multi-select-optgroup-label (click)=\"onSelectEditionGroup(option.region, $index)\" class=\"region-selector cursor-pointer\">{{\n option?.region\n }}</c-multi-select-optgroup-label>\n @for (item of option.values; track item?.description) {\n <c-multi-select-option [value]=\"item\" [selected]=\"item.selected\">{{ '[' + item?.edname + ']' }} {{ item?.description }}</c-multi-select-option>\n }\n </c-multi-select-optgroup>\n }\n </c-multi-select>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2$1.MultiSelectComponent, selector: "c-multi-select", inputs: ["allowCreateOptions", "cleaner", "clearSearchOnSelect", "disabled", "loading", "multiple", "options", "optionsMaxHeight", "optionsStyle", "placeholder", "resetSelectionOnOptionsChange", "search", "searchNoResultsLabel", "searchValue", "selectAll", "selectAllLabel", "selectionType", "selectionTypeCounterText", "selectionTypeCounterTextPluralMap", "size", "value", "valid", "virtualScroller", "visibleItems", "itemSize", "itemMinWidth", "visible", "popperOptions"], outputs: ["searchValueChange", "valueChange", "visibleChange"], exportAs: ["cMultiSelect"] }, { kind: "component", type: i2$1.MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: ["optionsStyle", "label", "text", "visible", "disabled", "selected", "value", "active", "role"], outputs: ["selectedChange", "focusChange"], exportAs: ["cMultiSelectOption"] }, { kind: "component", type: i2$1.MultiSelectOptgroupComponent, selector: "c-multi-select-optgroup", inputs: ["label", "disabled"] }, { kind: "component", type: i2$1.MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
594
601
|
}
|
|
595
602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: EditionListGroupedComponent, decorators: [{
|
|
596
603
|
type: Component,
|
|
597
|
-
args: [{ selector: '
|
|
604
|
+
args: [{ selector: 'prg-ws-edition-list-grouped', imports: [MultiSelectModule, FormsModule, NgClass], standalone: true, template: "<div class=\"row\">\n <div class=\"col-12\">\n @if (label) {\n <label for=\"sel-group-edition\">{{ label }}</label>\n }\n <c-multi-select\n [cleaner]=\"true\"\n [selectionType]=\"multiple ? 'counter' : 'text'\"\n [multiple]=\"multiple\"\n clearSearchOnSelect\n [ngClass]=\"{ 'form-invalid': hasFormError }\"\n placeholder=\"All Editions\"\n visibleItems=\"8\"\n (valueChange)=\"onEditionSelection($event)\"\n (visibleChange)=\"onVisibleChange($event)\">\n @for (option of editionPublicationList; track $index + '_' + option.region) {\n <c-multi-select-optgroup>\n <c-multi-select-optgroup-label (click)=\"onSelectEditionGroup(option.region, $index)\" class=\"region-selector cursor-pointer\">{{\n option?.region\n }}</c-multi-select-optgroup-label>\n @for (item of option.values; track item?.description) {\n <c-multi-select-option [value]=\"item\" [selected]=\"item.selected\">{{ '[' + item?.edname + ']' }} {{ item?.description }}</c-multi-select-option>\n }\n </c-multi-select-optgroup>\n }\n </c-multi-select>\n </div>\n</div>\n" }]
|
|
598
605
|
}], ctorParameters: () => [], propDecorators: { selectedEditionsChange: [{
|
|
599
606
|
type: Output
|
|
600
607
|
}], label: [{
|
|
@@ -631,11 +638,11 @@ class IndustryUpdateListboxCellRendererComponent {
|
|
|
631
638
|
}
|
|
632
639
|
}
|
|
633
640
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: IndustryUpdateListboxCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
634
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: IndustryUpdateListboxCellRendererComponent, isStandalone: true, selector: "
|
|
641
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: IndustryUpdateListboxCellRendererComponent, isStandalone: true, selector: "prg-ws-industry-update-listbox-cell-renderer", ngImport: i0, template: "<select\n class=\"form-select select-industry\"\n [ngClass]=\"{ 'select-industry-red': selectedIndustry === 'select-industry' }\"\n [(ngModel)]=\"selectedIndustry\"\n (change)=\"onIndustryChange($event)\"\n id=\"sel-industry\"\n name=\"sel-industry\">\n <option value=\"select-industry\" disabled class=\"select-industry-opt\">Select Industry</option>\n @for (industry of industryList; track industry.industry) {\n <option [value]=\"industry?.industry\" class=\"select-industry-opt\">\n {{ industry?.description }}\n </option>\n }\n</select>\n", styles: [".form-select.select-industry{color:#000}.form-select.select-industry.select-industry-red{color:#666666b3}.form-select.select-industry option{color:#000}.form-select.select-industry option[value=select-industry]{color:gray}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
635
642
|
}
|
|
636
643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: IndustryUpdateListboxCellRendererComponent, decorators: [{
|
|
637
644
|
type: Component,
|
|
638
|
-
args: [{ selector: '
|
|
645
|
+
args: [{ selector: 'prg-ws-industry-update-listbox-cell-renderer', imports: [FormsModule, NgClass], standalone: true, template: "<select\n class=\"form-select select-industry\"\n [ngClass]=\"{ 'select-industry-red': selectedIndustry === 'select-industry' }\"\n [(ngModel)]=\"selectedIndustry\"\n (change)=\"onIndustryChange($event)\"\n id=\"sel-industry\"\n name=\"sel-industry\">\n <option value=\"select-industry\" disabled class=\"select-industry-opt\">Select Industry</option>\n @for (industry of industryList; track industry.industry) {\n <option [value]=\"industry?.industry\" class=\"select-industry-opt\">\n {{ industry?.description }}\n </option>\n }\n</select>\n", styles: [".form-select.select-industry{color:#000}.form-select.select-industry.select-industry-red{color:#666666b3}.form-select.select-industry option{color:#000}.form-select.select-industry option[value=select-industry]{color:gray}\n"] }]
|
|
639
646
|
}] });
|
|
640
647
|
|
|
641
648
|
class PageStatusCellRendererComponent {
|
|
@@ -663,11 +670,11 @@ class PageStatusCellRendererComponent {
|
|
|
663
670
|
return selectedStatus && selectedStatus.html_color ? selectedStatus.html_color : '#C5B4E3';
|
|
664
671
|
}
|
|
665
672
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PageStatusCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
666
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PageStatusCellRendererComponent, isStandalone: true, selector: "
|
|
673
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PageStatusCellRendererComponent, isStandalone: true, selector: "prg-ws-page-status-cell-renderer", ngImport: i0, template: "<div class=\"wrapper-production-status-select\">\n <select\n class=\"status-dropdown\"\n aria-label=\"status-dropdown\"\n cSelect\n sizing=\"sm\"\n (click)=\"$event.stopPropagation()\"\n [ngModel]=\"pageStatus!.page_status_name\"\n (ngModelChange)=\"updatePageStatus($event)\"\n [ngStyle]=\"{ '--select-background': getStatusColor() }\">\n @for (status of pageStatusList; track $index) {\n <option [value]=\"status.page_status_name\">\n {{ status.page_status_name }}\n </option>\n }\n </select>\n</div>\n", styles: [".status-dropdown:not(.options){background-color:var(--select-background)}.status-dropdown option{background-color:#fff;color:#000}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormModule }, { kind: "directive", type: i2$1.FormSelectDirective, selector: "select[cSelect]", inputs: ["sizing", "valid"] }] });
|
|
667
674
|
}
|
|
668
675
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PageStatusCellRendererComponent, decorators: [{
|
|
669
676
|
type: Component,
|
|
670
|
-
args: [{ selector: '
|
|
677
|
+
args: [{ selector: 'prg-ws-page-status-cell-renderer', imports: [FormsModule, CommonModule, FormModule], standalone: true, template: "<div class=\"wrapper-production-status-select\">\n <select\n class=\"status-dropdown\"\n aria-label=\"status-dropdown\"\n cSelect\n sizing=\"sm\"\n (click)=\"$event.stopPropagation()\"\n [ngModel]=\"pageStatus!.page_status_name\"\n (ngModelChange)=\"updatePageStatus($event)\"\n [ngStyle]=\"{ '--select-background': getStatusColor() }\">\n @for (status of pageStatusList; track $index) {\n <option [value]=\"status.page_status_name\">\n {{ status.page_status_name }}\n </option>\n }\n </select>\n</div>\n", styles: [".status-dropdown:not(.options){background-color:var(--select-background)}.status-dropdown option{background-color:#fff;color:#000}\n"] }]
|
|
671
678
|
}] });
|
|
672
679
|
|
|
673
680
|
class StatusSelectCellRendererComponent {
|
|
@@ -695,11 +702,11 @@ class StatusSelectCellRendererComponent {
|
|
|
695
702
|
return selectedStatus && selectedStatus.html_color ? selectedStatus.html_color : '#C5B4E3';
|
|
696
703
|
}
|
|
697
704
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: StatusSelectCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
698
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: StatusSelectCellRendererComponent, isStandalone: true, selector: "
|
|
705
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: StatusSelectCellRendererComponent, isStandalone: true, selector: "prg-ws-status-select-cell-renderer", ngImport: i0, template: "<div class=\"wrapper-production-status-select\">\n <select\n class=\"status-dropdown\"\n aria-label=\"status-dropdown\"\n cSelect\n sizing=\"sm\"\n (click)=\"$event.stopPropagation()\"\n [ngModel]=\"this.fileStatus!.it_prodstatusid\"\n (ngModelChange)=\"updatePageStatus($event)\"\n [ngStyle]=\"{ '--select-background': getStatusColor() }\">\n @for (status of prodStatusList; track $index) {\n <option [value]=\"status.statusid\">\n {{ status.statusdesc }}\n </option>\n }\n </select>\n</div>\n", styles: [".status-dropdown:not(.options){background-color:var(--select-background)}.status-dropdown option{background-color:#fff;color:#000}\n"], dependencies: [{ kind: "ngmodule", type: FormModule }, { kind: "directive", type: i2$1.FormSelectDirective, selector: "select[cSelect]", inputs: ["sizing", "valid"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
699
706
|
}
|
|
700
707
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: StatusSelectCellRendererComponent, decorators: [{
|
|
701
708
|
type: Component,
|
|
702
|
-
args: [{ standalone: true, imports: [FormModule, CommonModule, FormsModule], selector: '
|
|
709
|
+
args: [{ standalone: true, imports: [FormModule, CommonModule, FormsModule], selector: 'prg-ws-status-select-cell-renderer', template: "<div class=\"wrapper-production-status-select\">\n <select\n class=\"status-dropdown\"\n aria-label=\"status-dropdown\"\n cSelect\n sizing=\"sm\"\n (click)=\"$event.stopPropagation()\"\n [ngModel]=\"this.fileStatus!.it_prodstatusid\"\n (ngModelChange)=\"updatePageStatus($event)\"\n [ngStyle]=\"{ '--select-background': getStatusColor() }\">\n @for (status of prodStatusList; track $index) {\n <option [value]=\"status.statusid\">\n {{ status.statusdesc }}\n </option>\n }\n </select>\n</div>\n", styles: [".status-dropdown:not(.options){background-color:var(--select-background)}.status-dropdown option{background-color:#fff;color:#000}\n"] }]
|
|
703
710
|
}] });
|
|
704
711
|
|
|
705
712
|
var FormFieldType;
|
|
@@ -1488,7 +1495,7 @@ class MultiFormComponent {
|
|
|
1488
1495
|
return null;
|
|
1489
1496
|
}
|
|
1490
1497
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MultiFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1491
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: MultiFormComponent, isStandalone: false, selector: "app-multi-form", inputs: { config: "config", showUnsavedFlags: "showUnsavedFlags", currentTableGridsSelectedIndex: "currentTableGridsSelectedIndex", formId: "formId" }, outputs: { fieldAction: "fieldAction", formSavedUnsavedListen: "formSavedUnsavedListen", selectionChangeEvent: "selectionChangeEvent" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"multiForm\" cForm class=\"multiform-wrapper\" appCircularFocus>\n @for (row of config?.rows; track $index; let isLast = $last) {\n <div class=\"row gx-3 multiform-inner\" [id]=\"formId\" [ngClass]=\"config?.rows?.length > 1 && !isLast ? 'border-bottom mb-3' : ''\">\n @for (field of row; track $index) {\n @if (field?.type !== FormFieldType.Separator && field?.type !== FormFieldType.FormHeader) {\n <div class=\"mb-3\" [class]=\"'field-' + field.type\" [ngClass]=\"field.colspan ? 'col-md-' + field.colspan : 'col'\" [attr.data-id]=\"field.controlName\">\n @if (multiForm.controls[field.controlName]) {\n <!-- Label -->\n @if (field.label && field.type !== FormFieldType.Checkbox) {\n <label\n [appShowTooltipIfTruncated]=\"field.label\"\n cLabel\n class=\"mb-1 label-multiform single-line-label\"\n [for]=\"field.controlName\"\n [ngClass]=\"{ 'text-danger': isFormSubmitted && multiForm.controls[field.controlName]?.errors }\"\n [ngStyle]=\"field.styles?.label\"\n >{{ field.label }}\n @if (field?.validations?.required || false) {\n <strong class=\"text-danger\">*</strong>\n }\n </label>\n }\n\n <!-- Text, Email, Number Inputs -->\n @if (\n field.type === FormFieldType.Text ||\n field.type === FormFieldType.Email ||\n field.type === FormFieldType.Number ||\n field.type === FormFieldType.Password ||\n field.type === FormFieldType.Url ||\n field.type === FormFieldType.Tel\n ) {\n <div class=\"position-relative w-100\">\n <input\n [type]=\"field.type\"\n cFormControl\n [formControlName]=\"field.controlName\"\n [id]=\"field.controlName\"\n [placeholder]=\"field.placeholder || ''\"\n [ngClass]=\"{\n 'form-invalid border-danger border border-2':\n (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors,\n 'no-label-margin': !field.label\n }\"\n [min]=\"field.validations?.min\"\n [max]=\"field.validations?.max\"\n [ngStyle]=\"field.styles?.field\" />\n\n @if (field.actionButton) {\n <button\n type=\"button\"\n [cTooltip]=\"field.actionButton?.tooltip\"\n tooltipPlacement=\"top\"\n cButton\n color=\"primary\"\n variant=\"outline\"\n aria-label=\"action\"\n class=\"d-flex position-absolute top-50 end-0 translate-middle-y me-2 btn p-0 border-0 bg-transparent\"\n (click)=\"onClickFieldAction($event, field)\">\n <svg cIcon class=\"text-primary\" [name]=\"field.actionButton.icon\" size=\"xl\"></svg>\n </button>\n }\n @if (multiForm.controls[field.controlName]?.touched || isFormSubmitted) {\n @if (multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['pattern']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is invalid</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['minlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Minimum length {{ field?.validations?.minLength }} characters is required\n </small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['maxlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Maximum length {{ field?.validations?.maxLength }} characters is allowed\n </small>\n }\n }\n }\n </div>\n }\n\n <!-- Select Inputs -->\n @else if (field.type === FormFieldType.Select || field.type === inputType?.colorSelect) {\n <ng-container>\n <c-multi-select\n [multiple]=\"field?.multiple || false\"\n [allowCreateOptions]=\"field?.allowCreateOptions || false\"\n [search]=\"field?.allowCreateOptions || field?.allowSearch || false\"\n [clearSearchOnSelect]=\"true\"\n [selectionType]=\"field?.selectionType || 'tags'\"\n [cleaner]=\"field?.allowCleaner || true\"\n [formControlName]=\"field.controlName\"\n [placeholder]=\"field.placeholder || 'Select'\"\n [appMultiSelectStyler]=\"field.type === inputType?.colorSelect\"\n [options]=\"colorCodes$\"\n [optionsMaxHeight]=\"400\"\n [ngClass]=\"{\n 'form-invalid': (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n (valueChange)=\"onValueChange($event, field.controlName)\"\n [ngStyle]=\"field.styles?.field\">\n @if (field.type === inputType?.colorSelect) {\n @for (option of colorCodes$; track $index) {\n <c-multi-select-option [value]=\"option?.label\">\n <label class=\"d-flex gap-2\">\n <span class=\"color-box\" [style.background-color]=\"option?.value\"></span>\n {{ option.label }}\n </label>\n </c-multi-select-option>\n }\n } @else {\n @for (option of field.options; track $index) {\n <c-multi-select-option [value]=\"option?.value\">\n {{ option.label }}\n </c-multi-select-option>\n }\n }\n </c-multi-select>\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n }\n }\n </ng-container>\n }\n\n <!-- Date input -->\n @else if (field.type === FormFieldType.Date) {\n <ng-container>\n <input\n type=\"text\"\n [placeholder]=\"field?.label || 'Select Date'\"\n class=\"form-control\"\n [ngClass]=\"{\n 'form-invalid': (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n (bsValueChange)=\"onDateValueChange($event, field.controlName)\"\n [formControlName]=\"field.controlName\"\n [dateInputFormat]=\"configurationService?.allConfigValues()?.defaultDateFormat || 'MM/DD/YYYY'\"\n [bsConfig]=\"{\n containerClass: 'pongrass-red-datepicker',\n showWeekNumbers: false,\n adaptivePosition: true,\n useUtc: false\n }\"\n bsDatepicker\n [ngStyle]=\"field.styles?.field\" />\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n }\n }\n </ng-container>\n }\n <!-- Textarea -->\n @else if (field.type === FormFieldType.Textarea) {\n <ng-container>\n <textarea\n cFormControl\n [id]=\"field.controlName\"\n [rows]=\"field?.textareaRows || 4\"\n [columns]=\"field?.textareaColumns || 4\"\n [placeholder]=\"field.placeholder || ''\"\n [ngClass]=\"{\n 'form-invalid border-danger border border-2':\n (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n [formControlName]=\"field.controlName\"\n [ngStyle]=\"field.styles?.field\"></textarea>\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['minlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Minimum length {{ field?.validations?.minLength }} characters is required\n </small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['maxlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Maximum length {{ field?.validations?.maxLength }} characters is allowed\n </small>\n }\n }\n </ng-container>\n }\n <!-- Checkbox -->\n @else if (field.type === FormFieldType.Checkbox) {\n <div class=\"no-label-margin\">\n <input cFormCheckInput [id]=\"field.controlName\" type=\"checkbox\" [formControlName]=\"field.controlName\" [ngStyle]=\"field.styles?.field\" />\n <label cFormCheckLabel [for]=\"field.controlName\" class=\"ms-2\" [ngStyle]=\"field.styles?.label\">{{ field.label }}</label>\n </div>\n }\n <!-- Decimal input -->\n @else if (field.type === FormFieldType.Float) {\n <ng-container>\n <input\n cFormControl\n [id]=\"field.controlName\"\n type=\"number\"\n class=\"me-2\"\n [formControlName]=\"field.controlName\"\n [appDecimalInput]=\"field.validations?.precision || 2\"\n [ngClass]=\"{\n 'form-invalid border-danger border border-2':\n (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n [min]=\"field.validations?.min\"\n [max]=\"field.validations?.max\"\n [ngStyle]=\"field.styles?.field\" />\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['pattern']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is invalid</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['minlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Minimum length {{ field?.validations?.minLength }} characters is required\n </small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['maxlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Maximum length {{ field?.validations?.maxLength }} characters is allowed\n </small>\n }\n }\n </ng-container>\n } @else if (field.type === FormFieldType.Edition) {\n <ng-container>\n <app-edition-list-grouped\n (selectedEditionsChange)=\"onEditionChange($event)\"\n [multiple]=\"field?.multiple || true\"\n [hasFormError]=\"isFormSubmitted && multiForm.controls[field.controlName]?.errors\">\n </app-edition-list-grouped>\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n }\n }\n </ng-container>\n }\n }\n </div>\n }\n\n @if (field?.type === FormFieldType.Separator) {\n <div [class]=\"'field-' + field.type\" [ngClass]=\"field.colspan ? 'col-md-' + field.colspan : 'col'\"></div>\n }\n @if (field?.type === FormFieldType.FormHeader) {\n <div [class]=\"'fs-6 fw-bold my-2 field-' + field.type\" [ngClass]=\"field.colspan ? 'col-md-' + field.colspan : 'col'\">{{ field?.label }}</div>\n }\n }\n </div>\n }\n</form>\n", styles: [".no-label-margin{margin-top:1.6rem}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.h-135{height:135px}.single-line-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;display:block}.label-multiform{font-size:16px;font-weight:400}.field-checkbox{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: CircularFocusDirective, selector: "[appCircularFocus]", inputs: ["formId", "formGroup"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$1.MultiSelectComponent, selector: "c-multi-select", inputs: ["allowCreateOptions", "cleaner", "clearSearchOnSelect", "disabled", "loading", "multiple", "options", "optionsMaxHeight", "optionsStyle", "placeholder", "resetSelectionOnOptionsChange", "search", "searchNoResultsLabel", "searchValue", "selectAll", "selectAllLabel", "selectionType", "selectionTypeCounterText", "selectionTypeCounterTextPluralMap", "size", "value", "valid", "virtualScroller", "visibleItems", "itemSize", "itemMinWidth", "visible", "popperOptions"], outputs: ["searchValueChange", "valueChange", "visibleChange"], exportAs: ["cMultiSelect"] }, { kind: "component", type: i2$1.MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: ["optionsStyle", "label", "text", "visible", "disabled", "selected", "value", "active", "role"], outputs: ["selectedChange", "focusChange"], exportAs: ["cMultiSelectOption"] }, { kind: "directive", type: i2$1.FormDirective, selector: "form[cForm]", inputs: ["validated"] }, { kind: "directive", type: i2$1.FormCheckLabelDirective, selector: "label[cFormCheckLabel]" }, { kind: "directive", type: i2$1.FormCheckInputDirective, selector: "input[cFormCheckInput]", inputs: ["type", "indeterminate", "valid"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "directive", type: i2$1.FormLabelDirective, selector: "[cLabel]", inputs: ["cLabel", "sizing"] }, { kind: "directive", type: i5.IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "directive", type: DecimalInputDirective, selector: "[appDecimalInput]", inputs: ["appDecimalInput"] }, { kind: "directive", type: ShowTooltipIfTruncatedDirective, selector: "[appShowTooltipIfTruncated]", inputs: ["appShowTooltipIfTruncated"] }, { kind: "directive", type: i2$1.TooltipDirective, selector: "[cTooltip]", inputs: ["cTooltip", "cTooltipOptions", "cTooltipPlacement", "cTooltipRef", "cTooltipTrigger", "cTooltipVisible"], outputs: ["cTooltipVisibleChange"], exportAs: ["cTooltip"] }, { kind: "directive", type: i2$1.ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "tabindex", "type", "variant"], exportAs: ["cButton"] }, { kind: "directive", type: i8.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i8.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "component", type: EditionListGroupedComponent, selector: "app-edition-list-grouped", inputs: ["label", "multiple", "hasFormError"], outputs: ["selectedEditionsChange"] }, { kind: "directive", type: MultiSelectStylerDirective, selector: "[appMultiSelectStyler]", inputs: ["appMultiSelectStyler", "options"] }] });
|
|
1498
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: MultiFormComponent, isStandalone: false, selector: "app-multi-form", inputs: { config: "config", showUnsavedFlags: "showUnsavedFlags", currentTableGridsSelectedIndex: "currentTableGridsSelectedIndex", formId: "formId" }, outputs: { fieldAction: "fieldAction", formSavedUnsavedListen: "formSavedUnsavedListen", selectionChangeEvent: "selectionChangeEvent" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"multiForm\" cForm class=\"multiform-wrapper\" appCircularFocus>\n @for (row of config?.rows; track $index; let isLast = $last) {\n <div class=\"row gx-3 multiform-inner\" [id]=\"formId\" [ngClass]=\"config?.rows?.length > 1 && !isLast ? 'border-bottom mb-3' : ''\">\n @for (field of row; track $index) {\n @if (field?.type !== FormFieldType.Separator && field?.type !== FormFieldType.FormHeader) {\n <div class=\"mb-3\" [class]=\"'field-' + field.type\" [ngClass]=\"field.colspan ? 'col-md-' + field.colspan : 'col'\" [attr.data-id]=\"field.controlName\">\n @if (multiForm.controls[field.controlName]) {\n <!-- Label -->\n @if (field.label && field.type !== FormFieldType.Checkbox) {\n <label\n [appShowTooltipIfTruncated]=\"field.label\"\n cLabel\n class=\"mb-1 label-multiform single-line-label\"\n [for]=\"field.controlName\"\n [ngClass]=\"{ 'text-danger': isFormSubmitted && multiForm.controls[field.controlName]?.errors }\"\n [ngStyle]=\"field.styles?.label\"\n >{{ field.label }}\n @if (field?.validations?.required || false) {\n <strong class=\"text-danger\">*</strong>\n }\n </label>\n }\n\n <!-- Text, Email, Number Inputs -->\n @if (\n field.type === FormFieldType.Text ||\n field.type === FormFieldType.Email ||\n field.type === FormFieldType.Number ||\n field.type === FormFieldType.Password ||\n field.type === FormFieldType.Url ||\n field.type === FormFieldType.Tel\n ) {\n <div class=\"position-relative w-100\">\n <input\n [type]=\"field.type\"\n cFormControl\n [formControlName]=\"field.controlName\"\n [id]=\"field.controlName\"\n [placeholder]=\"field.placeholder || ''\"\n [ngClass]=\"{\n 'form-invalid border-danger border border-2':\n (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors,\n 'no-label-margin': !field.label\n }\"\n [min]=\"field.validations?.min\"\n [max]=\"field.validations?.max\"\n [ngStyle]=\"field.styles?.field\" />\n\n @if (field.actionButton) {\n <button\n type=\"button\"\n [cTooltip]=\"field.actionButton?.tooltip\"\n tooltipPlacement=\"top\"\n cButton\n color=\"primary\"\n variant=\"outline\"\n aria-label=\"action\"\n class=\"d-flex position-absolute top-50 end-0 translate-middle-y me-2 btn p-0 border-0 bg-transparent\"\n (click)=\"onClickFieldAction($event, field)\">\n <svg cIcon class=\"text-primary\" [name]=\"field.actionButton.icon\" size=\"xl\"></svg>\n </button>\n }\n @if (multiForm.controls[field.controlName]?.touched || isFormSubmitted) {\n @if (multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['pattern']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is invalid</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['minlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Minimum length {{ field?.validations?.minLength }} characters is required\n </small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['maxlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Maximum length {{ field?.validations?.maxLength }} characters is allowed\n </small>\n }\n }\n }\n </div>\n }\n\n <!-- Select Inputs -->\n @else if (field.type === FormFieldType.Select || field.type === inputType?.colorSelect) {\n <ng-container>\n <c-multi-select\n [multiple]=\"field?.multiple || false\"\n [allowCreateOptions]=\"field?.allowCreateOptions || false\"\n [search]=\"field?.allowCreateOptions || field?.allowSearch || false\"\n [clearSearchOnSelect]=\"true\"\n [selectionType]=\"field?.selectionType || 'tags'\"\n [cleaner]=\"field?.allowCleaner || true\"\n [formControlName]=\"field.controlName\"\n [placeholder]=\"field.placeholder || 'Select'\"\n [appMultiSelectStyler]=\"field.type === inputType?.colorSelect\"\n [options]=\"colorCodes$\"\n [optionsMaxHeight]=\"400\"\n [ngClass]=\"{\n 'form-invalid': (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n (valueChange)=\"onValueChange($event, field.controlName)\"\n [ngStyle]=\"field.styles?.field\">\n @if (field.type === inputType?.colorSelect) {\n @for (option of colorCodes$; track $index) {\n <c-multi-select-option [value]=\"option?.label\">\n <label class=\"d-flex gap-2\">\n <span class=\"color-box\" [style.background-color]=\"option?.value\"></span>\n {{ option.label }}\n </label>\n </c-multi-select-option>\n }\n } @else {\n @for (option of field.options; track $index) {\n <c-multi-select-option [value]=\"option?.value\">\n {{ option.label }}\n </c-multi-select-option>\n }\n }\n </c-multi-select>\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n }\n }\n </ng-container>\n }\n\n <!-- Date input -->\n @else if (field.type === FormFieldType.Date) {\n <ng-container>\n <input\n type=\"text\"\n [placeholder]=\"field?.label || 'Select Date'\"\n class=\"form-control\"\n [ngClass]=\"{\n 'form-invalid': (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n (bsValueChange)=\"onDateValueChange($event, field.controlName)\"\n [formControlName]=\"field.controlName\"\n [dateInputFormat]=\"configurationService?.allConfigValues()?.defaultDateFormat || 'MM/DD/YYYY'\"\n [bsConfig]=\"{\n containerClass: 'pongrass-red-datepicker',\n showWeekNumbers: false,\n adaptivePosition: true,\n useUtc: false\n }\"\n bsDatepicker\n [ngStyle]=\"field.styles?.field\" />\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n }\n }\n </ng-container>\n }\n <!-- Textarea -->\n @else if (field.type === FormFieldType.Textarea) {\n <ng-container>\n <textarea\n cFormControl\n [id]=\"field.controlName\"\n [rows]=\"field?.textareaRows || 4\"\n [columns]=\"field?.textareaColumns || 4\"\n [placeholder]=\"field.placeholder || ''\"\n [ngClass]=\"{\n 'form-invalid border-danger border border-2':\n (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n [formControlName]=\"field.controlName\"\n [ngStyle]=\"field.styles?.field\"></textarea>\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['minlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Minimum length {{ field?.validations?.minLength }} characters is required\n </small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['maxlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Maximum length {{ field?.validations?.maxLength }} characters is allowed\n </small>\n }\n }\n </ng-container>\n }\n <!-- Checkbox -->\n @else if (field.type === FormFieldType.Checkbox) {\n <div class=\"no-label-margin\">\n <input cFormCheckInput [id]=\"field.controlName\" type=\"checkbox\" [formControlName]=\"field.controlName\" [ngStyle]=\"field.styles?.field\" />\n <label cFormCheckLabel [for]=\"field.controlName\" class=\"ms-2\" [ngStyle]=\"field.styles?.label\">{{ field.label }}</label>\n </div>\n }\n <!-- Decimal input -->\n @else if (field.type === FormFieldType.Float) {\n <ng-container>\n <input\n cFormControl\n [id]=\"field.controlName\"\n type=\"number\"\n class=\"me-2\"\n [formControlName]=\"field.controlName\"\n [appDecimalInput]=\"field.validations?.precision || 2\"\n [ngClass]=\"{\n 'form-invalid border-danger border border-2':\n (multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors\n }\"\n [min]=\"field.validations?.min\"\n [max]=\"field.validations?.max\"\n [ngStyle]=\"field.styles?.field\" />\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['pattern']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is invalid</small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['minlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Minimum length {{ field?.validations?.minLength }} characters is required\n </small>\n } @else if (multiForm.controls[field.controlName]?.errors?.['maxlength']) {\n <small class=\"text-danger fst-italic form-invalid-label\">\n Maximum length {{ field?.validations?.maxLength }} characters is allowed\n </small>\n }\n }\n </ng-container>\n } @else if (field.type === FormFieldType.Edition) {\n <ng-container>\n <app-edition-list-grouped\n (selectedEditionsChange)=\"onEditionChange($event)\"\n [multiple]=\"field?.multiple || true\"\n [hasFormError]=\"isFormSubmitted && multiForm.controls[field.controlName]?.errors\">\n </app-edition-list-grouped>\n @if ((multiForm.controls[field.controlName]?.touched || isFormSubmitted) && multiForm.controls[field.controlName]?.errors) {\n @if (multiForm.controls[field.controlName]?.errors?.['required']) {\n <small class=\"text-danger fst-italic form-invalid-label\">{{ field?.label }} is required</small>\n }\n }\n </ng-container>\n }\n }\n </div>\n }\n\n @if (field?.type === FormFieldType.Separator) {\n <div [class]=\"'field-' + field.type\" [ngClass]=\"field.colspan ? 'col-md-' + field.colspan : 'col'\"></div>\n }\n @if (field?.type === FormFieldType.FormHeader) {\n <div [class]=\"'fs-6 fw-bold my-2 field-' + field.type\" [ngClass]=\"field.colspan ? 'col-md-' + field.colspan : 'col'\">{{ field?.label }}</div>\n }\n }\n </div>\n }\n</form>\n", styles: [".no-label-margin{margin-top:1.6rem}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.h-135{height:135px}.single-line-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;display:block}.label-multiform{font-size:16px;font-weight:400}.field-checkbox{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: CircularFocusDirective, selector: "[appCircularFocus]", inputs: ["formId", "formGroup"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$1.MultiSelectComponent, selector: "c-multi-select", inputs: ["allowCreateOptions", "cleaner", "clearSearchOnSelect", "disabled", "loading", "multiple", "options", "optionsMaxHeight", "optionsStyle", "placeholder", "resetSelectionOnOptionsChange", "search", "searchNoResultsLabel", "searchValue", "selectAll", "selectAllLabel", "selectionType", "selectionTypeCounterText", "selectionTypeCounterTextPluralMap", "size", "value", "valid", "virtualScroller", "visibleItems", "itemSize", "itemMinWidth", "visible", "popperOptions"], outputs: ["searchValueChange", "valueChange", "visibleChange"], exportAs: ["cMultiSelect"] }, { kind: "component", type: i2$1.MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: ["optionsStyle", "label", "text", "visible", "disabled", "selected", "value", "active", "role"], outputs: ["selectedChange", "focusChange"], exportAs: ["cMultiSelectOption"] }, { kind: "directive", type: i2$1.FormDirective, selector: "form[cForm]", inputs: ["validated"] }, { kind: "directive", type: i2$1.FormCheckLabelDirective, selector: "label[cFormCheckLabel]" }, { kind: "directive", type: i2$1.FormCheckInputDirective, selector: "input[cFormCheckInput]", inputs: ["type", "indeterminate", "valid"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "directive", type: i2$1.FormLabelDirective, selector: "[cLabel]", inputs: ["cLabel", "sizing"] }, { kind: "directive", type: i5.IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "directive", type: DecimalInputDirective, selector: "[appDecimalInput]", inputs: ["appDecimalInput"] }, { kind: "directive", type: ShowTooltipIfTruncatedDirective, selector: "[appShowTooltipIfTruncated]", inputs: ["appShowTooltipIfTruncated"] }, { kind: "directive", type: i2$1.TooltipDirective, selector: "[cTooltip]", inputs: ["cTooltip", "cTooltipOptions", "cTooltipPlacement", "cTooltipRef", "cTooltipTrigger", "cTooltipVisible"], outputs: ["cTooltipVisibleChange"], exportAs: ["cTooltip"] }, { kind: "directive", type: i2$1.ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "tabindex", "type", "variant"], exportAs: ["cButton"] }, { kind: "directive", type: i8.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i8.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: MultiSelectStylerDirective, selector: "[appMultiSelectStyler]", inputs: ["appMultiSelectStyler", "options"] }] });
|
|
1492
1499
|
}
|
|
1493
1500
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MultiFormComponent, decorators: [{
|
|
1494
1501
|
type: Component,
|
|
@@ -1614,11 +1621,11 @@ class GenericFilterModelComponent {
|
|
|
1614
1621
|
this.configurationService.openFilterModal.set(false);
|
|
1615
1622
|
}
|
|
1616
1623
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: GenericFilterModelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1617
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: GenericFilterModelComponent, isStandalone: true, selector: "
|
|
1624
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: GenericFilterModelComponent, isStandalone: true, selector: "prg-ws-generic-filter-model", inputs: { filterFormConfiguration: "filterFormConfiguration", tableName: "tableName" }, outputs: { sendFilteredData: "sendFilteredData" }, viewQueries: [{ propertyName: "filterFormComponent", first: true, predicate: ["filterFormComponent"], descendants: true }], ngImport: i0, template: "<!-- Filter Modal -->\n<c-modal id=\"generic-filter-modal\" [visible]=\"isFilterModalActive\" (visibleChange)=\"handleFilterModal($event)\" size=\"md\" alignment=\"center\" scrollable>\n <c-modal-header>\n <h5 cModalTitle>Advanced Search</h5>\n <!-- <button (click)=\"commonService.openFilterModal.set(false)\" cButtonClose></button> -->\n </c-modal-header>\n <c-modal-body>\n @if (filterFormConfiguration) {\n <app-multi-form [config]=\"filterFormConfiguration\" #filterFormComponent></app-multi-form>\n }\n </c-modal-body>\n <c-modal-footer>\n <button (click)=\"close()\" cButton color=\"secondary\">Close</button>\n <button (click)=\"resetFilter()\" cButton color=\"primary\">Reset</button>\n <button cButton color=\"primary\" (click)=\"onFilter()\">Search</button>\n </c-modal-footer>\n</c-modal>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MultiFormModule }, { kind: "component", type: MultiFormComponent, selector: "app-multi-form", inputs: ["config", "showUnsavedFlags", "currentTableGridsSelectedIndex", "formId"], outputs: ["fieldAction", "formSavedUnsavedListen", "selectionChangeEvent"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.ModalBodyComponent, selector: "c-modal-body" }, { kind: "component", type: i2$1.ModalComponent, selector: "c-modal", inputs: ["alignment", "backdrop", "fullscreen", "keyboard", "id", "size", "transition", "role", "ariaModal", "scrollable", "visible"], outputs: ["visibleChange"], exportAs: ["cModal"] }, { kind: "component", type: i2$1.ModalFooterComponent, selector: "c-modal-footer" }, { kind: "component", type: i2$1.ModalHeaderComponent, selector: "c-modal-header" }, { kind: "directive", type: i2$1.ModalTitleDirective, selector: "[cModalTitle]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "tabindex", "type", "variant"], exportAs: ["cButton"] }] });
|
|
1618
1625
|
}
|
|
1619
1626
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: GenericFilterModelComponent, decorators: [{
|
|
1620
1627
|
type: Component,
|
|
1621
|
-
args: [{ selector: '
|
|
1628
|
+
args: [{ selector: 'prg-ws-generic-filter-model', standalone: true, imports: [CommonModule, MultiFormModule, ModalModule, ButtonModule], template: "<!-- Filter Modal -->\n<c-modal id=\"generic-filter-modal\" [visible]=\"isFilterModalActive\" (visibleChange)=\"handleFilterModal($event)\" size=\"md\" alignment=\"center\" scrollable>\n <c-modal-header>\n <h5 cModalTitle>Advanced Search</h5>\n <!-- <button (click)=\"commonService.openFilterModal.set(false)\" cButtonClose></button> -->\n </c-modal-header>\n <c-modal-body>\n @if (filterFormConfiguration) {\n <app-multi-form [config]=\"filterFormConfiguration\" #filterFormComponent></app-multi-form>\n }\n </c-modal-body>\n <c-modal-footer>\n <button (click)=\"close()\" cButton color=\"secondary\">Close</button>\n <button (click)=\"resetFilter()\" cButton color=\"primary\">Reset</button>\n <button cButton color=\"primary\" (click)=\"onFilter()\">Search</button>\n </c-modal-footer>\n</c-modal>\n" }]
|
|
1622
1629
|
}], ctorParameters: () => [], propDecorators: { filterFormConfiguration: [{
|
|
1623
1630
|
type: Input
|
|
1624
1631
|
}], tableName: [{
|
|
@@ -2506,6 +2513,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
|
|
|
2506
2513
|
}]
|
|
2507
2514
|
}], ctorParameters: () => [] });
|
|
2508
2515
|
|
|
2516
|
+
var ILOGIN_ACTION;
|
|
2517
|
+
(function (ILOGIN_ACTION) {
|
|
2518
|
+
ILOGIN_ACTION["SUBMIT"] = "submit";
|
|
2519
|
+
ILOGIN_ACTION["BACK_TO_LOGIN"] = "backToLogin";
|
|
2520
|
+
})(ILOGIN_ACTION || (ILOGIN_ACTION = {}));
|
|
2521
|
+
|
|
2522
|
+
class LoginComponent {
|
|
2523
|
+
configService = inject(ConfigurationServiceLib);
|
|
2524
|
+
rendererService = inject(Renderer2);
|
|
2525
|
+
formBuilder = inject(FormBuilder);
|
|
2526
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : [{}]));
|
|
2527
|
+
action = output();
|
|
2528
|
+
isFormSubmitted = input(false, ...(ngDevMode ? [{ debugName: "isFormSubmitted" }] : []));
|
|
2529
|
+
showInactivityLogoutMessage = input(false, ...(ngDevMode ? [{ debugName: "showInactivityLogoutMessage" }] : []));
|
|
2530
|
+
loginForm;
|
|
2531
|
+
contactSupportValue;
|
|
2532
|
+
forgetPasswordValue;
|
|
2533
|
+
constructor() {
|
|
2534
|
+
this.contactSupportValue = '';
|
|
2535
|
+
this.forgetPasswordValue = '';
|
|
2536
|
+
}
|
|
2537
|
+
ngOnInit() {
|
|
2538
|
+
if (!this.config()) {
|
|
2539
|
+
throw new Error('Config is required');
|
|
2540
|
+
}
|
|
2541
|
+
else if (!this.config().title || !this.config().logoUrl) {
|
|
2542
|
+
throw new Error('Title and logo URL are required on the LoginForm Card');
|
|
2543
|
+
}
|
|
2544
|
+
this.initializeForm();
|
|
2545
|
+
this.initializeInitialValues();
|
|
2546
|
+
const lastUserName = localStorage.getItem(BrowserConstantsEnum.lastUserName);
|
|
2547
|
+
if (lastUserName) {
|
|
2548
|
+
this.loginForm.controls['uid'].setValue(lastUserName);
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2551
|
+
initializeForm() {
|
|
2552
|
+
this.loginForm = this.formBuilder.group({
|
|
2553
|
+
uid: ['', [Validators.required]],
|
|
2554
|
+
pwd: ['', [Validators.required]]
|
|
2555
|
+
});
|
|
2556
|
+
}
|
|
2557
|
+
onSubmit() {
|
|
2558
|
+
this.action.emit({ type: ILOGIN_ACTION.SUBMIT, data: this.loginForm });
|
|
2559
|
+
}
|
|
2560
|
+
initializeInitialValues() {
|
|
2561
|
+
if (this.configService.allConfigValues() && this.configService.allConfigValues()?.contactSupport) {
|
|
2562
|
+
if (this.configService.allConfigValues()?.contactSupport?.startsWith('http')) {
|
|
2563
|
+
this.contactSupportValue = this.configService.allConfigValues()?.contactSupport || '';
|
|
2564
|
+
this.rendererService.setAttribute(document.getElementById('contact-us'), 'target', '_blank');
|
|
2565
|
+
}
|
|
2566
|
+
else {
|
|
2567
|
+
this.contactSupportValue = `mailto:${this.configService.allConfigValues()?.contactSupport}`;
|
|
2568
|
+
}
|
|
2569
|
+
}
|
|
2570
|
+
// if (this.configService.allConfigValues()?.forgetPassword.startsWith('http')) {
|
|
2571
|
+
// this.forgetPasswordValue = this.configService.allConfigValues()?.forgetPassword;
|
|
2572
|
+
// this.rendererService.setAttribute(document.getElementById('forget-password'), 'target', '_blank');
|
|
2573
|
+
// } else {
|
|
2574
|
+
// this.forgetPasswordValue = `mailto:${this.configService.allConfigValues()?.forgetPassword}`;
|
|
2575
|
+
// }
|
|
2576
|
+
}
|
|
2577
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2578
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: LoginComponent, isStandalone: false, selector: "prg-ws-login", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, isFormSubmitted: { classPropertyName: "isFormSubmitted", publicName: "isFormSubmitted", isSignal: true, isRequired: false, transformFunction: null }, showInactivityLogoutMessage: { classPropertyName: "showInactivityLogoutMessage", publicName: "showInactivityLogoutMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: "action" }, ngImport: i0, template: "<div\r\n class=\"container login-wrapper\"\r\n appBackgroundImage\r\n [random]=\"config()?.backgroundDirective?.random\"\r\n [backgroundImage]=\"config()?.backgroundDirective?.backgroundImages\">\r\n <div class=\"row align-items-center justify-content-center vh-100\">\r\n <div class=\"col-xxl-3 col-xl-4 col-lg-6 col-12 login-fields glass-card\">\r\n <div class=\"logo-wrapper text-center\">\r\n <img [src]=\"config()?.logoUrl\" alt=\"pongrass-logo\" class=\"img-fluid max-w-320\" />\r\n <p class=\"fs-19 login-card-title\">Maintenance Portal</p>\r\n </div>\r\n <div class=\"mt-5 d-flex align-items-center justify-content-center\">\r\n @if (showInactivityLogoutMessage()) {\r\n <c-alert color=\"danger\" class=\"text-center\">You have been logged out due to inactivity!</c-alert>\r\n }\r\n <form cForm [formGroup]=\"loginForm\" class=\"needs-validation max-w-300\" [validated]=\"isFormSubmitted()\" noValidate (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-4\">\r\n <c-input-group class=\"mb-3\">\r\n <span cInputGroupText id=\"group-username-login\" class=\"transparent-input\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"width: 20px\">\r\n <path\r\n d=\"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\" />\r\n </svg>\r\n </span>\r\n\r\n <input\r\n cFormControl\r\n id=\"txt-auth-username\"\r\n type=\"text\"\r\n sizing=\"lg\"\r\n formControlName=\"uid\"\r\n required\r\n autocomplete=\"username\"\r\n class=\"transparent-input text-white\"\r\n [placeholder]=\"config()?.usernamePlaceholder\" />\r\n <c-form-feedback [valid]=\"false\">User Name is required.</c-form-feedback>\r\n </c-input-group>\r\n </div>\r\n <div class=\"mb-4\">\r\n <c-input-group class=\"mb-3\">\r\n <span cInputGroupText id=\"group-password-login\" class=\"transparent-input\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" style=\"width: 20px\">\r\n <path\r\n d=\"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\" />\r\n </svg>\r\n </span>\r\n <input\r\n cFormPassword\r\n id=\"txt-auth-password\"\r\n type=\"password\"\r\n sizing=\"lg\"\r\n formControlName=\"pwd\"\r\n required\r\n autocomplete=\"current-password\"\r\n class=\"transparent-input text-white\"\r\n [placeholder]=\"config()?.passwordPlaceholder\" />\r\n\r\n <c-form-feedback [valid]=\"false\">Password is required.</c-form-feedback>\r\n </c-input-group>\r\n </div>\r\n\r\n <div class=\"submit-form mt-4\">\r\n <button type=\"submit\" cButton color=\"dark\" size=\"lg\" class=\"w-100 btn btn-primary text-white fw-semibold\">\r\n {{ config()?.submitButtonText }}\r\n </button>\r\n </div>\r\n @if (configService.allConfigValues()?.project?.currentVersion) {\r\n <div class=\"mt-4 text-center pt-8\">{{ 'v' + configService.allConfigValues()?.project?.currentVersion || '' }}</div>\r\n }\r\n @if (configService.allConfigValues()?.project?.copyrightYear) {\r\n <div class=\"mt-2 text-center copyright-text pt-8\">\r\n {{ '©' + configService.allConfigValues()?.project?.copyrightYear + ' ' + configService.allConfigValues()?.project?.brandName }}\r\n </div>\r\n }\r\n </form>\r\n\r\n @if (contactSupportValue) {\r\n <div class=\"mt-4 fs-5\">\r\n Don't have an account?\r\n <span class=\"cursor-pointer\">\r\n <a [href]=\"contactSupportValue\" class=\"text-decoration-none primary-text\" id=\"contact-us\">Contact Support</a>\r\n </span>\r\n </div>\r\n }\r\n\r\n <div class=\"mt-4 fs-5 text-center\">\r\n <span class=\"cursor-pointer\">\r\n <!-- <a [href]=\"forgetPasswordValue\" class=\"text-decoration-none primary-text\" id=\"forget-password\">Forget Password?</a> -->\r\n <!-- <a class=\"text-decoration-none text-white\" id=\"forget-password\" (click)=\"goToForgetPassword()\">Forget Password?</a> -->\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["#txt-auth-password,#txt-auth-username{border-bottom-right-radius:4px;border-top-right-radius:4px}.max-w-300{width:300px}.pt-8{font-size:10.66px}.login-card-title{color:#fff}.form-invalid .form-multi-select-input-group,.form-invalid .date-picker-input-group{border:2px solid #e55353}.glass-card{padding:1rem;color:#fff;background:#32241980;border-radius:4px;box-shadow:0 8px 32px #0000001a,inset 0 1px #ffffff80,inset 0 -1px #ffffff1a,inset 0 0 #fff0;position:relative;overflow:hidden;max-width:400px}.glass-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent)}.glass-card:after{content:\"\";position:absolute;top:0;left:0;width:1px;height:100%;background:linear-gradient(180deg,rgba(255,255,255,.8),transparent,rgba(255,255,255,.3))}.transparent-input{background-color:transparent;border:1px solid #8a9db2;outline:none}.transparent-input:focus{background-color:transparent}.transparent-input::placeholder{color:#8a9db2;font-size:16px}\n"], dependencies: [{ kind: "directive", type: BackgroundImageDirective, selector: "[appBackgroundImage]", inputs: ["random", "backgroundImage"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormDirective, selector: "form[cForm]", inputs: ["validated"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "component", type: i2$1.FormFeedbackComponent, selector: "c-form-feedback", inputs: ["tooltip", "valid"] }, { kind: "directive", type: i2$1.FormPasswordDirective, selector: "input[cFormPassword]", inputs: ["ariaLabelToggler", "disabled", "floatingLabel", "readOnly", "sizing", "valid", "showPassword"] }, { kind: "component", type: i2$1.InputGroupComponent, selector: "c-input-group", inputs: ["sizing"] }, { kind: "directive", type: i2$1.InputGroupTextDirective, selector: "[cInputGroupText]" }, { kind: "directive", type: i2$1.ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "tabindex", "type", "variant"], exportAs: ["cButton"] }, { kind: "component", type: i2$1.AlertComponent, selector: "c-alert", inputs: ["color", "role", "variant", "dismissible", "fade", "visible"], outputs: ["visibleChange"], exportAs: ["cAlert"] }] });
|
|
2579
|
+
}
|
|
2580
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: LoginComponent, decorators: [{
|
|
2581
|
+
type: Component,
|
|
2582
|
+
args: [{ selector: 'prg-ws-login', standalone: false, template: "<div\r\n class=\"container login-wrapper\"\r\n appBackgroundImage\r\n [random]=\"config()?.backgroundDirective?.random\"\r\n [backgroundImage]=\"config()?.backgroundDirective?.backgroundImages\">\r\n <div class=\"row align-items-center justify-content-center vh-100\">\r\n <div class=\"col-xxl-3 col-xl-4 col-lg-6 col-12 login-fields glass-card\">\r\n <div class=\"logo-wrapper text-center\">\r\n <img [src]=\"config()?.logoUrl\" alt=\"pongrass-logo\" class=\"img-fluid max-w-320\" />\r\n <p class=\"fs-19 login-card-title\">Maintenance Portal</p>\r\n </div>\r\n <div class=\"mt-5 d-flex align-items-center justify-content-center\">\r\n @if (showInactivityLogoutMessage()) {\r\n <c-alert color=\"danger\" class=\"text-center\">You have been logged out due to inactivity!</c-alert>\r\n }\r\n <form cForm [formGroup]=\"loginForm\" class=\"needs-validation max-w-300\" [validated]=\"isFormSubmitted()\" noValidate (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-4\">\r\n <c-input-group class=\"mb-3\">\r\n <span cInputGroupText id=\"group-username-login\" class=\"transparent-input\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"width: 20px\">\r\n <path\r\n d=\"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\" />\r\n </svg>\r\n </span>\r\n\r\n <input\r\n cFormControl\r\n id=\"txt-auth-username\"\r\n type=\"text\"\r\n sizing=\"lg\"\r\n formControlName=\"uid\"\r\n required\r\n autocomplete=\"username\"\r\n class=\"transparent-input text-white\"\r\n [placeholder]=\"config()?.usernamePlaceholder\" />\r\n <c-form-feedback [valid]=\"false\">User Name is required.</c-form-feedback>\r\n </c-input-group>\r\n </div>\r\n <div class=\"mb-4\">\r\n <c-input-group class=\"mb-3\">\r\n <span cInputGroupText id=\"group-password-login\" class=\"transparent-input\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" style=\"width: 20px\">\r\n <path\r\n d=\"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\" />\r\n </svg>\r\n </span>\r\n <input\r\n cFormPassword\r\n id=\"txt-auth-password\"\r\n type=\"password\"\r\n sizing=\"lg\"\r\n formControlName=\"pwd\"\r\n required\r\n autocomplete=\"current-password\"\r\n class=\"transparent-input text-white\"\r\n [placeholder]=\"config()?.passwordPlaceholder\" />\r\n\r\n <c-form-feedback [valid]=\"false\">Password is required.</c-form-feedback>\r\n </c-input-group>\r\n </div>\r\n\r\n <div class=\"submit-form mt-4\">\r\n <button type=\"submit\" cButton color=\"dark\" size=\"lg\" class=\"w-100 btn btn-primary text-white fw-semibold\">\r\n {{ config()?.submitButtonText }}\r\n </button>\r\n </div>\r\n @if (configService.allConfigValues()?.project?.currentVersion) {\r\n <div class=\"mt-4 text-center pt-8\">{{ 'v' + configService.allConfigValues()?.project?.currentVersion || '' }}</div>\r\n }\r\n @if (configService.allConfigValues()?.project?.copyrightYear) {\r\n <div class=\"mt-2 text-center copyright-text pt-8\">\r\n {{ '©' + configService.allConfigValues()?.project?.copyrightYear + ' ' + configService.allConfigValues()?.project?.brandName }}\r\n </div>\r\n }\r\n </form>\r\n\r\n @if (contactSupportValue) {\r\n <div class=\"mt-4 fs-5\">\r\n Don't have an account?\r\n <span class=\"cursor-pointer\">\r\n <a [href]=\"contactSupportValue\" class=\"text-decoration-none primary-text\" id=\"contact-us\">Contact Support</a>\r\n </span>\r\n </div>\r\n }\r\n\r\n <div class=\"mt-4 fs-5 text-center\">\r\n <span class=\"cursor-pointer\">\r\n <!-- <a [href]=\"forgetPasswordValue\" class=\"text-decoration-none primary-text\" id=\"forget-password\">Forget Password?</a> -->\r\n <!-- <a class=\"text-decoration-none text-white\" id=\"forget-password\" (click)=\"goToForgetPassword()\">Forget Password?</a> -->\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["#txt-auth-password,#txt-auth-username{border-bottom-right-radius:4px;border-top-right-radius:4px}.max-w-300{width:300px}.pt-8{font-size:10.66px}.login-card-title{color:#fff}.form-invalid .form-multi-select-input-group,.form-invalid .date-picker-input-group{border:2px solid #e55353}.glass-card{padding:1rem;color:#fff;background:#32241980;border-radius:4px;box-shadow:0 8px 32px #0000001a,inset 0 1px #ffffff80,inset 0 -1px #ffffff1a,inset 0 0 #fff0;position:relative;overflow:hidden;max-width:400px}.glass-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent)}.glass-card:after{content:\"\";position:absolute;top:0;left:0;width:1px;height:100%;background:linear-gradient(180deg,rgba(255,255,255,.8),transparent,rgba(255,255,255,.3))}.transparent-input{background-color:transparent;border:1px solid #8a9db2;outline:none}.transparent-input:focus{background-color:transparent}.transparent-input::placeholder{color:#8a9db2;font-size:16px}\n"] }]
|
|
2583
|
+
}], ctorParameters: () => [], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], action: [{ type: i0.Output, args: ["action"] }], isFormSubmitted: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFormSubmitted", required: false }] }], showInactivityLogoutMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showInactivityLogoutMessage", required: false }] }] } });
|
|
2584
|
+
|
|
2585
|
+
class LoginModule {
|
|
2586
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: LoginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2587
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: LoginModule, declarations: [LoginComponent], imports: [CommonModule,
|
|
2588
|
+
BackgroundImageDirective,
|
|
2589
|
+
FormsModule,
|
|
2590
|
+
ReactiveFormsModule,
|
|
2591
|
+
FormModule,
|
|
2592
|
+
ButtonModule,
|
|
2593
|
+
SpinnerModule,
|
|
2594
|
+
FormPasswordDirective,
|
|
2595
|
+
IconModule,
|
|
2596
|
+
AlertModule], exports: [LoginComponent] });
|
|
2597
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: LoginModule, imports: [CommonModule,
|
|
2598
|
+
FormsModule,
|
|
2599
|
+
ReactiveFormsModule,
|
|
2600
|
+
FormModule,
|
|
2601
|
+
ButtonModule,
|
|
2602
|
+
SpinnerModule,
|
|
2603
|
+
IconModule,
|
|
2604
|
+
AlertModule] });
|
|
2605
|
+
}
|
|
2606
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: LoginModule, decorators: [{
|
|
2607
|
+
type: NgModule,
|
|
2608
|
+
args: [{
|
|
2609
|
+
declarations: [LoginComponent],
|
|
2610
|
+
imports: [
|
|
2611
|
+
CommonModule,
|
|
2612
|
+
BackgroundImageDirective,
|
|
2613
|
+
FormsModule,
|
|
2614
|
+
ReactiveFormsModule,
|
|
2615
|
+
FormModule,
|
|
2616
|
+
ButtonModule,
|
|
2617
|
+
SpinnerModule,
|
|
2618
|
+
FormPasswordDirective,
|
|
2619
|
+
IconModule,
|
|
2620
|
+
AlertModule
|
|
2621
|
+
],
|
|
2622
|
+
exports: [LoginComponent]
|
|
2623
|
+
}]
|
|
2624
|
+
}] });
|
|
2625
|
+
|
|
2509
2626
|
/*
|
|
2510
2627
|
* Public API Surface of utils
|
|
2511
2628
|
*/
|
|
@@ -2514,5 +2631,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
|
|
|
2514
2631
|
* Generated bundle index. Do not edit.
|
|
2515
2632
|
*/
|
|
2516
2633
|
|
|
2517
|
-
export { BackgroundImageDirective, CheckboxCellRendererComponent, CircularFocusDirective, ColorCellRendererComponent, CommentsButtonCellRendererComponent, ConfigurationServiceLib, CustomSelectFilterComponent, DecimalInputDirective, EditionListGroupedComponent, ExcelType, ExportToExcelNames, FormFieldType, GenericFilterModelComponent, ITableGridConfiguration, ITableGridPagination, IndustryUpdateListboxCellRendererComponent, MultiFormComponent, MultiFormModule, MultiSelectStylerDirective, PageStatusCellRendererComponent, ShowTooltipIfTruncatedDirective, StatusSelectCellRendererComponent, TableGridComponent, TableGridModule, UtilsService, convertDateShort, convertIsoToFormat, convertToISOnString, regionalDateFormat };
|
|
2634
|
+
export { BackgroundImageDirective, CheckboxCellRendererComponent, CircularFocusDirective, ColorCellRendererComponent, CommentsButtonCellRendererComponent, ConfigurationServiceLib, CustomSelectFilterComponent, DecimalInputDirective, EditionListGroupedComponent, ExcelType, ExportToExcelNames, FormFieldType, GenericFilterModelComponent, ILOGIN_ACTION, ITableGridConfiguration, ITableGridPagination, IndustryUpdateListboxCellRendererComponent, LoginComponent, LoginModule, MultiFormComponent, MultiFormModule, MultiSelectStylerDirective, PageStatusCellRendererComponent, ShowTooltipIfTruncatedDirective, StatusSelectCellRendererComponent, TableGridComponent, TableGridModule, UtilsService, convertDateShort, convertIsoToFormat, convertToISOnString, regionalDateFormat };
|
|
2518
2635
|
//# sourceMappingURL=pongrass-utils.mjs.map
|