ngx-techlify-core 18.33.0 → 18.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/column-selector/column-config.model.mjs +1 -1
- package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +53 -38
- package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +44 -53
- package/esm2022/lib/subscription/subscription-listing/subscription-listing.module.mjs +8 -4
- package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.component.mjs +3 -3
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.mjs +18 -0
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.mjs +42 -0
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +40 -0
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.mjs +18 -0
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +70 -0
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +48 -0
- package/esm2022/lib/timeline-activity/timeline-activity.service.mjs +18 -0
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/ngx-techlify-core.mjs +434 -223
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/column-selector/column-config.model.d.ts +1 -0
- package/lib/column-selector/column-selector/column-selector.component.d.ts +7 -3
- package/lib/subscription/subscription-listing/subscription-listing.component.d.ts +4 -10
- package/lib/subscription/subscription-listing/subscription-listing.module.d.ts +2 -1
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.d.ts +7 -0
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.d.ts +17 -0
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.d.ts +13 -0
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.d.ts +7 -0
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.d.ts +20 -0
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.d.ts +15 -0
- package/lib/timeline-activity/timeline-activity.service.d.ts +8 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -13,7 +13,7 @@ import { Title } from '@angular/platform-browser';
|
|
|
13
13
|
import moment from 'moment';
|
|
14
14
|
import * as i1$1 from '@angular/router';
|
|
15
15
|
import { RouteReuseStrategy, RouterModule, NavigationEnd, RouterLink } from '@angular/router';
|
|
16
|
-
import * as
|
|
16
|
+
import * as i11 from '@angular/material/sort';
|
|
17
17
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
18
18
|
import * as i2 from '@angular/flex-layout/extended';
|
|
19
19
|
import * as i3 from '@angular/common';
|
|
@@ -63,11 +63,11 @@ import { MatProgressBarModule, MatProgressBar } from '@angular/material/progress
|
|
|
63
63
|
import * as i9$3 from '@angular/cdk/scrolling';
|
|
64
64
|
import * as i9$4 from '@angular/material/tabs';
|
|
65
65
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
66
|
-
import * as i11 from '@angular/material/datepicker';
|
|
66
|
+
import * as i11$1 from '@angular/material/datepicker';
|
|
67
67
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
68
68
|
import * as XLSX from 'xlsx';
|
|
69
69
|
import { FlexLayoutModule, FlexModule } from '@angular/flex-layout';
|
|
70
|
-
import * as i11$
|
|
70
|
+
import * as i11$2 from '@angular/material/progress-spinner';
|
|
71
71
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
72
72
|
import * as i5$2 from '@angular/material/divider';
|
|
73
73
|
import { MatDividerModule } from '@angular/material/divider';
|
|
@@ -677,7 +677,7 @@ let DataTableComponent = class DataTableComponent {
|
|
|
677
677
|
//Until Destroy uses it.
|
|
678
678
|
}
|
|
679
679
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
680
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataTableComponent, selector: "app-data-table", inputs: { data: "data", config: "config", selection: "selection", elementId: "elementId" }, outputs: { action: "action", selctionChange: "selctionChange", rowClick: "rowClick", tableScroll: "tableScroll", sortChanged: "sortChanged" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div fxLayout=\"column\" [ngClass]=\"{\n 'mat-elevation-z1': !config.disableElevation\n }\" class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\" [ngStyle]=\"config.style\">\n <table mat-table [dataSource]=\"data\" matSort [id]=\"elementId\">\n <!-- Checkbox Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width:60px\">\n <mat-checkbox *ngIf=\"selection\" (change)=\"$event ? masterToggle() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" style=\"width:60px\">\n <mat-checkbox *ngIf=\"selection\" (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let index = index\">\n {{ (index + 1) }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"action-width d-print-none\">\n {{ config.customActionLabel }}\n </th>\n\n <td mat-cell *matCellDef=\"let element; let index = index\" class=\"d-print-none\">\n <div>\n <button *ngIf=\"\n config.actionsConfig.download && element[config.downloadLink]\n \" type=\"button\" mat-icon-button (click)=\"downloadClicked($event, element)\">\n <mat-icon>vertical_align_bottom</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.edit\" [disabled]=\"!this.checkEdit(element)\" type=\"button\"\n mat-icon-button (click)=\"editClicked($event, element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.print\" [disabled]=\"!this.checkPrint(element)\" type=\"button\"\n mat-icon-button (click)=\"printClicked($event,element)\">\n <mat-icon>print</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.view\" [disabled]=\"!this.checkView(element)\" type=\"button\"\n mat-icon-button (click)=\"viewClicked($event, element)\">\n <mat-icon>description</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.deactivate\" type=\"button\" mat-icon-button\n (click)=\"deactivateClicked($event, element)\">\n <mat-icon>delete</mat-icon>\n </button>\n\n <button #menuTrigger=\"matMenuTrigger\" *ngIf=\"\n config.actionsConfig.actionsMenu &&\n this.checkActions(element) &&\n config.actionsConfig.actionsMenu.length > 0\n \" type=\"button\" mat-icon-button [matMenuTriggerFor]=\"actionsMenu\"\n (click)=\"actionMenuTriggerClick($event, menuTrigger)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n\n <mat-menu #actionsMenu=\"matMenu\">\n <div *ngFor=\"let item of config.actionsConfig.actionsMenu\">\n <button *ngIf=\"this.checkActionButton(element, item.value)\" mat-menu-item\n (click)=\"actionMenuClick($event, element, item.value)\">\n <span>{{ item.name }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n\n <!-- Actual Columns -->\n <ng-container matColumnDef=\"{{ column.value }}\" *ngFor=\"let column of config.columnsConfig\">\n <ng-container *ngIf=\"column?.sort; else noSort\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n {{ column.title }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef>\n {{ column.title }}\n </th>\n </ng-template>\n <ng-container *ngIf=\"column.dateField; else currencyField\">\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) | date:column.format? column.format: 'mediumDate' }}\n </div>\n </td>\n </ng-container>\n\n <ng-template #currencyField>\n <div *ngIf=\"column.currencyField; else normalField\">\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) | currency: \"$\":'symbol' : '1.0-0' }}\n </div>\n </td>\n </div>\n </ng-template>\n\n <ng-template #normalField>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) }}\n </div>\n </td>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"config.stickyHeader; else normalHeader\">\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns; sticky:true\"></tr>\n </ng-container>\n <ng-template #normalHeader>\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns;\">\n </tr>\n </ng-template>\n\n <div *ngIf=\"!config.enableRowClick\">\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\"></tr>\n </div>\n\n <div *ngIf=\"config.enableRowClick\">\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\" (click)=\"rowClicked($event, row)\"\n class=\"hoverable row-hover\"></tr>\n </div>\n </table>\n</div>", styles: ["table{width:100%}.mat-table{background:inherit}.mat-column-select{overflow:initial}td.mat-cell,td.mat-footer-cell,th.mat-header-cell{padding:0 2px}.action-width{min-width:175px;width:175px!important}.noOverFlow{overflow-x:auto;overflow-y:hidden}.scroll-container{max-height:400px;overflow:auto}.mat-header-row{position:sticky;top:0;background-color:inherit}tr.row-hover:hover{background-color:#dcdcdc}td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:24px!important}\n"], dependencies: [{ kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i2.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
680
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataTableComponent, selector: "app-data-table", inputs: { data: "data", config: "config", selection: "selection", elementId: "elementId" }, outputs: { action: "action", selctionChange: "selctionChange", rowClick: "rowClick", tableScroll: "tableScroll", sortChanged: "sortChanged" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div fxLayout=\"column\" [ngClass]=\"{\n 'mat-elevation-z1': !config.disableElevation\n }\" class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\" [ngStyle]=\"config.style\">\n <table mat-table [dataSource]=\"data\" matSort [id]=\"elementId\">\n <!-- Checkbox Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width:60px\">\n <mat-checkbox *ngIf=\"selection\" (change)=\"$event ? masterToggle() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" style=\"width:60px\">\n <mat-checkbox *ngIf=\"selection\" (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let index = index\">\n {{ (index + 1) }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"action-width d-print-none\">\n {{ config.customActionLabel }}\n </th>\n\n <td mat-cell *matCellDef=\"let element; let index = index\" class=\"d-print-none\">\n <div>\n <button *ngIf=\"\n config.actionsConfig.download && element[config.downloadLink]\n \" type=\"button\" mat-icon-button (click)=\"downloadClicked($event, element)\">\n <mat-icon>vertical_align_bottom</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.edit\" [disabled]=\"!this.checkEdit(element)\" type=\"button\"\n mat-icon-button (click)=\"editClicked($event, element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.print\" [disabled]=\"!this.checkPrint(element)\" type=\"button\"\n mat-icon-button (click)=\"printClicked($event,element)\">\n <mat-icon>print</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.view\" [disabled]=\"!this.checkView(element)\" type=\"button\"\n mat-icon-button (click)=\"viewClicked($event, element)\">\n <mat-icon>description</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.deactivate\" type=\"button\" mat-icon-button\n (click)=\"deactivateClicked($event, element)\">\n <mat-icon>delete</mat-icon>\n </button>\n\n <button #menuTrigger=\"matMenuTrigger\" *ngIf=\"\n config.actionsConfig.actionsMenu &&\n this.checkActions(element) &&\n config.actionsConfig.actionsMenu.length > 0\n \" type=\"button\" mat-icon-button [matMenuTriggerFor]=\"actionsMenu\"\n (click)=\"actionMenuTriggerClick($event, menuTrigger)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n\n <mat-menu #actionsMenu=\"matMenu\">\n <div *ngFor=\"let item of config.actionsConfig.actionsMenu\">\n <button *ngIf=\"this.checkActionButton(element, item.value)\" mat-menu-item\n (click)=\"actionMenuClick($event, element, item.value)\">\n <span>{{ item.name }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n\n <!-- Actual Columns -->\n <ng-container matColumnDef=\"{{ column.value }}\" *ngFor=\"let column of config.columnsConfig\">\n <ng-container *ngIf=\"column?.sort; else noSort\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n {{ column.title }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef>\n {{ column.title }}\n </th>\n </ng-template>\n <ng-container *ngIf=\"column.dateField; else currencyField\">\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) | date:column.format? column.format: 'mediumDate' }}\n </div>\n </td>\n </ng-container>\n\n <ng-template #currencyField>\n <div *ngIf=\"column.currencyField; else normalField\">\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) | currency: \"$\":'symbol' : '1.0-0' }}\n </div>\n </td>\n </div>\n </ng-template>\n\n <ng-template #normalField>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) }}\n </div>\n </td>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"config.stickyHeader; else normalHeader\">\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns; sticky:true\"></tr>\n </ng-container>\n <ng-template #normalHeader>\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns;\">\n </tr>\n </ng-template>\n\n <div *ngIf=\"!config.enableRowClick\">\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\"></tr>\n </div>\n\n <div *ngIf=\"config.enableRowClick\">\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\" (click)=\"rowClicked($event, row)\"\n class=\"hoverable row-hover\"></tr>\n </div>\n </table>\n</div>", styles: ["table{width:100%}.mat-table{background:inherit}.mat-column-select{overflow:initial}td.mat-cell,td.mat-footer-cell,th.mat-header-cell{padding:0 2px}.action-width{min-width:175px;width:175px!important}.noOverFlow{overflow-x:auto;overflow-y:hidden}.scroll-container{max-height:400px;overflow:auto}.mat-header-row{position:sticky;top:0;background-color:inherit}tr.row-hover:hover{background-color:#dcdcdc}td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:24px!important}\n"], dependencies: [{ kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i2.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
681
681
|
};
|
|
682
682
|
DataTableComponent = DataTableComponent_1 = __decorate([
|
|
683
683
|
UntilDestroy()
|
|
@@ -3582,7 +3582,7 @@ let UsersViewAllComponent = class UsersViewAllComponent extends TechlifyListingC
|
|
|
3582
3582
|
.subscribe(_ => this.alertService.addAlert('Password reset email sent', 'success'));
|
|
3583
3583
|
}
|
|
3584
3584
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UsersViewAllComponent, deps: [{ token: HttpService }, { token: AlertService }, { token: CurrentUserService }, { token: UserConfigService }, { token: i1.MatDialog }, { token: UserService }, { token: i1$5.UntypedFormBuilder }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3585
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UsersViewAllComponent, selector: "app-users-view-all", inputs: { clientId: "clientId", userTypeIds: "userTypeIds", title: "title", isAppAdminUser: "isAppAdminUser" }, usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"{'m-4':config?.userConfig?.showDefaultMargin}\">\n <mat-card class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items center gap-2\">\n <section class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"mb-0\">\n {{ title }}\n </h3>\n <mat-icon class=\"cursor-pointer\" matTooltip=\"New User\"\n *ngIf=\"config?.userConfig?.showAddUser && currentUserService?.hasPermission('user_create')\"\n (click)=\"createOrEditUser()\">add</mat-icon>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../import']\"\n *ngIf=\"config?.userConfig?.showImportButton && currentUserService?.hasPermission('user_create')\">\n Import User\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../roles']\" *ngIf=\"config?.userConfig?.showRoles\">\n <mat-icon>people</mat-icon>\n Roles\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"config?.userConfig?.showPermissions\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../configurations']\"\n *ngIf=\"config?.userConfig?.showConfigurations && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n toggle_on\n </span>\n </mat-icon>\n Configurations\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../restrictors']\"\n *ngIf=\"config?.userConfig?.showRestrictors && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n vpn_lock\n </span>\n </mat-icon>\n Restrictors\n </button>\n </section>\n <form [formGroup]=\"filterForm\" fxLayout fxLayoutAlign=\"end start\" fxLayoutGap=\"0.3rem\">\n <mat-form-field appearance=\"outline\" style=\"max-width: 150px;\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" matInput type=\"text\" name=\"search\" placeholder=\"Search by name, email\"\n formControlName=\"search\">\n </mat-form-field>\n <mat-form-field appearance=\"outline\" style=\"max-width: 150px;\">\n <mat-label>Role</mat-label>\n <app-searchable-selector apiUrl=\"api/roles\" [multiple]=\"true\" formControlName=\"role_ids\"\n titleField=\"label\"></app-searchable-selector>\n </mat-form-field>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"status\" multiple>\n <mat-button-toggle value=\"enabled\">Enabled</mat-button-toggle>\n <mat-button-toggle value=\"disabled\">Disabled</mat-button-toggle>\n </mat-button-toggle-group>\n </form>\n </mat-card-content>\n </mat-card>\n <mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Users\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\" matSort (matSortChange)=\"onSortChange($event)\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index;\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell mat-sort-header=\"name\" *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [routerLink]=\"[element?.id]\" class=\"text-decoration-none\">\n {{ element.name }}\n </a>\n <p class=\"mb-0 text-secondary\">\n <!-- !element?.user_client condition added to check if user has user_client record -->\n {{ !element?.user_client ? '' : element?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Email Column -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell mat-sort-header=\"email\" *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell mat-sort-header=\"user_type_id\" *matHeaderCellDef> User Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ getUserType(element) }} </td>\n </ng-container>\n\n <!-- Roles Column -->\n <ng-container matColumnDef=\"roles\">\n <th mat-header-cell *matHeaderCellDef> Role </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex justify-content-start align-items-center gap-1 flex-wrap text-light\">\n <span *ngFor=\"let role of element?.roles\" class=\"badge bg-secondary\">\n {{ role?.label }}\n </span>\n </div>\n </td>\n </ng-container>\n\n <!-- Last Login Column -->\n <ng-container matColumnDef=\"last_login\">\n <th mat-header-cell *matHeaderCellDef> Last Login </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.last_login | date:'medium' }}</td>\n </ng-container>\n\n <!-- Added By Column -->\n <ng-container matColumnDef=\"added_by\">\n <th mat-header-cell *matHeaderCellDef> Added By </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{ element?.creator?.name }}</p>\n <p class=\"text-secondary\">{{ element?.created_at | date }}</p>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Action </th>\n <td mat-cell *matCellDef=\"let element\">\n <div fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"5px\">\n <button type=\"button\" mat-icon-button [routerLink]=\"[getUserViewRoute(element)]\">\n <mat-icon>visibility</mat-icon>\n </button>\n\n <button *ngIf=\"currentUserService.hasPermission('user_update')\" type=\"button\" mat-icon-button\n (click)=\"createOrEditUser(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button *ngIf=\"currentUserService.hasPermission('user_delete')\" type=\"button\" mat-icon-button\n (click)=\"deleteUser(element)\">\n <mat-icon>delete</mat-icon>\n </button>\n\n <button *ngIf=\"currentUserService.hasPermission('techlify_rbac.user.reset_password')\" type=\"button\"\n mat-icon-button (click)=\"resetPassword(element)\" matTooltip=\"Reset User Password\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <app-user-enable-button [user]=\"element\" (onSave)=\"reload()\"></app-user-enable-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "component", type: UserEnableButtonComponent, selector: "app-user-enable-button", inputs: ["user", "isUseIcons"], outputs: ["onSave"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
3585
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UsersViewAllComponent, selector: "app-users-view-all", inputs: { clientId: "clientId", userTypeIds: "userTypeIds", title: "title", isAppAdminUser: "isAppAdminUser" }, usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"{'m-4':config?.userConfig?.showDefaultMargin}\">\n <mat-card class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items center gap-2\">\n <section class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"mb-0\">\n {{ title }}\n </h3>\n <mat-icon class=\"cursor-pointer\" matTooltip=\"New User\"\n *ngIf=\"config?.userConfig?.showAddUser && currentUserService?.hasPermission('user_create')\"\n (click)=\"createOrEditUser()\">add</mat-icon>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../import']\"\n *ngIf=\"config?.userConfig?.showImportButton && currentUserService?.hasPermission('user_create')\">\n Import User\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../roles']\" *ngIf=\"config?.userConfig?.showRoles\">\n <mat-icon>people</mat-icon>\n Roles\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"config?.userConfig?.showPermissions\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../configurations']\"\n *ngIf=\"config?.userConfig?.showConfigurations && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n toggle_on\n </span>\n </mat-icon>\n Configurations\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../restrictors']\"\n *ngIf=\"config?.userConfig?.showRestrictors && currentUser?.user_type_id === 2\">\n <mat-icon>\n <span class=\"material-icons-outlined\">\n vpn_lock\n </span>\n </mat-icon>\n Restrictors\n </button>\n </section>\n <form [formGroup]=\"filterForm\" fxLayout fxLayoutAlign=\"end start\" fxLayoutGap=\"0.3rem\">\n <mat-form-field appearance=\"outline\" style=\"max-width: 150px;\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" matInput type=\"text\" name=\"search\" placeholder=\"Search by name, email\"\n formControlName=\"search\">\n </mat-form-field>\n <mat-form-field appearance=\"outline\" style=\"max-width: 150px;\">\n <mat-label>Role</mat-label>\n <app-searchable-selector apiUrl=\"api/roles\" [multiple]=\"true\" formControlName=\"role_ids\"\n titleField=\"label\"></app-searchable-selector>\n </mat-form-field>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"status\" multiple>\n <mat-button-toggle value=\"enabled\">Enabled</mat-button-toggle>\n <mat-button-toggle value=\"disabled\">Disabled</mat-button-toggle>\n </mat-button-toggle-group>\n </form>\n </mat-card-content>\n </mat-card>\n <mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Users\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\" matSort (matSortChange)=\"onSortChange($event)\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index;\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell mat-sort-header=\"name\" *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [routerLink]=\"[element?.id]\" class=\"text-decoration-none\">\n {{ element.name }}\n </a>\n <p class=\"mb-0 text-secondary\">\n <!-- !element?.user_client condition added to check if user has user_client record -->\n {{ !element?.user_client ? '' : element?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Email Column -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell mat-sort-header=\"email\" *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell mat-sort-header=\"user_type_id\" *matHeaderCellDef> User Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ getUserType(element) }} </td>\n </ng-container>\n\n <!-- Roles Column -->\n <ng-container matColumnDef=\"roles\">\n <th mat-header-cell *matHeaderCellDef> Role </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex justify-content-start align-items-center gap-1 flex-wrap text-light\">\n <span *ngFor=\"let role of element?.roles\" class=\"badge bg-secondary\">\n {{ role?.label }}\n </span>\n </div>\n </td>\n </ng-container>\n\n <!-- Last Login Column -->\n <ng-container matColumnDef=\"last_login\">\n <th mat-header-cell *matHeaderCellDef> Last Login </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.last_login | date:'medium' }}</td>\n </ng-container>\n\n <!-- Added By Column -->\n <ng-container matColumnDef=\"added_by\">\n <th mat-header-cell *matHeaderCellDef> Added By </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{ element?.creator?.name }}</p>\n <p class=\"text-secondary\">{{ element?.created_at | date }}</p>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Action </th>\n <td mat-cell *matCellDef=\"let element\">\n <div fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"5px\">\n <button type=\"button\" mat-icon-button [routerLink]=\"[getUserViewRoute(element)]\">\n <mat-icon>visibility</mat-icon>\n </button>\n\n <button *ngIf=\"currentUserService.hasPermission('user_update')\" type=\"button\" mat-icon-button\n (click)=\"createOrEditUser(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button *ngIf=\"currentUserService.hasPermission('user_delete')\" type=\"button\" mat-icon-button\n (click)=\"deleteUser(element)\">\n <mat-icon>delete</mat-icon>\n </button>\n\n <button *ngIf=\"currentUserService.hasPermission('techlify_rbac.user.reset_password')\" type=\"button\"\n mat-icon-button (click)=\"resetPassword(element)\" matTooltip=\"Reset User Password\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <app-user-enable-button [user]=\"element\" (onSave)=\"reload()\"></app-user-enable-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "component", type: UserEnableButtonComponent, selector: "app-user-enable-button", inputs: ["user", "isUseIcons"], outputs: ["onSave"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
3586
3586
|
};
|
|
3587
3587
|
UsersViewAllComponent = __decorate([
|
|
3588
3588
|
UntilDestroy()
|
|
@@ -4016,7 +4016,7 @@ let TimelineFilterComponent = class TimelineFilterComponent {
|
|
|
4016
4016
|
provide: MatFormFieldControl,
|
|
4017
4017
|
useExisting: TimelineFilterComponent
|
|
4018
4018
|
}
|
|
4019
|
-
], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], ngImport: i0, template: "<ng-container [formGroup]=\"selectorForm\">\n <mat-form-field [appearance]=\"appearance\" class=\"fl-sm\">\n <mat-label>{{labelText}}</mat-label>\n <mat-select formControlName=\"select_value\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline.value\">\n {{timeline.viewValue}}\n </mat-option>\n </mat-select>\n <button *ngIf=\"showClearButton && timelineValue.value\" matSuffix mat-icon-button\n (click)=\"timelineValue.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-hint *ngIf=\"isCustomSelected && selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable\" fxLayout>\n <span [innerHTML]=\"selectedRangeLabel\" style=\"font-size: 10px;\"></span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-hint *ngIf=\"isCustomSelected && !selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable\" fxLayout>\n <span style=\"font-size: 10px;\">Select Range</span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-date-range-input class=\"offscreen-range-input\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"custom_date_from\" placeholder=\"From date\" readonly />\n <input matEndDate formControlName=\"custom_date_to\" placeholder=\"To date\" readonly />\n </mat-date-range-input>\n <mat-date-range-picker #picker></mat-date-range-picker>\n </mat-form-field>\n</ng-container>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.offscreen-range-input{position:absolute;opacity:0;pointer-events:none;display:flex!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i11.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i11.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i11.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
|
|
4019
|
+
], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], ngImport: i0, template: "<ng-container [formGroup]=\"selectorForm\">\n <mat-form-field [appearance]=\"appearance\" class=\"fl-sm\">\n <mat-label>{{labelText}}</mat-label>\n <mat-select formControlName=\"select_value\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline.value\">\n {{timeline.viewValue}}\n </mat-option>\n </mat-select>\n <button *ngIf=\"showClearButton && timelineValue.value\" matSuffix mat-icon-button\n (click)=\"timelineValue.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-hint *ngIf=\"isCustomSelected && selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable\" fxLayout>\n <span [innerHTML]=\"selectedRangeLabel\" style=\"font-size: 10px;\"></span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-hint *ngIf=\"isCustomSelected && !selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable\" fxLayout>\n <span style=\"font-size: 10px;\">Select Range</span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-date-range-input class=\"offscreen-range-input\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"custom_date_from\" placeholder=\"From date\" readonly />\n <input matEndDate formControlName=\"custom_date_to\" placeholder=\"To date\" readonly />\n </mat-date-range-input>\n <mat-date-range-picker #picker></mat-date-range-picker>\n </mat-form-field>\n</ng-container>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.offscreen-range-input{position:absolute;opacity:0;pointer-events:none;display:flex!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11$1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i11$1.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i11$1.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i11$1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
|
|
4020
4020
|
};
|
|
4021
4021
|
TimelineFilterComponent = TimelineFilterComponent_1 = __decorate([
|
|
4022
4022
|
UntilDestroy()
|
|
@@ -4129,7 +4129,7 @@ let LoginHistoryForUserComponent = class LoginHistoryForUserComponent {
|
|
|
4129
4129
|
//Until destroyed uses it
|
|
4130
4130
|
}
|
|
4131
4131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserComponent, deps: [{ token: HttpService }, { token: i1$5.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoginHistoryForUserComponent, selector: "app-login-history-for-user", inputs: { userId: "userId" }, ngImport: i0, template: "<div class=\"mat-typography m-4\">\n <form [formGroup]=\"historyFilterForm\" fxLayoutAlign=\" start center\">\n <app-timeline-filter formControlName=\"duration\" (selectionChange)=\"onTimelineChange($event)\"></app-timeline-filter>\n </form>\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"loginHistoryList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"login-history-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let loginHistory; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Last Login</th>\n <td mat-cell *matCellDef=\"let loginHistory;\">\n {{loginHistory?.created_at | date:'medium' }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n </section>\n</div>\n", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type:
|
|
4132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoginHistoryForUserComponent, selector: "app-login-history-for-user", inputs: { userId: "userId" }, ngImport: i0, template: "<div class=\"mat-typography m-4\">\n <form [formGroup]=\"historyFilterForm\" fxLayoutAlign=\" start center\">\n <app-timeline-filter formControlName=\"duration\" (selectionChange)=\"onTimelineChange($event)\"></app-timeline-filter>\n </form>\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"loginHistoryList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"login-history-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let loginHistory; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Last Login</th>\n <td mat-cell *matCellDef=\"let loginHistory;\">\n {{loginHistory?.created_at | date:'medium' }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n </section>\n</div>\n", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
4133
4133
|
};
|
|
4134
4134
|
LoginHistoryForUserComponent = __decorate([
|
|
4135
4135
|
UntilDestroy()
|
|
@@ -4431,7 +4431,7 @@ let AuditLogListComponent = class AuditLogListComponent extends TechlifyListingC
|
|
|
4431
4431
|
});
|
|
4432
4432
|
}
|
|
4433
4433
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListComponent, deps: [{ token: i1$1.Router }, { token: i1$6.DomSanitizer }, { token: i1$5.FormBuilder }, { token: AuditLogService }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4434
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"m-2\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-canter gap-2\" style=\"min-width: 200px\">\n <h3 class=\"mb-0\">\n Audit Logs\n </h3>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\" class=\"mt-1\"\n name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\"\n (valueChange)=\"filterChange($event)\" [objectType]=\"objectType\"\n [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <mat-icon (click)=\"logClicked(auditLog);$event.stopPropagation();\">visibility</mat-icon>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["isCSV", "fileName", "data", "tableId"], outputs: ["isExportingToExcel"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type:
|
|
4434
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"m-2\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-canter gap-2\" style=\"min-width: 200px\">\n <h3 class=\"mb-0\">\n Audit Logs\n </h3>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\" class=\"mt-1\"\n name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\"\n (valueChange)=\"filterChange($event)\" [objectType]=\"objectType\"\n [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <mat-icon (click)=\"logClicked(auditLog);$event.stopPropagation();\">visibility</mat-icon>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["isCSV", "fileName", "data", "tableId"], outputs: ["isExportingToExcel"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: ["filterForm", "objectId", "objectType"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
4435
4435
|
};
|
|
4436
4436
|
AuditLogListComponent = __decorate([
|
|
4437
4437
|
UntilDestroy()
|
|
@@ -4673,7 +4673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4673
4673
|
args: [{ selector: 'user-view', template: "<div class=\"mat-typography m-4\" *ngIf=\"user\">\n <h1 class=\"text-center\">{{user.name}}</h1>\n\n <div class=\"border\">\n <mat-tab-group>\n <mat-tab label=\"Basic Information\">\n <ng-template matTabContent>\n <div class=\"row m-4\">\n <div class=\"col-4\">\n <div class=\"bordered-section\">\n <div class=\"row\" *ngIf=\"currentUser?.user_type_id != 3\">\n <button type=\"button\" mat-icon-button (click)=\"editUser(user)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-stroked-button color=\"warn\" *ngIf=\"!user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('enable')\">\n Enable\n </button>\n <button mat-stroked-button color=\"primary\" *ngIf=\"user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('disable')\">Disable</button>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Name:</label>\n <div class=\"col-sm-8\">{{user?.name}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Email:</label>\n <div class=\"col-sm-8\">{{user?.email}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Type:</label>\n <div class=\"col-sm-8\">{{user?.type?.title}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Status:</label>\n <div class=\"col-sm-8\">{{user?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Role:</label>\n <div class=\"col-sm-8\">\n <span *ngFor=\"let role of user?.roles\">\n <button class=\"btn btn-outline-dark btn-xs mb-2\">{{role?.label}}</button>\n \n </span>\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Signature:</label>\n <div class=\"col-sm-8\">\n <span *ngIf=\"user?.signature\">\n <img src=\"{{user?.signature_url}}\" alt=\"\" width=\"250px\" />\n </span>\n <span *ngIf=\"!user?.signature\">\n No Signature Added\n </span>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Login History\">\n <ng-template matTabContent>\n <app-login-history-for-user [userId]=\"user?.id\"></app-login-history-for-user>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Activity Logs\">\n <ng-template matTabContent>\n <app-audit-log-list objectType=\"User\" [objectId]=\"user?.id\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Tenants\" *ngIf=\"currentUser?.user_type_id === UserTypeEnum.ADMIN\">\n <ng-template matTabContent>\n <app-user-clients-list [user]=\"user\"></app-user-clients-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Sessions\">\n <ng-template matTabContent>\n <app-user-sessions [user]=\"user\"></app-user-sessions>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n\n</div>", styles: [".user-node .page-title{margin:20px 0 0}.user-node #information-tabs-wrapper .nav-pills .nav-link{border-radius:0;border:1px solid #007bff;border-right:none;width:190px}.user-node #information-tabs-wrapper .tab-content{padding:20px;border:1px solid #007bff;width:calc(100vw - 200px)}\n"] }]
|
|
4674
4674
|
}], ctorParameters: () => [{ type: UserService }, { type: i1$1.ActivatedRoute }, { type: ConfigService }, { type: HttpService }, { type: i1.MatDialog }, { type: CurrentUserService }] });
|
|
4675
4675
|
|
|
4676
|
-
const routes$
|
|
4676
|
+
const routes$G = [
|
|
4677
4677
|
{ path: '', component: UsersViewAllComponent, canActivate: [AuthenticationGuard] },
|
|
4678
4678
|
{ path: ':id', component: UserViewComponent, canActivate: [AuthenticationGuard] },
|
|
4679
4679
|
{ path: ':id/app-admin-view', loadChildren: () => Promise.resolve().then(function () { return appAdminUserView_module; }).then(mod => mod.AppAdminUserViewModule), canActivate: [AuthenticationGuard] },
|
|
@@ -4684,12 +4684,12 @@ const routes$E = [
|
|
|
4684
4684
|
class UserRoutingProvider {
|
|
4685
4685
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4686
4686
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
4687
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
4687
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [RouterModule.forChild(routes$G), RouterModule] }); }
|
|
4688
4688
|
}
|
|
4689
4689
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, decorators: [{
|
|
4690
4690
|
type: NgModule,
|
|
4691
4691
|
args: [{
|
|
4692
|
-
imports: [RouterModule.forChild(routes$
|
|
4692
|
+
imports: [RouterModule.forChild(routes$G)],
|
|
4693
4693
|
exports: [RouterModule]
|
|
4694
4694
|
}]
|
|
4695
4695
|
}] });
|
|
@@ -5192,7 +5192,7 @@ let EntityFilesViewAllComponent = class EntityFilesViewAllComponent {
|
|
|
5192
5192
|
}
|
|
5193
5193
|
}
|
|
5194
5194
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntityFilesViewAllComponent, deps: [{ token: EntityFileService }, { token: i3.Location }, { token: AlertService }, { token: i1.MatDialog }, { token: i1$5.UntypedFormBuilder }, { token: ErrorHandlerService }, { token: CurrentUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5195
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EntityFilesViewAllComponent, selector: "app-entity-files-view-all", inputs: { entityId: "entityId", entityType: "entityType", viewOnly: "viewOnly", removeSearch: "removeSearch", hideTitleAndDetails: "hideTitleAndDetails", displayMode: "displayMode", allowMultipleFiles: "allowMultipleFiles", allowBulkUpdate: "allowBulkUpdate", viewMode: "viewMode", fileDropperHeight: "fileDropperHeight", isShowDragDropSection: "isShowDragDropSection", useTechlifyTags: "useTechlifyTags", techlifyTagCategories: "techlifyTagCategories", techlifyTagConfig: "techlifyTagConfig", title: "title", permission: "permission" }, ngImport: i0, template: "<div *ngIf=\"viewMode === 'list'\">\n <div fxLayout=\"column\" [fxHide]=\"!this.documentIds.length\" fxHide.xs fxHide.sm fxHide.lt-md>\n <mat-card class=\"update_card\" *ngIf=\"this.documentIds.length\">\n <mat-card-header>\n <mat-card-title>\n <div mat-dialog-title class=\"mt-2 ml-2 text-center\">\n <div>Update Selected Rows</div>\n </div>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content fxLayout=\"column\">\n <form [formGroup]=\"updateRowForm\">\n <div fxLayout=\"column\">\n\n <mat-form-field fxFlex=\"100%\" class=\"px-1\">\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"updateRowForm.get('title').value || updateRowForm.get('title').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"resetFieldValueOfRow('title', $event)\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('title').value || updateRowForm.get('title').value===0)\n && updateRowForm.get('title').valid\" (click)=\"bulkUpdate('title')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\" class=\"px-1\">\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n <button *ngIf=\"updateRowForm.get('details').value || updateRowForm.get('details').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"resetFieldValueOfRow('details', $event)\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('details').value || updateRowForm.get('details').value===0)\n && updateRowForm.get('details').valid\" (click)=\"bulkUpdate('details')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field modelType=\"entity-file\" formControlName=\"tag_ids\"\n placeholder=\"Enter new tag\">\n </app-techlify-tagger-tag-form-field>\n <button *ngIf=\"updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"resetFieldValueOfRow('tag_ids', $event)\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0)\n && updateRowForm.get('tag_ids').valid\" (click)=\"bulkUpdate('tag_ids')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n </ng-container>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n\n </div>\n\n <div>\n <div class=\"mat-typography\" *ngIf=\"!displayMode\">\n <div fxLayout=\"row\" fxLayoutGap=\"1rem\">\n <mat-card fxFlex>\n <mat-card-content>\n <div fxLayoutAlign=\"start center\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h3>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"!viewOnly && isShowCreateAction\" (click)=\"addEntityFile()\">\n add\n </mat-icon>\n <span fxFlex></span>\n <form [formGroup]=\"filterFormGroup\" fxLayout fxLayoutGap=\"0.3rem\">\n <mat-form-field *ngIf=\"!removeSearch\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Search\" name=\"title\"\n autocomplete=\"off\" />\n <button *ngIf=\"filters.title\" matSuffix mat-icon-button (click)=\"resetFieldValue($event, 'title')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field [categories]=\"techlifyTagCategories\" formControlName=\"tag_ids\"\n placeholder=\"Select Tags\" [config]=\"techlifyTagConfig\"></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n\n </form>\n </div>\n </mat-card-content>\n <mat-card-content class=\"entity-file-card p-0\">\n <table mat-table [dataSource]=\"entityFiles\" class=\"w-100\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1.5\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\">\n\n <!-- Select Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width:30px\">\n <mat-checkbox name=\"employee\" [(ngModel)]=\"isAllSelected\" (change)=\"selectAll()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let element\" style=\"width:30px\">\n <mat-checkbox name=\"employee[{{element?.id}}]\" (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"element.is_selected\" (change)=\"employeeListModified($event, element)\"\n [disabled]=\"!entityFiles.length\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element.title}}\n <ng-container *ngIf=\"useTechlifyTags\">\n <br>\n <small class=\"badge badge-secondary mr-1\" *ngFor=\"let tag of element?.tags\">{{tag?.title}}</small>\n </ng-container>\n\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element.details\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- File size Column -->\n <ng-container matColumnDef=\"file_size\">\n <th mat-header-cell *matHeaderCellDef> File Size </th>\n <td mat-cell *matCellDef=\"let element\"> {{ sizeOf(element.file_size)}} </td>\n </ng-container>\n\n <!-- Uploaded On Column -->\n <ng-container matColumnDef=\"uploaded_on\">\n <th mat-header-cell *matHeaderCellDef> Uploaded On </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n {{element.created_at | date: 'mediumDate'}}\n </div>\n <div class=\"text-muted\">\n By {{element.creator?.name}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"text-muted\">\n <div fxLayout>\n <a href=\"{{element.url}}\" target=\"_blank\" class=\"text-decoration-none text-muted clickable\">\n <mat-icon>download</mat-icon>\n </a>\n <mat-icon class=\"clickable\" *ngIf=\"isShowUpdateAction\"\n (click)=\"editEntityFile(element)\">edit</mat-icon>\n <mat-icon class=\"clickable\" *ngIf=\"isShowDeleteAction\"\n (click)=\"deleteEntityFile(element)\">delete</mat-icon>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n <ng-container *ngIf=\"isShowDragDropSection\">\n <section fxFlex=\"30%\" *ngIf=\"!this.documentIds.length && !viewOnly && isShowCreateAction\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n </section>\n </ng-container>\n </div>\n </div>\n </div>\n\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" class=\"mat-typography p-4\" *ngIf=\"displayMode\">\n <div *ngFor=\"let efile of entityFiles\">\n <app-document-viewer [file]=\"efile.file\" [fileUrl]=\"efile.url\" [config]=\"this.viewerConfig\" [disableEdit]=\"true\">\n </app-document-viewer>\n <a href=\"{{efile.url}}\" target=\"_blank\">\n <button mat-button type=\"button\">View</button>\n </a>\n </div>\n </div>\n</div>\n\n<mat-card *ngIf=\"viewMode === 'timeline'\">\n <mat-card-content>\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold primary-color mb-0\">\n {{title}}s\n </h3>\n <span class=\"badge bg-primary\" *ngIf=\"total > 0\">{{ total }}</span>\n <mat-icon color=\"primary\" class=\"cursor-pointer\" *ngIf=\"!viewOnly && isShowCreateAction\"\n (click)=\"addEntityFile()\">\n add\n </mat-icon>\n </div>\n </mat-card-content>\n <mat-card-content *ngIf=\"!this.documentIds.length && !viewOnly && isShowCreateAction\" class=\"mt-3\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n </mat-card-content>\n\n <mat-card-content class=\"mt-3\">\n <div *ngFor=\"let entityFile of entityFiles\" class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex justify-content-between align-items-center gap-1\">\n <p class=\"mb-0 fw-bold text-wrap\">{{ entityFile?.title | wrap:20 }}</p>\n <span class=\"badge bg-dark\" *ngFor=\"let tag of entityFile?.tags\">\n {{ tag?.title }}\n </span>\n <small class=\"text-dark\">{{ sizeOf(entityFile.file_size) }}</small>\n </div>\n </div>\n <app-read-more [text]=\"entityFile?.details\" [maxLength]=\"50\"></app-read-more>\n <div class=\"d-flex justify-content-between gap-2\">\n <small class=\"text-secondary\" style=\"max-width: 70%\">\n <i>Uploaded By {{ entityFile?.creator?.name }} {{ entityFile?.created_at | date: 'mediumDate'}}</i>\n </small>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <a href=\"{{entityFile?.url}}\" target=\"_blank\" class=\"text-decoration-none text-secondary mt-2\">\n <mat-icon>download</mat-icon>\n </a>\n <mat-icon *ngIf=\"isShowUpdateAction\" (click)=\"editEntityFile(entityFile)\"\n class=\"cursor-pointer text-secondary\">\n edit\n </mat-icon>\n <mat-icon *ngIf=\"isShowDeleteAction\" (click)=\"deleteEntityFile(entityFile)\"\n class=\"cursor-pointer text-secondary\">\n delete\n </mat-icon>\n </div>\n </div>\n <hr style=\"margin: 0.5rem 0\">\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", styles: ["th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:2px}.entity-file-card{overflow-x:auto}.clickable:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: FileDropperComponent, selector: "app-file-dropper", inputs: ["fileArray", "config", "styles"], outputs: ["fileChanged"] }, { kind: "component", type: DocumentViewerComponent, selector: "app-document-viewer", inputs: ["config", "file", "fileUrl", "disableEdit"], outputs: ["remove"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: TechlifyTaggerTagFormFieldComponent, selector: "app-techlify-tagger-tag-form-field", inputs: ["config", "modelType", "modelId", "allTags", "categories", "defaultCreateCategory", "required", "disabled", "value", "placeholder"] }, { kind: "component", type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: WrapPipe, name: "wrap" }] }); }
|
|
5195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EntityFilesViewAllComponent, selector: "app-entity-files-view-all", inputs: { entityId: "entityId", entityType: "entityType", viewOnly: "viewOnly", removeSearch: "removeSearch", hideTitleAndDetails: "hideTitleAndDetails", displayMode: "displayMode", allowMultipleFiles: "allowMultipleFiles", allowBulkUpdate: "allowBulkUpdate", viewMode: "viewMode", fileDropperHeight: "fileDropperHeight", isShowDragDropSection: "isShowDragDropSection", useTechlifyTags: "useTechlifyTags", techlifyTagCategories: "techlifyTagCategories", techlifyTagConfig: "techlifyTagConfig", title: "title", permission: "permission" }, ngImport: i0, template: "<div *ngIf=\"viewMode === 'list'\">\n <div fxLayout=\"column\" [fxHide]=\"!this.documentIds.length\" fxHide.xs fxHide.sm fxHide.lt-md>\n <mat-card class=\"update_card\" *ngIf=\"this.documentIds.length\">\n <mat-card-header>\n <mat-card-title>\n <div mat-dialog-title class=\"mt-2 ml-2 text-center\">\n <div>Update Selected Rows</div>\n </div>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content fxLayout=\"column\">\n <form [formGroup]=\"updateRowForm\">\n <div fxLayout=\"column\">\n\n <mat-form-field fxFlex=\"100%\" class=\"px-1\">\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"updateRowForm.get('title').value || updateRowForm.get('title').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"resetFieldValueOfRow('title', $event)\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('title').value || updateRowForm.get('title').value===0)\n && updateRowForm.get('title').valid\" (click)=\"bulkUpdate('title')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\" class=\"px-1\">\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n <button *ngIf=\"updateRowForm.get('details').value || updateRowForm.get('details').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"resetFieldValueOfRow('details', $event)\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('details').value || updateRowForm.get('details').value===0)\n && updateRowForm.get('details').valid\" (click)=\"bulkUpdate('details')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field modelType=\"entity-file\" formControlName=\"tag_ids\"\n placeholder=\"Enter new tag\">\n </app-techlify-tagger-tag-form-field>\n <button *ngIf=\"updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"resetFieldValueOfRow('tag_ids', $event)\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0)\n && updateRowForm.get('tag_ids').valid\" (click)=\"bulkUpdate('tag_ids')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n </ng-container>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n\n </div>\n\n <div>\n <div class=\"mat-typography\" *ngIf=\"!displayMode\">\n <div fxLayout=\"row\" fxLayoutGap=\"1rem\">\n <mat-card fxFlex>\n <mat-card-content>\n <div fxLayoutAlign=\"start center\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h3>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"!viewOnly && isShowCreateAction\" (click)=\"addEntityFile()\">\n add\n </mat-icon>\n <span fxFlex></span>\n <form [formGroup]=\"filterFormGroup\" fxLayout fxLayoutGap=\"0.3rem\">\n <mat-form-field *ngIf=\"!removeSearch\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Search\" name=\"title\"\n autocomplete=\"off\" />\n <button *ngIf=\"filters.title\" matSuffix mat-icon-button (click)=\"resetFieldValue($event, 'title')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field [categories]=\"techlifyTagCategories\" formControlName=\"tag_ids\"\n placeholder=\"Select Tags\" [config]=\"techlifyTagConfig\"></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n\n </form>\n </div>\n </mat-card-content>\n <mat-card-content class=\"entity-file-card p-0\">\n <table mat-table [dataSource]=\"entityFiles\" class=\"w-100\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1.5\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\">\n\n <!-- Select Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width:30px\">\n <mat-checkbox name=\"employee\" [(ngModel)]=\"isAllSelected\" (change)=\"selectAll()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let element\" style=\"width:30px\">\n <mat-checkbox name=\"employee[{{element?.id}}]\" (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"element.is_selected\" (change)=\"employeeListModified($event, element)\"\n [disabled]=\"!entityFiles.length\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element.title}}\n <ng-container *ngIf=\"useTechlifyTags\">\n <br>\n <small class=\"badge badge-secondary mr-1\" *ngFor=\"let tag of element?.tags\">{{tag?.title}}</small>\n </ng-container>\n\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element.details\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- File size Column -->\n <ng-container matColumnDef=\"file_size\">\n <th mat-header-cell *matHeaderCellDef> File Size </th>\n <td mat-cell *matCellDef=\"let element\"> {{ sizeOf(element.file_size)}} </td>\n </ng-container>\n\n <!-- Uploaded On Column -->\n <ng-container matColumnDef=\"uploaded_on\">\n <th mat-header-cell *matHeaderCellDef> Uploaded On </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n {{element.created_at | date: 'mediumDate'}}\n </div>\n <div class=\"text-muted\">\n By {{element.creator?.name}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"text-muted\">\n <div fxLayout>\n <a href=\"{{element.url}}\" target=\"_blank\" class=\"text-decoration-none text-muted clickable\">\n <mat-icon>download</mat-icon>\n </a>\n <mat-icon class=\"clickable\" *ngIf=\"isShowUpdateAction\"\n (click)=\"editEntityFile(element)\">edit</mat-icon>\n <mat-icon class=\"clickable\" *ngIf=\"isShowDeleteAction\"\n (click)=\"deleteEntityFile(element)\">delete</mat-icon>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n <ng-container *ngIf=\"isShowDragDropSection\">\n <section fxFlex=\"30%\" *ngIf=\"!this.documentIds.length && !viewOnly && isShowCreateAction\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n </section>\n </ng-container>\n </div>\n </div>\n </div>\n\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" class=\"mat-typography p-4\" *ngIf=\"displayMode\">\n <div *ngFor=\"let efile of entityFiles\">\n <app-document-viewer [file]=\"efile.file\" [fileUrl]=\"efile.url\" [config]=\"this.viewerConfig\" [disableEdit]=\"true\">\n </app-document-viewer>\n <a href=\"{{efile.url}}\" target=\"_blank\">\n <button mat-button type=\"button\">View</button>\n </a>\n </div>\n </div>\n</div>\n\n<mat-card *ngIf=\"viewMode === 'timeline'\">\n <mat-card-content>\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold primary-color mb-0\">\n {{title}}s\n </h3>\n <span class=\"badge bg-primary\" *ngIf=\"total > 0\">{{ total }}</span>\n <mat-icon color=\"primary\" class=\"cursor-pointer\" *ngIf=\"!viewOnly && isShowCreateAction\"\n (click)=\"addEntityFile()\">\n add\n </mat-icon>\n </div>\n </mat-card-content>\n <mat-card-content *ngIf=\"!this.documentIds.length && !viewOnly && isShowCreateAction\" class=\"mt-3\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n </mat-card-content>\n\n <mat-card-content class=\"mt-3\">\n <div *ngFor=\"let entityFile of entityFiles\" class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex justify-content-between align-items-center gap-1\">\n <p class=\"mb-0 fw-bold text-wrap\">{{ entityFile?.title | wrap:20 }}</p>\n <span class=\"badge bg-dark\" *ngFor=\"let tag of entityFile?.tags\">\n {{ tag?.title }}\n </span>\n <small class=\"text-dark\">{{ sizeOf(entityFile.file_size) }}</small>\n </div>\n </div>\n <app-read-more [text]=\"entityFile?.details\" [maxLength]=\"50\"></app-read-more>\n <div class=\"d-flex justify-content-between gap-2\">\n <small class=\"text-secondary\" style=\"max-width: 70%\">\n <i>Uploaded By {{ entityFile?.creator?.name }} {{ entityFile?.created_at | date: 'mediumDate'}}</i>\n </small>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <a href=\"{{entityFile?.url}}\" target=\"_blank\" class=\"text-decoration-none text-secondary mt-2\">\n <mat-icon>download</mat-icon>\n </a>\n <mat-icon *ngIf=\"isShowUpdateAction\" (click)=\"editEntityFile(entityFile)\"\n class=\"cursor-pointer text-secondary\">\n edit\n </mat-icon>\n <mat-icon *ngIf=\"isShowDeleteAction\" (click)=\"deleteEntityFile(entityFile)\"\n class=\"cursor-pointer text-secondary\">\n delete\n </mat-icon>\n </div>\n </div>\n <hr style=\"margin: 0.5rem 0\">\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", styles: ["th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:2px}.entity-file-card{overflow-x:auto}.clickable:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: FileDropperComponent, selector: "app-file-dropper", inputs: ["fileArray", "config", "styles"], outputs: ["fileChanged"] }, { kind: "component", type: DocumentViewerComponent, selector: "app-document-viewer", inputs: ["config", "file", "fileUrl", "disableEdit"], outputs: ["remove"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: TechlifyTaggerTagFormFieldComponent, selector: "app-techlify-tagger-tag-form-field", inputs: ["config", "modelType", "modelId", "allTags", "categories", "defaultCreateCategory", "required", "disabled", "value", "placeholder"] }, { kind: "component", type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: WrapPipe, name: "wrap" }] }); }
|
|
5196
5196
|
};
|
|
5197
5197
|
EntityFilesViewAllComponent = __decorate([
|
|
5198
5198
|
UntilDestroy()
|
|
@@ -5530,7 +5530,7 @@ class NoteListComponent extends TechlifyListingControllerInterface {
|
|
|
5530
5530
|
}).catch(() => (this.isSaving = false));
|
|
5531
5531
|
}
|
|
5532
5532
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoteListComponent, deps: [{ token: NoteService }, { token: i1.MatDialog }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5533
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView", viewMode: "viewMode" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-icon name=\"add\" class=\"clickable d-print-none ml-1\" matTooltip=\"Add\"\n (click)=\"addNote()\"></app-techlify-icon>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"edit\" class=\"clickable\" matTooltip=\"Update\"\n (click)=\"editNote(note)\"></app-techlify-icon>\n <app-techlify-icon name=\"delete\" class=\"clickable ml-1\" matTooltip=\"Delete\"\n (click)=\"deleteNote(note)\"></app-techlify-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-icon name=\"edit\" class=\"clickable\" matTooltip=\"Update\"\n (click)=\"editNote(note)\"></app-techlify-icon>\n <app-techlify-icon name=\"delete\" class=\"clickable\" matTooltip=\"Delete\"\n (click)=\"deleteNote(note)\"></app-techlify-icon>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"commentsView\">\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start\" fxFlex=\"100%\">\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\" *ngFor=\"let comment of models\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "component", type: CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
5533
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView", viewMode: "viewMode" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-icon name=\"add\" class=\"clickable d-print-none ml-1\" matTooltip=\"Add\"\n (click)=\"addNote()\"></app-techlify-icon>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"edit\" class=\"clickable\" matTooltip=\"Update\"\n (click)=\"editNote(note)\"></app-techlify-icon>\n <app-techlify-icon name=\"delete\" class=\"clickable ml-1\" matTooltip=\"Delete\"\n (click)=\"deleteNote(note)\"></app-techlify-icon>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-icon name=\"edit\" class=\"clickable\" matTooltip=\"Update\"\n (click)=\"editNote(note)\"></app-techlify-icon>\n <app-techlify-icon name=\"delete\" class=\"clickable\" matTooltip=\"Delete\"\n (click)=\"deleteNote(note)\"></app-techlify-icon>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"commentsView\">\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start\" fxFlex=\"100%\">\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\" *ngFor=\"let comment of models\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "component", type: CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
5534
5534
|
}
|
|
5535
5535
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoteListComponent, decorators: [{
|
|
5536
5536
|
type: Component,
|
|
@@ -5670,7 +5670,7 @@ class LoaderComponent {
|
|
|
5670
5670
|
}
|
|
5671
5671
|
ngOnInit() { }
|
|
5672
5672
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5673
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoaderComponent, selector: "app-loader", inputs: { isLoading: "isLoading", size: "size", message: "message" }, ngImport: i0, template: "<div [hidden]=\"!isLoading\">\n <mat-progress-spinner mode=\"indeterminate\" [strokeWidth]=\"2\" [diameter]=\"32 * size\"></mat-progress-spinner>\n <span class=\"message\">{{message}}</span>\n</div>\n", styles: [".mat-progress-spinner{display:inline-block;vertical-align:middle}.message{margin-left:.5em}\n"], dependencies: [{ kind: "component", type: i11$
|
|
5673
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoaderComponent, selector: "app-loader", inputs: { isLoading: "isLoading", size: "size", message: "message" }, ngImport: i0, template: "<div [hidden]=\"!isLoading\">\n <mat-progress-spinner mode=\"indeterminate\" [strokeWidth]=\"2\" [diameter]=\"32 * size\"></mat-progress-spinner>\n <span class=\"message\">{{message}}</span>\n</div>\n", styles: [".mat-progress-spinner{display:inline-block;vertical-align:middle}.message{margin-left:.5em}\n"], dependencies: [{ kind: "component", type: i11$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
|
|
5674
5674
|
}
|
|
5675
5675
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoaderComponent, decorators: [{
|
|
5676
5676
|
type: Component,
|
|
@@ -6088,16 +6088,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6088
6088
|
}]
|
|
6089
6089
|
}] });
|
|
6090
6090
|
|
|
6091
|
-
const routes$
|
|
6091
|
+
const routes$F = [];
|
|
6092
6092
|
class TimelineFilterRoutingModule {
|
|
6093
6093
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6094
6094
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6095
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6095
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [RouterModule.forChild(routes$F), RouterModule] }); }
|
|
6096
6096
|
}
|
|
6097
6097
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, decorators: [{
|
|
6098
6098
|
type: NgModule,
|
|
6099
6099
|
args: [{
|
|
6100
|
-
imports: [RouterModule.forChild(routes$
|
|
6100
|
+
imports: [RouterModule.forChild(routes$F)],
|
|
6101
6101
|
exports: [RouterModule]
|
|
6102
6102
|
}]
|
|
6103
6103
|
}] });
|
|
@@ -6174,16 +6174,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6174
6174
|
}]
|
|
6175
6175
|
}] });
|
|
6176
6176
|
|
|
6177
|
-
const routes$
|
|
6177
|
+
const routes$E = [];
|
|
6178
6178
|
class TechlifyNotificationRoutingModule {
|
|
6179
6179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6180
6180
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6181
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6181
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [RouterModule.forChild(routes$E), RouterModule] }); }
|
|
6182
6182
|
}
|
|
6183
6183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, decorators: [{
|
|
6184
6184
|
type: NgModule,
|
|
6185
6185
|
args: [{
|
|
6186
|
-
imports: [RouterModule.forChild(routes$
|
|
6186
|
+
imports: [RouterModule.forChild(routes$E)],
|
|
6187
6187
|
exports: [RouterModule]
|
|
6188
6188
|
}]
|
|
6189
6189
|
}] });
|
|
@@ -6275,7 +6275,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6275
6275
|
args: [{ selector: 'app-techlify-notification-for-user', template: "<div fxLayout=\"column\" class=\"container my-4\">\n <div>\n <mat-card appearance=\"outlined\">\n <h3>My Notification Preferences</h3>\n </mat-card>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <mat-card appearance=\"outlined\" class=\"mt-4\">\n <mat-list fxLayout=\"column\">\n <mat-list-item fxLayout>\n <h5 fxFlex=\"33%\" class=\"p-1\">Notification</h5>\n <h5 fxFlex class=\"p-1\">Email</h5>\n <h5 fxFlex class=\"p-1\">Mobile</h5>\n <h5 fxFlex class=\"p-1\">In-App</h5>\n </mat-list-item>\n <ng-container *ngFor=\"let model of models|keyvalue\">\n <mat-list-item>\n <h5 class=\"p-1\">{{model?.key}}</h5>\n </mat-list-item>\n <mat-list-item *ngFor=\"let notificationType of model.value\" fxLayout=\"start center\">\n <div fxFlex=\"33%\" class=\"p-1\">\n <div>{{notificationType?.title}} </div>\n <div style=\"text-wrap: auto; line-height: normal;\">\n <small class=\"text-secondary\"> {{notificationType?.description}} </small>\n </div>\n </div>\n <div fxFlex class=\"p-1\">\n <mat-slide-toggle\n (change)=\"toggleSubscription(notificationType,'is_subscribed_email',$event)\"\n [checked]=\"notificationType?.is_subscribed_email\"\n [disabled]=\"(!notificationType.is_editable) || notificationType.isWorking || notificationType?.is_subscribed_email_default == null\">\n </mat-slide-toggle>\n </div>\n <div fxFlex class=\"p-1\">\n <mat-slide-toggle\n (change)=\"toggleSubscription(notificationType,'is_subscribed_mobile',$event)\"\n [checked]=\"notificationType?.is_subscribed_mobile\"\n [disabled]=\"(!notificationType.is_editable) || notificationType.isWorking || notificationType?.is_subscribed_mobile_default == null\">\n </mat-slide-toggle>\n </div>\n <div fxFlex class=\"p-1\">\n <mat-slide-toggle\n (change)=\"toggleSubscription(notificationType,'is_subscribed_in_app',$event)\"\n [checked]=\"notificationType?.is_subscribed_in_app\"\n [disabled]=\"(!notificationType.is_editable) || notificationType.isWorking || notificationType?.is_subscribed_in_app_default == null\">\n </mat-slide-toggle>\n </div>\n </mat-list-item>\n <mat-divider></mat-divider>\n </ng-container>\n </mat-list>\n </mat-card>\n </div>\n\n</div>", styles: [":host ::ng-deep .mdc-list-item.mdc-list-item--with-one-line{height:auto!important}\n"] }]
|
|
6276
6276
|
}], ctorParameters: () => [{ type: TechlifyNotificationTypeService }, { type: TechlifyNotificationSubscriptionService }] });
|
|
6277
6277
|
|
|
6278
|
-
const routes$
|
|
6278
|
+
const routes$D = [
|
|
6279
6279
|
{
|
|
6280
6280
|
path: '',
|
|
6281
6281
|
component: TechlifyNotificationForUserComponent,
|
|
@@ -6285,12 +6285,12 @@ const routes$B = [
|
|
|
6285
6285
|
class TechlifyNotificationForUserRoutingModule {
|
|
6286
6286
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6287
6287
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6288
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6288
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [RouterModule.forChild(routes$D), RouterModule] }); }
|
|
6289
6289
|
}
|
|
6290
6290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, decorators: [{
|
|
6291
6291
|
type: NgModule,
|
|
6292
6292
|
args: [{
|
|
6293
|
-
imports: [RouterModule.forChild(routes$
|
|
6293
|
+
imports: [RouterModule.forChild(routes$D)],
|
|
6294
6294
|
exports: [RouterModule]
|
|
6295
6295
|
}]
|
|
6296
6296
|
}] });
|
|
@@ -6329,16 +6329,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6329
6329
|
* Public API Surface of techlify-notifications
|
|
6330
6330
|
*/
|
|
6331
6331
|
|
|
6332
|
-
const routes$
|
|
6332
|
+
const routes$C = [];
|
|
6333
6333
|
class EmailSubscriptionRoutingModule {
|
|
6334
6334
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6335
6335
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6336
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6336
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [RouterModule.forChild(routes$C), RouterModule] }); }
|
|
6337
6337
|
}
|
|
6338
6338
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, decorators: [{
|
|
6339
6339
|
type: NgModule,
|
|
6340
6340
|
args: [{
|
|
6341
|
-
imports: [RouterModule.forChild(routes$
|
|
6341
|
+
imports: [RouterModule.forChild(routes$C)],
|
|
6342
6342
|
exports: [RouterModule]
|
|
6343
6343
|
}]
|
|
6344
6344
|
}] });
|
|
@@ -6361,16 +6361,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6361
6361
|
}]
|
|
6362
6362
|
}] });
|
|
6363
6363
|
|
|
6364
|
-
const routes$
|
|
6364
|
+
const routes$B = [];
|
|
6365
6365
|
class EmailSubscriptionUserRoutingModule {
|
|
6366
6366
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6367
6367
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6368
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6368
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [RouterModule.forChild(routes$B), RouterModule] }); }
|
|
6369
6369
|
}
|
|
6370
6370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, decorators: [{
|
|
6371
6371
|
type: NgModule,
|
|
6372
6372
|
args: [{
|
|
6373
|
-
imports: [RouterModule.forChild(routes$
|
|
6373
|
+
imports: [RouterModule.forChild(routes$B)],
|
|
6374
6374
|
exports: [RouterModule]
|
|
6375
6375
|
}]
|
|
6376
6376
|
}] });
|
|
@@ -6393,16 +6393,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6393
6393
|
}]
|
|
6394
6394
|
}] });
|
|
6395
6395
|
|
|
6396
|
-
const routes$
|
|
6396
|
+
const routes$A = [];
|
|
6397
6397
|
class EmailSubscriptionUserFormRoutingModule {
|
|
6398
6398
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6399
6399
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6400
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6400
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [RouterModule.forChild(routes$A), RouterModule] }); }
|
|
6401
6401
|
}
|
|
6402
6402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, decorators: [{
|
|
6403
6403
|
type: NgModule,
|
|
6404
6404
|
args: [{
|
|
6405
|
-
imports: [RouterModule.forChild(routes$
|
|
6405
|
+
imports: [RouterModule.forChild(routes$A)],
|
|
6406
6406
|
exports: [RouterModule]
|
|
6407
6407
|
}]
|
|
6408
6408
|
}] });
|
|
@@ -6687,7 +6687,7 @@ let EmailSubscriptionUserListComponent = class EmailSubscriptionUserListComponen
|
|
|
6687
6687
|
//Until destroyed uses it
|
|
6688
6688
|
}
|
|
6689
6689
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListComponent, deps: [{ token: i1.MatDialog }, { token: HttpService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6690
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EmailSubscriptionUserListComponent, selector: "app-email-subscription-user-list", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <app-email-subscription-user-list-filter (valueChange)=\"filterChange($event)\">\n </app-email-subscription-user-list-filter>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addEmailSubscriptionUser()\">+\n User Subscription</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"esUserList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"email-subscription-user-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let esUser; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"user.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> User </th>\n <td mat-cell *matCellDef=\"let esUser;\"> {{ esUser?.user?.name }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"email_type.title\">\n <th mat-header-cell *matHeaderCellDef> Email Type </th>\n <td mat-cell *matCellDef=\"let esUser;\"> {{ esUser?.email_type?.title }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"creator.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Creator</th>\n <td mat-cell *matCellDef=\"let esUser;\">\n {{esUser?.creator?.name }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created On</th>\n <td mat-cell *matCellDef=\"let esUser;\">\n {{esUser?.created_at | date:'medium' }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let esUser\">\n <button type=\"button\" mat-icon-button (click)=\"deleteEmailSubscriptionUser($event,esUser)\">\n <mat-icon>delete</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"editEmailSubscriptionUser($event,esUser)\">\n <mat-icon>edit</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n </section>\n</div>", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type:
|
|
6690
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EmailSubscriptionUserListComponent, selector: "app-email-subscription-user-list", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <app-email-subscription-user-list-filter (valueChange)=\"filterChange($event)\">\n </app-email-subscription-user-list-filter>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addEmailSubscriptionUser()\">+\n User Subscription</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"esUserList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"email-subscription-user-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let esUser; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"user.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> User </th>\n <td mat-cell *matCellDef=\"let esUser;\"> {{ esUser?.user?.name }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"email_type.title\">\n <th mat-header-cell *matHeaderCellDef> Email Type </th>\n <td mat-cell *matCellDef=\"let esUser;\"> {{ esUser?.email_type?.title }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"creator.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Creator</th>\n <td mat-cell *matCellDef=\"let esUser;\">\n {{esUser?.creator?.name }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created On</th>\n <td mat-cell *matCellDef=\"let esUser;\">\n {{esUser?.created_at | date:'medium' }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let esUser\">\n <button type=\"button\" mat-icon-button (click)=\"deleteEmailSubscriptionUser($event,esUser)\">\n <mat-icon>delete</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"editEmailSubscriptionUser($event,esUser)\">\n <mat-icon>edit</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n </section>\n</div>", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: EmailSubscriptionUserListFilterComponent, selector: "app-email-subscription-user-list-filter", outputs: ["valueChange"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
6691
6691
|
};
|
|
6692
6692
|
EmailSubscriptionUserListComponent = __decorate([
|
|
6693
6693
|
UntilDestroy()
|
|
@@ -6707,7 +6707,7 @@ const esulr = {
|
|
|
6707
6707
|
redirectTo: '/'
|
|
6708
6708
|
}
|
|
6709
6709
|
};
|
|
6710
|
-
const routes$
|
|
6710
|
+
const routes$z = [
|
|
6711
6711
|
{
|
|
6712
6712
|
path: '',
|
|
6713
6713
|
component: EmailSubscriptionUserListComponent,
|
|
@@ -6718,26 +6718,26 @@ const routes$x = [
|
|
|
6718
6718
|
class EmailSubscriptionUserListRoutingModule {
|
|
6719
6719
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6720
6720
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6721
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6721
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [RouterModule.forChild(routes$z), RouterModule] }); }
|
|
6722
6722
|
}
|
|
6723
6723
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, decorators: [{
|
|
6724
6724
|
type: NgModule,
|
|
6725
6725
|
args: [{
|
|
6726
|
-
imports: [RouterModule.forChild(routes$
|
|
6726
|
+
imports: [RouterModule.forChild(routes$z)],
|
|
6727
6727
|
exports: [RouterModule]
|
|
6728
6728
|
}]
|
|
6729
6729
|
}] });
|
|
6730
6730
|
|
|
6731
|
-
const routes$
|
|
6731
|
+
const routes$y = [];
|
|
6732
6732
|
class EmailSubscriptionUserListFilterRoutingModule {
|
|
6733
6733
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6734
6734
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6735
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6735
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [RouterModule.forChild(routes$y), RouterModule] }); }
|
|
6736
6736
|
}
|
|
6737
6737
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, decorators: [{
|
|
6738
6738
|
type: NgModule,
|
|
6739
6739
|
args: [{
|
|
6740
|
-
imports: [RouterModule.forChild(routes$
|
|
6740
|
+
imports: [RouterModule.forChild(routes$y)],
|
|
6741
6741
|
exports: [RouterModule]
|
|
6742
6742
|
}]
|
|
6743
6743
|
}] });
|
|
@@ -6810,16 +6810,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6810
6810
|
}]
|
|
6811
6811
|
}] });
|
|
6812
6812
|
|
|
6813
|
-
const routes$
|
|
6813
|
+
const routes$x = [];
|
|
6814
6814
|
class EmailSubscriptionTypeRoutingModule {
|
|
6815
6815
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6816
6816
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6817
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6817
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [RouterModule.forChild(routes$x), RouterModule] }); }
|
|
6818
6818
|
}
|
|
6819
6819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, decorators: [{
|
|
6820
6820
|
type: NgModule,
|
|
6821
6821
|
args: [{
|
|
6822
|
-
imports: [RouterModule.forChild(routes$
|
|
6822
|
+
imports: [RouterModule.forChild(routes$x)],
|
|
6823
6823
|
exports: [RouterModule]
|
|
6824
6824
|
}]
|
|
6825
6825
|
}] });
|
|
@@ -6842,16 +6842,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6842
6842
|
}]
|
|
6843
6843
|
}] });
|
|
6844
6844
|
|
|
6845
|
-
const routes$
|
|
6845
|
+
const routes$w = [];
|
|
6846
6846
|
class EmailSubscriptionTypeFormRoutingModule {
|
|
6847
6847
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6848
6848
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6849
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6849
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [RouterModule.forChild(routes$w), RouterModule] }); }
|
|
6850
6850
|
}
|
|
6851
6851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, decorators: [{
|
|
6852
6852
|
type: NgModule,
|
|
6853
6853
|
args: [{
|
|
6854
|
-
imports: [RouterModule.forChild(routes$
|
|
6854
|
+
imports: [RouterModule.forChild(routes$w)],
|
|
6855
6855
|
exports: [RouterModule]
|
|
6856
6856
|
}]
|
|
6857
6857
|
}] });
|
|
@@ -7099,7 +7099,7 @@ let EmailSubscriptionTypeListComponent = class EmailSubscriptionTypeListComponen
|
|
|
7099
7099
|
//Until destroyed uses it
|
|
7100
7100
|
}
|
|
7101
7101
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListComponent, deps: [{ token: i1.MatDialog }, { token: HttpService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7102
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EmailSubscriptionTypeListComponent, selector: "app-email-subscription-type-list", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <mat-form-field>\n <input matInput [formControl]=\"search\" placeholder=\"Email Type\" autocomplete=\"off\" />\n <button matSuffix mat-icon-button>\n <mat-icon>search</mat-icon>\n </button>\n <button *ngIf=\"search.value\" matSuffix mat-icon-button (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addEmailSubscriptionType()\">+ Email\n Type</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"emailSubscriptionTypeList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"email-subscription-type-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Title </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.title }} </td>\n </ng-container>\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Code </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.code }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"frequency.title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Frequency </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.frequency?.title }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType\">\n <button type=\"button\" mat-icon-button\n (click)=\"deleteEmailSubscriptionType($event,emailSubscriptionType)\">\n <mat-icon>delete</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button\n (click)=\"editEmailSubscriptionType($event,emailSubscriptionType)\">\n <mat-icon>edit</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n </section>\n</div>", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }] }); }
|
|
7102
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EmailSubscriptionTypeListComponent, selector: "app-email-subscription-type-list", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <mat-form-field>\n <input matInput [formControl]=\"search\" placeholder=\"Email Type\" autocomplete=\"off\" />\n <button matSuffix mat-icon-button>\n <mat-icon>search</mat-icon>\n </button>\n <button *ngIf=\"search.value\" matSuffix mat-icon-button (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addEmailSubscriptionType()\">+ Email\n Type</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <section>\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"emailSubscriptionTypeList\" matSort class=\"w-100 mt-1\" multiTemplateDataRows\n id=\"email-subscription-type-table\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Title </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.title }} </td>\n </ng-container>\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Code </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.code }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"frequency.title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Frequency </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.frequency?.title }}\n </td>\n </ng-container>\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType;\"> {{ emailSubscriptionType?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let emailSubscriptionType\">\n <button type=\"button\" mat-icon-button\n (click)=\"deleteEmailSubscriptionType($event,emailSubscriptionType)\">\n <mat-icon>delete</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button\n (click)=\"editEmailSubscriptionType($event,emailSubscriptionType)\">\n <mat-icon>edit</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n </section>\n</div>", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }] }); }
|
|
7103
7103
|
};
|
|
7104
7104
|
EmailSubscriptionTypeListComponent = __decorate([
|
|
7105
7105
|
UntilDestroy()
|
|
@@ -7119,7 +7119,7 @@ const estlr = {
|
|
|
7119
7119
|
redirectTo: '/'
|
|
7120
7120
|
}
|
|
7121
7121
|
};
|
|
7122
|
-
const routes$
|
|
7122
|
+
const routes$v = [
|
|
7123
7123
|
{
|
|
7124
7124
|
path: '',
|
|
7125
7125
|
component: EmailSubscriptionTypeListComponent,
|
|
@@ -7130,12 +7130,12 @@ const routes$t = [
|
|
|
7130
7130
|
class EmailSubscriptionTypeListRoutingModule {
|
|
7131
7131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7132
7132
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7133
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7133
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [RouterModule.forChild(routes$v), RouterModule] }); }
|
|
7134
7134
|
}
|
|
7135
7135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, decorators: [{
|
|
7136
7136
|
type: NgModule,
|
|
7137
7137
|
args: [{
|
|
7138
|
-
imports: [RouterModule.forChild(routes$
|
|
7138
|
+
imports: [RouterModule.forChild(routes$v)],
|
|
7139
7139
|
exports: [RouterModule]
|
|
7140
7140
|
}]
|
|
7141
7141
|
}] });
|
|
@@ -7241,7 +7241,7 @@ const esfur = {
|
|
|
7241
7241
|
only: ['client_admin']
|
|
7242
7242
|
}
|
|
7243
7243
|
};
|
|
7244
|
-
const routes$
|
|
7244
|
+
const routes$u = [
|
|
7245
7245
|
{
|
|
7246
7246
|
path: '',
|
|
7247
7247
|
component: EmailSubscriptionForUserComponent,
|
|
@@ -7252,12 +7252,12 @@ const routes$s = [
|
|
|
7252
7252
|
class EmailSubscriptionForUserRoutingModule {
|
|
7253
7253
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7254
7254
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7255
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7255
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [RouterModule.forChild(routes$u), RouterModule] }); }
|
|
7256
7256
|
}
|
|
7257
7257
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, decorators: [{
|
|
7258
7258
|
type: NgModule,
|
|
7259
7259
|
args: [{
|
|
7260
|
-
imports: [RouterModule.forChild(routes$
|
|
7260
|
+
imports: [RouterModule.forChild(routes$u)],
|
|
7261
7261
|
exports: [RouterModule]
|
|
7262
7262
|
}]
|
|
7263
7263
|
}] });
|
|
@@ -7413,7 +7413,7 @@ class TechlifyUpdateFormComponent {
|
|
|
7413
7413
|
return this.formValidatorService.getErrorMessage(field, this.techlifyUpdateForm, errorMessages$7);
|
|
7414
7414
|
}
|
|
7415
7415
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateFormComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i1$5.UntypedFormBuilder }, { token: FormValidatorService }, { token: AlertService }, { token: TechlifyUpdateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7416
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyUpdateFormComponent, selector: "app-techlify-update-form", outputs: { onSave: "onSave" }, ngImport: i0, template: "<form [formGroup]=\"techlifyUpdateForm\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <h2>\n App Update Form\n </h2>\n </div>\n <div mat-dialog-content fxLayout=\"column\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Title</mat-label>\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" required />\n <button *ngIf=\"getFieldValue('title')\" matSuffix mat-icon-button (click)=\"resetFieldValue('title')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('title')\">\n {{getErrorMessage('title')}}\n </mat-error>\n </mat-form-field>\n\n <h3 class=\"text-secondary mb-4\" fxFlex=\"100%\">\n Is Pinned\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_pinned\">\n <mat-button-toggle [value]=\"true\">Yes</mat-button-toggle>\n <mat-button-toggle [value]=\"false\">No</mat-button-toggle>\n </mat-button-toggle-group>\n </h3>\n\n <mat-form-field fxFlex=\"100%\">\n <input matInput [matDatepicker]=\"released_on\" formControlName=\"released_on\" placeholder=\"Released on\" readonly\n (click)=\"released_on.open()\" required />\n <mat-datepicker-toggle matSuffix [for]=\"released_on\"></mat-datepicker-toggle>\n <mat-datepicker #released_on></mat-datepicker>\n <button *ngIf=\"getFieldValue('released_on')\" matSuffix mat-icon-button (click)=\"resetFieldValue('released_on')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('released_on')\">\n {{getErrorMessage('released_on')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Version</mat-label>\n <input matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" required />\n <button *ngIf=\"getFieldValue('version')\" matSuffix mat-icon-button (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('version')\">\n {{getErrorMessage('version')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Learn more link</mat-label>\n <input matInput formControlName=\"learn_more_link\" placeholder=\"Learn More Link\" autocomplete=\"off\" />\n <button *ngIf=\"getFieldValue('learn_more_link')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('learn_more_link')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('learn_more_link')\">\n {{getErrorMessage('learn_more_link')}}\n </mat-error>\n </mat-form-field>\n\n <div fxFlex=\"100%\">\n <div class=\"NgxEditor__Wrapper\">\n <ngx-editor-menu [toolbar]=\"toolbar\" [editor]=\"editor\"> </ngx-editor-menu>\n <ngx-editor formControlName=\"description\" [editor]=\"editor\" placeholder=\"Description\">\n </ngx-editor>\n </div>\n <mat-error *ngIf=\"isFieldValid('description')\">\n {{getErrorMessage('description')}}\n </mat-error>\n </div>\n </div>\n <div mat-dialog-actions fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button type=\"submit\" class=\"btn-primary mt-2\">\n Save\n </button>\n </div>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i14.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i14.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }] }); }
|
|
7416
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyUpdateFormComponent, selector: "app-techlify-update-form", outputs: { onSave: "onSave" }, ngImport: i0, template: "<form [formGroup]=\"techlifyUpdateForm\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <h2>\n App Update Form\n </h2>\n </div>\n <div mat-dialog-content fxLayout=\"column\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Title</mat-label>\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" required />\n <button *ngIf=\"getFieldValue('title')\" matSuffix mat-icon-button (click)=\"resetFieldValue('title')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('title')\">\n {{getErrorMessage('title')}}\n </mat-error>\n </mat-form-field>\n\n <h3 class=\"text-secondary mb-4\" fxFlex=\"100%\">\n Is Pinned\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_pinned\">\n <mat-button-toggle [value]=\"true\">Yes</mat-button-toggle>\n <mat-button-toggle [value]=\"false\">No</mat-button-toggle>\n </mat-button-toggle-group>\n </h3>\n\n <mat-form-field fxFlex=\"100%\">\n <input matInput [matDatepicker]=\"released_on\" formControlName=\"released_on\" placeholder=\"Released on\" readonly\n (click)=\"released_on.open()\" required />\n <mat-datepicker-toggle matSuffix [for]=\"released_on\"></mat-datepicker-toggle>\n <mat-datepicker #released_on></mat-datepicker>\n <button *ngIf=\"getFieldValue('released_on')\" matSuffix mat-icon-button (click)=\"resetFieldValue('released_on')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('released_on')\">\n {{getErrorMessage('released_on')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Version</mat-label>\n <input matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" required />\n <button *ngIf=\"getFieldValue('version')\" matSuffix mat-icon-button (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('version')\">\n {{getErrorMessage('version')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Learn more link</mat-label>\n <input matInput formControlName=\"learn_more_link\" placeholder=\"Learn More Link\" autocomplete=\"off\" />\n <button *ngIf=\"getFieldValue('learn_more_link')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('learn_more_link')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('learn_more_link')\">\n {{getErrorMessage('learn_more_link')}}\n </mat-error>\n </mat-form-field>\n\n <div fxFlex=\"100%\">\n <div class=\"NgxEditor__Wrapper\">\n <ngx-editor-menu [toolbar]=\"toolbar\" [editor]=\"editor\"> </ngx-editor-menu>\n <ngx-editor formControlName=\"description\" [editor]=\"editor\" placeholder=\"Description\">\n </ngx-editor>\n </div>\n <mat-error *ngIf=\"isFieldValid('description')\">\n {{getErrorMessage('description')}}\n </mat-error>\n </div>\n </div>\n <div mat-dialog-actions fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button type=\"submit\" class=\"btn-primary mt-2\">\n Save\n </button>\n </div>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i14.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i14.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }] }); }
|
|
7417
7417
|
}
|
|
7418
7418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateFormComponent, decorators: [{
|
|
7419
7419
|
type: Component,
|
|
@@ -7584,7 +7584,7 @@ let TechlifyUpdatesListComponent = class TechlifyUpdatesListComponent {
|
|
|
7584
7584
|
;
|
|
7585
7585
|
}
|
|
7586
7586
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdatesListComponent, deps: [{ token: i1.MatDialog }, { token: AlertService }, { token: TechlifyUpdateService }, { token: i1$5.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7587
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyUpdatesListComponent, selector: "app-techlify-updates-list", ngImport: i0, template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n <button mat-raised-button (click)=\"modifyTechlifyUpdate()\" class=\"primary-bg text-white\">\n <mat-icon>\n add\n </mat-icon>\n Create\n </button>\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"modifyTechlifyUpdate(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"deleteTechlifyUpdate(element)\">\n <mat-icon>delete</mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
7587
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyUpdatesListComponent, selector: "app-techlify-updates-list", ngImport: i0, template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n <button mat-raised-button (click)=\"modifyTechlifyUpdate()\" class=\"primary-bg text-white\">\n <mat-icon>\n add\n </mat-icon>\n Create\n </button>\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"modifyTechlifyUpdate(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"deleteTechlifyUpdate(element)\">\n <mat-icon>delete</mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
7588
7588
|
};
|
|
7589
7589
|
TechlifyUpdatesListComponent = __decorate([
|
|
7590
7590
|
UntilDestroy()
|
|
@@ -7594,7 +7594,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
7594
7594
|
args: [{ selector: 'app-techlify-updates-list', template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n <button mat-raised-button (click)=\"modifyTechlifyUpdate()\" class=\"primary-bg text-white\">\n <mat-icon>\n add\n </mat-icon>\n Create\n </button>\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"modifyTechlifyUpdate(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"deleteTechlifyUpdate(element)\">\n <mat-icon>delete</mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>" }]
|
|
7595
7595
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: AlertService }, { type: TechlifyUpdateService }, { type: i1$5.UntypedFormBuilder }] });
|
|
7596
7596
|
|
|
7597
|
-
const routes$
|
|
7597
|
+
const routes$t = [
|
|
7598
7598
|
{ path: '', redirectTo: 'all', pathMatch: 'full' },
|
|
7599
7599
|
{ path: 'all', component: TechlifyUpdatesListComponent },
|
|
7600
7600
|
//fallback
|
|
@@ -7607,12 +7607,12 @@ const routes$r = [
|
|
|
7607
7607
|
class TechlifyUpdateRoutingModule {
|
|
7608
7608
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7609
7609
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7610
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7610
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [RouterModule.forChild(routes$t), RouterModule] }); }
|
|
7611
7611
|
}
|
|
7612
7612
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, decorators: [{
|
|
7613
7613
|
type: NgModule,
|
|
7614
7614
|
args: [{
|
|
7615
|
-
imports: [RouterModule.forChild(routes$
|
|
7615
|
+
imports: [RouterModule.forChild(routes$t)],
|
|
7616
7616
|
exports: [RouterModule]
|
|
7617
7617
|
}]
|
|
7618
7618
|
}] });
|
|
@@ -7796,7 +7796,7 @@ let TechlifyUpdateHistoryComponent = class TechlifyUpdateHistoryComponent {
|
|
|
7796
7796
|
}
|
|
7797
7797
|
}
|
|
7798
7798
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryComponent, deps: [{ token: i1.MatDialog }, { token: TechlifyUpdateService }, { token: i1$5.UntypedFormBuilder }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7799
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyUpdateHistoryComponent, selector: "app-techlify-update-history", ngImport: i0, template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Course Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"openUpdateView(element)\">\n <mat-icon>remove_red_eye</mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
7799
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyUpdateHistoryComponent, selector: "app-techlify-update-history", ngImport: i0, template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Course Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"openUpdateView(element)\">\n <mat-icon>remove_red_eye</mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
7800
7800
|
};
|
|
7801
7801
|
TechlifyUpdateHistoryComponent = __decorate([
|
|
7802
7802
|
UntilDestroy()
|
|
@@ -7806,7 +7806,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
7806
7806
|
args: [{ selector: 'app-techlify-update-history', template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Course Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"openUpdateView(element)\">\n <mat-icon>remove_red_eye</mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>" }]
|
|
7807
7807
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: TechlifyUpdateService }, { type: i1$5.UntypedFormBuilder }, { type: AlertService }] });
|
|
7808
7808
|
|
|
7809
|
-
const routes$
|
|
7809
|
+
const routes$s = [
|
|
7810
7810
|
{ path: '', redirectTo: 'update-history', pathMatch: 'full' },
|
|
7811
7811
|
{ path: 'update-history', component: TechlifyUpdateHistoryComponent },
|
|
7812
7812
|
//fallback
|
|
@@ -7819,12 +7819,12 @@ const routes$q = [
|
|
|
7819
7819
|
class TechlifyUpdateHistoryRoutingModule {
|
|
7820
7820
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7821
7821
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7822
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7822
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [RouterModule.forChild(routes$s), RouterModule] }); }
|
|
7823
7823
|
}
|
|
7824
7824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, decorators: [{
|
|
7825
7825
|
type: NgModule,
|
|
7826
7826
|
args: [{
|
|
7827
|
-
imports: [RouterModule.forChild(routes$
|
|
7827
|
+
imports: [RouterModule.forChild(routes$s)],
|
|
7828
7828
|
exports: [RouterModule]
|
|
7829
7829
|
}]
|
|
7830
7830
|
}] });
|
|
@@ -8249,30 +8249,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8249
8249
|
type: Input
|
|
8250
8250
|
}] } });
|
|
8251
8251
|
|
|
8252
|
-
const routes$
|
|
8252
|
+
const routes$r = [];
|
|
8253
8253
|
class AuditLogForModelRoutingModule {
|
|
8254
8254
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8255
8255
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8256
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8256
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [RouterModule.forChild(routes$r), RouterModule] }); }
|
|
8257
8257
|
}
|
|
8258
8258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, decorators: [{
|
|
8259
8259
|
type: NgModule,
|
|
8260
8260
|
args: [{
|
|
8261
|
-
imports: [RouterModule.forChild(routes$
|
|
8261
|
+
imports: [RouterModule.forChild(routes$r)],
|
|
8262
8262
|
exports: [RouterModule]
|
|
8263
8263
|
}]
|
|
8264
8264
|
}] });
|
|
8265
8265
|
|
|
8266
|
-
const routes$
|
|
8266
|
+
const routes$q = [];
|
|
8267
8267
|
class AuditLogViewModelRoutingModule {
|
|
8268
8268
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8269
8269
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8270
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8270
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [RouterModule.forChild(routes$q), RouterModule] }); }
|
|
8271
8271
|
}
|
|
8272
8272
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, decorators: [{
|
|
8273
8273
|
type: NgModule,
|
|
8274
8274
|
args: [{
|
|
8275
|
-
imports: [RouterModule.forChild(routes$
|
|
8275
|
+
imports: [RouterModule.forChild(routes$q)],
|
|
8276
8276
|
exports: [RouterModule]
|
|
8277
8277
|
}]
|
|
8278
8278
|
}] });
|
|
@@ -8302,44 +8302,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8302
8302
|
}]
|
|
8303
8303
|
}] });
|
|
8304
8304
|
|
|
8305
|
-
const routes$
|
|
8305
|
+
const routes$p = [];
|
|
8306
8306
|
class AuditLogsViewModelRoutingModule {
|
|
8307
8307
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8308
8308
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8309
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8309
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [RouterModule.forChild(routes$p), RouterModule] }); }
|
|
8310
8310
|
}
|
|
8311
8311
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, decorators: [{
|
|
8312
8312
|
type: NgModule,
|
|
8313
8313
|
args: [{
|
|
8314
|
-
imports: [RouterModule.forChild(routes$
|
|
8314
|
+
imports: [RouterModule.forChild(routes$p)],
|
|
8315
8315
|
exports: [RouterModule]
|
|
8316
8316
|
}]
|
|
8317
8317
|
}] });
|
|
8318
8318
|
|
|
8319
|
-
const routes$
|
|
8319
|
+
const routes$o = [];
|
|
8320
8320
|
class AuditLogListRoutingModule {
|
|
8321
8321
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8322
8322
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8323
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8323
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [RouterModule.forChild(routes$o), RouterModule] }); }
|
|
8324
8324
|
}
|
|
8325
8325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, decorators: [{
|
|
8326
8326
|
type: NgModule,
|
|
8327
8327
|
args: [{
|
|
8328
|
-
imports: [RouterModule.forChild(routes$
|
|
8328
|
+
imports: [RouterModule.forChild(routes$o)],
|
|
8329
8329
|
exports: [RouterModule]
|
|
8330
8330
|
}]
|
|
8331
8331
|
}] });
|
|
8332
8332
|
|
|
8333
|
-
const routes$
|
|
8333
|
+
const routes$n = [];
|
|
8334
8334
|
class AuditLogListFilterRoutingModule {
|
|
8335
8335
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8336
8336
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8337
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8337
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [RouterModule.forChild(routes$n), RouterModule] }); }
|
|
8338
8338
|
}
|
|
8339
8339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, decorators: [{
|
|
8340
8340
|
type: NgModule,
|
|
8341
8341
|
args: [{
|
|
8342
|
-
imports: [RouterModule.forChild(routes$
|
|
8342
|
+
imports: [RouterModule.forChild(routes$n)],
|
|
8343
8343
|
exports: [RouterModule]
|
|
8344
8344
|
}]
|
|
8345
8345
|
}] });
|
|
@@ -8520,16 +8520,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8520
8520
|
args: [{ selector: 'app-audit-log-view', template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <h3 class=\"text-center\">Audit Log</h3>\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" *ngIf=\"logInfo\">\n <div>Object Type: {{logInfo?.object_type}}</div>\n <div>Object Id: {{logInfo?.object_id}}</div>\n <div>Action: {{logInfo?.action}}</div>\n <div>Created At: {{logInfo?.created_at | date:'medium'}}</div>\n <div>Created By: {{logInfo?.user?.email}}</div>\n </div>\n\n\n <div fxLayout=\"column\" *ngIf=\"logInfo?.action !== 'deleted'\">\n <div>\n <button mat-raised-button color=\"primary\" (click)=\"showDeltaChanges = !showDeltaChanges\">\n {{showDeltaChanges?'Hide JSON Changes': 'Show JSON Changes'}}\n </button>\n </div>\n <div [hidden]=\"!showDeltaChanges\">\n <h4 class=\"font-weight-bold\" *ngIf=\"logInfo\">Changes in JSON</h4>\n <div id=\"jsondiff\"></div>\n </div>\n </div>\n\n <div class=\"container\" *ngIf=\"changeList.length > 0\">\n <h4 class=\"font-weight-bold\"> Changes in Attributes</h4>\n <table class=\"table table-striped table-sm border\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">Attribute</th>\n <th scope=\"col\">Old Value</th>\n <th scope=\"col\">New Value</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let change of changeList; let i= index;\">\n <th scope=\"row\">{{i+1}}</th>\n <td>{{change?.displayAttribute}}</td>\n <td>{{change?.oldValue}}</td>\n <td>{{change?.newValue}}</td>\n </tr>\n </tbody>\n </table>\n\n </div>\n</div>" }]
|
|
8521
8521
|
}], ctorParameters: () => [{ type: DataManager }, { type: i1$1.ActivatedRoute }, { type: i3.Location }] });
|
|
8522
8522
|
|
|
8523
|
-
const routes$
|
|
8523
|
+
const routes$m = [];
|
|
8524
8524
|
class AuditLogViewRoutingModule {
|
|
8525
8525
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8526
8526
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8527
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8527
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [RouterModule.forChild(routes$m), RouterModule] }); }
|
|
8528
8528
|
}
|
|
8529
8529
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, decorators: [{
|
|
8530
8530
|
type: NgModule,
|
|
8531
8531
|
args: [{
|
|
8532
|
-
imports: [RouterModule.forChild(routes$
|
|
8532
|
+
imports: [RouterModule.forChild(routes$m)],
|
|
8533
8533
|
exports: [RouterModule]
|
|
8534
8534
|
}]
|
|
8535
8535
|
}] });
|
|
@@ -8559,7 +8559,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8559
8559
|
}]
|
|
8560
8560
|
}] });
|
|
8561
8561
|
|
|
8562
|
-
const routes$
|
|
8562
|
+
const routes$l = [
|
|
8563
8563
|
{ path: 'log-list', component: AuditLogListComponent, canActivate: [AuthenticationGuard] },
|
|
8564
8564
|
{ path: 'log-view/:id', component: AuditLogViewComponent, canActivate: [AuthenticationGuard] },
|
|
8565
8565
|
{ path: '**', redirectTo: 'log-list', pathMatch: 'full' }
|
|
@@ -8567,12 +8567,12 @@ const routes$j = [
|
|
|
8567
8567
|
class AuditLogRoutingModule {
|
|
8568
8568
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8569
8569
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8570
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8570
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [RouterModule.forChild(routes$l), RouterModule] }); }
|
|
8571
8571
|
}
|
|
8572
8572
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, decorators: [{
|
|
8573
8573
|
type: NgModule,
|
|
8574
8574
|
args: [{
|
|
8575
|
-
imports: [RouterModule.forChild(routes$
|
|
8575
|
+
imports: [RouterModule.forChild(routes$l)],
|
|
8576
8576
|
exports: [RouterModule]
|
|
8577
8577
|
}]
|
|
8578
8578
|
}] });
|
|
@@ -9111,7 +9111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9111
9111
|
}]
|
|
9112
9112
|
}] });
|
|
9113
9113
|
|
|
9114
|
-
const routes$
|
|
9114
|
+
const routes$k = [
|
|
9115
9115
|
{
|
|
9116
9116
|
path: '',
|
|
9117
9117
|
component: LoginHistoryForUserComponent,
|
|
@@ -9121,12 +9121,12 @@ const routes$i = [
|
|
|
9121
9121
|
class LoginHistoryForUserRoutingModule {
|
|
9122
9122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9123
9123
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
9124
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9124
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [RouterModule.forChild(routes$k), RouterModule] }); }
|
|
9125
9125
|
}
|
|
9126
9126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, decorators: [{
|
|
9127
9127
|
type: NgModule,
|
|
9128
9128
|
args: [{
|
|
9129
|
-
imports: [RouterModule.forChild(routes$
|
|
9129
|
+
imports: [RouterModule.forChild(routes$k)],
|
|
9130
9130
|
exports: [RouterModule]
|
|
9131
9131
|
}]
|
|
9132
9132
|
}] });
|
|
@@ -9538,7 +9538,7 @@ let TechlifyFeatureListingComponent = class TechlifyFeatureListingComponent {
|
|
|
9538
9538
|
}
|
|
9539
9539
|
}
|
|
9540
9540
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyFeatureListingComponent, deps: [{ token: ErrorHandlerService }, { token: i1$5.UntypedFormBuilder }, { token: AlertService }, { token: i1.MatDialog }, { token: TechlifyFeatureService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9541
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyFeatureListingComponent, selector: "app-techlify-listing-feature", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"3rem\" class=\"p-3\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"primary-color mt-3\">\n <h3>Features Configuration</h3>\n <mat-hint>\n <i> Here you can specify which optional features you'd like to have available to your team </i>\n </mat-hint>\n </div>\n\n\n <div>\n <mat-card>\n <mat-card-content fxlayout=\"column\" style=\"overflow: auto; height: 700px\" class=\"classifications-card\">\n <table mat-table [dataSource]=\"features\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [fromRoot]=\"true\" [infiniteScrollContainer]=\"'.classifications-card'\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"feature\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Feature\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Descriptions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Actions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"!element?.client_feature\">\n <app-on-off-switch [value]=\"element?.is_enabled_default\"\n (click)=\"toggeleFeature(element?.is_enabled_default, element)\"></app-on-off-switch>\n </div>\n <div *ngIf=\"element?.client_feature\">\n <app-on-off-switch [value]=\"element?.client_feature?.is_enabled\"\n (click)=\"toggeleFeature(element?.client_feature?.is_enabled, element)\"></app-on-off-switch>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type:
|
|
9541
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyFeatureListingComponent, selector: "app-techlify-listing-feature", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"3rem\" class=\"p-3\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"primary-color mt-3\">\n <h3>Features Configuration</h3>\n <mat-hint>\n <i> Here you can specify which optional features you'd like to have available to your team </i>\n </mat-hint>\n </div>\n\n\n <div>\n <mat-card>\n <mat-card-content fxlayout=\"column\" style=\"overflow: auto; height: 700px\" class=\"classifications-card\">\n <table mat-table [dataSource]=\"features\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [fromRoot]=\"true\" [infiniteScrollContainer]=\"'.classifications-card'\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"feature\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Feature\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Descriptions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Actions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"!element?.client_feature\">\n <app-on-off-switch [value]=\"element?.is_enabled_default\"\n (click)=\"toggeleFeature(element?.is_enabled_default, element)\"></app-on-off-switch>\n </div>\n <div *ngIf=\"element?.client_feature\">\n <app-on-off-switch [value]=\"element?.client_feature?.is_enabled\"\n (click)=\"toggeleFeature(element?.client_feature?.is_enabled, element)\"></app-on-off-switch>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: OnOffSwitchComponent, selector: "app-on-off-switch", inputs: ["value"] }] }); }
|
|
9542
9542
|
};
|
|
9543
9543
|
TechlifyFeatureListingComponent = __decorate([
|
|
9544
9544
|
UntilDestroy()
|
|
@@ -9548,14 +9548,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9548
9548
|
args: [{ selector: 'app-techlify-listing-feature', template: "<div fxLayout=\"column\" fxLayoutGap=\"3rem\" class=\"p-3\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"primary-color mt-3\">\n <h3>Features Configuration</h3>\n <mat-hint>\n <i> Here you can specify which optional features you'd like to have available to your team </i>\n </mat-hint>\n </div>\n\n\n <div>\n <mat-card>\n <mat-card-content fxlayout=\"column\" style=\"overflow: auto; height: 700px\" class=\"classifications-card\">\n <table mat-table [dataSource]=\"features\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [fromRoot]=\"true\" [infiniteScrollContainer]=\"'.classifications-card'\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"feature\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Feature\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Descriptions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Actions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"!element?.client_feature\">\n <app-on-off-switch [value]=\"element?.is_enabled_default\"\n (click)=\"toggeleFeature(element?.is_enabled_default, element)\"></app-on-off-switch>\n </div>\n <div *ngIf=\"element?.client_feature\">\n <app-on-off-switch [value]=\"element?.client_feature?.is_enabled\"\n (click)=\"toggeleFeature(element?.client_feature?.is_enabled, element)\"></app-on-off-switch>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n </div>\n</div>" }]
|
|
9549
9549
|
}], ctorParameters: () => [{ type: ErrorHandlerService }, { type: i1$5.UntypedFormBuilder }, { type: AlertService }, { type: i1.MatDialog }, { type: TechlifyFeatureService }] });
|
|
9550
9550
|
|
|
9551
|
-
const routes$
|
|
9551
|
+
const routes$j = [
|
|
9552
9552
|
{
|
|
9553
9553
|
path: '',
|
|
9554
9554
|
component: TechlifyFeatureListingComponent,
|
|
9555
9555
|
canActivate: [AuthenticationGuard]
|
|
9556
9556
|
},
|
|
9557
9557
|
];
|
|
9558
|
-
const TechlifyFeatureRoutes = RouterModule.forChild(routes$
|
|
9558
|
+
const TechlifyFeatureRoutes = RouterModule.forChild(routes$j);
|
|
9559
9559
|
|
|
9560
9560
|
class TechlifyFeatureEnabledDirective {
|
|
9561
9561
|
constructor(el, featureService) {
|
|
@@ -9856,7 +9856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9856
9856
|
args: [{ selector: 'app-change-password', template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\">\n <div class=\"row w-100\">\n <div class=\"col-lg-6 col-md-8 col-sm-10 col-xs-12 col-12 mx-auto\">\n <mat-card>\n <mat-card-title>\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle>\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">\n {{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\"\n placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\"\n autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n </div>\n </div>\n</div>\n" }]
|
|
9857
9857
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$1.Router }, { type: CurrentUserService }, { type: i1$5.UntypedFormBuilder }, { type: ErrorHandlerService }, { type: FormValidatorService }] });
|
|
9858
9858
|
|
|
9859
|
-
const routes$
|
|
9859
|
+
const routes$i = [
|
|
9860
9860
|
{ path: '', component: ChangePasswordComponent, canActivate: [AuthenticationGuard] },
|
|
9861
9861
|
// fallback when no prior route found
|
|
9862
9862
|
{ path: '**', redirectTo: '', pathMatch: 'full' }
|
|
@@ -9864,12 +9864,12 @@ const routes$g = [
|
|
|
9864
9864
|
class ChangePasswordRoutingModule {
|
|
9865
9865
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9866
9866
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
9867
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9867
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [RouterModule.forChild(routes$i), RouterModule] }); }
|
|
9868
9868
|
}
|
|
9869
9869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, decorators: [{
|
|
9870
9870
|
type: NgModule,
|
|
9871
9871
|
args: [{
|
|
9872
|
-
imports: [RouterModule.forChild(routes$
|
|
9872
|
+
imports: [RouterModule.forChild(routes$i)],
|
|
9873
9873
|
exports: [RouterModule]
|
|
9874
9874
|
}]
|
|
9875
9875
|
}] });
|
|
@@ -9989,18 +9989,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9989
9989
|
args: [{ selector: 'forgot-password', template: "<div class=\"h-100 row align-items-center mx-0\">\n <div class=\"col\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\"\n class=\"form-bordered mx-auto form-medium form-bordered form-centered form-horizontal mt-3 white-box\"\n style=\"width:550px\">\n\n <h4 class=\"section-title text-center mt-4\">RESET</h4>\n\n <form [formGroup]=\"forgotPasswordForm\" (ngSubmit)=\"sendOtp()\" class=\"mt-4\">\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\"\n required />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"row mt-4\">\n <div class=\"col-12 text-center\">\n <button mat-raised-button color=\"primary\" class=\"w-50\" type=\"submit\"\n [disabled]=\"isWorking\">\n Send OTP\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"row mt-3 mr-0 ml-0\" *ngIf=\"userConfig.showSignup\">\n <div class=\"col-12 text-center\">\n <p>New to {{ userConfig.appName }}?</p>\n <button mat-button class=\"btn btn-sm btn-secondary text-white\" style=\"width: 550px;\" type=\"button\"\n [routerLink]=\"['/signup']\">\n Create an account\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["#login-form-wrapper{margin-top:100px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}:host{width:100%}.white-box{background-color:#fff;padding:10px}\n"] }]
|
|
9990
9990
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$1.Router }, { type: CurrentUserService }, { type: ErrorHandlerService }, { type: CredentialsService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }] });
|
|
9991
9991
|
|
|
9992
|
-
const routes$
|
|
9992
|
+
const routes$h = [
|
|
9993
9993
|
{ path: '', component: ForgotPasswordComponent }
|
|
9994
9994
|
];
|
|
9995
9995
|
class ForgotPasswordRoutingModule {
|
|
9996
9996
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9997
9997
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
9998
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9998
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [RouterModule.forChild(routes$h), RouterModule] }); }
|
|
9999
9999
|
}
|
|
10000
10000
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, decorators: [{
|
|
10001
10001
|
type: NgModule,
|
|
10002
10002
|
args: [{
|
|
10003
|
-
imports: [RouterModule.forChild(routes$
|
|
10003
|
+
imports: [RouterModule.forChild(routes$h)],
|
|
10004
10004
|
exports: [RouterModule],
|
|
10005
10005
|
providers: []
|
|
10006
10006
|
}]
|
|
@@ -10212,19 +10212,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10212
10212
|
args: [{ selector: 'login', template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\" style=\"background: #fafafa;\">\n <div class=\"row w-100\">\n <div class=\"col-lg-4 col-md-6 col-sm-8 col-xs-10 col-12 mx-auto\">\n <mat-card class=\"mb-3 mt-3 w-100\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" alt=\"Logo\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\">\n <app-login-form-fields [userConfig]=\"userConfig\"></app-login-form-fields>\n </div>\n\n <div class=\"mt-3 p-0 mr-0 ml-0\" *ngIf=\"userConfig.showSignup\">\n <p>New to {{ userConfig.appName }}?</p>\n <button mat-raised-button class=\"w-100\" color=\"accent\" type=\"button\" [routerLink]=\"['/signup']\">\n Create an account\n </button>\n </div>\n </mat-card>\n </div>\n </div>\n</div>", styles: ["#login-form-wrapper{margin-top:40px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}#login-form-wrapper .google-button{background:#ce1d1d;color:#fff}#login-form-wrapper .facebook-button{background:#38388e;color:#fff}:host{width:100%}.white-box{background-color:#fff;padding:10px}mat-selection-list{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}mat-list-option{border:1px solid #ccc;text-align:center;border-radius:4px;padding:10px;cursor:pointer}mat-list-option:hover{background-color:#f0f0f0}\n"] }]
|
|
10213
10213
|
}], ctorParameters: () => [{ type: AlertService }, { type: i1$1.Router }, { type: AuthenticationService }, { type: CurrentUserService }, { type: StorageService }, { type: CredentialsService }, { type: i1$1.ActivatedRoute }, { type: UserConfigService }] });
|
|
10214
10214
|
|
|
10215
|
-
const routes$
|
|
10215
|
+
const routes$g = [
|
|
10216
10216
|
{ path: '', component: LoginComponent },
|
|
10217
10217
|
{ path: ':id', component: LoginComponent }
|
|
10218
10218
|
];
|
|
10219
10219
|
class LoginRoutingModule {
|
|
10220
10220
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10221
10221
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10222
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10222
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [RouterModule.forChild(routes$g), RouterModule] }); }
|
|
10223
10223
|
}
|
|
10224
10224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, decorators: [{
|
|
10225
10225
|
type: NgModule,
|
|
10226
10226
|
args: [{
|
|
10227
|
-
imports: [RouterModule.forChild(routes$
|
|
10227
|
+
imports: [RouterModule.forChild(routes$g)],
|
|
10228
10228
|
exports: [RouterModule],
|
|
10229
10229
|
providers: []
|
|
10230
10230
|
}]
|
|
@@ -10294,18 +10294,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10294
10294
|
type: Output
|
|
10295
10295
|
}] } });
|
|
10296
10296
|
|
|
10297
|
-
const routes$
|
|
10297
|
+
const routes$f = [
|
|
10298
10298
|
{ path: '', component: ProfileEditComponent, canActivate: [AuthenticationGuard] }
|
|
10299
10299
|
];
|
|
10300
10300
|
class ProfileRoutingModule {
|
|
10301
10301
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10302
10302
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10303
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10303
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [RouterModule.forChild(routes$f), RouterModule] }); }
|
|
10304
10304
|
}
|
|
10305
10305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, decorators: [{
|
|
10306
10306
|
type: NgModule,
|
|
10307
10307
|
args: [{
|
|
10308
|
-
imports: [RouterModule.forChild(routes$
|
|
10308
|
+
imports: [RouterModule.forChild(routes$f)],
|
|
10309
10309
|
exports: [RouterModule],
|
|
10310
10310
|
providers: []
|
|
10311
10311
|
}]
|
|
@@ -10763,7 +10763,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10763
10763
|
args: [{ selector: 'app-role-view', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{role?.is_global ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>\n" }]
|
|
10764
10764
|
}], ctorParameters: () => [{ type: HttpService }, { type: ErrorHandlerService }, { type: i1$1.ActivatedRoute }] });
|
|
10765
10765
|
|
|
10766
|
-
const routes$
|
|
10766
|
+
const routes$e = [
|
|
10767
10767
|
{ path: '', component: RolesViewAllComponent, canActivate: [AuthenticationGuard] },
|
|
10768
10768
|
{ path: ':id', component: RoleViewComponent, canActivate: [AuthenticationGuard] },
|
|
10769
10769
|
// fallback when no prior route found
|
|
@@ -10772,17 +10772,17 @@ const routes$c = [
|
|
|
10772
10772
|
class RoleRoutingProvider {
|
|
10773
10773
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10774
10774
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10775
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
10775
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [RouterModule.forChild(routes$e), RouterModule] }); }
|
|
10776
10776
|
}
|
|
10777
10777
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, decorators: [{
|
|
10778
10778
|
type: NgModule,
|
|
10779
10779
|
args: [{
|
|
10780
|
-
imports: [RouterModule.forChild(routes$
|
|
10780
|
+
imports: [RouterModule.forChild(routes$e)],
|
|
10781
10781
|
exports: [RouterModule]
|
|
10782
10782
|
}]
|
|
10783
10783
|
}] });
|
|
10784
10784
|
|
|
10785
|
-
const routes$
|
|
10785
|
+
const routes$d = [
|
|
10786
10786
|
{ path: '', component: PermissionsManagementComponent, canActivate: [AuthenticationGuard] },
|
|
10787
10787
|
// fallback when no prior route found
|
|
10788
10788
|
{ path: '**', redirectTo: '', pathMatch: 'full' },
|
|
@@ -10790,12 +10790,12 @@ const routes$b = [
|
|
|
10790
10790
|
class PermissionRoutingProvider {
|
|
10791
10791
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10792
10792
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10793
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
10793
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes$d), RouterModule] }); }
|
|
10794
10794
|
}
|
|
10795
10795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, decorators: [{
|
|
10796
10796
|
type: NgModule,
|
|
10797
10797
|
args: [{
|
|
10798
|
-
imports: [RouterModule.forChild(routes$
|
|
10798
|
+
imports: [RouterModule.forChild(routes$d)],
|
|
10799
10799
|
exports: [RouterModule]
|
|
10800
10800
|
}]
|
|
10801
10801
|
}] });
|
|
@@ -10867,18 +10867,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10867
10867
|
args: [{ selector: 'signup', template: "<div class=\"h-100 row align-items-center mx-0\">\n <div class=\"col\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\"\n class=\"form-bordered mx-auto form-medium form-bordered form-centered form-horizontal mt-3 white-box\"\n style=\"width:550px\">\n\n <h4 class=\"section-title text-center\">REGISTER</h4>\n\n <form [formGroup]=\"signUpForm\" (ngSubmit)=\"signUp()\" class=\"pt-4 pr-4 pl-4 pb-1 mt-4 ml-4 mr-4 mb-1\">\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"business_name\" placeholder=\"Business / Company Name\"\n type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('business_name')\">{{getErrorMessage('business_name')}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"business_email\" placeholder=\"Business / Company Email\"\n type=\"email\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('business_email')\">{{getErrorMessage('business_email')}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"user_name\" placeholder=\"User Name\" type=\"text\"\n autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('user_name')\">{{getErrorMessage('user_name')}}</mat-error>\n </mat-form-field>\n </div>\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"user_email\" placeholder=\"User Email\" type=\"email\"\n autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('user_email')\">{{getErrorMessage('user_email')}}</mat-error>\n </mat-form-field>\n </div>\n <div class=\"row mt-4\">\n <div class=\"col-12 text-center\">\n <button mat-button type=\"submit\" class=\"btn btn-sm btn-primary w-100\"\n [disabled]=\"isWorking\">Register</button>\n </div>\n </div>\n <div class=\"row mt-2\" *ngIf=\"userConfig.showSocialLogin\">\n <div class=\"col-6\">\n <button class=\"col-12 google-button\" mat-raised-button type=\"button\"\n (click)=\"redirect('google')\">Google</button>\n </div>\n <div class=\"col-6\">\n <button class=\"col-12 facebook-button\" mat-raised-button type=\"button\"\n (click)=\"redirect('facebook')\">Facebook</button>\n </div>\n </div>\n </form>\n </div>\n <div class=\"row mt-3 mr-0 ml-0\">\n <div class=\"col-12 text-center\">\n <p>Already an {{ userConfig.appName }} member?</p>\n <button mat-button class=\"btn btn-sm btn-secondary text-white\" style=\"width: 550px;\" type=\"button\"\n [routerLink]=\"['/login']\">\n Continue with login\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["#login-form-wrapper{margin-top:40px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}#login-form-wrapper .google-button{background:#ce1d1d;color:#fff}#login-form-wrapper .facebook-button{background:#38388e;color:#fff}:host{width:100%}.white-box{background-color:#fff;padding:10px}mat-selection-list{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}mat-list-option{border:1px solid #ccc;text-align:center;border-radius:4px;padding:10px;cursor:pointer}mat-list-option:hover{background-color:#f0f0f0}\n"] }]
|
|
10868
10868
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$1.Router }, { type: ErrorHandlerService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }] });
|
|
10869
10869
|
|
|
10870
|
-
const routes$
|
|
10870
|
+
const routes$c = [
|
|
10871
10871
|
{ path: '', component: SignUpComponent }
|
|
10872
10872
|
];
|
|
10873
10873
|
class SignupRoutingModule {
|
|
10874
10874
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10875
10875
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10876
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10876
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [RouterModule.forChild(routes$c), RouterModule] }); }
|
|
10877
10877
|
}
|
|
10878
10878
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, decorators: [{
|
|
10879
10879
|
type: NgModule,
|
|
10880
10880
|
args: [{
|
|
10881
|
-
imports: [RouterModule.forChild(routes$
|
|
10881
|
+
imports: [RouterModule.forChild(routes$c)],
|
|
10882
10882
|
exports: [RouterModule],
|
|
10883
10883
|
providers: []
|
|
10884
10884
|
}]
|
|
@@ -11478,7 +11478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
11478
11478
|
args: [{ selector: 'app-access-control-config-form', template: "<mat-card fxLayout=\"row\" fxLayoutAlign=\"center\" fxFlexOffset=\"25%\" fxFlex=\"50%\">\n <mat-card-content>\n <form [formGroup]=\"configForm\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div class=\"text-center\">\n <h2>\n Access Control Configuration\n </h2>\n </div>\n <div class=\"alert alert-warning\" role=\"alert\">\n Be careful with these configurations as they affect all users in your entire app.\n </div>\n <div *ngIf=\"!isWorking\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Max Failed Login Attempts\n </mat-label>\n <input matInput formControlName=\"max_failed_consecutive_login_attempts\"\n placeholder=\"Max Failed Login Attempts\" autocomplete=\"off\" type=\"number\" min=\"0\" required />\n <mat-hint>After how many failed login attempts should this user\u2019s account be locked?</mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_failed_consecutive_login_attempts')\">\n {{getErrorMessage('max_failed_consecutive_login_attempts')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Block x most recent passwords\n </mat-label>\n <input matInput formControlName=\"max_old_passwords_block\" placeholder=\"Block x most recent passwords\"\n type=\"number\" min=\"0\" autocomplete=\"off\" required />\n <mat-hint>\n How many recent passwords should the system block the user from reusing?\n Example: The user cannot reuse any of his/her last 3 passwords.\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_old_passwords_block')\">\n {{getErrorMessage('max_old_passwords_block')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Minimum Password Length\n </mat-label>\n <input matInput formControlName=\"min_password_length\" placeholder=\"Minimum Password Length\" type=\"number\"\n min=\"1\" autocomplete=\"off\" />\n <mat-hint>\n What is the minimum length of a user\u2019s password?\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('min_password_length')\">\n {{getErrorMessage('min_password_length')}}\n </mat-error>\n </mat-form-field>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Track Old Passwords?</p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_track_old_passwords\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should our software track old passwords to ensure users do not reuse old passwords?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Number </p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_password_require_number\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a number in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Symbol </p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_password_require_symbol\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a symbol in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Capital Letter </p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_password_require_capital_letter\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a capital letter in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mt-3 mb-3\">\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button [disabled]=\"isSaving\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\" mat-raised-button type=\"submit\" color=\"primary\">\n {{ isSaving ? 'Saving...' : 'Save' }}\n </button>\n </div>\n </div>\n </form>\n </mat-card-content>\n</mat-card>", styles: [".custom-hint{font-size:10.5px}\n"] }]
|
|
11479
11479
|
}], ctorParameters: () => [{ type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: AlertService }, { type: AccessControlConfigService }, { type: i3.Location }] });
|
|
11480
11480
|
|
|
11481
|
-
const routes$
|
|
11481
|
+
const routes$b = [
|
|
11482
11482
|
{
|
|
11483
11483
|
path: '',
|
|
11484
11484
|
component: AccessControlConfigFormComponent,
|
|
@@ -11493,12 +11493,12 @@ const routes$9 = [
|
|
|
11493
11493
|
class AccessControlConfigRoutingModule {
|
|
11494
11494
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11495
11495
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
11496
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [RouterModule.forChild(routes$
|
|
11496
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [RouterModule.forChild(routes$b), RouterModule] }); }
|
|
11497
11497
|
}
|
|
11498
11498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, decorators: [{
|
|
11499
11499
|
type: NgModule,
|
|
11500
11500
|
args: [{
|
|
11501
|
-
imports: [RouterModule.forChild(routes$
|
|
11501
|
+
imports: [RouterModule.forChild(routes$b)],
|
|
11502
11502
|
exports: [RouterModule]
|
|
11503
11503
|
}]
|
|
11504
11504
|
}] });
|
|
@@ -11666,7 +11666,7 @@ var accessControlConfig_module = /*#__PURE__*/Object.freeze({
|
|
|
11666
11666
|
AccessControlConfigModule: AccessControlConfigModule
|
|
11667
11667
|
});
|
|
11668
11668
|
|
|
11669
|
-
const routes$
|
|
11669
|
+
const routes$a = [
|
|
11670
11670
|
{
|
|
11671
11671
|
path: '', redirectTo: 'users', pathMatch: 'full'
|
|
11672
11672
|
},
|
|
@@ -11695,12 +11695,12 @@ const routes$8 = [
|
|
|
11695
11695
|
class NgxTechlifyUsersRoutingModule {
|
|
11696
11696
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11697
11697
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
11698
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, imports: [RouterModule.forChild(routes$
|
|
11698
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, imports: [RouterModule.forChild(routes$a), RouterModule] }); }
|
|
11699
11699
|
}
|
|
11700
11700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, decorators: [{
|
|
11701
11701
|
type: NgModule,
|
|
11702
11702
|
args: [{
|
|
11703
|
-
imports: [RouterModule.forChild(routes$
|
|
11703
|
+
imports: [RouterModule.forChild(routes$a)],
|
|
11704
11704
|
exports: [RouterModule]
|
|
11705
11705
|
}]
|
|
11706
11706
|
}] });
|
|
@@ -12152,7 +12152,7 @@ class RestrictorsListPageComponent {
|
|
|
12152
12152
|
}
|
|
12153
12153
|
}
|
|
12154
12154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsListPageComponent, deps: [{ token: i1$5.FormBuilder }, { token: RequestHelperService }, { token: i1$1.ActivatedRoute }, { token: RestrictorService }, { token: UserConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12155
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RestrictorsListPageComponent, selector: "lib-restrictors-list-page", ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" fxLayoutGap=\"10px\">\n <h4 class=\"mb-0\">Restrictors</h4>\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['create']\">add</mat-icon>\n</div>\n<p class=\"text-center text-secondary\">\n These are the configurations for restrictions that we are adding to users' access of this app.\n</p>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <form [formGroup]=\"filterForm\" fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <techlify-restrictor-type-selector formControlName=\"type_ids\"\n [multiple]=\"true\"></techlify-restrictor-type-selector>\n <techlify-restrictor-level-selector formControlName=\"level_ids\"\n [multiple]=\"true\"></techlify-restrictor-level-selector>\n <techlify-restrictor-status-selector formControlName=\"status_ids\"\n [multiple]=\"true\"></techlify-restrictor-status-selector>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" matSort (matSortChange)=\"onSortChange($event)\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\">\n\n <!-- No Column -->\n <ng-container matColumnDef=\"No\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"created_at\"> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index;\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"Type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"type_id\"> Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.type?.title }} </td>\n </ng-container>\n\n <!-- Level Column -->\n <ng-container matColumnDef=\"Level\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"level_id\"> Level </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.level?.title}} </td>\n </ng-container>\n\n <!-- Entity Column -->\n <ng-container matColumnDef=\"Entity\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"restricted_object_id\"> Entity </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ getRestrictableTypeValue(element) }}\n </td>\n </ng-container>\n\n <!-- Data Column -->\n <ng-container matColumnDef=\"Data\">\n <th mat-header-cell *matHeaderCellDef> Data </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\" *ngIf=\"element?.data?.ip_range\">\n IP Range: {{ element?.data?.ip_range }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.start_time\">\n Start time: {{ element?.data?.start_time | date: 'short' }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.end_time\">\n End time: {{ element?.data?.end_time | date: 'short' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"Status\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"status_id\"> Status </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.status?.title }}</td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"Actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"[element?.id, 'edit']\">edit</mat-icon>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: RestrictorStatusSelectorComponent, selector: "techlify-restrictor-status-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type:
|
|
12155
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RestrictorsListPageComponent, selector: "lib-restrictors-list-page", ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" fxLayoutGap=\"10px\">\n <h4 class=\"mb-0\">Restrictors</h4>\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['create']\">add</mat-icon>\n</div>\n<p class=\"text-center text-secondary\">\n These are the configurations for restrictions that we are adding to users' access of this app.\n</p>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <form [formGroup]=\"filterForm\" fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <techlify-restrictor-type-selector formControlName=\"type_ids\"\n [multiple]=\"true\"></techlify-restrictor-type-selector>\n <techlify-restrictor-level-selector formControlName=\"level_ids\"\n [multiple]=\"true\"></techlify-restrictor-level-selector>\n <techlify-restrictor-status-selector formControlName=\"status_ids\"\n [multiple]=\"true\"></techlify-restrictor-status-selector>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" matSort (matSortChange)=\"onSortChange($event)\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\">\n\n <!-- No Column -->\n <ng-container matColumnDef=\"No\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"created_at\"> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index;\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"Type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"type_id\"> Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.type?.title }} </td>\n </ng-container>\n\n <!-- Level Column -->\n <ng-container matColumnDef=\"Level\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"level_id\"> Level </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.level?.title}} </td>\n </ng-container>\n\n <!-- Entity Column -->\n <ng-container matColumnDef=\"Entity\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"restricted_object_id\"> Entity </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ getRestrictableTypeValue(element) }}\n </td>\n </ng-container>\n\n <!-- Data Column -->\n <ng-container matColumnDef=\"Data\">\n <th mat-header-cell *matHeaderCellDef> Data </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\" *ngIf=\"element?.data?.ip_range\">\n IP Range: {{ element?.data?.ip_range }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.start_time\">\n Start time: {{ element?.data?.start_time | date: 'short' }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.end_time\">\n End time: {{ element?.data?.end_time | date: 'short' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"Status\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"status_id\"> Status </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.status?.title }}</td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"Actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"[element?.id, 'edit']\">edit</mat-icon>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: RestrictorStatusSelectorComponent, selector: "techlify-restrictor-status-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
12156
12156
|
}
|
|
12157
12157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsListPageComponent, decorators: [{
|
|
12158
12158
|
type: Component,
|
|
@@ -12332,7 +12332,7 @@ class RestrictorsFormComponent {
|
|
|
12332
12332
|
this.location.back();
|
|
12333
12333
|
}
|
|
12334
12334
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsFormComponent, deps: [{ token: i1$5.FormBuilder }, { token: i3.Location }, { token: RequestHelperService }, { token: AlertService }, { token: RestrictorService }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12335
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: { restrictor: "restrictor" }, ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" class=\"mb-0\">\n <h3>Restrictor Form</h3>\n</div>\n\n<form [formGroup]=\"form\"\n fxLayout=\"row wrap\" fxLayoutAlign=\"start\" fxLayoutGap=\"10px\"\n (submit)=\"save()\">\n\n <techlify-restrictor-type-selector formControlName=\"type_id\"\n fxFlex=\"calc(100% - 10px)\"></techlify-restrictor-type-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Date</mat-label>\n <input formControlName=\"start_date\" matInput [matDatepicker]=\"startDatePicker\" (focus)=\"startDatePicker.open()\">\n <mat-datepicker #startDatePicker></mat-datepicker>\n <mat-hint>From what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Time</mat-label>\n <input formControlName=\"start_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Date</mat-label>\n <input formControlName=\"end_date\" matInput [matDatepicker]=\"endDatePicker\" (focus)=\"endDatePicker.open()\">\n <mat-datepicker #endDatePicker></mat-datepicker>\n <mat-hint>Up to what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Time</mat-label>\n <input formControlName=\"end_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <techlify-ip-range-selector fxFlex=\"calc(100% - 10px)\"\n label=\"IP Address Range (IP & Subnet Field)\"\n formControlName=\"ip_range\"\n *ngIf=\"form.value?.type_id === 2\"\n class=\"mt-2 mb-3\"></techlify-ip-range-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\">\n <techlify-restrictor-level-selector fxFlex=\"calc(50% - 10px)\"\n formControlName=\"level_id\"></techlify-restrictor-level-selector>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\" *ngIf=\"form.value?.level_id\">\n <mat-label>Object</mat-label>\n <mat-select *ngIf=\"form.value?.level_id === 1\" formControlName=\"restricted_object_id\">\n <mat-option [value]=\"2\">Client Admin</mat-option>\n <mat-option [value]=\"3\">Client User</mat-option>\n </mat-select>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 2\"\n apiUrl=\"api/roles\"\n titleField=\"label\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 3\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n </mat-form-field>\n </div>\n\n <mat-form-field fxFlex=\"calc(100% - 10px)\" class=\"mt-2\">\n <mat-label>Notes</mat-label>\n <textarea matInput formControlName=\"notes\"></textarea>\n </mat-form-field>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\">\n <button [disabled]=\"isSaving\" type=\"submit\" mat-raised-button color=\"primary\">Save</button>\n <button [disabled]=\"isSaving\" (click)=\"redirectBack()\" type=\"button\" mat-flat-button>Cancel</button>\n </div>\n\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: IpRangeSelectorComponent, selector: "techlify-ip-range-selector", inputs: ["label"] }, { kind: "component", type: RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] }); }
|
|
12335
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: { restrictor: "restrictor" }, ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" class=\"mb-0\">\n <h3>Restrictor Form</h3>\n</div>\n\n<form [formGroup]=\"form\"\n fxLayout=\"row wrap\" fxLayoutAlign=\"start\" fxLayoutGap=\"10px\"\n (submit)=\"save()\">\n\n <techlify-restrictor-type-selector formControlName=\"type_id\"\n fxFlex=\"calc(100% - 10px)\"></techlify-restrictor-type-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Date</mat-label>\n <input formControlName=\"start_date\" matInput [matDatepicker]=\"startDatePicker\" (focus)=\"startDatePicker.open()\">\n <mat-datepicker #startDatePicker></mat-datepicker>\n <mat-hint>From what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Time</mat-label>\n <input formControlName=\"start_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Date</mat-label>\n <input formControlName=\"end_date\" matInput [matDatepicker]=\"endDatePicker\" (focus)=\"endDatePicker.open()\">\n <mat-datepicker #endDatePicker></mat-datepicker>\n <mat-hint>Up to what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Time</mat-label>\n <input formControlName=\"end_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <techlify-ip-range-selector fxFlex=\"calc(100% - 10px)\"\n label=\"IP Address Range (IP & Subnet Field)\"\n formControlName=\"ip_range\"\n *ngIf=\"form.value?.type_id === 2\"\n class=\"mt-2 mb-3\"></techlify-ip-range-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\">\n <techlify-restrictor-level-selector fxFlex=\"calc(50% - 10px)\"\n formControlName=\"level_id\"></techlify-restrictor-level-selector>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\" *ngIf=\"form.value?.level_id\">\n <mat-label>Object</mat-label>\n <mat-select *ngIf=\"form.value?.level_id === 1\" formControlName=\"restricted_object_id\">\n <mat-option [value]=\"2\">Client Admin</mat-option>\n <mat-option [value]=\"3\">Client User</mat-option>\n </mat-select>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 2\"\n apiUrl=\"api/roles\"\n titleField=\"label\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 3\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n </mat-form-field>\n </div>\n\n <mat-form-field fxFlex=\"calc(100% - 10px)\" class=\"mt-2\">\n <mat-label>Notes</mat-label>\n <textarea matInput formControlName=\"notes\"></textarea>\n </mat-form-field>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\">\n <button [disabled]=\"isSaving\" type=\"submit\" mat-raised-button color=\"primary\">Save</button>\n <button [disabled]=\"isSaving\" (click)=\"redirectBack()\" type=\"button\" mat-flat-button>Cancel</button>\n </div>\n\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: IpRangeSelectorComponent, selector: "techlify-ip-range-selector", inputs: ["label"] }, { kind: "component", type: RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] }); }
|
|
12336
12336
|
}
|
|
12337
12337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsFormComponent, decorators: [{
|
|
12338
12338
|
type: Component,
|
|
@@ -12376,7 +12376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
12376
12376
|
args: [{ selector: 'lib-restrictors-form-page', template: "<div fxLayout fxLayoutAlign=\"start center\">\n <mat-card fxFlex=\"50%\" fxFlexOffset=\"25%\">\n <mat-card-content>\n <techlify-restrictors-form *ngIf=\"!isWorking else progressBarTemplate\"\n [restrictor]=\"restrictor\"></techlify-restrictors-form>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #progressBarTemplate>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n" }]
|
|
12377
12377
|
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: RestrictorService }] });
|
|
12378
12378
|
|
|
12379
|
-
const routes$
|
|
12379
|
+
const routes$9 = [
|
|
12380
12380
|
{
|
|
12381
12381
|
path: '',
|
|
12382
12382
|
component: RestrictorsListPageComponent,
|
|
@@ -12401,12 +12401,12 @@ const routes$7 = [
|
|
|
12401
12401
|
class RestrictorsRoutingModule {
|
|
12402
12402
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12403
12403
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
12404
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [RouterModule.forChild(routes$
|
|
12404
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [RouterModule.forChild(routes$9), RouterModule] }); }
|
|
12405
12405
|
}
|
|
12406
12406
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, decorators: [{
|
|
12407
12407
|
type: NgModule,
|
|
12408
12408
|
args: [{
|
|
12409
|
-
imports: [RouterModule.forChild(routes$
|
|
12409
|
+
imports: [RouterModule.forChild(routes$9)],
|
|
12410
12410
|
exports: [RouterModule]
|
|
12411
12411
|
}]
|
|
12412
12412
|
}] });
|
|
@@ -12938,36 +12938,11 @@ class ColumnConfig {
|
|
|
12938
12938
|
}
|
|
12939
12939
|
|
|
12940
12940
|
class ColumnSelectorComponent {
|
|
12941
|
-
|
|
12942
|
-
|
|
12943
|
-
|
|
12944
|
-
get displayedColumns() {
|
|
12945
|
-
return this.columnConfigs.filter(column => column.isSelected ?? true);
|
|
12946
|
-
}
|
|
12947
|
-
get displayedColumnDefs() {
|
|
12948
|
-
return this.displayedColumns.map(column => column.def);
|
|
12949
|
-
}
|
|
12950
|
-
get filteredColumns() {
|
|
12951
|
-
return this.availableColumns.filter((column) => {
|
|
12952
|
-
if (this.search.value) {
|
|
12953
|
-
return column.label.toLowerCase().includes(this.search.value.toLowerCase());
|
|
12954
|
-
}
|
|
12955
|
-
return true;
|
|
12956
|
-
});
|
|
12957
|
-
}
|
|
12958
|
-
get sortedColumns() {
|
|
12959
|
-
let columns = this.filteredColumns.sort((a, b) => {
|
|
12960
|
-
if (a.label < b.label)
|
|
12961
|
-
return -1;
|
|
12962
|
-
if (a.label > b.label)
|
|
12963
|
-
return 1;
|
|
12964
|
-
return 0;
|
|
12965
|
-
});
|
|
12966
|
-
if (this.search.value) {
|
|
12967
|
-
columns = [...columns, ...this.selectedColumns];
|
|
12968
|
-
}
|
|
12969
|
-
return [...new Map(columns.map(column => [column.def, column])).values()];
|
|
12941
|
+
set isExportWorking(value) {
|
|
12942
|
+
this._isExportWorking = value;
|
|
12943
|
+
this.updateEmittedColumns();
|
|
12970
12944
|
}
|
|
12945
|
+
get isExportWorking() { return this._isExportWorking; }
|
|
12971
12946
|
constructor() {
|
|
12972
12947
|
this.label = 'Columns';
|
|
12973
12948
|
this.mode = 'selector';
|
|
@@ -12975,25 +12950,63 @@ class ColumnSelectorComponent {
|
|
|
12975
12950
|
this.selectedColumns = [];
|
|
12976
12951
|
this.selectedColumnsChange = new EventEmitter();
|
|
12977
12952
|
this.displayedColumnsChange = new EventEmitter();
|
|
12953
|
+
this._isExportWorking = false;
|
|
12978
12954
|
this.columnSelector = new FormControl([]);
|
|
12979
12955
|
this.search = new FormControl('');
|
|
12980
12956
|
}
|
|
12981
12957
|
ngOnInit() {
|
|
12982
|
-
if (this.displayedColumns
|
|
12958
|
+
if (this.displayedColumns.length > 0) {
|
|
12983
12959
|
this.columnSelector.setValue(this.displayedColumnDefs, { emitEvent: false });
|
|
12984
12960
|
}
|
|
12985
12961
|
this.columnSelector.valueChanges
|
|
12986
12962
|
.pipe(startWith$1(this.displayedColumnDefs))
|
|
12987
|
-
.subscribe((
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
12991
|
-
this.selectedColumnsChange.emit(this.selectedColumns);
|
|
12992
|
-
this.displayedColumnsChange.emit(columnDefs);
|
|
12963
|
+
.subscribe((selectedDefs) => {
|
|
12964
|
+
const selectedConfigs = this.columnConfigs.filter(c => selectedDefs.includes(c.def));
|
|
12965
|
+
this.selectedColumns = selectedConfigs;
|
|
12966
|
+
this.updateEmittedColumns();
|
|
12993
12967
|
});
|
|
12994
12968
|
}
|
|
12969
|
+
get availableColumns() {
|
|
12970
|
+
return this.columnConfigs;
|
|
12971
|
+
}
|
|
12972
|
+
get displayedColumns() {
|
|
12973
|
+
return this.columnConfigs.filter(c => c.isSelected ?? true);
|
|
12974
|
+
}
|
|
12975
|
+
get displayedColumnDefs() {
|
|
12976
|
+
return this.displayedColumns.map(c => c.def);
|
|
12977
|
+
}
|
|
12978
|
+
get filteredColumns() {
|
|
12979
|
+
return this.availableColumns.filter(column => this.search.value ? column.label.toLowerCase().includes(this.search.value.toLowerCase()) : true);
|
|
12980
|
+
}
|
|
12981
|
+
get sortedColumns() {
|
|
12982
|
+
let sorted = [...this.filteredColumns].sort((a, b) => a.label.localeCompare(b.label));
|
|
12983
|
+
if (this.search.value) {
|
|
12984
|
+
sorted = [...sorted, ...this.selectedColumns];
|
|
12985
|
+
}
|
|
12986
|
+
return [...new Map(sorted.map(c => [c.def, c])).values()];
|
|
12987
|
+
}
|
|
12988
|
+
updateEmittedColumns() {
|
|
12989
|
+
let finalColumns;
|
|
12990
|
+
if (this.isExportWorking) {
|
|
12991
|
+
const selectedDefs = this.columnSelector.value || [];
|
|
12992
|
+
const selected = this.columnConfigs.filter(c => selectedDefs.includes(c.def));
|
|
12993
|
+
const exportable = this.columnConfigs.filter(c => c.isExportable);
|
|
12994
|
+
const merged = [...selected, ...exportable];
|
|
12995
|
+
const unique = new Set(merged.map(c => c.def));
|
|
12996
|
+
// Keep original order from columnConfigs
|
|
12997
|
+
finalColumns = this.columnConfigs.filter(c => unique.has(c.def));
|
|
12998
|
+
}
|
|
12999
|
+
else {
|
|
13000
|
+
const selectedDefs = this.columnSelector.value || [];
|
|
13001
|
+
// Restore REAL user-selected columns
|
|
13002
|
+
finalColumns = this.columnConfigs.filter(c => selectedDefs.includes(c.def));
|
|
13003
|
+
}
|
|
13004
|
+
this.selectedColumns = finalColumns;
|
|
13005
|
+
this.selectedColumnsChange.emit(finalColumns);
|
|
13006
|
+
this.displayedColumnsChange.emit(finalColumns.map(c => c.def));
|
|
13007
|
+
}
|
|
12995
13008
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12996
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ColumnSelectorComponent, selector: "app-column-selector", inputs: { label: "label", mode: "mode", columnConfigs: "columnConfigs", selectedColumns: "selectedColumns" }, outputs: { selectedColumnsChange: "selectedColumnsChange", displayedColumnsChange: "displayedColumnsChange" }, ngImport: i0, template: "<mat-form-field *ngIf=\"mode === 'selector'\">\n <mat-label>{{ label }}</mat-label>\n <mat-select [multiple]=\"true\" [formControl]=\"columnSelector\">\n <mat-option class=\"text-capitalize\" *ngFor=\"let col of sortedColumns\" [value]=\"col.def\"\n [disabled]=\"!(col?.isEditable ?? true)\">\n {{ col.label }}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<div *ngIf=\"mode === 'icon'\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"clickable\" (click)=\"select.open()\">view_column</mat-icon>\n <mat-select class=\"column-selector fl-sm\" #select [formControl]=\"columnSelector\" multiple panelWidth=\"\">\n <mat-form-field class=\"p-1 w-100\">\n <input matInput [formControl]=\"search\" placeholder=\"Search\" (keydown)=\"$event.stopPropagation();\"\n autocomplete=\"off\">\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"search.value\" (click)=\"search.setValue('')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n <mat-option *ngFor=\"let column of sortedColumns\" [value]=\"column.def\" class=\"text-capitalize\"\n [disabled]=\"!(column?.isEditable ?? true)\">{{column?.label}}</mat-option>\n </mat-select>\n</div>", styles: [".column-selector{opacity:0;position:relative;right:24px;height:0!important;width:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] }); }
|
|
13009
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ColumnSelectorComponent, selector: "app-column-selector", inputs: { label: "label", mode: "mode", columnConfigs: "columnConfigs", selectedColumns: "selectedColumns", isExportWorking: "isExportWorking" }, outputs: { selectedColumnsChange: "selectedColumnsChange", displayedColumnsChange: "displayedColumnsChange" }, ngImport: i0, template: "<mat-form-field *ngIf=\"mode === 'selector'\">\n <mat-label>{{ label }}</mat-label>\n <mat-select [multiple]=\"true\" [formControl]=\"columnSelector\">\n <mat-option class=\"text-capitalize\" *ngFor=\"let col of sortedColumns\" [value]=\"col.def\"\n [disabled]=\"!(col?.isEditable ?? true)\">\n {{ col.label }}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<div *ngIf=\"mode === 'icon'\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"clickable\" (click)=\"select.open()\">view_column</mat-icon>\n <mat-select class=\"column-selector fl-sm\" #select [formControl]=\"columnSelector\" multiple panelWidth=\"\">\n <mat-form-field class=\"p-1 w-100\">\n <input matInput [formControl]=\"search\" placeholder=\"Search\" (keydown)=\"$event.stopPropagation();\"\n autocomplete=\"off\">\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"search.value\" (click)=\"search.setValue('')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n <mat-option *ngFor=\"let column of sortedColumns\" [value]=\"column.def\" class=\"text-capitalize\"\n [disabled]=\"!(column?.isEditable ?? true)\">{{column?.label}}</mat-option>\n </mat-select>\n</div>", styles: [".column-selector{opacity:0;position:relative;right:24px;height:0!important;width:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] }); }
|
|
12997
13010
|
}
|
|
12998
13011
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnSelectorComponent, decorators: [{
|
|
12999
13012
|
type: Component,
|
|
@@ -13010,6 +13023,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13010
13023
|
type: Output
|
|
13011
13024
|
}], displayedColumnsChange: [{
|
|
13012
13025
|
type: Output
|
|
13026
|
+
}], isExportWorking: [{
|
|
13027
|
+
type: Input
|
|
13013
13028
|
}] } });
|
|
13014
13029
|
|
|
13015
13030
|
class ColumnSelectorModule {
|
|
@@ -13164,18 +13179,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13164
13179
|
args: [{ selector: 'app-reset-password', template: "<div class=\"h-100 row align-items-center mx-0\">\n <div class=\"col\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\"\n class=\"form-bordered mx-auto form-medium form-bordered form-centered form-horizontal mt-3 white-box\"\n style=\"width:550px\">\n\n <h4 class=\"section-title text-center mt-4\">Reset Password</h4>\n\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\" class=\"mt-4\">\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\"\n required readonly />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>OTP</mat-label>\n <input matInput formControlName=\"otp\" placeholder=\"OTP\" type=\"string\" autocomplete=\"off\"\n required />\n <mat-error *ngIf=\"isFieldValid('otp')\">{{getErrorMessage('otp')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\" placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8 mt-3\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\"\n type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"mt-4 row\">\n <techlify-password-requirement-check class=\"offset-2 col-8\" [password]=\"form.get('password').value\"\n [email]=\"form.get('email').value\"></techlify-password-requirement-check>\n </div>\n\n <div class=\"row mt-4\">\n <div class=\"offset-2 col-8 text-center\">\n <button mat-raised-button color=\"primary\" class=\"w-100\" type=\"submit\" [disabled]=\"isWorking\">\n Submit\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>", styles: ["#login-form-wrapper{margin-top:100px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}:host{width:100%}.white-box{background-color:#fff;padding:10px}\n"] }]
|
|
13165
13180
|
}], ctorParameters: () => [{ type: ResetPasswordService }, { type: AlertService }, { type: i1$1.Router }, { type: CurrentUserService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }, { type: i1$1.ActivatedRoute }] });
|
|
13166
13181
|
|
|
13167
|
-
const routes$
|
|
13182
|
+
const routes$8 = [
|
|
13168
13183
|
{ path: '**', component: ResetPasswordComponent }
|
|
13169
13184
|
];
|
|
13170
13185
|
class ResetPasswordRoutingModule {
|
|
13171
13186
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13172
13187
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13173
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
13188
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [RouterModule.forChild(routes$8), RouterModule] }); }
|
|
13174
13189
|
}
|
|
13175
13190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, decorators: [{
|
|
13176
13191
|
type: NgModule,
|
|
13177
13192
|
args: [{
|
|
13178
|
-
imports: [RouterModule.forChild(routes$
|
|
13193
|
+
imports: [RouterModule.forChild(routes$8)],
|
|
13179
13194
|
exports: [RouterModule],
|
|
13180
13195
|
providers: []
|
|
13181
13196
|
}]
|
|
@@ -13528,7 +13543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13528
13543
|
], template: "<div class=\"row\">\n <div class=\"col-lg-6\">\n <app-tenant-list-widget *ngxPermissionsOnly=\"['app_admin']\"></app-tenant-list-widget>\n </div>\n</div>\n" }]
|
|
13529
13544
|
}] });
|
|
13530
13545
|
|
|
13531
|
-
const routes$
|
|
13546
|
+
const routes$7 = [
|
|
13532
13547
|
{
|
|
13533
13548
|
path: 'home',
|
|
13534
13549
|
component: AppAdminHomeComponent
|
|
@@ -13542,12 +13557,12 @@ const routes$5 = [
|
|
|
13542
13557
|
class AppAdminRoutingModule {
|
|
13543
13558
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13544
13559
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13545
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, imports: [RouterModule.forChild(routes$
|
|
13560
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, imports: [RouterModule.forChild(routes$7), RouterModule] }); }
|
|
13546
13561
|
}
|
|
13547
13562
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, decorators: [{
|
|
13548
13563
|
type: NgModule,
|
|
13549
13564
|
args: [{
|
|
13550
|
-
imports: [RouterModule.forChild(routes$
|
|
13565
|
+
imports: [RouterModule.forChild(routes$7)],
|
|
13551
13566
|
exports: [RouterModule]
|
|
13552
13567
|
}]
|
|
13553
13568
|
}] });
|
|
@@ -13668,19 +13683,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13668
13683
|
args: [{ selector: 'app-admin-user-view', template: "<div class=\"mat-typography m-4\" *ngIf=\"user\">\n <h1 class=\"text-center\">{{user.name}}</h1>\n\n <div class=\"border\">\n <mat-tab-group>\n <mat-tab label=\"Basic Information\">\n <ng-template matTabContent>\n <div class=\"row m-4\">\n <div class=\"col-4\">\n <div class=\"bordered-section\">\n <div class=\"row\" *ngIf=\"currentUser?.user_type_id != 3\">\n <button type=\"button\" mat-icon-button (click)=\"editUser(user)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-stroked-button color=\"warn\" *ngIf=\"!user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('enable')\">\n Enable\n </button>\n <button mat-stroked-button color=\"primary\" *ngIf=\"user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('disable')\">Disable</button>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Name:</label>\n <div class=\"col-sm-8\">{{user?.name}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Email:</label>\n <div class=\"col-sm-8\">{{user?.email}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Type:</label>\n <div class=\"col-sm-8\">{{user?.type?.title}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Status:</label>\n <div class=\"col-sm-8\">{{user?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Role:</label>\n <div class=\"col-sm-8\">\n <span *ngFor=\"let role of user?.roles\">\n <button class=\"btn btn-outline-dark btn-xs mb-2\">{{role?.label}}</button>\n \n </span>\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Signature:</label>\n <div class=\"col-sm-8\">\n <span *ngIf=\"user?.signature\">\n <img src=\"{{user?.signature_url}}\" alt=\"\" width=\"250px\" />\n </span>\n <span *ngIf=\"!user?.signature\">\n No Signature Added\n </span>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Login History\">\n <ng-template matTabContent>\n <app-login-history-for-user [userId]=\"user?.id\"></app-login-history-for-user>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Activity Logs\">\n <ng-template matTabContent>\n <app-audit-log-list objectType=\"User\" [objectId]=\"user?.id\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Tenants\">\n <ng-template matTabContent>\n <app-user-clients-list [user]=\"user\"></app-user-clients-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Sessions\">\n <ng-template matTabContent>\n <app-user-sessions [user]=\"user\"></app-user-sessions>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n\n</div>" }]
|
|
13669
13684
|
}], ctorParameters: () => [{ type: UserService }, { type: i1$1.ActivatedRoute }, { type: ConfigService }, { type: HttpService }, { type: i1.MatDialog }, { type: CurrentUserService }] });
|
|
13670
13685
|
|
|
13671
|
-
const routes$
|
|
13686
|
+
const routes$6 = [
|
|
13672
13687
|
{ path: '**', component: AppAdminUserViewComponent },
|
|
13673
13688
|
];
|
|
13674
13689
|
// @dynamic
|
|
13675
13690
|
class AppAdminUserViewRoutingProvider {
|
|
13676
13691
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13677
13692
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13678
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
13693
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [RouterModule.forChild(routes$6), RouterModule] }); }
|
|
13679
13694
|
}
|
|
13680
13695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, decorators: [{
|
|
13681
13696
|
type: NgModule,
|
|
13682
13697
|
args: [{
|
|
13683
|
-
imports: [RouterModule.forChild(routes$
|
|
13698
|
+
imports: [RouterModule.forChild(routes$6)],
|
|
13684
13699
|
exports: [RouterModule]
|
|
13685
13700
|
}]
|
|
13686
13701
|
}] });
|
|
@@ -13860,16 +13875,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13860
13875
|
}]
|
|
13861
13876
|
}] });
|
|
13862
13877
|
|
|
13863
|
-
const routes$
|
|
13878
|
+
const routes$5 = [];
|
|
13864
13879
|
class SubscriptionFormRoutingModule {
|
|
13865
13880
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13866
13881
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13867
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
13882
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, imports: [RouterModule.forChild(routes$5), RouterModule] }); }
|
|
13868
13883
|
}
|
|
13869
13884
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, decorators: [{
|
|
13870
13885
|
type: NgModule,
|
|
13871
13886
|
args: [{
|
|
13872
|
-
imports: [RouterModule.forChild(routes$
|
|
13887
|
+
imports: [RouterModule.forChild(routes$5)],
|
|
13873
13888
|
exports: [RouterModule]
|
|
13874
13889
|
}]
|
|
13875
13890
|
}] });
|
|
@@ -14027,7 +14042,7 @@ class SubscriptionFormComponent extends TechlifyFormComponentInterface {
|
|
|
14027
14042
|
}
|
|
14028
14043
|
}
|
|
14029
14044
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormComponent, deps: [{ token: FormValidatorService }, { token: i1.MatDialog }, { token: i1$5.UntypedFormBuilder }, { token: SubscriptionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14030
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionFormComponent, selector: "app-subscription-form", inputs: { isUpdate: "isUpdate", subscriptionPackage: "subscriptionPackage", tenantSubscriptionInfo: "tenantSubscriptionInfo" }, outputs: { success: "success" }, usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"!isUpdate\" matTooltip=\"Add Subscription\" type=\"button\" mat-icon-button\n (click)=\"formDialog(formTemplate)\">\n <mat-icon>add</mat-icon>\n</button>\n<button *ngIf=\"isUpdate\" matTooltip=\"Edit Subscription\" type=\"button\" mat-icon-button\n (click)=\"formDialog(formTemplate)\">\n <mat-icon>edit</mat-icon>\n</button>\n\n\n<ng-template #formTemplate>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>{{subscriptionPackage?'Package':'Tenant'}} Subscription Form</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\">\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Tenant</mat-label>\n <app-searchable-selector appearance=\"outline\" formControlName=\"tenant_id\" titleField=\"name\"\n apiUrl=\"api/clients\" sortBy=\"name|ASC\"\n [selectedValue]=\"selectedTenant\"></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('tenant_id')\">{{getErrorMessage('tenant_id')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Package</mat-label>\n <app-searchable-selector appearance=\"outline\" formControlName=\"package_id\"\n apiUrl=\"api/subscription-packages\" sortBy=\"title|ASC\"\n [selectedValue]=\"selectedPackage\"></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('package_id')\">{{getErrorMessage('package_id')}}\n </mat-error>\n </mat-form-field>\n\n\n <div fxLayoutAlign=\"start center\" fxFlex=\"100\" class=\"mb-2\">\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\"\n [hideMultipleSelectionIndicator]=\"true\" formControlName=\"is_trail\" (change)=\"validateDates()\">\n <mat-button-toggle [value]=\"true\">Trail</mat-button-toggle>\n <mat-button-toggle [value]=\"false\">Paid</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <ng-container *ngIf=\"!form.get('is_trail').value\">\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"started_at\" formControlName=\"started_at\"\n placeholder=\"Started At\" [required]=\"!form.get('is_trail').value\" />\n <mat-datepicker-toggle matSuffix [for]=\"started_at\"></mat-datepicker-toggle>\n <mat-datepicker #started_at></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('started_at')\">{{getErrorMessage('started_at')}}</mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"ended_at\" formControlName=\"ended_at\" placeholder=\"Ended At\" />\n <mat-datepicker-toggle matSuffix [for]=\"ended_at\"></mat-datepicker-toggle>\n <mat-datepicker #ended_at></mat-datepicker>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"form.get('is_trail').value\">\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"trail_started_at\" formControlName=\"trail_started_at\"\n placeholder=\"Trail Started At\" [required]=\"form.get('is_trail').value\" />\n <mat-datepicker-toggle matSuffix [for]=\"trail_started_at\"></mat-datepicker-toggle>\n <mat-datepicker #trail_started_at></mat-datepicker>\n <mat-error\n *ngIf=\"isFieldValid('trail_started_at')\">{{getErrorMessage('trail_started_at')}}</mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"trail_ended_at\" formControlName=\"trail_ended_at\"\n placeholder=\"Trail Ended At\" [required]=\"form.get('is_trail').value\" />\n <mat-datepicker-toggle matSuffix [for]=\"trail_ended_at\"></mat-datepicker-toggle>\n <mat-datepicker #trail_ended_at></mat-datepicker>\n <mat-error\n *ngIf=\"isFieldValid('trail_ended_at')\">{{getErrorMessage('trail_ended_at')}}</mat-error>\n </mat-form-field>\n </ng-container>\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Cost/Unit</mat-label>\n <input type=\"number\" matInput formControlName=\"cost_per_unit\" placeholder=\"Cost/Unit\" />\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Units</mat-label>\n <input type=\"number\" matInput formControlName=\"units\" placeholder=\"Units\" />\n </mat-form-field>\n\n <div fxLayoutAlign=\"start center\" fxFlex=\"100\">\n <mat-slide-toggle class=\"switch\" formControlName=\"is_unit_limitation_enforced\">Is\n Unit Enforced\n </mat-slide-toggle>\n </div>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button fxFlex mat-raised-button type=\"button\" matDialogClose class=\"white-bg-button\">\n Cancel\n </button>\n <button fxFlex mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n </div>\n </form>\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
|
|
14045
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionFormComponent, selector: "app-subscription-form", inputs: { isUpdate: "isUpdate", subscriptionPackage: "subscriptionPackage", tenantSubscriptionInfo: "tenantSubscriptionInfo" }, outputs: { success: "success" }, usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"!isUpdate\" matTooltip=\"Add Subscription\" type=\"button\" mat-icon-button\n (click)=\"formDialog(formTemplate)\">\n <mat-icon>add</mat-icon>\n</button>\n<button *ngIf=\"isUpdate\" matTooltip=\"Edit Subscription\" type=\"button\" mat-icon-button\n (click)=\"formDialog(formTemplate)\">\n <mat-icon>edit</mat-icon>\n</button>\n\n\n<ng-template #formTemplate>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>{{subscriptionPackage?'Package':'Tenant'}} Subscription Form</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\">\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Tenant</mat-label>\n <app-searchable-selector appearance=\"outline\" formControlName=\"tenant_id\" titleField=\"name\"\n apiUrl=\"api/clients\" sortBy=\"name|ASC\"\n [selectedValue]=\"selectedTenant\"></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('tenant_id')\">{{getErrorMessage('tenant_id')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Package</mat-label>\n <app-searchable-selector appearance=\"outline\" formControlName=\"package_id\"\n apiUrl=\"api/subscription-packages\" sortBy=\"title|ASC\"\n [selectedValue]=\"selectedPackage\"></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('package_id')\">{{getErrorMessage('package_id')}}\n </mat-error>\n </mat-form-field>\n\n\n <div fxLayoutAlign=\"start center\" fxFlex=\"100\" class=\"mb-2\">\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\"\n [hideMultipleSelectionIndicator]=\"true\" formControlName=\"is_trail\" (change)=\"validateDates()\">\n <mat-button-toggle [value]=\"true\">Trail</mat-button-toggle>\n <mat-button-toggle [value]=\"false\">Paid</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <ng-container *ngIf=\"!form.get('is_trail').value\">\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"started_at\" formControlName=\"started_at\"\n placeholder=\"Started At\" [required]=\"!form.get('is_trail').value\" />\n <mat-datepicker-toggle matSuffix [for]=\"started_at\"></mat-datepicker-toggle>\n <mat-datepicker #started_at></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('started_at')\">{{getErrorMessage('started_at')}}</mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"ended_at\" formControlName=\"ended_at\" placeholder=\"Ended At\" />\n <mat-datepicker-toggle matSuffix [for]=\"ended_at\"></mat-datepicker-toggle>\n <mat-datepicker #ended_at></mat-datepicker>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"form.get('is_trail').value\">\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"trail_started_at\" formControlName=\"trail_started_at\"\n placeholder=\"Trail Started At\" [required]=\"form.get('is_trail').value\" />\n <mat-datepicker-toggle matSuffix [for]=\"trail_started_at\"></mat-datepicker-toggle>\n <mat-datepicker #trail_started_at></mat-datepicker>\n <mat-error\n *ngIf=\"isFieldValid('trail_started_at')\">{{getErrorMessage('trail_started_at')}}</mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"0 1 calc(50%-0.5rem)\">\n <input matInput [matDatepicker]=\"trail_ended_at\" formControlName=\"trail_ended_at\"\n placeholder=\"Trail Ended At\" [required]=\"form.get('is_trail').value\" />\n <mat-datepicker-toggle matSuffix [for]=\"trail_ended_at\"></mat-datepicker-toggle>\n <mat-datepicker #trail_ended_at></mat-datepicker>\n <mat-error\n *ngIf=\"isFieldValid('trail_ended_at')\">{{getErrorMessage('trail_ended_at')}}</mat-error>\n </mat-form-field>\n </ng-container>\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Cost/Unit</mat-label>\n <input type=\"number\" matInput formControlName=\"cost_per_unit\" placeholder=\"Cost/Unit\" />\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" fxFlex=\"0 1 calc(50%-0.5rem)\">\n <mat-label>Units</mat-label>\n <input type=\"number\" matInput formControlName=\"units\" placeholder=\"Units\" />\n </mat-form-field>\n\n <div fxLayoutAlign=\"start center\" fxFlex=\"100\">\n <mat-slide-toggle class=\"switch\" formControlName=\"is_unit_limitation_enforced\">Is\n Unit Enforced\n </mat-slide-toggle>\n </div>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button fxFlex mat-raised-button type=\"button\" matDialogClose class=\"white-bg-button\">\n Cancel\n </button>\n <button fxFlex mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n </div>\n </form>\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
|
|
14031
14046
|
}
|
|
14032
14047
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormComponent, decorators: [{
|
|
14033
14048
|
type: Component,
|
|
@@ -14076,13 +14091,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14076
14091
|
}] });
|
|
14077
14092
|
|
|
14078
14093
|
let SubscriptionListingComponent = class SubscriptionListingComponent extends TechlifyListingControllerInterface {
|
|
14079
|
-
|
|
14094
|
+
get isFilterPatchFromRoute() {
|
|
14095
|
+
return !this.subscriptionPackage?.id;
|
|
14096
|
+
}
|
|
14097
|
+
constructor(subscriptionService, fb, dialog) {
|
|
14080
14098
|
super();
|
|
14081
14099
|
this.subscriptionService = subscriptionService;
|
|
14082
14100
|
this.fb = fb;
|
|
14083
14101
|
this.dialog = dialog;
|
|
14084
|
-
this.filterService = filterService;
|
|
14085
|
-
this.activatedRoute = activatedRoute;
|
|
14086
14102
|
this.subscriptionStatus = SubscriptionStatus;
|
|
14087
14103
|
this.displayedColumns = [
|
|
14088
14104
|
'index',
|
|
@@ -14097,47 +14113,38 @@ let SubscriptionListingComponent = class SubscriptionListingComponent extends Te
|
|
|
14097
14113
|
'status',
|
|
14098
14114
|
'actions',
|
|
14099
14115
|
];
|
|
14116
|
+
//Configuration for request helper to decode the route params
|
|
14117
|
+
this.filterFormConfiguration = {
|
|
14118
|
+
package_ids: { multiple: true },
|
|
14119
|
+
status_ids: { multiple: true },
|
|
14120
|
+
date_from: { date: true },
|
|
14121
|
+
date_to: { date: true },
|
|
14122
|
+
};
|
|
14100
14123
|
}
|
|
14101
14124
|
ngOnInit() {
|
|
14102
14125
|
if (this.subscriptionPackage) {
|
|
14103
14126
|
this.displayedColumns = this.displayedColumns.filter((col) => col !== 'package');
|
|
14104
14127
|
}
|
|
14105
|
-
this.
|
|
14128
|
+
this.filterForm = this.fb.group({
|
|
14106
14129
|
search: [''],
|
|
14107
14130
|
sort_by: [''],
|
|
14108
|
-
package_ids: [],
|
|
14131
|
+
package_ids: [''],
|
|
14109
14132
|
date_from: [''],
|
|
14110
14133
|
date_to: [''],
|
|
14111
|
-
status_ids: ['']
|
|
14134
|
+
status_ids: [''],
|
|
14135
|
+
date_period_id: ['']
|
|
14112
14136
|
});
|
|
14113
|
-
this.
|
|
14137
|
+
this.patchFiltersFromRoute();
|
|
14114
14138
|
this.loadData();
|
|
14115
|
-
this.
|
|
14116
|
-
}
|
|
14117
|
-
listenForChanges() {
|
|
14118
|
-
this.filterFormGroup.valueChanges
|
|
14119
|
-
.pipe(debounceTime$1(500), untilDestroyed(this))
|
|
14120
|
-
.subscribe((_) => {
|
|
14121
|
-
this.filterService.applyFilterToRoute(this.activatedRoute, this.filterFormGroup.value);
|
|
14122
|
-
this.reload();
|
|
14123
|
-
});
|
|
14124
|
-
}
|
|
14125
|
-
patchFilters() {
|
|
14126
|
-
let routeFilters = this.filterService.getFiltersFromRoute(this.activatedRoute, this.filterFormGroup.value);
|
|
14127
|
-
routeFilters = {
|
|
14128
|
-
...routeFilters,
|
|
14129
|
-
package_ids: routeFilters?.package_ids ? routeFilters.package_ids.split(',').map(Number) : '',
|
|
14130
|
-
status_ids: routeFilters?.status_ids ? routeFilters.status_ids.split(',').map(Number) : '',
|
|
14131
|
-
};
|
|
14132
|
-
this.filterFormGroup.setValue(routeFilters);
|
|
14139
|
+
this.listenFilterChanges();
|
|
14133
14140
|
}
|
|
14134
14141
|
loadData() {
|
|
14135
14142
|
this.isWorking = true;
|
|
14136
|
-
const filters = JSON.parse(JSON.stringify(this.
|
|
14143
|
+
const filters = JSON.parse(JSON.stringify(this.filterForm.value));
|
|
14137
14144
|
filters.page = this.page;
|
|
14138
14145
|
filters.perPage = this.perPage;
|
|
14139
|
-
filters.package_ids = this.subscriptionPackage?.id
|
|
14140
|
-
filters.status_ids = filters
|
|
14146
|
+
filters.package_ids = this.subscriptionPackage?.id || filters?.package_ids?.toString();
|
|
14147
|
+
filters.status_ids = filters?.status_ids?.toString();
|
|
14141
14148
|
this.subscriptionService.index(filters)
|
|
14142
14149
|
.pipe(finalize$1(() => this.isWorking = false)).subscribe((res) => {
|
|
14143
14150
|
this.lastPage = res?.last_page || this.page;
|
|
@@ -14146,11 +14153,6 @@ let SubscriptionListingComponent = class SubscriptionListingComponent extends Te
|
|
|
14146
14153
|
}
|
|
14147
14154
|
});
|
|
14148
14155
|
}
|
|
14149
|
-
sortColumn(event) {
|
|
14150
|
-
const direction = event.direction.toString().toUpperCase();
|
|
14151
|
-
this.models = [];
|
|
14152
|
-
this.filterFormGroup.get('sort_by').setValue(`${event?.active}|${direction}`);
|
|
14153
|
-
}
|
|
14154
14156
|
cancel(model) {
|
|
14155
14157
|
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
14156
14158
|
width: "400px",
|
|
@@ -14173,20 +14175,20 @@ let SubscriptionListingComponent = class SubscriptionListingComponent extends Te
|
|
|
14173
14175
|
}
|
|
14174
14176
|
});
|
|
14175
14177
|
}
|
|
14176
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingComponent, deps: [{ token: SubscriptionService }, { token: i1$5.UntypedFormBuilder }, { token: i1.MatDialog }
|
|
14177
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionListingComponent, selector: "app-subscription-listing", inputs: { subscriptionPackage: "subscriptionPackage" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" class=\"mat-typography\" fxLayoutGap=\"1rem\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <div fxLayout fxLayoutAlign=\"start center\">\n <h1 class=\"m-0\">{{subscriptionPackage?'Package':'Tenant'}} Subscriptions</h1>\n <app-subscription-form (success)=\"reload()\"\n [subscriptionPackage]=\"subscriptionPackage\"></app-subscription-form>\n </div>\n <div fxFlex>\n </div>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let tenantSubscription; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenant\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Tenant </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>\n <div>{{tenantSubscription?.tenant?.name }}</div>\n <div><span>{{tenantSubscription?.tenant?.phone }}</span> <span> |\n {{tenantSubscription?.tenant?.email }}</span></div>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"period\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Period </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <span *ngIf=\"tenantSubscription?.started_at\">{{tenantSubscription?.started_at | date:'mediumDate' }}\n -> {{(tenantSubscription?.ended_at | date:'mediumDate') ?? 'NA' }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"package\">\n <th mat-header-cell *matHeaderCellDef> Package </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.package?.title }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> Status </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.status?.title }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"cost_per_unit\">\n <th mat-header-cell *matHeaderCellDef> Cost/Units </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.cost_per_unit | currency:'USD':'symbol':'1.0-2' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"units\">\n <th mat-header-cell *matHeaderCellDef> Units </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.units | number}}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_unit_limitation_enforced\">\n <th mat-header-cell *matHeaderCellDef> Is Units Limited </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.is_unit_limitation_enforced ? 'Yes' : 'No' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"total\">\n <th mat-header-cell *matHeaderCellDef> Total Cost </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.total | currency:'USD':'symbol':'1.0-2' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_trail\">\n <th mat-header-cell *matHeaderCellDef> Is Trail</th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>\n <div>{{tenantSubscription?.is_trail ? 'Yes' : 'No' }}</div>\n <div *ngIf=\"tenantSubscription?.is_trail\"><span>{{tenantSubscription?.trail_started_at |\n date:'mediumDate' }} -> {{tenantSubscription?.trail_ended_at | date:'mediumDate'\n }}</span></div>\n </div>\n </td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div class=\"text-secondary\" fxLayout>\n <div *ngIf=\"tenantSubscription?.creator_id\">\n <app-subscription-form *ngIf=\"tenantSubscription.status_id == subscriptionStatus.ACTIVE\"\n (success)=\"reload()\" [tenantSubscriptionInfo]=\"tenantSubscription\"\n [subscriptionPackage]=\"subscriptionPackage\"></app-subscription-form>\n <button *ngIf=\"tenantSubscription.status_id == subscriptionStatus.ACTIVE\"\n matTooltip=\"Cancel Subscription\" type=\"button\" mat-icon-button\n (click)=\"cancel(tenantSubscription)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>", styles: [".add-icon{position:relative;top:5px}.add-icon:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: SubscriptionFormComponent, selector: "app-subscription-form", inputs: ["isUpdate", "subscriptionPackage", "tenantSubscriptionInfo"], outputs: ["success"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
14178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingComponent, deps: [{ token: SubscriptionService }, { token: i1$5.UntypedFormBuilder }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14179
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionListingComponent, selector: "app-subscription-listing", inputs: { subscriptionPackage: "subscriptionPackage" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <div fxLayout fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">{{subscriptionPackage?'Package':'Tenant'}} Subscriptions</h5>\n <app-subscription-form (success)=\"reload()\"\n [subscriptionPackage]=\"subscriptionPackage\"></app-subscription-form>\n </div>\n <div fxFlex>\n </div>\n <form [formGroup]=\"filterForm\" fxLayout=\"row\" fxLayoutGap=\"0.3rem\" class=\"d-print-none\"\n fxLayoutAlign=\"start start\">\n <mat-form-field appearance=\"outline\" class=\" fl-md\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search Tenant, Details\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('search').value\" matSuffix mat-icon-button\n (click)=\"resetFilter('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n\n <mat-form-field class=\" fl-sm\" appearance=\"outline\" *ngIf=\"!subscriptionPackage\">\n <mat-label>Package</mat-label>\n <app-searchable-selector formControlName=\"package_ids\" apiUrl=\"api/subscription-packages\"\n [multiple]=\"true\">\n </app-searchable-selector>\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"filterForm.get('package_ids').value\"\n (click)=\"resetFilter('package_ids')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <app-timeline-filter [showClearButton]=\"true\" [form]=\"filterForm\" appearance=\"outline\"\n formControlName=\"date_period_id\" labelText=\"Start\">\n </app-timeline-filter>\n\n <mat-form-field class=\"fl-sm\" appearance=\"outline\">\n <mat-label>Status</mat-label>\n <mat-select formControlName=\"status_ids\" multiple>\n <mat-option [value]=\"1\">Active</mat-option>\n <mat-option [value]=\"2\">Inactive</mat-option>\n </mat-select>\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"filterForm.get('status_ids').value\"\n (click)=\"resetFilter('status_ids')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n </form>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0 mt-2\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let tenantSubscription; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenant\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Tenant </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>\n <div>{{tenantSubscription?.tenant?.name }}</div>\n <div><span>{{tenantSubscription?.tenant?.phone }}</span> <span> |\n {{tenantSubscription?.tenant?.email }}</span></div>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"period\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Period </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <span *ngIf=\"tenantSubscription?.started_at\">{{tenantSubscription?.started_at | date:'mediumDate' }}\n -> {{(tenantSubscription?.ended_at | date:'mediumDate') ?? 'NA' }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"package\">\n <th mat-header-cell *matHeaderCellDef> Package </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.package?.title }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> Status </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.status?.title }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"cost_per_unit\">\n <th mat-header-cell *matHeaderCellDef> Cost/Units </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.cost_per_unit | currency:'USD':'symbol':'1.0-2' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"units\">\n <th mat-header-cell *matHeaderCellDef> Units </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.units | number}}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_unit_limitation_enforced\">\n <th mat-header-cell *matHeaderCellDef> Is Units Limited </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.is_unit_limitation_enforced ? 'Yes' : 'No' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"total\">\n <th mat-header-cell *matHeaderCellDef> Total Cost </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.total | currency:'USD':'symbol':'1.0-2' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_trail\">\n <th mat-header-cell *matHeaderCellDef> Is Trail</th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>\n <div>{{tenantSubscription?.is_trail ? 'Yes' : 'No' }}</div>\n <div *ngIf=\"tenantSubscription?.is_trail\"><span>{{tenantSubscription?.trail_started_at |\n date:'mediumDate' }} -> {{tenantSubscription?.trail_ended_at | date:'mediumDate'\n }}</span></div>\n </div>\n </td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div class=\"text-secondary\" fxLayout>\n <div *ngIf=\"tenantSubscription?.creator_id\">\n <app-subscription-form *ngIf=\"tenantSubscription.status_id == subscriptionStatus.ACTIVE\"\n (success)=\"reload()\" [tenantSubscriptionInfo]=\"tenantSubscription\"\n [subscriptionPackage]=\"subscriptionPackage\"></app-subscription-form>\n <button *ngIf=\"tenantSubscription.status_id == subscriptionStatus.ACTIVE\"\n matTooltip=\"Cancel Subscription\" type=\"button\" mat-icon-button\n (click)=\"cancel(tenantSubscription)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>", styles: [".add-icon{position:relative;top:5px}.add-icon:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: SubscriptionFormComponent, selector: "app-subscription-form", inputs: ["isUpdate", "subscriptionPackage", "tenantSubscriptionInfo"], outputs: ["success"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
14178
14180
|
};
|
|
14179
14181
|
SubscriptionListingComponent = __decorate([
|
|
14180
14182
|
UntilDestroy()
|
|
14181
14183
|
], SubscriptionListingComponent);
|
|
14182
14184
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingComponent, decorators: [{
|
|
14183
14185
|
type: Component,
|
|
14184
|
-
args: [{ selector: 'app-subscription-listing', template: "<div fxLayout=\"column\" class=\"
|
|
14185
|
-
}], ctorParameters: () => [{ type: SubscriptionService }, { type: i1$5.UntypedFormBuilder }, { type: i1.MatDialog }
|
|
14186
|
+
args: [{ selector: 'app-subscription-listing', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <div fxLayout fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">{{subscriptionPackage?'Package':'Tenant'}} Subscriptions</h5>\n <app-subscription-form (success)=\"reload()\"\n [subscriptionPackage]=\"subscriptionPackage\"></app-subscription-form>\n </div>\n <div fxFlex>\n </div>\n <form [formGroup]=\"filterForm\" fxLayout=\"row\" fxLayoutGap=\"0.3rem\" class=\"d-print-none\"\n fxLayoutAlign=\"start start\">\n <mat-form-field appearance=\"outline\" class=\" fl-md\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search Tenant, Details\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('search').value\" matSuffix mat-icon-button\n (click)=\"resetFilter('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n\n <mat-form-field class=\" fl-sm\" appearance=\"outline\" *ngIf=\"!subscriptionPackage\">\n <mat-label>Package</mat-label>\n <app-searchable-selector formControlName=\"package_ids\" apiUrl=\"api/subscription-packages\"\n [multiple]=\"true\">\n </app-searchable-selector>\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"filterForm.get('package_ids').value\"\n (click)=\"resetFilter('package_ids')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <app-timeline-filter [showClearButton]=\"true\" [form]=\"filterForm\" appearance=\"outline\"\n formControlName=\"date_period_id\" labelText=\"Start\">\n </app-timeline-filter>\n\n <mat-form-field class=\"fl-sm\" appearance=\"outline\">\n <mat-label>Status</mat-label>\n <mat-select formControlName=\"status_ids\" multiple>\n <mat-option [value]=\"1\">Active</mat-option>\n <mat-option [value]=\"2\">Inactive</mat-option>\n </mat-select>\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"filterForm.get('status_ids').value\"\n (click)=\"resetFilter('status_ids')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n </form>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0 mt-2\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let tenantSubscription; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenant\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Tenant </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>\n <div>{{tenantSubscription?.tenant?.name }}</div>\n <div><span>{{tenantSubscription?.tenant?.phone }}</span> <span> |\n {{tenantSubscription?.tenant?.email }}</span></div>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"period\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Period </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <span *ngIf=\"tenantSubscription?.started_at\">{{tenantSubscription?.started_at | date:'mediumDate' }}\n -> {{(tenantSubscription?.ended_at | date:'mediumDate') ?? 'NA' }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"package\">\n <th mat-header-cell *matHeaderCellDef> Package </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.package?.title }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> Status </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.status?.title }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"cost_per_unit\">\n <th mat-header-cell *matHeaderCellDef> Cost/Units </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.cost_per_unit | currency:'USD':'symbol':'1.0-2' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"units\">\n <th mat-header-cell *matHeaderCellDef> Units </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.units | number}}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_unit_limitation_enforced\">\n <th mat-header-cell *matHeaderCellDef> Is Units Limited </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.is_unit_limitation_enforced ? 'Yes' : 'No' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"total\">\n <th mat-header-cell *matHeaderCellDef> Total Cost </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>{{tenantSubscription?.total | currency:'USD':'symbol':'1.0-2' }}</div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_trail\">\n <th mat-header-cell *matHeaderCellDef> Is Trail</th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div>\n <div>{{tenantSubscription?.is_trail ? 'Yes' : 'No' }}</div>\n <div *ngIf=\"tenantSubscription?.is_trail\"><span>{{tenantSubscription?.trail_started_at |\n date:'mediumDate' }} -> {{tenantSubscription?.trail_ended_at | date:'mediumDate'\n }}</span></div>\n </div>\n </td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let tenantSubscription\">\n <div class=\"text-secondary\" fxLayout>\n <div *ngIf=\"tenantSubscription?.creator_id\">\n <app-subscription-form *ngIf=\"tenantSubscription.status_id == subscriptionStatus.ACTIVE\"\n (success)=\"reload()\" [tenantSubscriptionInfo]=\"tenantSubscription\"\n [subscriptionPackage]=\"subscriptionPackage\"></app-subscription-form>\n <button *ngIf=\"tenantSubscription.status_id == subscriptionStatus.ACTIVE\"\n matTooltip=\"Cancel Subscription\" type=\"button\" mat-icon-button\n (click)=\"cancel(tenantSubscription)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>", styles: [".add-icon{position:relative;top:5px}.add-icon:hover{cursor:pointer}\n"] }]
|
|
14187
|
+
}], ctorParameters: () => [{ type: SubscriptionService }, { type: i1$5.UntypedFormBuilder }, { type: i1.MatDialog }], propDecorators: { subscriptionPackage: [{
|
|
14186
14188
|
type: Input
|
|
14187
14189
|
}] } });
|
|
14188
14190
|
|
|
14189
|
-
const routes$
|
|
14191
|
+
const routes$4 = [
|
|
14190
14192
|
{
|
|
14191
14193
|
path: '**',
|
|
14192
14194
|
component: SubscriptionListingComponent,
|
|
@@ -14196,12 +14198,12 @@ const routes$2 = [
|
|
|
14196
14198
|
class SubscriptionListingRoutingModule {
|
|
14197
14199
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14198
14200
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14199
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, imports: [RouterModule.forChild(routes$
|
|
14201
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, imports: [RouterModule.forChild(routes$4), RouterModule] }); }
|
|
14200
14202
|
}
|
|
14201
14203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, decorators: [{
|
|
14202
14204
|
type: NgModule,
|
|
14203
14205
|
args: [{
|
|
14204
|
-
imports: [RouterModule.forChild(routes$
|
|
14206
|
+
imports: [RouterModule.forChild(routes$4)],
|
|
14205
14207
|
exports: [RouterModule]
|
|
14206
14208
|
}]
|
|
14207
14209
|
}] });
|
|
@@ -14216,7 +14218,8 @@ class SubscriptionListingModule {
|
|
|
14216
14218
|
SubscriptionFormModule,
|
|
14217
14219
|
SearchableSelectorModule,
|
|
14218
14220
|
FlexLayoutModule,
|
|
14219
|
-
InfiniteScrollModule
|
|
14221
|
+
InfiniteScrollModule,
|
|
14222
|
+
TimelineFilterModule], exports: [SubscriptionListingComponent] }); }
|
|
14220
14223
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingModule, imports: [CommonModule,
|
|
14221
14224
|
SubscriptionListingRoutingModule,
|
|
14222
14225
|
MaterialModule,
|
|
@@ -14225,7 +14228,8 @@ class SubscriptionListingModule {
|
|
|
14225
14228
|
SubscriptionFormModule,
|
|
14226
14229
|
SearchableSelectorModule,
|
|
14227
14230
|
FlexLayoutModule,
|
|
14228
|
-
InfiniteScrollModule
|
|
14231
|
+
InfiniteScrollModule,
|
|
14232
|
+
TimelineFilterModule] }); }
|
|
14229
14233
|
}
|
|
14230
14234
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingModule, decorators: [{
|
|
14231
14235
|
type: NgModule,
|
|
@@ -14242,7 +14246,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14242
14246
|
SubscriptionFormModule,
|
|
14243
14247
|
SearchableSelectorModule,
|
|
14244
14248
|
FlexLayoutModule,
|
|
14245
|
-
InfiniteScrollModule
|
|
14249
|
+
InfiniteScrollModule,
|
|
14250
|
+
TimelineFilterModule
|
|
14246
14251
|
],
|
|
14247
14252
|
exports: [SubscriptionListingComponent]
|
|
14248
14253
|
}]
|
|
@@ -14347,7 +14352,7 @@ let SubscriptionPackageListingComponent = class SubscriptionPackageListingCompon
|
|
|
14347
14352
|
this.router.navigate([`./${subscriptionPackage?.id}/view`], { relativeTo: this.activatedRoute });
|
|
14348
14353
|
}
|
|
14349
14354
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingComponent, deps: [{ token: SubscriptionPackageService }, { token: i1$1.ActivatedRoute }, { token: FilterService }, { token: i1$1.Router }, { token: i1.MatDialog }, { token: i1$5.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14350
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionPackageListingComponent, selector: "app-subscription-package-listing", usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Subscription Packages</h5>\n <span fxFlex></span>\n <form [formGroup]=\"filterFormGroup\" class=\"filter-form\" fxLayout=\"row\">\n <mat-form-field appearance=\"outline\" class=\"nil-subscript-wrappe fl-md\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search..\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterFormGroup.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0 mt-2\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.title }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Code </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.code }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear class=\"w-description\"> Description\n </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.description }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenants_count\">\n <th mat-header-cell *matHeaderCellDef> Tenants </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.tenants_count ?? 0 }} tenants</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <div class=\"text-secondary\" fxLayout fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"view\" class=\"clickable\" matTooltip=\"View\"\n (click)=\"navigateToView(subscriptionPackage)\"></app-techlify-icon>\n <mat-slide-toggle style=\"transform: scale(0.8);\" [checked]=\"subscriptionPackage?.is_enabled\"\n color=\"primary\" (change)=\"confirmToggle($event,subscriptionPackage)\">Is Enabled\n </mat-slide-toggle>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
|
|
14355
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionPackageListingComponent, selector: "app-subscription-package-listing", usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Subscription Packages</h5>\n <span fxFlex></span>\n <form [formGroup]=\"filterFormGroup\" class=\"filter-form\" fxLayout=\"row\">\n <mat-form-field appearance=\"outline\" class=\"nil-subscript-wrappe fl-md\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search..\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterFormGroup.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0 mt-2\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.title }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Code </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.code }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear class=\"w-description\"> Description\n </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.description }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenants_count\">\n <th mat-header-cell *matHeaderCellDef> Tenants </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.tenants_count ?? 0 }} tenants</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <div class=\"text-secondary\" fxLayout fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"view\" class=\"clickable\" matTooltip=\"View\"\n (click)=\"navigateToView(subscriptionPackage)\"></app-techlify-icon>\n <mat-slide-toggle style=\"transform: scale(0.8);\" [checked]=\"subscriptionPackage?.is_enabled\"\n color=\"primary\" (change)=\"confirmToggle($event,subscriptionPackage)\">Is Enabled\n </mat-slide-toggle>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
|
|
14351
14356
|
};
|
|
14352
14357
|
SubscriptionPackageListingComponent = __decorate([
|
|
14353
14358
|
UntilDestroy()
|
|
@@ -14357,7 +14362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14357
14362
|
args: [{ selector: 'app-subscription-package-listing', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Subscription Packages</h5>\n <span fxFlex></span>\n <form [formGroup]=\"filterFormGroup\" class=\"filter-form\" fxLayout=\"row\">\n <mat-form-field appearance=\"outline\" class=\"nil-subscript-wrappe fl-md\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search..\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterFormGroup.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0 mt-2\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.title }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Code </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.code }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear class=\"w-description\"> Description\n </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.description }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenants_count\">\n <th mat-header-cell *matHeaderCellDef> Tenants </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.tenants_count ?? 0 }} tenants</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <div class=\"text-secondary\" fxLayout fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"view\" class=\"clickable\" matTooltip=\"View\"\n (click)=\"navigateToView(subscriptionPackage)\"></app-techlify-icon>\n <mat-slide-toggle style=\"transform: scale(0.8);\" [checked]=\"subscriptionPackage?.is_enabled\"\n color=\"primary\" (change)=\"confirmToggle($event,subscriptionPackage)\">Is Enabled\n </mat-slide-toggle>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>" }]
|
|
14358
14363
|
}], ctorParameters: () => [{ type: SubscriptionPackageService }, { type: i1$1.ActivatedRoute }, { type: FilterService }, { type: i1$1.Router }, { type: i1.MatDialog }, { type: i1$5.UntypedFormBuilder }] });
|
|
14359
14364
|
|
|
14360
|
-
const routes$
|
|
14365
|
+
const routes$3 = [
|
|
14361
14366
|
{
|
|
14362
14367
|
path: '**',
|
|
14363
14368
|
component: SubscriptionPackageListingComponent,
|
|
@@ -14367,12 +14372,12 @@ const routes$1 = [
|
|
|
14367
14372
|
class SubscriptionPackageListingRoutingModule {
|
|
14368
14373
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14369
14374
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14370
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, imports: [RouterModule.forChild(routes$
|
|
14375
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, imports: [RouterModule.forChild(routes$3), RouterModule] }); }
|
|
14371
14376
|
}
|
|
14372
14377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, decorators: [{
|
|
14373
14378
|
type: NgModule,
|
|
14374
14379
|
args: [{
|
|
14375
|
-
imports: [RouterModule.forChild(routes$
|
|
14380
|
+
imports: [RouterModule.forChild(routes$3)],
|
|
14376
14381
|
exports: [RouterModule]
|
|
14377
14382
|
}]
|
|
14378
14383
|
}] });
|
|
@@ -14438,14 +14443,14 @@ class SubscriptionPackageViewComponent {
|
|
|
14438
14443
|
});
|
|
14439
14444
|
}
|
|
14440
14445
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewComponent, deps: [{ token: SubscriptionPackageService }, { token: i1$1.ActivatedRoute }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14441
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionPackageViewComponent, selector: "app-subscription-package-view", ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-
|
|
14446
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SubscriptionPackageViewComponent, selector: "app-subscription-package-view", ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Package: {{subscriptionPackage?.title}}</h5>\n </mat-card>\n <div fxLayout>\n <mat-card appearance=\"outlined\" class=\"side-panel mt-2\" fxLayout=\"column\" fxLayoutGap=\"0.5rem\">\n <h5>Information</h5>\n <div>\n Title: <span class=\"text-secondary\">{{subscriptionPackage?.title}}</span>\n </div>\n <div>\n Code: <span class=\"text-secondary\">{{subscriptionPackage?.code}}</span>\n </div>\n <div>\n Description: <span class=\"text-secondary\">{{subscriptionPackage?.description}}</span>\n </div>\n <div>\n Tenants: <span class=\"text-secondary\">{{subscriptionPackage?.tenants_count ?? 0}} tenants</span>\n </div>\n </mat-card>\n <div fxFlex class=\"ml-2\">\n <app-subscription-listing class=\"w-100\" [subscriptionPackage]=\"subscriptionPackage\"\n *ngIf=\"subscriptionPackage\"></app-subscription-listing>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SubscriptionListingComponent, selector: "app-subscription-listing", inputs: ["subscriptionPackage"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
|
|
14442
14447
|
}
|
|
14443
14448
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewComponent, decorators: [{
|
|
14444
14449
|
type: Component,
|
|
14445
|
-
args: [{ selector: 'app-subscription-package-view', template: "<div fxLayout=\"column\" class=\"m-
|
|
14450
|
+
args: [{ selector: 'app-subscription-package-view', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Package: {{subscriptionPackage?.title}}</h5>\n </mat-card>\n <div fxLayout>\n <mat-card appearance=\"outlined\" class=\"side-panel mt-2\" fxLayout=\"column\" fxLayoutGap=\"0.5rem\">\n <h5>Information</h5>\n <div>\n Title: <span class=\"text-secondary\">{{subscriptionPackage?.title}}</span>\n </div>\n <div>\n Code: <span class=\"text-secondary\">{{subscriptionPackage?.code}}</span>\n </div>\n <div>\n Description: <span class=\"text-secondary\">{{subscriptionPackage?.description}}</span>\n </div>\n <div>\n Tenants: <span class=\"text-secondary\">{{subscriptionPackage?.tenants_count ?? 0}} tenants</span>\n </div>\n </mat-card>\n <div fxFlex class=\"ml-2\">\n <app-subscription-listing class=\"w-100\" [subscriptionPackage]=\"subscriptionPackage\"\n *ngIf=\"subscriptionPackage\"></app-subscription-listing>\n </div>\n </div>\n</div>" }]
|
|
14446
14451
|
}], ctorParameters: () => [{ type: SubscriptionPackageService }, { type: i1$1.ActivatedRoute }, { type: i3.Location }] });
|
|
14447
14452
|
|
|
14448
|
-
const routes = [
|
|
14453
|
+
const routes$2 = [
|
|
14449
14454
|
{
|
|
14450
14455
|
path: '**',
|
|
14451
14456
|
component: SubscriptionPackageViewComponent,
|
|
@@ -14455,12 +14460,12 @@ const routes = [
|
|
|
14455
14460
|
class SubscriptionPackageViewRoutingModule {
|
|
14456
14461
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14457
14462
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14458
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
14463
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, imports: [RouterModule.forChild(routes$2), RouterModule] }); }
|
|
14459
14464
|
}
|
|
14460
14465
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, decorators: [{
|
|
14461
14466
|
type: NgModule,
|
|
14462
14467
|
args: [{
|
|
14463
|
-
imports: [RouterModule.forChild(routes)],
|
|
14468
|
+
imports: [RouterModule.forChild(routes$2)],
|
|
14464
14469
|
exports: [RouterModule]
|
|
14465
14470
|
}]
|
|
14466
14471
|
}] });
|
|
@@ -14540,6 +14545,212 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14540
14545
|
}]
|
|
14541
14546
|
}] });
|
|
14542
14547
|
|
|
14548
|
+
const routes$1 = [];
|
|
14549
|
+
class TimelineHistoryForModelRoutingModule {
|
|
14550
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14551
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14552
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, imports: [RouterModule.forChild(routes$1), RouterModule] }); }
|
|
14553
|
+
}
|
|
14554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, decorators: [{
|
|
14555
|
+
type: NgModule,
|
|
14556
|
+
args: [{
|
|
14557
|
+
imports: [RouterModule.forChild(routes$1)],
|
|
14558
|
+
exports: [RouterModule]
|
|
14559
|
+
}]
|
|
14560
|
+
}] });
|
|
14561
|
+
|
|
14562
|
+
class TimelineActivityService extends TechlifyServiceBaseClass {
|
|
14563
|
+
constructor(httpService) {
|
|
14564
|
+
super(httpService, 'techlify-timeline-activities');
|
|
14565
|
+
}
|
|
14566
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityService, deps: [{ token: HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14567
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityService, providedIn: 'root' }); }
|
|
14568
|
+
}
|
|
14569
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityService, decorators: [{
|
|
14570
|
+
type: Injectable,
|
|
14571
|
+
args: [{
|
|
14572
|
+
providedIn: 'root'
|
|
14573
|
+
}]
|
|
14574
|
+
}], ctorParameters: () => [{ type: HttpService }] });
|
|
14575
|
+
|
|
14576
|
+
class TimelineActivityListComponent extends TechlifyListingControllerInterface {
|
|
14577
|
+
constructor(timelineActivityService) {
|
|
14578
|
+
super();
|
|
14579
|
+
this.timelineActivityService = timelineActivityService;
|
|
14580
|
+
this.timelineableDisplayField = 'title';
|
|
14581
|
+
this.scrollContainer = null;
|
|
14582
|
+
this.title = null;
|
|
14583
|
+
this.displayedColumns = [
|
|
14584
|
+
'index',
|
|
14585
|
+
'date',
|
|
14586
|
+
'details',
|
|
14587
|
+
'change',
|
|
14588
|
+
'creator',
|
|
14589
|
+
];
|
|
14590
|
+
}
|
|
14591
|
+
ngOnInit() {
|
|
14592
|
+
this.loadData();
|
|
14593
|
+
}
|
|
14594
|
+
loadData() {
|
|
14595
|
+
const params = {
|
|
14596
|
+
page: this.page,
|
|
14597
|
+
perPage: this.perPage,
|
|
14598
|
+
changeable_types: this.changeableType ?? '',
|
|
14599
|
+
changeable_ids: this.changeableId ?? '',
|
|
14600
|
+
timelineable_types: this.timelineableType ?? '',
|
|
14601
|
+
timelineable_ids: this.timelineableId ?? '',
|
|
14602
|
+
sort_by: 'created_at|desc'
|
|
14603
|
+
};
|
|
14604
|
+
this.isWorking = true;
|
|
14605
|
+
this.timelineActivityService.index(params).subscribe({
|
|
14606
|
+
next: (response) => {
|
|
14607
|
+
this.isWorking = false;
|
|
14608
|
+
this.models = this.models?.concat(response?.data);
|
|
14609
|
+
this.lastPage = response?.last_page;
|
|
14610
|
+
},
|
|
14611
|
+
error: () => (this.isWorking = false)
|
|
14612
|
+
});
|
|
14613
|
+
}
|
|
14614
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListComponent, deps: [{ token: TimelineActivityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14615
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TimelineActivityListComponent, selector: "app-timeline-activity-list", inputs: { changeableType: "changeableType", changeableId: "changeableId", timelineableType: "timelineableType", timelineableId: "timelineableId", timelineableDisplayField: "timelineableDisplayField", scrollContainer: "scrollContainer", title: "title" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\">\n <div fxLayout class=\"mb-4\">\n <h5 class=\"m-0\">\n {{ title ?? 'Timeline of changes for {{this.changeableType}}: {{this.changeableId}}' }}\n </h5>\n </div>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef> Date </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.date | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.details}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"change\">\n <th mat-header-cell *matHeaderCellDef> Change </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.timelineable?.[this.timelineableDisplayField]}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n <div>{{element?.creator?.name }}</div>\n <div *ngIf=\"element?.created_at\" class=\"text-secondary\"><small>{{element?.created_at |\n date:'medium'}}</small></div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
14616
|
+
}
|
|
14617
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListComponent, decorators: [{
|
|
14618
|
+
type: Component,
|
|
14619
|
+
args: [{ selector: 'app-timeline-activity-list', template: "<div fxLayout=\"column\">\n <div fxLayout class=\"mb-4\">\n <h5 class=\"m-0\">\n {{ title ?? 'Timeline of changes for {{this.changeableType}}: {{this.changeableId}}' }}\n </h5>\n </div>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef> Date </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.date | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.details}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"change\">\n <th mat-header-cell *matHeaderCellDef> Change </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.timelineable?.[this.timelineableDisplayField]}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n <div>{{element?.creator?.name }}</div>\n <div *ngIf=\"element?.created_at\" class=\"text-secondary\"><small>{{element?.created_at |\n date:'medium'}}</small></div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"] }]
|
|
14620
|
+
}], ctorParameters: () => [{ type: TimelineActivityService }], propDecorators: { changeableType: [{
|
|
14621
|
+
type: Input
|
|
14622
|
+
}], changeableId: [{
|
|
14623
|
+
type: Input
|
|
14624
|
+
}], timelineableType: [{
|
|
14625
|
+
type: Input
|
|
14626
|
+
}], timelineableId: [{
|
|
14627
|
+
type: Input
|
|
14628
|
+
}], timelineableDisplayField: [{
|
|
14629
|
+
type: Input
|
|
14630
|
+
}], scrollContainer: [{
|
|
14631
|
+
type: Input
|
|
14632
|
+
}], title: [{
|
|
14633
|
+
type: Input
|
|
14634
|
+
}] } });
|
|
14635
|
+
|
|
14636
|
+
class TimelineActivityButtonComponent {
|
|
14637
|
+
constructor(dialog) {
|
|
14638
|
+
this.dialog = dialog;
|
|
14639
|
+
this.timelineableDisplayField = 'title';
|
|
14640
|
+
}
|
|
14641
|
+
ngOnInit() {
|
|
14642
|
+
}
|
|
14643
|
+
openDialog(templateRef) {
|
|
14644
|
+
const dialogRef = this.dialog.open(templateRef, {
|
|
14645
|
+
width: '75%',
|
|
14646
|
+
maxWidth: 'unset',
|
|
14647
|
+
maxHeight: '80%',
|
|
14648
|
+
autoFocus: false,
|
|
14649
|
+
panelClass: ['overflow-auto'],
|
|
14650
|
+
});
|
|
14651
|
+
}
|
|
14652
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14653
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TimelineActivityButtonComponent, selector: "app-timeline-activity-button", inputs: { changeableType: "changeableType", changeableId: "changeableId", timelineableType: "timelineableType", timelineableId: "timelineableId", timelineableDisplayField: "timelineableDisplayField", title: "title" }, ngImport: i0, template: "<app-techlify-icon name=\"history\" matTooltip=\"Timeline History\" (click)=\"$event.stopPropagation();openDialog(listView)\"\n class=\"clickable\"></app-techlify-icon>\n\n<ng-template #listView>\n <app-timeline-activity-list [changeableId]=\"changeableId\" [changeableType]=\"changeableType\"\n [timelineableDisplayField]=\"timelineableDisplayField\" [timelineableType]=\"timelineableType\"\n [timelineableId]=\"timelineableId\" [title]=\"title\"></app-timeline-activity-list>\n</ng-template>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}\n"], dependencies: [{ kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "component", type: TimelineActivityListComponent, selector: "app-timeline-activity-list", inputs: ["changeableType", "changeableId", "timelineableType", "timelineableId", "timelineableDisplayField", "scrollContainer", "title"] }] }); }
|
|
14654
|
+
}
|
|
14655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonComponent, decorators: [{
|
|
14656
|
+
type: Component,
|
|
14657
|
+
args: [{ selector: 'app-timeline-activity-button', template: "<app-techlify-icon name=\"history\" matTooltip=\"Timeline History\" (click)=\"$event.stopPropagation();openDialog(listView)\"\n class=\"clickable\"></app-techlify-icon>\n\n<ng-template #listView>\n <app-timeline-activity-list [changeableId]=\"changeableId\" [changeableType]=\"changeableType\"\n [timelineableDisplayField]=\"timelineableDisplayField\" [timelineableType]=\"timelineableType\"\n [timelineableId]=\"timelineableId\" [title]=\"title\"></app-timeline-activity-list>\n</ng-template>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}\n"] }]
|
|
14658
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { changeableType: [{
|
|
14659
|
+
type: Input
|
|
14660
|
+
}], changeableId: [{
|
|
14661
|
+
type: Input
|
|
14662
|
+
}], timelineableType: [{
|
|
14663
|
+
type: Input
|
|
14664
|
+
}], timelineableId: [{
|
|
14665
|
+
type: Input
|
|
14666
|
+
}], timelineableDisplayField: [{
|
|
14667
|
+
type: Input
|
|
14668
|
+
}], title: [{
|
|
14669
|
+
type: Input
|
|
14670
|
+
}] } });
|
|
14671
|
+
|
|
14672
|
+
const routes = [];
|
|
14673
|
+
class TimelineActivityListRoutingModule {
|
|
14674
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14675
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14676
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
14677
|
+
}
|
|
14678
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, decorators: [{
|
|
14679
|
+
type: NgModule,
|
|
14680
|
+
args: [{
|
|
14681
|
+
imports: [RouterModule.forChild(routes)],
|
|
14682
|
+
exports: [RouterModule]
|
|
14683
|
+
}]
|
|
14684
|
+
}] });
|
|
14685
|
+
|
|
14686
|
+
class TimelineActivityListModule {
|
|
14687
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14688
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, declarations: [TimelineActivityListComponent], imports: [CommonModule,
|
|
14689
|
+
TimelineActivityListRoutingModule,
|
|
14690
|
+
ExportExcelModule,
|
|
14691
|
+
FlexLayoutModule,
|
|
14692
|
+
ReactiveFormsModule,
|
|
14693
|
+
MaterialModule,
|
|
14694
|
+
InfiniteScrollModule,
|
|
14695
|
+
MatProgressBarModule], exports: [TimelineActivityListComponent] }); }
|
|
14696
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, imports: [CommonModule,
|
|
14697
|
+
TimelineActivityListRoutingModule,
|
|
14698
|
+
ExportExcelModule,
|
|
14699
|
+
FlexLayoutModule,
|
|
14700
|
+
ReactiveFormsModule,
|
|
14701
|
+
MaterialModule,
|
|
14702
|
+
InfiniteScrollModule,
|
|
14703
|
+
MatProgressBarModule] }); }
|
|
14704
|
+
}
|
|
14705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, decorators: [{
|
|
14706
|
+
type: NgModule,
|
|
14707
|
+
args: [{
|
|
14708
|
+
declarations: [TimelineActivityListComponent],
|
|
14709
|
+
imports: [
|
|
14710
|
+
CommonModule,
|
|
14711
|
+
TimelineActivityListRoutingModule,
|
|
14712
|
+
ExportExcelModule,
|
|
14713
|
+
FlexLayoutModule,
|
|
14714
|
+
ReactiveFormsModule,
|
|
14715
|
+
MaterialModule,
|
|
14716
|
+
InfiniteScrollModule,
|
|
14717
|
+
MatProgressBarModule
|
|
14718
|
+
],
|
|
14719
|
+
exports: [TimelineActivityListComponent]
|
|
14720
|
+
}]
|
|
14721
|
+
}] });
|
|
14722
|
+
|
|
14723
|
+
class TimelineActivityButtonModule {
|
|
14724
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14725
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, declarations: [TimelineActivityButtonComponent], imports: [CommonModule,
|
|
14726
|
+
TimelineHistoryForModelRoutingModule,
|
|
14727
|
+
FlexLayoutModule,
|
|
14728
|
+
MaterialModule,
|
|
14729
|
+
TechlifyIconModule,
|
|
14730
|
+
TimelineActivityListModule], exports: [TimelineActivityButtonComponent] }); }
|
|
14731
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, imports: [CommonModule,
|
|
14732
|
+
TimelineHistoryForModelRoutingModule,
|
|
14733
|
+
FlexLayoutModule,
|
|
14734
|
+
MaterialModule,
|
|
14735
|
+
TechlifyIconModule,
|
|
14736
|
+
TimelineActivityListModule] }); }
|
|
14737
|
+
}
|
|
14738
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, decorators: [{
|
|
14739
|
+
type: NgModule,
|
|
14740
|
+
args: [{
|
|
14741
|
+
declarations: [TimelineActivityButtonComponent],
|
|
14742
|
+
imports: [
|
|
14743
|
+
CommonModule,
|
|
14744
|
+
TimelineHistoryForModelRoutingModule,
|
|
14745
|
+
FlexLayoutModule,
|
|
14746
|
+
MaterialModule,
|
|
14747
|
+
TechlifyIconModule,
|
|
14748
|
+
TimelineActivityListModule,
|
|
14749
|
+
],
|
|
14750
|
+
exports: [TimelineActivityButtonComponent]
|
|
14751
|
+
}]
|
|
14752
|
+
}] });
|
|
14753
|
+
|
|
14543
14754
|
/*
|
|
14544
14755
|
* Public API Surface of ngx-techlify-core
|
|
14545
14756
|
*/
|
|
@@ -14548,5 +14759,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14548
14759
|
* Generated bundle index. Do not edit.
|
|
14549
14760
|
*/
|
|
14550
14761
|
|
|
14551
|
-
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserViewComponent, AppAdminUserViewModule, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataManager, DataTable, DataTableComponent, DataTableModule, DateUtils, DateValidator, DocumentViewerComponent, DocumentViewerModule, EmailSubscriptionForUserComponent, EmailSubscriptionForUserModule, EmailSubscriptionForUserRoutingModule, EmailSubscriptionModule, EmailSubscriptionRoutingModule, EmailSubscriptionTypeFormComponent, EmailSubscriptionTypeFormModule, EmailSubscriptionTypeFormRoutingModule, EmailSubscriptionTypeListComponent, EmailSubscriptionTypeListModule, EmailSubscriptionTypeListRoutingModule, EmailSubscriptionTypeModule, EmailSubscriptionTypeRoutingModule, EmailSubscriptionUserFormComponent, EmailSubscriptionUserFormModule, EmailSubscriptionUserFormRoutingModule, EmailSubscriptionUserListComponent, EmailSubscriptionUserListFilterComponent, EmailSubscriptionUserListFilterModule, EmailSubscriptionUserListFilterRoutingModule, EmailSubscriptionUserListModule, EmailSubscriptionUserListRoutingModule, EmailSubscriptionUserModule, EmailSubscriptionUserRoutingModule, EntityFileFormComponent, EntityFileService, EntityFilesViewAllComponent, EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormComponentInterface, TechlifyIconComponent, TechlifyIconModule, TechlifyListingControllerInterface, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyServiceBaseClass, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UsersViewAllComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, esfur, estlr, esulr };
|
|
14762
|
+
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserViewComponent, AppAdminUserViewModule, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataManager, DataTable, DataTableComponent, DataTableModule, DateUtils, DateValidator, DocumentViewerComponent, DocumentViewerModule, EmailSubscriptionForUserComponent, EmailSubscriptionForUserModule, EmailSubscriptionForUserRoutingModule, EmailSubscriptionModule, EmailSubscriptionRoutingModule, EmailSubscriptionTypeFormComponent, EmailSubscriptionTypeFormModule, EmailSubscriptionTypeFormRoutingModule, EmailSubscriptionTypeListComponent, EmailSubscriptionTypeListModule, EmailSubscriptionTypeListRoutingModule, EmailSubscriptionTypeModule, EmailSubscriptionTypeRoutingModule, EmailSubscriptionUserFormComponent, EmailSubscriptionUserFormModule, EmailSubscriptionUserFormRoutingModule, EmailSubscriptionUserListComponent, EmailSubscriptionUserListFilterComponent, EmailSubscriptionUserListFilterModule, EmailSubscriptionUserListFilterRoutingModule, EmailSubscriptionUserListModule, EmailSubscriptionUserListRoutingModule, EmailSubscriptionUserModule, EmailSubscriptionUserRoutingModule, EntityFileFormComponent, EntityFileService, EntityFilesViewAllComponent, EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormComponentInterface, TechlifyIconComponent, TechlifyIconModule, TechlifyListingControllerInterface, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyServiceBaseClass, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UsersViewAllComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, esfur, estlr, esulr };
|
|
14552
14763
|
//# sourceMappingURL=ngx-techlify-core.mjs.map
|