tin-spa 20.7.0 → 20.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/tin-spa.mjs +5401 -4403
- package/fesm2022/tin-spa.mjs.map +1 -1
- package/index.d.ts +267 -34
- package/package.json +5 -3
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders, OnInit, OnDestroy, TemplateRef, ViewContainerRef, OnChanges, SimpleChanges, EventEmitter, AfterViewInit, PipeTransform, ElementRef, AfterViewChecked, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, NgZone, OnInit, OnDestroy, TemplateRef, ViewContainerRef, OnChanges, SimpleChanges, EventEmitter, AfterViewInit, PipeTransform, ElementRef, AfterViewChecked, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import * as i12 from '@angular/material/snack-bar';
|
|
4
4
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
5
5
|
import * as i11 from '@angular/material/dialog';
|
|
@@ -8,7 +8,7 @@ import * as rxjs from 'rxjs';
|
|
|
8
8
|
import { Observable, BehaviorSubject, Subject } from 'rxjs';
|
|
9
9
|
import * as i1 from '@angular/router';
|
|
10
10
|
import { Router, ActivatedRoute, CanActivateFn } from '@angular/router';
|
|
11
|
-
import * as
|
|
11
|
+
import * as i64 from '@angular/common/http';
|
|
12
12
|
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
|
|
13
13
|
import * as i7$1 from '@abacritt/angularx-social-login';
|
|
14
14
|
import { SocialUser, SocialAuthService } from '@abacritt/angularx-social-login';
|
|
@@ -32,7 +32,9 @@ import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
|
|
|
32
32
|
import * as i17 from '@angular/material/chips';
|
|
33
33
|
import { MatChipInputEvent } from '@angular/material/chips';
|
|
34
34
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
35
|
-
import * as
|
|
35
|
+
import * as i67 from '@kolkov/angular-editor';
|
|
36
|
+
import { AngularEditorConfig } from '@kolkov/angular-editor';
|
|
37
|
+
import * as i69 from '@angular/cdk/drag-drop';
|
|
36
38
|
import { CdkDragEnter, CdkDragExit, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
37
39
|
import * as i3$1 from '@angular/material/menu';
|
|
38
40
|
import * as i4$1 from '@angular/material/slider';
|
|
@@ -56,8 +58,8 @@ import * as i28 from '@angular/material/progress-bar';
|
|
|
56
58
|
import * as i29 from '@angular/material/sidenav';
|
|
57
59
|
import * as i30 from '@angular/material/toolbar';
|
|
58
60
|
import * as i32 from '@angular/material/expansion';
|
|
59
|
-
import * as
|
|
60
|
-
import * as
|
|
61
|
+
import * as i66 from 'ngx-doc-viewer';
|
|
62
|
+
import * as i68 from 'ng2-charts';
|
|
61
63
|
import { MsalService } from '@azure/msal-angular';
|
|
62
64
|
|
|
63
65
|
declare class TinSpaService {
|
|
@@ -483,6 +485,9 @@ interface TinSpaRuntimeConfig {
|
|
|
483
485
|
pathRouting: boolean;
|
|
484
486
|
/** Enable real-time (SignalR) features. Default false (disabled). */
|
|
485
487
|
realTime: boolean;
|
|
488
|
+
/** Enable offline capability (TinSync: read cache + outbox + sync tray + connectivity indicator). Default false —
|
|
489
|
+
* apps that never use offline tables should leave this off so none of the offline machinery ever runs for them. */
|
|
490
|
+
offline?: boolean;
|
|
486
491
|
/** Enable Microsoft SSO (MSAL). Only activates in a secure context (HTTPS/localhost). Default false. */
|
|
487
492
|
microsoftAuth: boolean;
|
|
488
493
|
/** MSAL credentials — required only when microsoftAuth is used. */
|
|
@@ -532,8 +537,19 @@ declare class SignalRService {
|
|
|
532
537
|
constructor(runtimeConfig: TinSpaRuntimeConfig | null);
|
|
533
538
|
/** Effective real-time enablement: legacy E2E kill-switch wins, else the configured runtime flag. */
|
|
534
539
|
private realTimeEnabled;
|
|
540
|
+
/** Public: whether SignalR is the authoritative connection signal (used by OfflineService to pick SignalR vs ping). */
|
|
541
|
+
get isRealTime(): boolean;
|
|
535
542
|
startConnection(hubUrl: string, token: string): void;
|
|
536
543
|
updateToken(token: string): void;
|
|
544
|
+
private forcingReconnect;
|
|
545
|
+
/**
|
|
546
|
+
* Reconnect the hub NOW if real-time is enabled and the connection isn't up. Driven by OfflineService
|
|
547
|
+
* connectivity (the ping heartbeat) so the real-time indicator recovers on the SAME signal that flips the
|
|
548
|
+
* offline indicator back to online — they stay married "hand in glove". Handles both states the built-in
|
|
549
|
+
* auto-reconnect leaves us in: Reconnecting (stuck waiting on a long backoff interval → interrupt and connect
|
|
550
|
+
* now) and Disconnected (auto-reconnect exhausted after a long outage → start fresh). Safe to call repeatedly.
|
|
551
|
+
*/
|
|
552
|
+
reconnectIfNeeded(): void;
|
|
537
553
|
stopConnection(): void;
|
|
538
554
|
static ɵfac: i0.ɵɵFactoryDeclaration<SignalRService, [{ optional: true; }]>;
|
|
539
555
|
static ɵprov: i0.ɵɵInjectableDeclaration<SignalRService>;
|
|
@@ -677,6 +693,20 @@ declare class CacheConfig {
|
|
|
677
693
|
getDuration(url: string): number | null;
|
|
678
694
|
private matchesPattern;
|
|
679
695
|
}
|
|
696
|
+
type OfflineOpStatus = 'pending' | 'syncing' | 'synced' | 'failed' | 'conflict' | 'stale';
|
|
697
|
+
interface OfflineConfig {
|
|
698
|
+
enabled: boolean;
|
|
699
|
+
cacheRows?: number;
|
|
700
|
+
cacheLookups?: boolean | string[];
|
|
701
|
+
lookupMaxAgeHours?: number;
|
|
702
|
+
queue?: {
|
|
703
|
+
create?: boolean;
|
|
704
|
+
edit?: boolean;
|
|
705
|
+
delete?: boolean;
|
|
706
|
+
};
|
|
707
|
+
maxQueueAgeHours?: number;
|
|
708
|
+
readOnly?: boolean;
|
|
709
|
+
}
|
|
680
710
|
interface SearchField extends Field {
|
|
681
711
|
show?: boolean;
|
|
682
712
|
}
|
|
@@ -702,7 +732,7 @@ interface AutoRefreshConfig {
|
|
|
702
732
|
interface Field {
|
|
703
733
|
securityConfig?: SecurityConfig;
|
|
704
734
|
name: string;
|
|
705
|
-
type: 'text' | 'text-area' | 'text-single' | 'text-multi' | 'text-mask' | 'date' | 'date-short' | 'datetime' | 'datetimesec' | 'checkbox' | 'select' | 'select-multi' | 'money' | 'number' | 'section' | 'blank' | 'chip' | 'file' | 'file-view' | 'icon' | 'spinner' | 'button' | 'label' | 'email' | 'composite' | 'string' | 'html';
|
|
735
|
+
type: 'text' | 'text-area' | 'text-single' | 'text-multi' | 'text-mask' | 'date' | 'date-short' | 'datetime' | 'datetimesec' | 'checkbox' | 'select' | 'select-multi' | 'money' | 'number' | 'section' | 'blank' | 'chip' | 'file' | 'file-view' | 'icon' | 'spinner' | 'button' | 'label' | 'email' | 'composite' | 'string' | 'html' | 'editor';
|
|
706
736
|
alias?: string;
|
|
707
737
|
options?: any[];
|
|
708
738
|
optionDisplay?: string;
|
|
@@ -754,6 +784,7 @@ interface Field {
|
|
|
754
784
|
collapsed?: boolean;
|
|
755
785
|
collapsedCondition?: (value: any) => boolean;
|
|
756
786
|
maxHeight?: string;
|
|
787
|
+
editorConfig?: any;
|
|
757
788
|
valueCalculation?: (value: any) => any;
|
|
758
789
|
regex?: {
|
|
759
790
|
pattern: string;
|
|
@@ -1044,6 +1075,7 @@ declare class TableConfig {
|
|
|
1044
1075
|
};
|
|
1045
1076
|
realTime?: boolean;
|
|
1046
1077
|
entityName?: string;
|
|
1078
|
+
offline?: OfflineConfig | boolean;
|
|
1047
1079
|
allowUserKeepOpen?: boolean;
|
|
1048
1080
|
keepOpenBehavior?: 'reset' | 'edit';
|
|
1049
1081
|
}
|
|
@@ -1118,12 +1150,132 @@ declare class AppConfig {
|
|
|
1118
1150
|
keepSignedIn: boolean;
|
|
1119
1151
|
}
|
|
1120
1152
|
|
|
1153
|
+
interface ResolvedOfflineConfig {
|
|
1154
|
+
enabled: boolean;
|
|
1155
|
+
cacheRows: number;
|
|
1156
|
+
cacheLookups: boolean | string[];
|
|
1157
|
+
lookupMaxAgeHours: number;
|
|
1158
|
+
queue: {
|
|
1159
|
+
create: boolean;
|
|
1160
|
+
edit: boolean;
|
|
1161
|
+
delete: boolean;
|
|
1162
|
+
};
|
|
1163
|
+
maxQueueAgeHours: number;
|
|
1164
|
+
readOnly: boolean;
|
|
1165
|
+
}
|
|
1166
|
+
interface OfflineEntry {
|
|
1167
|
+
entity: string;
|
|
1168
|
+
entityName: string;
|
|
1169
|
+
idField: string;
|
|
1170
|
+
config: ResolvedOfflineConfig;
|
|
1171
|
+
}
|
|
1172
|
+
interface OutboxOp {
|
|
1173
|
+
seq?: number;
|
|
1174
|
+
opId: string;
|
|
1175
|
+
entity: string;
|
|
1176
|
+
entityName: string;
|
|
1177
|
+
url: string;
|
|
1178
|
+
opAction: 'create' | 'edit' | 'delete';
|
|
1179
|
+
payload: any;
|
|
1180
|
+
clientRef?: string;
|
|
1181
|
+
targetId?: any;
|
|
1182
|
+
targetClientRef?: string;
|
|
1183
|
+
refMap?: {
|
|
1184
|
+
[field: string]: string;
|
|
1185
|
+
};
|
|
1186
|
+
status: OfflineOpStatus;
|
|
1187
|
+
attempts: number;
|
|
1188
|
+
lastError?: string;
|
|
1189
|
+
serverRecord?: any;
|
|
1190
|
+
maxAgeHours: number;
|
|
1191
|
+
userId: string;
|
|
1192
|
+
enqueuedAt: number;
|
|
1193
|
+
syncedAt?: number;
|
|
1194
|
+
}
|
|
1195
|
+
declare class OfflineService {
|
|
1196
|
+
private httpService;
|
|
1197
|
+
private authService;
|
|
1198
|
+
private storage;
|
|
1199
|
+
private messageService;
|
|
1200
|
+
private signalR;
|
|
1201
|
+
private zone;
|
|
1202
|
+
private runtimeConfig;
|
|
1203
|
+
online$: BehaviorSubject<boolean>;
|
|
1204
|
+
drained$: Subject<string[]>;
|
|
1205
|
+
private db;
|
|
1206
|
+
private reads;
|
|
1207
|
+
private outbox;
|
|
1208
|
+
private meta;
|
|
1209
|
+
private entries;
|
|
1210
|
+
private readUrls;
|
|
1211
|
+
private readPrefixes;
|
|
1212
|
+
registered$: BehaviorSubject<boolean>;
|
|
1213
|
+
private connectivityStarted;
|
|
1214
|
+
private syncStarted;
|
|
1215
|
+
private draining;
|
|
1216
|
+
private backoffTimer;
|
|
1217
|
+
private periodicTimer;
|
|
1218
|
+
private recoveryTimer;
|
|
1219
|
+
constructor(httpService: HttpService, authService: AuthService, storage: StorageService, messageService: MessageService, signalR: SignalRService, zone: NgZone, runtimeConfig: TinSpaRuntimeConfig | null);
|
|
1220
|
+
/** App-level gate: offline capability only runs when the app opts in via provideTinSpaRuntime({ offline: true }).
|
|
1221
|
+
* When off, register()/ensureConnectivity() no-op, so a consumer that never uses offline runs none of this. */
|
|
1222
|
+
get enabled(): boolean;
|
|
1223
|
+
get hasAny(): boolean;
|
|
1224
|
+
get online(): boolean;
|
|
1225
|
+
outboxView$(): Observable<any[]>;
|
|
1226
|
+
private summarize;
|
|
1227
|
+
private statusLabel;
|
|
1228
|
+
register(config: TableConfig): OfflineEntry | null;
|
|
1229
|
+
private registerLookups;
|
|
1230
|
+
matchRead(url: string): OfflineEntry | null;
|
|
1231
|
+
matchMutation(url: string): OfflineEntry | null;
|
|
1232
|
+
suppressesUrl(absoluteUrl: string): boolean;
|
|
1233
|
+
private resolveConfig;
|
|
1234
|
+
private ensureOpen;
|
|
1235
|
+
putRead(url: string, entity: string, data: any, maxRows: number): Promise<any>;
|
|
1236
|
+
private getRead;
|
|
1237
|
+
handleOfflineRead(action: Action, entry: OfflineEntry, networkCall: () => Observable<ApiResponse>): Observable<ApiResponse>;
|
|
1238
|
+
private serveCachedRead;
|
|
1239
|
+
enqueueOffline(action: Action, data: any, entry: OfflineEntry): Observable<ApiResponse>;
|
|
1240
|
+
private enqueueMutation;
|
|
1241
|
+
pendingOpsFor$(entity: string): Observable<OutboxOp[]>;
|
|
1242
|
+
activeOps$(): Observable<OutboxOp[]>;
|
|
1243
|
+
private pendingCreates;
|
|
1244
|
+
private hasPending;
|
|
1245
|
+
ensureConnectivity(): void;
|
|
1246
|
+
reportNetworkFailure(): void;
|
|
1247
|
+
private verify;
|
|
1248
|
+
private setOnline;
|
|
1249
|
+
private setOffline;
|
|
1250
|
+
private startRecoveryPolling;
|
|
1251
|
+
private stopRecoveryPolling;
|
|
1252
|
+
private startSync;
|
|
1253
|
+
drain(): Promise<void>;
|
|
1254
|
+
private drainLoop;
|
|
1255
|
+
private sendOp;
|
|
1256
|
+
private finishOp;
|
|
1257
|
+
private nextAutoOp;
|
|
1258
|
+
private resetOrphans;
|
|
1259
|
+
private cascadeFailure;
|
|
1260
|
+
private scheduleBackoff;
|
|
1261
|
+
retryOp(opId: string): Promise<void>;
|
|
1262
|
+
discardOp(opId: string): Promise<any>;
|
|
1263
|
+
resolveConflict(opId: string, choice: 'keepServer' | 'keepMine'): Promise<void>;
|
|
1264
|
+
private getOp;
|
|
1265
|
+
private parseAction;
|
|
1266
|
+
private hash;
|
|
1267
|
+
private sanitize;
|
|
1268
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OfflineService, [null, null, null, null, null, null, { optional: true; }]>;
|
|
1269
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<OfflineService>;
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1121
1272
|
declare class DataServiceLib {
|
|
1122
1273
|
private httpService;
|
|
1123
1274
|
router: Router;
|
|
1124
1275
|
private route;
|
|
1125
1276
|
private authService;
|
|
1126
|
-
|
|
1277
|
+
private offline;
|
|
1278
|
+
constructor(httpService: HttpService, router: Router, route: ActivatedRoute, authService: AuthService, offline: OfflineService);
|
|
1127
1279
|
appConfig: AppConfig;
|
|
1128
1280
|
private appConfigSource;
|
|
1129
1281
|
appConfigObserv: Observable<AppConfig>;
|
|
@@ -1317,6 +1469,27 @@ declare class LoaderService {
|
|
|
1317
1469
|
static ɵprov: i0.ɵɵInjectableDeclaration<LoaderService>;
|
|
1318
1470
|
}
|
|
1319
1471
|
|
|
1472
|
+
declare class viewerDialog implements OnInit {
|
|
1473
|
+
private httpService;
|
|
1474
|
+
private dataServiceLib;
|
|
1475
|
+
data: any;
|
|
1476
|
+
constructor(httpService: HttpService, dataServiceLib: DataServiceLib, data: any);
|
|
1477
|
+
ngOnInit(): void;
|
|
1478
|
+
isProcessing: boolean;
|
|
1479
|
+
fullPath: string;
|
|
1480
|
+
fileNames: any[];
|
|
1481
|
+
fileName: string;
|
|
1482
|
+
currIndex: number;
|
|
1483
|
+
currentFileUrl: string;
|
|
1484
|
+
previous(): void;
|
|
1485
|
+
next(): void;
|
|
1486
|
+
imageDoc: boolean;
|
|
1487
|
+
setURL(): void;
|
|
1488
|
+
change(fileName: any): void;
|
|
1489
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<viewerDialog, never>;
|
|
1490
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<viewerDialog, "app-editRequest", never, {}, {}, never, never, false, never>;
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1320
1493
|
declare class DialogService {
|
|
1321
1494
|
private dialog;
|
|
1322
1495
|
private breakpointObserver;
|
|
@@ -1335,6 +1508,7 @@ declare class DialogService {
|
|
|
1335
1508
|
inputChange: Observable<any>;
|
|
1336
1509
|
dialogRef: MatDialogRef<any>;
|
|
1337
1510
|
};
|
|
1511
|
+
openViewerDialog(fileName: string, fileNames: string[] | string, path: string): MatDialogRef<viewerDialog>;
|
|
1338
1512
|
openPrintDialog(htmlContent: any): void;
|
|
1339
1513
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, [null, null, { optional: true; }]>;
|
|
1340
1514
|
static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
|
|
@@ -1783,6 +1957,48 @@ declare class AnalyticsService {
|
|
|
1783
1957
|
static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsService>;
|
|
1784
1958
|
}
|
|
1785
1959
|
|
|
1960
|
+
declare class OfflineIndicatorComponent {
|
|
1961
|
+
private offline;
|
|
1962
|
+
private router;
|
|
1963
|
+
state$: Observable<{
|
|
1964
|
+
online: boolean;
|
|
1965
|
+
pending: number;
|
|
1966
|
+
attention: number;
|
|
1967
|
+
badge: number;
|
|
1968
|
+
}>;
|
|
1969
|
+
enabled: boolean;
|
|
1970
|
+
constructor(offline: OfflineService, router: Router);
|
|
1971
|
+
tooltip(s: {
|
|
1972
|
+
online: boolean;
|
|
1973
|
+
pending: number;
|
|
1974
|
+
attention: number;
|
|
1975
|
+
badge: number;
|
|
1976
|
+
}): string;
|
|
1977
|
+
openSyncPage(): void;
|
|
1978
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OfflineIndicatorComponent, never>;
|
|
1979
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OfflineIndicatorComponent, "spa-offline-indicator", never, {}, {}, never, never, false, never>;
|
|
1980
|
+
}
|
|
1981
|
+
|
|
1982
|
+
declare class SyncComponent implements OnInit, OnDestroy {
|
|
1983
|
+
private offline;
|
|
1984
|
+
private messageService;
|
|
1985
|
+
ops: OutboxOp[];
|
|
1986
|
+
alertConfig: AlertConfig | null;
|
|
1987
|
+
private sub;
|
|
1988
|
+
private retryButton;
|
|
1989
|
+
private keepServerButton;
|
|
1990
|
+
private keepMineButton;
|
|
1991
|
+
private discardButton;
|
|
1992
|
+
private syncNowButton;
|
|
1993
|
+
tableConfig: TableConfig;
|
|
1994
|
+
ngOnInit(): void;
|
|
1995
|
+
ngOnDestroy(): void;
|
|
1996
|
+
private discard;
|
|
1997
|
+
private updateAlert;
|
|
1998
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SyncComponent, never>;
|
|
1999
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SyncComponent, "spa-sync", never, {}, {}, never, never, false, never>;
|
|
2000
|
+
}
|
|
2001
|
+
|
|
1786
2002
|
declare const authGuard: CanActivateFn;
|
|
1787
2003
|
|
|
1788
2004
|
declare const featureGuard: (featureKey: string) => CanActivateFn;
|
|
@@ -2300,6 +2516,7 @@ declare class OptionComponent implements OnInit {
|
|
|
2300
2516
|
infoMessage: string;
|
|
2301
2517
|
copyContent: boolean;
|
|
2302
2518
|
suffix: string;
|
|
2519
|
+
editorConfig: any;
|
|
2303
2520
|
loadAction: Action;
|
|
2304
2521
|
valueChange: EventEmitter<any>;
|
|
2305
2522
|
enterPress: EventEmitter<any>;
|
|
@@ -2309,7 +2526,7 @@ declare class OptionComponent implements OnInit {
|
|
|
2309
2526
|
resetValue(): void;
|
|
2310
2527
|
onInfoClick(event: MouseEvent): void;
|
|
2311
2528
|
static ɵfac: i0.ɵɵFactoryDeclaration<OptionComponent, never>;
|
|
2312
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<OptionComponent, "spa-option", never, { "options": { "alias": "options"; "required": false; }; "optionValue": { "alias": "optionValue"; "required": false; }; "optionDisplay": { "alias": "optionDisplay"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; "display": { "alias": "display"; "required": false; }; "show": { "alias": "show"; "required": false; }; "required": { "alias": "required"; "required": false; }; "infoMessage": { "alias": "infoMessage"; "required": false; }; "copyContent": { "alias": "copyContent"; "required": false; }; "suffix": { "alias": "suffix"; "required": false; }; "loadAction": { "alias": "loadAction"; "required": false; }; }, { "valueChange": "valueChange"; "enterPress": "enterPress"; }, never, never, false, never>;
|
|
2529
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OptionComponent, "spa-option", never, { "options": { "alias": "options"; "required": false; }; "optionValue": { "alias": "optionValue"; "required": false; }; "optionDisplay": { "alias": "optionDisplay"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; "display": { "alias": "display"; "required": false; }; "show": { "alias": "show"; "required": false; }; "required": { "alias": "required"; "required": false; }; "infoMessage": { "alias": "infoMessage"; "required": false; }; "copyContent": { "alias": "copyContent"; "required": false; }; "suffix": { "alias": "suffix"; "required": false; }; "editorConfig": { "alias": "editorConfig"; "required": false; }; "loadAction": { "alias": "loadAction"; "required": false; }; }, { "valueChange": "valueChange"; "enterPress": "enterPress"; }, never, never, false, never>;
|
|
2313
2530
|
}
|
|
2314
2531
|
|
|
2315
2532
|
declare class TilesComponent implements OnInit {
|
|
@@ -2487,7 +2704,9 @@ declare class TableComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
2487
2704
|
private conditionService;
|
|
2488
2705
|
private authService;
|
|
2489
2706
|
private signalRService;
|
|
2490
|
-
|
|
2707
|
+
private offline;
|
|
2708
|
+
constructor(dataService: DataServiceLib, messageService: MessageService, breakpointObserver: BreakpointObserver, dialog: MatDialog, buttonService: ButtonService, dialogService: DialogService, tableConfigService: TableConfigService, conditionService: ConditionService, authService: AuthService, signalRService: SignalRService, // Changed: Added SignalRService
|
|
2709
|
+
offline: OfflineService);
|
|
2491
2710
|
ngOnInit(): void;
|
|
2492
2711
|
ngAfterViewInit(): void;
|
|
2493
2712
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -2522,6 +2741,10 @@ declare class TableComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
2522
2741
|
private realTimeSubs;
|
|
2523
2742
|
private realTimeEntityName;
|
|
2524
2743
|
isSignalRConnected: boolean;
|
|
2744
|
+
private offlineEntry;
|
|
2745
|
+
private pendingOps;
|
|
2746
|
+
private rawRows;
|
|
2747
|
+
private offlineSubs;
|
|
2525
2748
|
private initializeComponent;
|
|
2526
2749
|
private updateTableConfiguration;
|
|
2527
2750
|
private setupDataLoading;
|
|
@@ -2558,7 +2781,14 @@ declare class TableComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
2558
2781
|
execAction(button: Button, row: any): void;
|
|
2559
2782
|
private getElevationClass;
|
|
2560
2783
|
private realTimeRefreshOrFallback;
|
|
2784
|
+
private setupOffline;
|
|
2785
|
+
private placeStatusIcons;
|
|
2786
|
+
private applyOfflineOverlay;
|
|
2787
|
+
private computeOverlay;
|
|
2788
|
+
private reapplyOverlay;
|
|
2561
2789
|
private setupRealTimeSubscriptions;
|
|
2790
|
+
private realTimeBaseRows;
|
|
2791
|
+
private applyRealTimeData;
|
|
2562
2792
|
private deriveEntityName;
|
|
2563
2793
|
private findIdKey;
|
|
2564
2794
|
ngOnDestroy(): void;
|
|
@@ -2764,27 +2994,6 @@ declare class ViewerComponent implements OnInit {
|
|
|
2764
2994
|
static ɵcmp: i0.ɵɵComponentDeclaration<ViewerComponent, "spa-viewer", never, { "fileAction": { "alias": "fileAction"; "required": false; }; "path": { "alias": "path"; "required": false; }; "folderName": { "alias": "folderName"; "required": false; }; "fileNames": { "alias": "fileNames"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "display": { "alias": "display"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, { "remove": "remove"; }, never, never, false, never>;
|
|
2765
2995
|
}
|
|
2766
2996
|
|
|
2767
|
-
declare class viewerDialog implements OnInit {
|
|
2768
|
-
private httpService;
|
|
2769
|
-
private dataServiceLib;
|
|
2770
|
-
data: any;
|
|
2771
|
-
constructor(httpService: HttpService, dataServiceLib: DataServiceLib, data: any);
|
|
2772
|
-
ngOnInit(): void;
|
|
2773
|
-
isProcessing: boolean;
|
|
2774
|
-
fullPath: string;
|
|
2775
|
-
fileNames: any[];
|
|
2776
|
-
fileName: string;
|
|
2777
|
-
currIndex: number;
|
|
2778
|
-
currentFileUrl: string;
|
|
2779
|
-
previous(): void;
|
|
2780
|
-
next(): void;
|
|
2781
|
-
imageDoc: boolean;
|
|
2782
|
-
setURL(): void;
|
|
2783
|
-
change(fileName: any): void;
|
|
2784
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<viewerDialog, never>;
|
|
2785
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<viewerDialog, "app-editRequest", never, {}, {}, never, never, false, never>;
|
|
2786
|
-
}
|
|
2787
|
-
|
|
2788
2997
|
declare class ListDialogComponent implements OnInit {
|
|
2789
2998
|
private dataService;
|
|
2790
2999
|
private dialogRef;
|
|
@@ -3175,6 +3384,30 @@ declare class HtmlComponent implements OnInit {
|
|
|
3175
3384
|
static ɵcmp: i0.ɵɵComponentDeclaration<HtmlComponent, "spa-html", never, { "value": { "alias": "value"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "display": { "alias": "display"; "required": false; }; }, {}, never, never, false, never>;
|
|
3176
3385
|
}
|
|
3177
3386
|
|
|
3387
|
+
declare class EditorComponent implements OnInit {
|
|
3388
|
+
constructor();
|
|
3389
|
+
ngOnInit(): void;
|
|
3390
|
+
ngOnChanges(): void;
|
|
3391
|
+
display: string;
|
|
3392
|
+
value: string;
|
|
3393
|
+
readonly: boolean;
|
|
3394
|
+
required: boolean;
|
|
3395
|
+
hint: string;
|
|
3396
|
+
infoMessage: string;
|
|
3397
|
+
placeholder: string;
|
|
3398
|
+
width: string;
|
|
3399
|
+
height: string;
|
|
3400
|
+
minHeight: string;
|
|
3401
|
+
defaultFontName: string;
|
|
3402
|
+
editorConfig: AngularEditorConfig;
|
|
3403
|
+
valueChange: EventEmitter<any>;
|
|
3404
|
+
config: AngularEditorConfig;
|
|
3405
|
+
private buildConfig;
|
|
3406
|
+
changed(val: any): void;
|
|
3407
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EditorComponent, never>;
|
|
3408
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EditorComponent, "spa-editor", never, { "display": { "alias": "display"; "required": false; }; "value": { "alias": "value"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "infoMessage": { "alias": "infoMessage"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "defaultFontName": { "alias": "defaultFontName"; "required": false; }; "editorConfig": { "alias": "editorConfig"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
3409
|
+
}
|
|
3410
|
+
|
|
3178
3411
|
declare class NotesComponent implements OnInit {
|
|
3179
3412
|
private dataService;
|
|
3180
3413
|
constructor(dataService: DataServiceLib);
|
|
@@ -3721,7 +3954,7 @@ declare class CurrencyInputModule {
|
|
|
3721
3954
|
|
|
3722
3955
|
declare class TinSpaModule {
|
|
3723
3956
|
static ɵfac: i0.ɵɵFactoryDeclaration<TinSpaModule, never>;
|
|
3724
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<TinSpaModule, [typeof TinSpaComponent, typeof TextComponent, typeof TextMaskComponent, typeof TextAreaComponent, typeof TextSingleComponent, typeof CheckComponent, typeof DateComponent, typeof DatetimeComponent, typeof LabelComponent, typeof SelectComponent, typeof ActivityComponent, typeof FilterComponent, typeof messageDialog, typeof MoneyComponent, typeof OptionComponent, typeof TilesComponent, typeof StepsComponent, typeof AttachComponent, typeof ChipsComponent, typeof LoaderComponent, typeof NavMenuComponent, typeof TableComponent, typeof DetailsDialog, typeof FormComponent, typeof CamelToWordsPipe, typeof NumberComponent, typeof SearchComponent, typeof ViewerComponent, typeof viewerDialog, typeof ListDialogComponent, typeof InvitationsTableComponent, typeof TableHeaderComponent, typeof TableRowComponent, typeof TableActionComponent, typeof AlertComponent, typeof EmailComponent, typeof PageComponent, typeof SelectCommonComponent, typeof SuffixComponent, typeof SelectContextDirective, typeof SelectLiteComponent, typeof TextMultiComponent, typeof SelectMultiComponent, typeof SelectBitwiseComponent, typeof HtmlComponent, typeof NotesComponent, typeof CapsulesComponent, typeof CardsComponent, typeof TabsComponent, typeof StatusesComponent, typeof GroupsComponent, typeof TitleActionsComponent, typeof WelcomeComponent, typeof TermsDialogComponent, typeof PrivacyDialogComponent, typeof ChartsComponent, typeof FeatureDirective, typeof SpaLandingComponent, typeof ToastComponent, typeof AgentComponent], [typeof SpaMatModule, typeof
|
|
3957
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<TinSpaModule, [typeof TinSpaComponent, typeof TextComponent, typeof TextMaskComponent, typeof TextAreaComponent, typeof TextSingleComponent, typeof CheckComponent, typeof DateComponent, typeof DatetimeComponent, typeof LabelComponent, typeof SelectComponent, typeof ActivityComponent, typeof FilterComponent, typeof messageDialog, typeof MoneyComponent, typeof OptionComponent, typeof TilesComponent, typeof StepsComponent, typeof AttachComponent, typeof ChipsComponent, typeof LoaderComponent, typeof NavMenuComponent, typeof TableComponent, typeof DetailsDialog, typeof FormComponent, typeof CamelToWordsPipe, typeof NumberComponent, typeof SearchComponent, typeof ViewerComponent, typeof viewerDialog, typeof ListDialogComponent, typeof InvitationsTableComponent, typeof TableHeaderComponent, typeof TableRowComponent, typeof TableActionComponent, typeof AlertComponent, typeof EmailComponent, typeof PageComponent, typeof SelectCommonComponent, typeof SuffixComponent, typeof SelectContextDirective, typeof SelectLiteComponent, typeof TextMultiComponent, typeof SelectMultiComponent, typeof SelectBitwiseComponent, typeof HtmlComponent, typeof EditorComponent, typeof NotesComponent, typeof CapsulesComponent, typeof CardsComponent, typeof TabsComponent, typeof StatusesComponent, typeof GroupsComponent, typeof TitleActionsComponent, typeof WelcomeComponent, typeof TermsDialogComponent, typeof PrivacyDialogComponent, typeof ChartsComponent, typeof FeatureDirective, typeof SpaLandingComponent, typeof ToastComponent, typeof AgentComponent, typeof OfflineIndicatorComponent], [typeof SpaMatModule, typeof i64.HttpClientModule, typeof CurrencyInputModule, typeof i66.NgxDocViewerModule, typeof i67.AngularEditorModule, typeof i68.BaseChartDirective, typeof i69.DragDropModule], [typeof TinSpaComponent, typeof SpaMatModule, typeof AlertComponent, typeof TextComponent, typeof TextMaskComponent, typeof TextAreaComponent, typeof TextSingleComponent, typeof TextMultiComponent, typeof messageDialog, typeof NavMenuComponent, typeof LoaderComponent, typeof TilesComponent, typeof DateComponent, typeof SelectComponent, typeof SelectBitwiseComponent, typeof SelectMultiComponent, typeof DatetimeComponent, typeof CheckComponent, typeof AttachComponent, typeof MoneyComponent, typeof ChipsComponent, typeof ActivityComponent, typeof OptionComponent, typeof LabelComponent, typeof StepsComponent, typeof FilterComponent, typeof TableComponent, typeof DetailsDialog, typeof FormComponent, typeof NumberComponent, typeof SearchComponent, typeof ViewerComponent, typeof viewerDialog, typeof ListDialogComponent, typeof ListDialogComponent, typeof EmailComponent, typeof PageComponent, typeof HtmlComponent, typeof EditorComponent, typeof NotesComponent, typeof CapsulesComponent, typeof TabsComponent, typeof StatusesComponent, typeof GroupsComponent, typeof TitleActionsComponent, typeof WelcomeComponent, typeof InvitationsTableComponent, typeof TermsDialogComponent, typeof PrivacyDialogComponent, typeof SelectLiteComponent, typeof ChartsComponent, typeof FeatureDirective, typeof SpaLandingComponent, typeof AgentComponent, typeof OfflineIndicatorComponent]>;
|
|
3725
3958
|
static ɵinj: i0.ɵɵInjectorDeclaration<TinSpaModule>;
|
|
3726
3959
|
}
|
|
3727
3960
|
|
|
@@ -4839,7 +5072,7 @@ declare class NotificationsConfigComponent implements OnInit {
|
|
|
4839
5072
|
|
|
4840
5073
|
declare class WorkflowModule {
|
|
4841
5074
|
static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowModule, never>;
|
|
4842
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<WorkflowModule, [typeof ApprovalsComponent, typeof ApprovalsConfigComponent, typeof NotificationsComponent, typeof AppModelsComponent, typeof NotificationsConfigComponent], [typeof i4.CommonModule, typeof SpaAdminModule], never>;
|
|
5075
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<WorkflowModule, [typeof ApprovalsComponent, typeof ApprovalsConfigComponent, typeof NotificationsComponent, typeof AppModelsComponent, typeof NotificationsConfigComponent, typeof SyncComponent], [typeof i4.CommonModule, typeof SpaAdminModule], never>;
|
|
4843
5076
|
static ɵinj: i0.ɵɵInjectorDeclaration<WorkflowModule>;
|
|
4844
5077
|
}
|
|
4845
5078
|
|
|
@@ -4891,5 +5124,5 @@ declare class SpaHomeModule {
|
|
|
4891
5124
|
static ɵinj: i0.ɵɵInjectorDeclaration<SpaHomeModule>;
|
|
4892
5125
|
}
|
|
4893
5126
|
|
|
4894
|
-
export { ALSQUARE_SVG_DARK, ALSQUARE_SVG_WHITE, Account, AccountsComponent as AccountingAccountsComponent, AggregatesComponent as AccountingAggregatesComponent, AgingComponent as AccountingAgingComponent, CurrenciesComponent as AccountingCurrenciesComponent, AccountingDashboardComponent, InvoicesComponent as AccountingInvoicesComponent, AccountingModule, ReportsComponent as AccountingReportsComponent, AccountingService, StatementComponent as AccountingStatementComponent, TransactionTypesComponent as AccountingTransactionTypesComponent, TransactionsComponent as AccountingTransactionsComponent, Action, ActivityComponent, AdminModule, AgentComponent, AgentService, AlertComponent, AlertConfig, AlertMessage, AnalyticsService, ApiResponse, AppConfig, AppModelsComponent, AssetStatus, AssetsService, AttachComponent, AuthService, BillingPageComponent, BrandsComponent, CacheConfig, CapItem, CapsulesComponent, CategoriesComponent, ChangePasswordComponent, ChangeUserPassword, ChartConfig, ChartsComponent, CheckComponent, ChipsComponent, Constants, Core, CreateAccountComponent, CustomersComponent, DataServiceLib, DateComponent, DatetimeComponent, DepartmentsComponent, DetailsDialog, DetailsDialogConfig, DetailsDialogProcessor, DetailsSource, DialogService, EmailComponent, EmployeesComponent, ExportService, FeatureDirective, FilterComponent, FormComponent, FormConfig, GeneralModule, GeneralService, GradesComponent, GroupsComponent, HRModule, HtmlComponent, HttpService, IndexModule, InventoryDashboardComponent, InventoryModule, InventoryService, InvitationsTableComponent, InvoiceDashboardComponent, InvoiceItemType, InvoiceStatus, LabelComponent, ListDialogComponent, ListDialogConfig, LoaderComponent, LoaderService, LoanPaymentsComponent, LoanProductsComponent, LoansComponent, LoansModule, LoansService, LogLevel, LogService, LoginComponent, LogsComponent, ManufacturingModule, MembershipComponent, MessageService, MoneyComponent, MovementType, NavMenuComponent, NotesComponent, NotesConfig, NotificationsService, NumberComponent, OnboardingComponent, OptionComponent, OverviewDashboardComponent, OverviewModule, PageComponent, PageConfig, PayrollDashboardComponent, PayrollModule, PlansComponent, PositionsComponent, PreferencesComponent, PrivacyDialogComponent, Profile, ProfileComponent, PurchaseStatus, PurchasingDashboardComponent, PurchasingModule, PushNotificationService, ReceiptStatus, RecoverAccountComponent, Register, Role, RoleAccess, RolesComponent, SalesDashboardComponent, SalesModule, SearchComponent, SearchConfig, SecurityConfig, SelectBitwiseComponent, SelectComponent, SelectLiteComponent, SelectMultiComponent, SettingsComponent, SignupComponent, SignupData, SpaAdminModule, SpaHomeModule, SpaIndexModule, SpaLandingComponent, SpaMatModule, SpaUserModule, StatusesComponent, Step, StepConfig, StepsComponent, StorageService, SubCategoriesComponent, SubscriptionPageComponent, SubscriptionService, SuppliersComponent, TIN_SPA_RUNTIME_CONFIG, TabService, TableComponent, TableConfig, TabsComponent, TasksComponent, TenancyModule, TenantsComponent, TermsDialogComponent, TextAreaComponent, TextComponent, TextMaskComponent, TextMultiComponent, TextSingleComponent, TileConfig, TilesComponent, TinSpaComponent, TinSpaModule, TinSpaService, TitleActionsComponent, TransactionTiming, UnitOfMeasure, UpdateService, User, UserModule, UsersComponent, ViewerComponent, WelcomeComponent, WorkflowModule, authGuard, dialogOptions, featureGuard, loginConfig, messageDialog, provideTinSpaRuntime, tinSpaLocationStrategyFactory, tinSpaMsalInstanceFactory, viewerDialog };
|
|
4895
|
-
export type { AgentMessage, AutoRefreshConfig, BitwiseOption, Button, CacheRule, CapsuleConfig, CardConfig, ChartItem, ChildField, CloseOptions, Color, Column, Confirm, ConversationSummary, Field, GroupConfig, GroupData, Icon, LandingBrandOverride, LandingColors, LandingConfig, LandingFeature, LandingFooterColumn, LandingFooterLink, LandingMetric, LandingModuleGroup, LandingModuleTile, LandingNavLink, LandingPricingPlan, LandingSecurityItem, LandingStep, LandingTestimonial, SearchField, SpaChartType, StatusConfig, StatusItem, StatusState, TableViewType, Tile, TileChartConfig, TileChartType, TileStyle, TinSpaMsalConfig, TinSpaRuntimeConfig, VisibleTab };
|
|
5127
|
+
export { ALSQUARE_SVG_DARK, ALSQUARE_SVG_WHITE, Account, AccountsComponent as AccountingAccountsComponent, AggregatesComponent as AccountingAggregatesComponent, AgingComponent as AccountingAgingComponent, CurrenciesComponent as AccountingCurrenciesComponent, AccountingDashboardComponent, InvoicesComponent as AccountingInvoicesComponent, AccountingModule, ReportsComponent as AccountingReportsComponent, AccountingService, StatementComponent as AccountingStatementComponent, TransactionTypesComponent as AccountingTransactionTypesComponent, TransactionsComponent as AccountingTransactionsComponent, Action, ActivityComponent, AdminModule, AgentComponent, AgentService, AlertComponent, AlertConfig, AlertMessage, AnalyticsService, ApiResponse, AppConfig, AppModelsComponent, AssetStatus, AssetsService, AttachComponent, AuthService, BillingPageComponent, BrandsComponent, CacheConfig, CapItem, CapsulesComponent, CategoriesComponent, ChangePasswordComponent, ChangeUserPassword, ChartConfig, ChartsComponent, CheckComponent, ChipsComponent, Constants, Core, CreateAccountComponent, CustomersComponent, DataServiceLib, DateComponent, DatetimeComponent, DepartmentsComponent, DetailsDialog, DetailsDialogConfig, DetailsDialogProcessor, DetailsSource, DialogService, EditorComponent, EmailComponent, EmployeesComponent, ExportService, FeatureDirective, FilterComponent, FormComponent, FormConfig, GeneralModule, GeneralService, GradesComponent, GroupsComponent, HRModule, HtmlComponent, HttpService, IndexModule, InventoryDashboardComponent, InventoryModule, InventoryService, InvitationsTableComponent, InvoiceDashboardComponent, InvoiceItemType, InvoiceStatus, LabelComponent, ListDialogComponent, ListDialogConfig, LoaderComponent, LoaderService, LoanPaymentsComponent, LoanProductsComponent, LoansComponent, LoansModule, LoansService, LogLevel, LogService, LoginComponent, LogsComponent, ManufacturingModule, MembershipComponent, MessageService, MoneyComponent, MovementType, NavMenuComponent, NotesComponent, NotesConfig, NotificationsService, NumberComponent, OfflineIndicatorComponent, OfflineService, OnboardingComponent, OptionComponent, OverviewDashboardComponent, OverviewModule, PageComponent, PageConfig, PayrollDashboardComponent, PayrollModule, PlansComponent, PositionsComponent, PreferencesComponent, PrivacyDialogComponent, Profile, ProfileComponent, PurchaseStatus, PurchasingDashboardComponent, PurchasingModule, PushNotificationService, ReceiptStatus, RecoverAccountComponent, Register, Role, RoleAccess, RolesComponent, SalesDashboardComponent, SalesModule, SearchComponent, SearchConfig, SecurityConfig, SelectBitwiseComponent, SelectComponent, SelectLiteComponent, SelectMultiComponent, SettingsComponent, SignupComponent, SignupData, SpaAdminModule, SpaHomeModule, SpaIndexModule, SpaLandingComponent, SpaMatModule, SpaUserModule, StatusesComponent, Step, StepConfig, StepsComponent, StorageService, SubCategoriesComponent, SubscriptionPageComponent, SubscriptionService, SuppliersComponent, SyncComponent, TIN_SPA_RUNTIME_CONFIG, TabService, TableComponent, TableConfig, TabsComponent, TasksComponent, TenancyModule, TenantsComponent, TermsDialogComponent, TextAreaComponent, TextComponent, TextMaskComponent, TextMultiComponent, TextSingleComponent, TileConfig, TilesComponent, TinSpaComponent, TinSpaModule, TinSpaService, TitleActionsComponent, TransactionTiming, UnitOfMeasure, UpdateService, User, UserModule, UsersComponent, ViewerComponent, WelcomeComponent, WorkflowModule, authGuard, dialogOptions, featureGuard, loginConfig, messageDialog, provideTinSpaRuntime, tinSpaLocationStrategyFactory, tinSpaMsalInstanceFactory, viewerDialog };
|
|
5128
|
+
export type { AgentMessage, AutoRefreshConfig, BitwiseOption, Button, CacheRule, CapsuleConfig, CardConfig, ChartItem, ChildField, CloseOptions, Color, Column, Confirm, ConversationSummary, Field, GroupConfig, GroupData, Icon, LandingBrandOverride, LandingColors, LandingConfig, LandingFeature, LandingFooterColumn, LandingFooterLink, LandingMetric, LandingModuleGroup, LandingModuleTile, LandingNavLink, LandingPricingPlan, LandingSecurityItem, LandingStep, LandingTestimonial, OfflineConfig, OfflineEntry, OfflineOpStatus, OutboxOp, SearchField, SpaChartType, StatusConfig, StatusItem, StatusState, TableViewType, Tile, TileChartConfig, TileChartType, TileStyle, TinSpaMsalConfig, TinSpaRuntimeConfig, VisibleTab };
|
package/package.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tin-spa",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.8.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.0.0",
|
|
6
6
|
"@angular/core": "^20.0.0",
|
|
7
7
|
"@azure/msal-angular": "^4.0.0",
|
|
8
|
-
"@azure/msal-browser": "^4.0.0"
|
|
8
|
+
"@azure/msal-browser": "^4.0.0",
|
|
9
|
+
"@kolkov/angular-editor": "^3.0.5"
|
|
9
10
|
},
|
|
10
11
|
"dependencies": {
|
|
11
|
-
"tslib": "^2.3.0"
|
|
12
|
+
"tslib": "^2.3.0",
|
|
13
|
+
"dexie": "^4.0.0"
|
|
12
14
|
},
|
|
13
15
|
"publishConfig": {
|
|
14
16
|
"registry": "https://registry.npmjs.org/"
|