Commit 923445b1 authored by Sandeep Sagar Panjala's avatar Sandeep Sagar Panjala

ts config changes

parent 0e23a8b4
{
"workbench.colorCustomizations": {
"activityBar.background": "#25128A",
"titleBar.activeBackground": "#341AC1",
"titleBar.activeForeground": "#FBFAFE"
"activityBar.background": "#2A1D76",
"titleBar.activeBackground": "#3A28A5",
"titleBar.activeForeground": "#FBFBFE"
}
}
\ No newline at end of file
......@@ -95,5 +95,12 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Update="Properties\launchSettings.json">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="https://json.schemastore.org/babelrc.json" /></VisualStudio></ProjectExtensions>
</Project>
{
"root": true,
"ignorePatterns": [
"projects/**/*"
],
"ignorePatterns": ["projects/**/*"],
"overrides": [
{
"files": [
"*.ts"
],
"files": ["*.ts"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
......@@ -16,20 +12,24 @@
],
"rules": {
"@typescript-eslint/no-explicit-any": "off",
"@angular-eslint/component-class-suffix": "off"
"@angular-eslint/component-class-suffix": "off",
"@typescript-eslint/ban-types": "off",
"no-empty-function": "off",
"@typescript-eslint/no-empty-function": "off",
"prefer-const": "off",
"no-var": "off"
}
},
{
"files": [
"*.html"
],
"files": ["*.html"],
"extends": [
"plugin:@angular-eslint/template/recommended",
"plugin:@angular-eslint/template/accessibility"
],
"rules": {
"@angular-eslint/template/label-has-associated-control": "off"
"@angular-eslint/template/label-has-associated-control": "off",
"@angular-eslint/template/elements-content": "off"
}
}
]
}
\ No newline at end of file
}
{
"workbench.colorCustomizations": {
"activityBar.background": "#213304",
"titleBar.activeBackground": "#2F4705",
"titleBar.activeForeground": "#F5FDE9"
}
}
\ No newline at end of file
......@@ -42,7 +42,8 @@
"ngx-toastr": "17.0.2",
"rxjs": "7.8.1",
"simplebar": "6.2.5",
"zone.js": "0.13.0"
"zone.js": "0.13.0",
"ngx-print": "1.3.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^16.2.5",
......@@ -63,4 +64,4 @@
"eslint": "^8.49.0",
"typescript": "5.1.6"
}
}
\ No newline at end of file
}
......@@ -44,6 +44,10 @@ const routes: Routes = [
path: "masters",
loadChildren: () => import('./areas/admin/masters/masters.module').then(m => m.MastersModule)
},
{
path: "admissions",
loadChildren: () => import('./areas/admin/admissions/admissions.module').then(m => m.AdmissionsModule)
},
]
},
{ path: "**", redirectTo: "not-found" },
......
<router-outlet></router-outlet>
\ No newline at end of file
import { NgModule } from '@angular/core';
import { SharedModule } from '@src/app/shared/shared.module';
import { AdmissionsParentPage } from './admissions.page';
import { AdmissionsViewPage } from './pages/view/view.page';
import { TransferRequestPage } from './pages/transfer-request/transfer-request.page';
import { AdmissionsRoutingModule } from './admissions.routing.module';
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
declarations: [
AdmissionsParentPage,
AdmissionsViewPage,
TransferRequestPage
],
imports: [
AdmissionsRoutingModule,
ReactiveFormsModule,
SharedModule
]
})
export class AdmissionsModule { }
\ No newline at end of file
import { Component, ViewEncapsulation } from "@angular/core";
@Component({
templateUrl: "./admissions.html",
encapsulation: ViewEncapsulation.None
})
export class AdmissionsParentPage {
}
\ No newline at end of file
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AuthGuard } from '@src/app/shared/guards';
import { AdmissionsParentPage } from './admissions.page';
import { AdmissionsViewPage } from './pages/view/view.page';
import { TransferRequestPage } from './pages/transfer-request/transfer-request.page';
// ADMISSIONS
const routes: Routes = [
{
path: "",
data: { title: "Admissions" },
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
component: AdmissionsParentPage,
children: [
{ path: "", redirectTo: "view", pathMatch: "full" },
{ path: "view", component: AdmissionsViewPage, data: { title: "Admissions", } },
{ path: "view/:pid", component: AdmissionsViewPage, data: { title: "Admissions", } },
{ path: "view/:pid/:isOpToIp", component: AdmissionsViewPage, data: { title: "Admissions", } },
{ path: "transfer-request", component: TransferRequestPage, data: { title: "Transfer Request", } },
{ path: "**", redirectTo: "view" }
]
}
]
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class AdmissionsRoutingModule { }
\ No newline at end of file
export * from "./admissions.page";
export * from "./pages/view/view.page";
export * from "./pages/transfer-request/transfer-request.page";
\ No newline at end of file
export interface ICounsellingDetails {
counsellingId: number;
counsellingNo: string;
packageModuleId: number;
chargeCategoryId: number;
patientId: number;
payTypeId: number;
insuranceCompanyId: number;
tpaId: number;
patientOrganization: string;
}
\ No newline at end of file
.mt-10 {
margin-top: 9rem;
}
.report-banner {
display: flex;
align-items: center;
justify-content: center;
}
.banner-in {
display: flex;
align-items: center;
justify-content: center;
padding: 2px;
border-top: none;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
}
.no-background {
background-color: #f4f5f8;
}
.table-white {
background-color: #FFF !important;
}
.alert-warning {
background-color: #f9e6b2 !important;
border-color: #f1d17a !important;
}
.border-top-none {
border-top: none !important;
}
.report-banner .alert {
margin-bottom: 10px;
padding: 2px 10px;
font-size: smaller;
}
.btn-soft-blue {
background-color: dodgerblue !important;
}
.btn-soft-pink {
background-color: lightpink !important;
}
.column-direction {
flex-direction: column;
}
.blink {
font-size: 14px;
font-weight: bold;
position: relative;
color: red;
animation: example 2s infinite;
}
@keyframes example {
0% {
color: red;
}
25% {
color: orange;
}
50% {
color: orangered;
}
75% {
color: orange;
}
100% {
color: red;
}
}
.flex-center {
display: flex;
align-items: center;
justify-content: center;
}
.w-20-px {
width: 20px;
}
.w-100-per {
width: 100%;
}
.disabled {
pointer-events: none;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -3,11 +3,13 @@ import { MastersPage } from './masters.page';
import { CubiclePage } from './pages/cubicle/cubicle.page';
import { SharedModule } from '@src/app/shared/shared.module';
import { MastersRoutingModule } from './masters.routing.module';
import { AppointmentTypePage } from './pages/appointment-types/appointment-types.page';
@NgModule({
declarations: [
MastersPage,
CubiclePage
CubiclePage,
AppointmentTypePage
],
imports: [
MastersRoutingModule,
......
......@@ -3,6 +3,7 @@ import { Routes, RouterModule } from '@angular/router';
import { CubiclePage } from './pages/cubicle/cubicle.page';
import { MastersPage } from './masters.page';
import { AuthGuard } from '@src/app/shared/guards';
import { AppointmentTypePage } from './pages/appointment-types/appointment-types.page';
const routes: Routes = [
{
......@@ -14,6 +15,7 @@ const routes: Routes = [
children: [
{ path: "", redirectTo: "cubicle", pathMatch: "full" },
{ path: "cubicle", component: CubiclePage, data: { title: "cubicle" } },
{ path: "appointment-types", component: AppointmentTypePage, data: { title: "Appointment Types" } },
{ path: "**", redirectTo: "cubicle" },
]
}
......
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
<ng-container *menuButton="'TPLYFd'">
<button type="button" class="btn btn-primary btn-sm" (click)="onOpenModel(appointmentTypeTemplate)"><i class="fe-plus mr-1"></i> Add </button>
</ng-container>
</div>
<h4 class="page-title">Appointment Types</h4>
</div>
</div>
<div class="col-12">
<div class="card-box p-0">
<div class="row p-2" *ngIf="loading">
<div class="col-12">
<div class="d-flex align-items-center">
<span class="spinner-grow text-warning" role="status" aria-hidden="true"></span>
<span class="ml-2">Please wait while loading ...</span>
</div>
</div>
</div>
<div class="row p-2" *ngIf="!loading && (!records || !records.length)">
<div class="col-12 mh-400">
<div class="no-data">
<img src="assets/images/no-data.png" alt="No data" />
<p class="sub-title">There is no data to show you right now.</p>
<button type="button" class="btn btn-primary btn-sm" (click)="onOpenModel(appointmentTypeTemplate)"><i class="fe-plus mr-1"></i> Add </button>
</div>
</div>
</div>
<div class="table-responsive" *ngIf="!loading && records.length > 0">
<table class="table table-sm">
<thead class="table-info">
<tr>
<th>Appointment Type</th>
<th>CreatedBy</th>
<th>Created Date</th>
<th>Modified By</th>
<th>Modified Date</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of records;index as i;" [ngStyle]="{'background-color': item.rowColor ? item.rowColor:'#ffff'}">
<td>
<span [textContent]="item.name"></span>
</td>
<td>
<h5 class="font-13 mb-0" [textContent]="item.createdByName"></h5>
</td>
<td>
<span [textContent]="item.createdDate | date:'dd-MM-yyyy, hh:mm a'"></span>
</td>
<td>
<div *ngIf="item.modifiedBy">
<h5 class="font-13 mb-0" [textContent]="item.modifiedByName"></h5>
</div>
<span *ngIf="!item.modifiedBy">-----</span>
</td>
<td>
<span *ngIf="item.modifiedDate" [textContent]="item.modifiedDate | date:'dd-MM-yyyy, hh:mm a'"></span>
<span *ngIf="!item.modifiedDate">----</span>
</td>
<td>
<div class="d-flex align-items-center">
<a href="javascript:;" class="action-icon text-primary mr-1" placement="left" ngbTooltip="Edit" (click)="onOpenModel(appointmentTypeTemplate, item)"><i class="fe-edit"></i></a>
<a href="javascript:;" class="action-icon text-danger" placement="left" ngbTooltip="Delete" (click)="onDelete(item)"><i class="fe-trash-2"></i></a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<ng-template #appointmentTypeTemplate>
<form [formGroup]="appointmentTypeForm" (ngSubmit)="onSubmit()">
<div class="modal-header">
<h4 class="modal-title"><i class="mdi mdi-human-edit mr-1"></i> Appointment Type</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="onCloseModal();">×</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-12">
<div class="form-group">
<label class="mb-1">Appointment Type <code>*</code></label>
<input type="text" class="form-control" minlength="1" placeholder="Enter Appointment Type ." formControlName="name"
[ngClass]="{ 'is-invalid': submitted && form.name.errors }" />
<div class="text-danger" *ngIf="submitted && form.name.errors">
<p *ngIf="form.name.errors.required">Appointment Type is required.</p>
<p *ngIf="form.name.errors.maxlength">Only 250 characters are allowed.</p>
<p *ngIf="form.name.errors.whiteSpace">Please remove white space...</p>
</div>
</div>
</div>
<div class="col-12">
<div class="form-group">
<label class="mb-1">Assign Color </label>
<input type="color" class="form-control" placeholder="Pick a color" formControlName="rowColor" />
</div>
<ul class="color-grid">
<li *ngFor="let color of colorPalates" class="color-option"
[ngClass]="{'is-selected': appointmentTypeForm.value.rowColor === color.colorPalate}"
(click)="selectColorOption(color.colorPalate)" [ngStyle]="{'background':color.colorPalate}">
</li>
</ul><br />
<div class="alert alert-info">
<i class="mdi mdi-information mr-1"></i> Picking a color will help to distinguish the row in other pages.
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light btn-sm mr-1" (click)="onCloseModal();">Cancel</button>
<button type="submit" [disabled]="submitting" class="btn btn-primary btn-sm">
<span *ngIf="submitting">
<span class="spinner-border spinner-border-sm mr-1" role="status" aria-hidden="true"></span>
Please wait..
</span>
<span *ngIf="!submitting">Submit</span>
</button>
</div>
</form>
</ng-template>
\ No newline at end of file
import { OnInit, OnDestroy, Component, ViewEncapsulation, TemplateRef } from "@angular/core";
import { takeUntil, finalize } from "rxjs/operators";
import { IUserAccount, Page } from "../../../../../shared/models";
import { AppData } from "../../../../../app.data";
import { NgbModalRef, NgbModal } from "@ng-bootstrap/ng-bootstrap";
import { AppointmentTypes } from "../../../../../shared/entities/appoinment-types.entity";
import { FormGroup, FormBuilder, Validators } from "@angular/forms";
import { ApiResources } from "../../../../../shared/helpers";
import { HttpService, NotifyService } from "../../../../../shared/services";
import { WhiteSpaceValidator } from "../../../../../shared/validators";
class ColorTemplate {
colorPalate: string;
}
@Component({
templateUrl: "./appointment-types.html",
encapsulation: ViewEncapsulation.None
})
export class AppointmentTypePage implements OnInit, OnDestroy {
page: Page;
modalRef: NgbModalRef;
submitting: boolean;
submitted: boolean;
colorPalates: Array<ColorTemplate>;
loading: boolean;
appointmentTypeForm: FormGroup;
records: Array<AppointmentTypes>;
constructor(
private readonly appData: AppData,
private readonly formBuilder: FormBuilder,
private readonly httpService: HttpService,
private readonly modalService: NgbModal,
private readonly notifyService: NotifyService )
{
this.page = new Page();
this.colorPalates = new Array<ColorTemplate>();
this.records = new Array<AppointmentTypes>();
}
fetchAppointmentTypes() {
this.loading = true;
const request = {};
this.httpService.post(ApiResources.getURI(ApiResources.appointmentTypes.base, ApiResources.appointmentTypes.fetch), request)
.pipe(takeUntil(this.page.unSubscribe))
.pipe(finalize(() => this.loading = false))
.subscribe(
(response: Array<AppointmentTypes>) => {
this.records = response;
},
);
}
onSubmit() {
this.submitted = true;
if (this.appointmentTypeForm.invalid) {
return;
}
this.submitting = true;
const request = {
...this.appointmentTypeForm.getRawValue(),
createdBy: this.page.userAccount.accountId,
createdByName: this.page.userAccount.fullName,
};
let url = ApiResources.getURI(ApiResources.appointmentTypes.base, ApiResources.appointmentTypes.insert);
if (request["appointmentTypeId"] > 0) {
url = ApiResources.getURI(ApiResources.appointmentTypes.base, ApiResources.appointmentTypes.update);
}
this.httpService.post(url, request)
.pipe(takeUntil(this.page.unSubscribe))
.pipe(finalize(() => this.submitted = this.submitting = false))
.subscribe(
(response: number) => {
if (response > 0) {
this.notifyService.successToast(`Record ${request["appointmentTypeId"] > 0 ? 'updated' : 'added'} successfully.`);
}
if (response === -1) {
this.notifyService.warningToast("This Appointment Type already exists.");
return;
}
this.onCloseModal();
this.fetchAppointmentTypes();
},
);
}
onDelete(record: AppointmentTypes) {
this.notifyService.delete(() => {
const request = {
appointmentTypeId: record.appointmentTypeId,
name: record.name,
createdBy: this.page.userAccount.accountId,
createdByName: this.page.userAccount.fullName,
};
this.httpService.post(ApiResources.getURI(ApiResources.appointmentTypes.base, ApiResources.appointmentTypes.delete), request)
.pipe(takeUntil(this.page.unSubscribe))
.pipe(finalize(() => this.loading = false))
.subscribe(
(response: number) => {
if (response > 0) {
this.notifyService.successToast("Record deleted successfully.");
}
if (response === -3) {
this.notifyService.warningToast("The record you tried to delete can't be deleted because it is being used.");
}
this.fetchAppointmentTypes();
},
);
})
}
private buildColorPalates() {
["#ffd2d2", "#d9d4ff", "#d2e5ff", "#f3f7f9", "#F8E5B4", "#d4ffef", "#daffff", "#ffdbff", "#CFFFC2", "#E4E6E8"].forEach((color) => {
const paltaes = new ColorTemplate();
paltaes.colorPalate = color;
this.colorPalates.push(paltaes)
});
}
private buildForm() {
this.buildColorPalates();
this.appointmentTypeForm = this.formBuilder.group({
appointmentTypeId: 0,
name: [null, [Validators.required, Validators.maxLength(250), WhiteSpaceValidator.isValid]],
rowColor: ["#FFFFFF"]
});
}
onOpenModel(content: TemplateRef<any>, record?: AppointmentTypes) {
this.buildForm();
if (record) {
this.appointmentTypeForm.patchValue({
appointmentTypeId: record.appointmentTypeId,
name: record.name,
rowColor: record.rowColor
});
}
this.modalRef = this.modalService.open(content, {
backdrop: "static",
keyboard: false,
centered: false,
windowClass: "custom-modal effect-scale"
});
}
get form() { return this.appointmentTypeForm.controls; }
onCloseModal() {
try {
this.modalRef.close();
this.modalRef = undefined;
} catch (e) {
// ignored;
}
this.loading = false;
this.submitting = undefined;
this.submitted = undefined;
this.colorPalates = new Array<ColorTemplate>();
}
selectColorOption(color: string) {
this.appointmentTypeForm.patchValue({
rowColor: color
});
}
ngOnDestroy() {
this.onCloseModal();
this.page.unsubscribeAll()
}
ngOnInit() {
this.appData.userAccount
.pipe(takeUntil(this.page.unSubscribe))
.subscribe((userAccount: IUserAccount) => {
if (userAccount) {
this.page.userAccount = userAccount;
this.fetchAppointmentTypes();
} else {
this.page.userAccount = undefined;
}
});
}
}
\ No newline at end of file
......@@ -4,9 +4,11 @@
chargeCategoryName: string;
unitName: string;
createdByName: string;
rejectedByName: string;
modifiedByName: string;
modifiedDate: Date;
createdDate: Date;
rejectedDate: Date;
doctorUnitMasterId: number;
admissionId: number;
active: boolean;
......
......@@ -106,6 +106,11 @@
lunch: object;
dinner: object;
unitName: string;
isOnline: boolean;
isConvertedFromOPtoIp: boolean;
departmentName: string;
dischargeStatus: any;
internalMedicineId: any;
}
class MedicationContentViewModel {
......
......@@ -50,3 +50,4 @@ export * from "./user-account.model";
export * from "./user.model";
export * from "./video-call-history.model";
export * from "./vitals.model";
export * from "./look-up.model";
export class LookUpModel {
id: number;
name: string;
value: any;
followUpDays: any;
followUpDaysLimit: any;
visitTypeId: number;
visitorName: string;
}
\ No newline at end of file
......@@ -268,6 +268,11 @@ export class ResourceService {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.fetchPatient), true);
}
patientsWithUmrAndMobile(searchParam: string) {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.patientsWithUmrAndMobile), true, { searchParam: searchParam });
}
pharmacyCategories() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.pharmacyCategories), true);
}
......@@ -514,6 +519,14 @@ export class ResourceService {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.labVacutainer));
}
labExternalAgencies() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.labExternalAgencies));
}
labActiveExternalAgencies() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.labActiveExternalAgencies));
}
scanMachine() {
return this.fetchWithLocation(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.scanMachines))
}
......@@ -598,6 +611,10 @@ export class ResourceService {
receiptAreaTypeId() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.receiptAreaTypeId));
}
receiptAreaTypeIds() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.receiptAreaTypeIds));
}
activeStatus() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.activeStatus));
}
......@@ -868,4 +885,23 @@ export class ResourceService {
modulesMaster() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.modulesMaster));
}
providersLocation(departmentId?: number, locationId?: number) {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.providersLocation), true, { departmentId: departmentId, locationId: locationId });
}
allLabs() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.fetchAllLabs), true);
}
providerBasedOnSpecialization(specializatonId?: number) {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.providersBasedOnSpecialization), true, { specializationId: specializatonId });
}
locationChargeTemplate(admissionPayTypeId?: number) {
return this.fetchWithLocation(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.locationChargeTemplate), { admissionPayTypeId: admissionPayTypeId});
}
dietConditions() {
return this.fetch(ApiResources.getURI(ApiResources.resources.base, ApiResources.resources.dietConditions), true);
}
}
\ No newline at end of file
......@@ -11,6 +11,7 @@ import { LoadingBarRouterModule } from "@ngx-loading-bar/router";
import { DateParserFormatter, NgbUTCStringAdapter } from "@shared/formatters";
import { MomentModule } from "ngx-moment";
import { ToastrModule } from "ngx-toastr";
import { NgxPrintModule } from "ngx-print";
@NgModule({
imports: [
......@@ -24,6 +25,7 @@ import { ToastrModule } from "ngx-toastr";
NgSelectModule,
NgIdleModule.forRoot(),
MomentModule.forRoot(),
NgxPrintModule,
ToastrModule.forRoot({
timeOut: 2000,
positionClass: "toast-bottom-right",
......@@ -51,7 +53,8 @@ import { ToastrModule } from "ngx-toastr";
NgIdleModule,
MomentModule,
ToastrModule,
DragDropModule
DragDropModule,
NgxPrintModule
]
})
export class SharedCommonModule {
......
......@@ -23,44 +23,24 @@
"useDefineForClassFields": false,
"allowSyntheticDefaultImports": true,
"noPropertyAccessFromIndexSignature": false,
"lib": [
"ES2022",
"dom"
],
"lib": ["ES2022", "dom"],
"paths": {
"@src/*": [
"src/*"
],
"@app/*": [
"src/app/*"
],
"@environments/*": [
"src/environments/*"
],
"@account/*": [
"src/app/areas/account/*"
],
"@admin/*": [
"src/app/areas/admin/*"
],
"@support/*": [
"src/app/areas/support/*"
],
"@error/*": [
"src/app/areas/error/*"
],
"@shared/*": [
"src/app/shared/*"
],
"@accountant/*": [
"src/app/areas/accountant/*"
]
"@src/*": ["src/*"],
"@app/*": ["src/app/*"],
"@environments/*": ["src/environments/*"],
"@account/*": ["src/app/areas/account/*"],
"@admin/*": ["src/app/areas/admin/*"],
"@support/*": ["src/app/areas/support/*"],
"@error/*": ["src/app/areas/error/*"],
"@shared/*": ["src/app/shared/*"],
"@accountant/*": ["src/app/areas/accountant/*"]
}
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
"strictTemplates": false,
"fullTemplateTypeCheck": false
}
}
\ No newline at end of file
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment