tin-spa 20.9.0 → 20.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/tin-spa.mjs +3340 -2656
- package/fesm2022/tin-spa.mjs.map +1 -1
- package/index.d.ts +89 -13
- package/package.json +1 -1
- package/src/tin-styles.css +70 -0
package/index.d.ts
CHANGED
|
@@ -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 i66 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,9 +32,9 @@ import * as i22 from '@angular/material/autocomplete';
|
|
|
32
32
|
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
|
|
33
33
|
import * as i17 from '@angular/material/chips';
|
|
34
34
|
import { MatChipInputEvent } from '@angular/material/chips';
|
|
35
|
-
import * as
|
|
35
|
+
import * as i68 from '@kolkov/angular-editor';
|
|
36
36
|
import { AngularEditorConfig } from '@kolkov/angular-editor';
|
|
37
|
-
import * as
|
|
37
|
+
import * as i70 from '@angular/cdk/drag-drop';
|
|
38
38
|
import { CdkDragEnter, CdkDragExit, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
39
39
|
import * as i3$1 from '@angular/material/menu';
|
|
40
40
|
import * as i4$1 from '@angular/material/slider';
|
|
@@ -58,7 +58,7 @@ import * as i28 from '@angular/material/progress-bar';
|
|
|
58
58
|
import * as i29 from '@angular/material/sidenav';
|
|
59
59
|
import * as i30 from '@angular/material/toolbar';
|
|
60
60
|
import * as i32 from '@angular/material/expansion';
|
|
61
|
-
import * as
|
|
61
|
+
import * as i69 from 'ng2-charts';
|
|
62
62
|
import { MsalService } from '@azure/msal-angular';
|
|
63
63
|
|
|
64
64
|
declare class TinSpaService {
|
|
@@ -110,7 +110,8 @@ declare enum InvoiceStatus {
|
|
|
110
110
|
Submitted = 1,
|
|
111
111
|
Paid = 2,
|
|
112
112
|
Discarded = 3,
|
|
113
|
-
Paying = 4
|
|
113
|
+
Paying = 4,
|
|
114
|
+
WrittenOff = 5
|
|
114
115
|
}
|
|
115
116
|
declare enum CreditNoteStatus {
|
|
116
117
|
Draft = 0,
|
|
@@ -695,6 +696,7 @@ declare class DetailsDialogConfig {
|
|
|
695
696
|
allowUserKeepOpen?: boolean;
|
|
696
697
|
keepOpenBehavior?: 'reset' | 'edit';
|
|
697
698
|
nestingLevel?: number;
|
|
699
|
+
localMode?: boolean;
|
|
698
700
|
}
|
|
699
701
|
declare class Action {
|
|
700
702
|
method?: 'get' | 'post';
|
|
@@ -1048,6 +1050,12 @@ interface Column {
|
|
|
1048
1050
|
detailsConfig?: DetailsDialogConfig;
|
|
1049
1051
|
hiddenCondition?: (parentData: any) => boolean;
|
|
1050
1052
|
}
|
|
1053
|
+
interface InlineEditConfig {
|
|
1054
|
+
fields?: string[];
|
|
1055
|
+
}
|
|
1056
|
+
interface CreateTabConfig {
|
|
1057
|
+
navigationProperty: string;
|
|
1058
|
+
}
|
|
1051
1059
|
declare class PaginationConfig {
|
|
1052
1060
|
pageSize?: number;
|
|
1053
1061
|
}
|
|
@@ -1105,6 +1113,8 @@ declare class TableConfig {
|
|
|
1105
1113
|
pagination?: PaginationConfig;
|
|
1106
1114
|
allowUserKeepOpen?: boolean;
|
|
1107
1115
|
keepOpenBehavior?: 'reset' | 'edit';
|
|
1116
|
+
inlineEdit?: boolean | InlineEditConfig;
|
|
1117
|
+
createConfig?: CreateTabConfig;
|
|
1108
1118
|
}
|
|
1109
1119
|
declare class PageConfig {
|
|
1110
1120
|
title?: string;
|
|
@@ -1124,6 +1134,8 @@ declare class ApiResponse {
|
|
|
1124
1134
|
message: string;
|
|
1125
1135
|
data: any;
|
|
1126
1136
|
total?: number;
|
|
1137
|
+
reason?: string;
|
|
1138
|
+
rowVersion?: string;
|
|
1127
1139
|
}
|
|
1128
1140
|
declare class Constants {
|
|
1129
1141
|
static readonly AUTH_USER = "a";
|
|
@@ -1135,6 +1147,7 @@ declare class Constants {
|
|
|
1135
1147
|
static readonly AUTH_REFRESH_TOKEN = "g";
|
|
1136
1148
|
static readonly AUTH_REFRESH_TOKEN_EXPIRE = "h";
|
|
1137
1149
|
static readonly AUTH_REMEMBER_ME = "r";
|
|
1150
|
+
static readonly LAST_ROUTE = "lr";
|
|
1138
1151
|
}
|
|
1139
1152
|
declare class ListDialogConfig {
|
|
1140
1153
|
name: string;
|
|
@@ -1183,6 +1196,7 @@ declare class AppConfig {
|
|
|
1183
1196
|
navColor: string;
|
|
1184
1197
|
navImage: string;
|
|
1185
1198
|
keepSignedIn: boolean;
|
|
1199
|
+
resumeLastRoute: boolean;
|
|
1186
1200
|
setupConfig: SetupConfig;
|
|
1187
1201
|
}
|
|
1188
1202
|
interface SetupStepAction {
|
|
@@ -1298,6 +1312,8 @@ declare class OfflineService {
|
|
|
1298
1312
|
matchMutation(url: string): OfflineEntry | null;
|
|
1299
1313
|
suppressesUrl(absoluteUrl: string): boolean;
|
|
1300
1314
|
private resolveConfig;
|
|
1315
|
+
pendingCount(): Promise<number>;
|
|
1316
|
+
clearCacheKeepOutbox(): Promise<void>;
|
|
1301
1317
|
deleteLocalData(): Promise<void>;
|
|
1302
1318
|
private ensureOpen;
|
|
1303
1319
|
putRead(url: string, entity: string, data: any, maxRows: number): Promise<any>;
|
|
@@ -1318,6 +1334,7 @@ declare class OfflineService {
|
|
|
1318
1334
|
private startRecoveryPolling;
|
|
1319
1335
|
private stopRecoveryPolling;
|
|
1320
1336
|
private startSync;
|
|
1337
|
+
resumeQueue(): Promise<void>;
|
|
1321
1338
|
drain(): Promise<void>;
|
|
1322
1339
|
private drainLoop;
|
|
1323
1340
|
private sendOp;
|
|
@@ -1398,6 +1415,7 @@ declare class DataServiceLib {
|
|
|
1398
1415
|
capAggregates: CapItem;
|
|
1399
1416
|
capReports: CapItem;
|
|
1400
1417
|
capBudgets: CapItem;
|
|
1418
|
+
capBudgetVsActual: CapItem;
|
|
1401
1419
|
capAging: CapItem;
|
|
1402
1420
|
capTaxRates: CapItem;
|
|
1403
1421
|
capStandingOrders: CapItem;
|
|
@@ -1470,11 +1488,13 @@ declare class DataServiceLib {
|
|
|
1470
1488
|
customerCreateButton: Button;
|
|
1471
1489
|
customerEditButton: Button;
|
|
1472
1490
|
customerDetailsConfig: DetailsDialogConfig;
|
|
1491
|
+
customerCreateWithContactsButton: Button;
|
|
1473
1492
|
customersTableConfig: TableConfig;
|
|
1474
1493
|
supplierFormConfig: FormConfig;
|
|
1475
1494
|
supplierCreateButton: Button;
|
|
1476
1495
|
supplierEditButton: Button;
|
|
1477
1496
|
supplierDetailsConfig: DetailsDialogConfig;
|
|
1497
|
+
supplierCreateWithContactsButton: Button;
|
|
1478
1498
|
suppliersTableConfig: TableConfig;
|
|
1479
1499
|
gptCachesFormConfig: FormConfig;
|
|
1480
1500
|
gptCachesTableConfig: TableConfig;
|
|
@@ -1613,6 +1633,7 @@ declare class AccountingService {
|
|
|
1613
1633
|
invoiceRecordPaymentButton: Button;
|
|
1614
1634
|
invoiceDiscardButton: Button;
|
|
1615
1635
|
invoiceReturnButton: Button;
|
|
1636
|
+
invoiceWriteOffButton: Button;
|
|
1616
1637
|
invoiceSubmitButton: Button;
|
|
1617
1638
|
invoiceEditButton: Button;
|
|
1618
1639
|
invoiceDownloadButton: Button;
|
|
@@ -2096,6 +2117,25 @@ declare class SetupService {
|
|
|
2096
2117
|
static ɵprov: i0.ɵɵInjectableDeclaration<SetupService>;
|
|
2097
2118
|
}
|
|
2098
2119
|
|
|
2120
|
+
declare class LastRouteService {
|
|
2121
|
+
private router;
|
|
2122
|
+
private storage;
|
|
2123
|
+
private dataService;
|
|
2124
|
+
private started;
|
|
2125
|
+
private excluded;
|
|
2126
|
+
constructor(router: Router, storage: StorageService, dataService: DataServiceLib);
|
|
2127
|
+
get enabled(): boolean;
|
|
2128
|
+
private user;
|
|
2129
|
+
start(): void;
|
|
2130
|
+
resolve(): Promise<string | null>;
|
|
2131
|
+
clear(): Promise<void>;
|
|
2132
|
+
private save;
|
|
2133
|
+
private normalize;
|
|
2134
|
+
private isResumable;
|
|
2135
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LastRouteService, never>;
|
|
2136
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LastRouteService>;
|
|
2137
|
+
}
|
|
2138
|
+
|
|
2099
2139
|
declare class SetupGuideComponent implements OnInit {
|
|
2100
2140
|
dataService: DataServiceLib;
|
|
2101
2141
|
setupService: SetupService;
|
|
@@ -2822,7 +2862,9 @@ declare class NavMenuComponent {
|
|
|
2822
2862
|
private dialog;
|
|
2823
2863
|
subscriptionService: SubscriptionService;
|
|
2824
2864
|
setupService: SetupService;
|
|
2825
|
-
|
|
2865
|
+
private lastRouteService;
|
|
2866
|
+
private offlineService;
|
|
2867
|
+
constructor(router: Router, authService: AuthService, storageService: StorageService, notificationsService: NotificationsService, breakpointObserver: BreakpointObserver, dataService: DataServiceLib, dialog: MatDialog, subscriptionService: SubscriptionService, setupService: SetupService, lastRouteService: LastRouteService, offlineService: OfflineService);
|
|
2826
2868
|
ngOnInit(): void;
|
|
2827
2869
|
notificationCount$: any;
|
|
2828
2870
|
setupCount$: Observable<number>;
|
|
@@ -2908,6 +2950,8 @@ declare class TableComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
2908
2950
|
data: any;
|
|
2909
2951
|
tileData: any;
|
|
2910
2952
|
config: TableConfig;
|
|
2953
|
+
localMode: boolean;
|
|
2954
|
+
parentDetails: any;
|
|
2911
2955
|
reload: Subject<boolean>;
|
|
2912
2956
|
activeTab: boolean;
|
|
2913
2957
|
inTab: boolean;
|
|
@@ -2939,6 +2983,16 @@ declare class TableComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
2939
2983
|
private pagedUrlBase;
|
|
2940
2984
|
private pageFetchInFlight;
|
|
2941
2985
|
private initializeComponent;
|
|
2986
|
+
get isLocal(): boolean;
|
|
2987
|
+
private get localRows();
|
|
2988
|
+
private refreshLocalData;
|
|
2989
|
+
editingRow: any;
|
|
2990
|
+
editingModel: any;
|
|
2991
|
+
isRowEditing(row: any): boolean;
|
|
2992
|
+
getInlineField(column: Column): Field | null;
|
|
2993
|
+
startInlineEdit(row: any): void;
|
|
2994
|
+
cancelInlineEdit(): void;
|
|
2995
|
+
submitInlineEdit(): void;
|
|
2942
2996
|
private updateTableConfiguration;
|
|
2943
2997
|
private setupDataLoading;
|
|
2944
2998
|
loadData(action: Action, data: any): void;
|
|
@@ -2999,7 +3053,7 @@ declare class TableComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
2999
3053
|
private rowIdKey;
|
|
3000
3054
|
trackByRow: (index: number, row: any) => any;
|
|
3001
3055
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
|
|
3002
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "spa-table", never, { "data": { "alias": "data"; "required": false; }; "tileData": { "alias": "tileData"; "required": false; }; "config": { "alias": "config"; "required": false; }; "reload": { "alias": "reload"; "required": false; }; "activeTab": { "alias": "activeTab"; "required": false; }; "inTab": { "alias": "inTab"; "required": false; }; "nestingLevel": { "alias": "nestingLevel"; "required": false; }; }, { "dataLoad": "dataLoad"; "actionSuccess": "actionSuccess"; "refreshClick": "refreshClick"; "searchClick": "searchClick"; "createClick": "createClick"; "actionClick": "actionClick"; "inputChange": "inputChange"; "actionResponse": "actionResponse"; }, never, never, false, never>;
|
|
3056
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "spa-table", never, { "data": { "alias": "data"; "required": false; }; "tileData": { "alias": "tileData"; "required": false; }; "config": { "alias": "config"; "required": false; }; "localMode": { "alias": "localMode"; "required": false; }; "parentDetails": { "alias": "parentDetails"; "required": false; }; "reload": { "alias": "reload"; "required": false; }; "activeTab": { "alias": "activeTab"; "required": false; }; "inTab": { "alias": "inTab"; "required": false; }; "nestingLevel": { "alias": "nestingLevel"; "required": false; }; }, { "dataLoad": "dataLoad"; "actionSuccess": "actionSuccess"; "refreshClick": "refreshClick"; "searchClick": "searchClick"; "createClick": "createClick"; "actionClick": "actionClick"; "inputChange": "inputChange"; "actionResponse": "actionResponse"; }, never, never, false, never>;
|
|
3003
3057
|
}
|
|
3004
3058
|
|
|
3005
3059
|
interface ExtraButtonVM {
|
|
@@ -3392,6 +3446,16 @@ declare class TableActionComponent implements OnChanges {
|
|
|
3392
3446
|
static ɵcmp: i0.ɵɵComponentDeclaration<TableActionComponent, "app-table-action", never, { "displayedButtons": { "alias": "displayedButtons"; "required": false; }; "config": { "alias": "config"; "required": false; }; "row": { "alias": "row"; "required": false; }; "smallScreen": { "alias": "smallScreen"; "required": false; }; }, { "actionClick": "actionClick"; }, never, never, false, never>;
|
|
3393
3447
|
}
|
|
3394
3448
|
|
|
3449
|
+
declare class InlineCellComponent {
|
|
3450
|
+
field: Field;
|
|
3451
|
+
data: any;
|
|
3452
|
+
valueChange: EventEmitter<any>;
|
|
3453
|
+
get display(): string;
|
|
3454
|
+
cellChanged(): void;
|
|
3455
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InlineCellComponent, never>;
|
|
3456
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InlineCellComponent, "app-inline-cell", never, { "field": { "alias": "field"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
3457
|
+
}
|
|
3458
|
+
|
|
3395
3459
|
declare class AlertComponent implements OnInit {
|
|
3396
3460
|
constructor();
|
|
3397
3461
|
ngOnInit(): void;
|
|
@@ -3757,6 +3821,7 @@ declare class TabsComponent implements OnInit, OnChanges {
|
|
|
3757
3821
|
tableConfigs: TableConfig[];
|
|
3758
3822
|
reload: Subject<boolean>;
|
|
3759
3823
|
parentDetails: any;
|
|
3824
|
+
localMode: boolean;
|
|
3760
3825
|
nestingLevel: number;
|
|
3761
3826
|
formRefresh: EventEmitter<void>;
|
|
3762
3827
|
actionSuccess: EventEmitter<void>;
|
|
@@ -3782,7 +3847,7 @@ declare class TabsComponent implements OnInit, OnChanges {
|
|
|
3782
3847
|
updateVisibleTabs(): void;
|
|
3783
3848
|
getReloadSubject(index: number): Subject<boolean>;
|
|
3784
3849
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabsComponent, never>;
|
|
3785
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "spa-tabs", never, { "tableConfigs": { "alias": "tableConfigs"; "required": false; }; "reload": { "alias": "reload"; "required": false; }; "parentDetails": { "alias": "parentDetails"; "required": false; }; "nestingLevel": { "alias": "nestingLevel"; "required": false; }; }, { "formRefresh": "formRefresh"; "actionSuccess": "actionSuccess"; }, never, never, false, never>;
|
|
3850
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "spa-tabs", never, { "tableConfigs": { "alias": "tableConfigs"; "required": false; }; "reload": { "alias": "reload"; "required": false; }; "parentDetails": { "alias": "parentDetails"; "required": false; }; "localMode": { "alias": "localMode"; "required": false; }; "nestingLevel": { "alias": "nestingLevel"; "required": false; }; }, { "formRefresh": "formRefresh"; "actionSuccess": "actionSuccess"; }, never, never, false, never>;
|
|
3786
3851
|
}
|
|
3787
3852
|
|
|
3788
3853
|
declare class StatusesComponent {
|
|
@@ -4088,6 +4153,7 @@ declare const ALSQUARE_SVG_WHITE = "<svg viewBox=\"0 0 80 80\" fill=\"none\" xml
|
|
|
4088
4153
|
declare class SpaLandingComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
4089
4154
|
private router;
|
|
4090
4155
|
private authService;
|
|
4156
|
+
private lastRouteService;
|
|
4091
4157
|
private el;
|
|
4092
4158
|
private sanitizer;
|
|
4093
4159
|
config: LandingConfig;
|
|
@@ -4095,7 +4161,8 @@ declare class SpaLandingComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
4095
4161
|
navScrolled: boolean;
|
|
4096
4162
|
currentYear: number;
|
|
4097
4163
|
private observer;
|
|
4098
|
-
constructor(router: Router, authService: AuthService,
|
|
4164
|
+
constructor(router: Router, authService: AuthService, lastRouteService: LastRouteService, // Added: resumeLastRoute
|
|
4165
|
+
el: ElementRef, sanitizer: DomSanitizer);
|
|
4099
4166
|
get safeNavBrandSvg(): SafeHtml | null;
|
|
4100
4167
|
get safeHeroWatermarkSvg(): SafeHtml | null;
|
|
4101
4168
|
get safeFooterBrandSvg(): SafeHtml | null;
|
|
@@ -4287,7 +4354,7 @@ declare class CurrencyInputModule {
|
|
|
4287
4354
|
|
|
4288
4355
|
declare class TinSpaModule {
|
|
4289
4356
|
static ɵfac: i0.ɵɵFactoryDeclaration<TinSpaModule, never>;
|
|
4290
|
-
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 ImportDialogComponent], [typeof SpaMatModule, typeof
|
|
4357
|
+
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 InlineCellComponent, 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 ImportDialogComponent], [typeof SpaMatModule, typeof i66.HttpClientModule, typeof CurrencyInputModule, typeof i68.AngularEditorModule, typeof i69.BaseChartDirective, typeof i70.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 ImportDialogComponent, 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]>;
|
|
4291
4358
|
static ɵinj: i0.ɵɵInjectorDeclaration<TinSpaModule>;
|
|
4292
4359
|
}
|
|
4293
4360
|
|
|
@@ -4305,7 +4372,9 @@ declare class LoginComponent implements OnInit {
|
|
|
4305
4372
|
private msalService;
|
|
4306
4373
|
private dialog;
|
|
4307
4374
|
private setupService;
|
|
4308
|
-
|
|
4375
|
+
private lastRouteService;
|
|
4376
|
+
constructor(httpService: HttpService, storageService: StorageService, router: Router, messageService: MessageService, dataService: DataServiceLib, authService: AuthService, logService: LogService, route: ActivatedRoute, notificationsService: NotificationsService, signalRService: SignalRService, msalService: MsalService, dialog: MatDialog, setupService: SetupService, lastRouteService: LastRouteService);
|
|
4377
|
+
private resumeTarget;
|
|
4309
4378
|
ngOnInit(): void;
|
|
4310
4379
|
loginWithMS(): void;
|
|
4311
4380
|
autoLogin: boolean;
|
|
@@ -4646,6 +4715,8 @@ declare class AgingComponent implements OnInit {
|
|
|
4646
4715
|
ngOnInit(): void;
|
|
4647
4716
|
summaryData: any;
|
|
4648
4717
|
loadSummaryData(): void;
|
|
4718
|
+
postProvision(): void;
|
|
4719
|
+
private messageService;
|
|
4649
4720
|
agingTableConfigs: TableConfig[];
|
|
4650
4721
|
tileConfig: TileConfig;
|
|
4651
4722
|
constructor(dataServiceLib: DataServiceLib);
|
|
@@ -4768,9 +4839,13 @@ declare class ReportsComponent implements OnInit {
|
|
|
4768
4839
|
accountingService: AccountingService;
|
|
4769
4840
|
private httpService;
|
|
4770
4841
|
private http;
|
|
4842
|
+
from: string;
|
|
4843
|
+
to: string;
|
|
4771
4844
|
constructor(dataServiceLib: DataServiceLib, accountingService: AccountingService);
|
|
4772
4845
|
ngOnInit(): void;
|
|
4773
4846
|
reportTabConfigs: TableConfig[];
|
|
4847
|
+
private withRange;
|
|
4848
|
+
buildTabs(): void;
|
|
4774
4849
|
export(report: string): void;
|
|
4775
4850
|
static ɵfac: i0.ɵɵFactoryDeclaration<ReportsComponent, never>;
|
|
4776
4851
|
static ɵcmp: i0.ɵɵComponentDeclaration<ReportsComponent, "spa-reports", never, {}, {}, never, never, false, never>;
|
|
@@ -4828,6 +4903,7 @@ declare class VatReturnComponent implements OnInit {
|
|
|
4828
4903
|
from: string;
|
|
4829
4904
|
to: string;
|
|
4830
4905
|
data: any;
|
|
4906
|
+
whtData: any[];
|
|
4831
4907
|
ngOnInit(): void;
|
|
4832
4908
|
load(): void;
|
|
4833
4909
|
export(): void;
|
|
@@ -5672,5 +5748,5 @@ declare class SpaHomeModule {
|
|
|
5672
5748
|
static ɵinj: i0.ɵɵInjectorDeclaration<SpaHomeModule>;
|
|
5673
5749
|
}
|
|
5674
5750
|
|
|
5675
|
-
export { ALSQUARE_SVG_DARK, ALSQUARE_SVG_WHITE, Account, AccountsComponent as AccountingAccountsComponent, AggregatesComponent as AccountingAggregatesComponent, AgingComponent as AccountingAgingComponent, CreditNotesComponent as AccountingCreditNotesComponent, CurrenciesComponent as AccountingCurrenciesComponent, AccountingDashboardComponent, InvoicesComponent as AccountingInvoicesComponent, AccountingModule, ReportsComponent as AccountingReportsComponent, AccountingService, StatementComponent as AccountingStatementComponent, TransactionTypesComponent as AccountingTransactionTypesComponent, TransactionsComponent as AccountingTransactionsComponent, VatReturnComponent as AccountingVatReturnComponent, Action, ActivityComponent, AdminModule, AgentComponent, AgentService, AlertComponent, AlertConfig, AlertMessage, AnalyticsService, ApiResponse, AppConfig, AppModelsComponent, AssetStatus, AssetsService, AttachComponent, AuthService, BankReconciliationComponent, BillingPageComponent, BrandsComponent, CacheConfig, CapItem, CapsulesComponent, CategoriesComponent, ChangePasswordComponent, ChangeUserPassword, ChartConfig, ChartsComponent, CheckComponent, ChipsComponent, Constants, Core, CreateAccountComponent, CreditNoteStatus, CustomersComponent, DataServiceLib, DateComponent, DatetimeComponent, DepartmentsComponent, DetailsDialog, DetailsDialogConfig, DetailsDialogProcessor, DetailsSource, DialogService, EditorComponent, EmailComponent, EmployeesComponent, ExportService, FeatureDirective, FilterComponent, FiscalPeriodStatus, FiscalPeriodsComponent, FormComponent, FormConfig, GeneralModule, GeneralService, GradesComponent, GroupsComponent, HRModule, HtmlComponent, HttpService, ImportDialogComponent, IndexModule, InventoryDashboardComponent, InventoryModule, InventoryService, InvitationsTableComponent, InvoiceDashboardComponent, InvoiceItemType, InvoiceStatus, JournalEntryDialogComponent, 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, PaginationConfig, PayrollDashboardComponent, PayrollModule, PlansComponent, PositionsComponent, PreferencesComponent, PrivacyDialogComponent, Profile, ProfileComponent, PurchaseStatus, PurchasingDashboardComponent, PurchasingModule, PushNotificationService, QuoteStatus, QuotesComponent, ReceiptDialogComponent, ReceiptStatus, ReceiptsComponent, ReconcileDialogComponent, RecoverAccountComponent, Register, RevenueScheduleDialogComponent, RevenueSchedulesComponent, Role, RoleAccess, RolesComponent, SalesDashboardComponent, SalesModule, SearchComponent, SearchConfig, SecurityConfig, SelectBitwiseComponent, SelectComponent, SelectLiteComponent, SelectMultiComponent, SettingsComponent, SetupGuideComponent, SetupService, SignupComponent, SignupData, SpaAdminModule, SpaHomeModule, SpaIndexModule, SpaLandingComponent, SpaMatModule, SpaUserModule, StatementImportDialogComponent, 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 };
|
|
5676
|
-
export type { AgentMessage, AutoRefreshConfig, BitwiseOption, Button, CacheRule, CapsuleConfig, CardConfig, ChartItem, ChildField, CloseOptions, Color, Column, Confirm, ConversationSummary, Field, GroupConfig, GroupData, Icon, ImportConfig, LandingBrandOverride, LandingColors, LandingConfig, LandingFeature, LandingFooterColumn, LandingFooterLink, LandingMetric, LandingModuleGroup, LandingModuleTile, LandingNavLink, LandingPricingPlan, LandingSecurityItem, LandingStep, LandingTestimonial, OfflineConfig, OfflineEntry, OfflineOpStatus, OutboxOp, RefreshResult, SearchField, SetupConfig, SetupStatus, SetupStep, SetupStepAction, SpaChartType, StatusConfig, StatusItem, StatusState, TableViewType, Tile, TileChartConfig, TileChartType, TileStyle, TinSpaMsalConfig, TinSpaRuntimeConfig, VisibleTab };
|
|
5751
|
+
export { ALSQUARE_SVG_DARK, ALSQUARE_SVG_WHITE, Account, AccountsComponent as AccountingAccountsComponent, AggregatesComponent as AccountingAggregatesComponent, AgingComponent as AccountingAgingComponent, CreditNotesComponent as AccountingCreditNotesComponent, CurrenciesComponent as AccountingCurrenciesComponent, AccountingDashboardComponent, InvoicesComponent as AccountingInvoicesComponent, AccountingModule, ReportsComponent as AccountingReportsComponent, AccountingService, StatementComponent as AccountingStatementComponent, TransactionTypesComponent as AccountingTransactionTypesComponent, TransactionsComponent as AccountingTransactionsComponent, VatReturnComponent as AccountingVatReturnComponent, Action, ActivityComponent, AdminModule, AgentComponent, AgentService, AlertComponent, AlertConfig, AlertMessage, AnalyticsService, ApiResponse, AppConfig, AppModelsComponent, AssetStatus, AssetsService, AttachComponent, AuthService, BankReconciliationComponent, BillingPageComponent, BrandsComponent, CacheConfig, CapItem, CapsulesComponent, CategoriesComponent, ChangePasswordComponent, ChangeUserPassword, ChartConfig, ChartsComponent, CheckComponent, ChipsComponent, Constants, Core, CreateAccountComponent, CreditNoteStatus, CustomersComponent, DataServiceLib, DateComponent, DatetimeComponent, DepartmentsComponent, DetailsDialog, DetailsDialogConfig, DetailsDialogProcessor, DetailsSource, DialogService, EditorComponent, EmailComponent, EmployeesComponent, ExportService, FeatureDirective, FilterComponent, FiscalPeriodStatus, FiscalPeriodsComponent, FormComponent, FormConfig, GeneralModule, GeneralService, GradesComponent, GroupsComponent, HRModule, HtmlComponent, HttpService, ImportDialogComponent, IndexModule, InventoryDashboardComponent, InventoryModule, InventoryService, InvitationsTableComponent, InvoiceDashboardComponent, InvoiceItemType, InvoiceStatus, JournalEntryDialogComponent, LabelComponent, LastRouteService, 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, PaginationConfig, PayrollDashboardComponent, PayrollModule, PlansComponent, PositionsComponent, PreferencesComponent, PrivacyDialogComponent, Profile, ProfileComponent, PurchaseStatus, PurchasingDashboardComponent, PurchasingModule, PushNotificationService, QuoteStatus, QuotesComponent, ReceiptDialogComponent, ReceiptStatus, ReceiptsComponent, ReconcileDialogComponent, RecoverAccountComponent, Register, RevenueScheduleDialogComponent, RevenueSchedulesComponent, Role, RoleAccess, RolesComponent, SalesDashboardComponent, SalesModule, SearchComponent, SearchConfig, SecurityConfig, SelectBitwiseComponent, SelectComponent, SelectLiteComponent, SelectMultiComponent, SettingsComponent, SetupGuideComponent, SetupService, SignupComponent, SignupData, SpaAdminModule, SpaHomeModule, SpaIndexModule, SpaLandingComponent, SpaMatModule, SpaUserModule, StatementImportDialogComponent, 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 };
|
|
5752
|
+
export type { AgentMessage, AutoRefreshConfig, BitwiseOption, Button, CacheRule, CapsuleConfig, CardConfig, ChartItem, ChildField, CloseOptions, Color, Column, Confirm, ConversationSummary, CreateTabConfig, Field, GroupConfig, GroupData, Icon, ImportConfig, InlineEditConfig, LandingBrandOverride, LandingColors, LandingConfig, LandingFeature, LandingFooterColumn, LandingFooterLink, LandingMetric, LandingModuleGroup, LandingModuleTile, LandingNavLink, LandingPricingPlan, LandingSecurityItem, LandingStep, LandingTestimonial, OfflineConfig, OfflineEntry, OfflineOpStatus, OutboxOp, RefreshResult, SearchField, SetupConfig, SetupStatus, SetupStep, SetupStepAction, SpaChartType, StatusConfig, StatusItem, StatusState, TableViewType, Tile, TileChartConfig, TileChartType, TileStyle, TinSpaMsalConfig, TinSpaRuntimeConfig, VisibleTab };
|
package/package.json
CHANGED
package/src/tin-styles.css
CHANGED
|
@@ -647,6 +647,24 @@ th.mat-mdc-header-cell {
|
|
|
647
647
|
align-items: center;
|
|
648
648
|
}
|
|
649
649
|
|
|
650
|
+
/* Changed: Material gives every dialog-action button after the first a margin-left of 8px. On a wrapped row that
|
|
651
|
+
margin lands on the button that starts the new line, indenting it 8px past Submit. The gap above already spaces
|
|
652
|
+
them, so zero the margin and every row starts flush on the left. */
|
|
653
|
+
.mat-mdc-dialog-actions .mat-button-base + .mat-button-base,
|
|
654
|
+
.mat-mdc-dialog-actions .mat-mdc-button-base + .mat-mdc-button-base,
|
|
655
|
+
.mat-dialog-actions .mat-button-base + .mat-button-base {
|
|
656
|
+
margin-left: 0 !important;
|
|
657
|
+
margin-right: 0 !important;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
/* Changed: Material's invisible 48px tap area (.mat-mdc-button-touch-target) is wider than the 40px/32px icon
|
|
661
|
+
buttons this app renders, so a button sitting flush against the right edge of a scroll container (e.g. a table's
|
|
662
|
+
refresh icon inside a tab) pushed 4px of nothing past the edge and summoned a phantom horizontal scrollbar.
|
|
663
|
+
Capping it at the button's own width keeps the tap area but lets scrollbars appear only for real content. */
|
|
664
|
+
.mat-mdc-button-touch-target {
|
|
665
|
+
max-width: 100%;
|
|
666
|
+
}
|
|
667
|
+
|
|
650
668
|
/* Override for spa-groups chip icons - maintain larger size */
|
|
651
669
|
spa-groups .chip-icon,
|
|
652
670
|
spa-groups .chip-additional-icon {
|
|
@@ -663,3 +681,55 @@ spa-groups mat-chip .mat-icon {
|
|
|
663
681
|
height: inherit !important;
|
|
664
682
|
|
|
665
683
|
}
|
|
684
|
+
|
|
685
|
+
/* Read-only field styling: make readonly inputs look like Material disabled controls.
|
|
686
|
+
Applied via [class.spa-readonly] on mat-form-field in text/number/money/text-mask/
|
|
687
|
+
text-area/text-single/text-multi/email/date/datetime components, matching the
|
|
688
|
+
disabled look mat-select and mat-checkbox already get. Uses MDC disabled tokens. */
|
|
689
|
+
.mat-mdc-form-field.spa-readonly .mdc-text-field--filled {
|
|
690
|
+
background-color: rgba(0, 0, 0, 0.06); /* slightly darker than MDC's 0.04 so the disabled state is unmistakable */
|
|
691
|
+
}
|
|
692
|
+
.mat-mdc-form-field.spa-readonly .mdc-text-field--outlined .mdc-notched-outline__leading,
|
|
693
|
+
.mat-mdc-form-field.spa-readonly .mdc-text-field--outlined .mdc-notched-outline__notch,
|
|
694
|
+
.mat-mdc-form-field.spa-readonly .mdc-text-field--outlined .mdc-notched-outline__trailing {
|
|
695
|
+
border-color: rgba(0, 0, 0, 0.12) !important; /* faded outline like a disabled outlined field */
|
|
696
|
+
}
|
|
697
|
+
.mat-mdc-form-field.spa-readonly .mat-mdc-input-element,
|
|
698
|
+
.mat-mdc-form-field.spa-readonly textarea.mat-mdc-input-element {
|
|
699
|
+
color: rgba(0, 0, 0, 0.55) !important; /* dimmed value text — still legible but clearly not editable */
|
|
700
|
+
cursor: default;
|
|
701
|
+
}
|
|
702
|
+
.mat-mdc-form-field.spa-readonly .mat-mdc-floating-label,
|
|
703
|
+
.mat-mdc-form-field.spa-readonly .mdc-floating-label {
|
|
704
|
+
color: rgba(0, 0, 0, 0.38) !important; /* MDC disabled label color */
|
|
705
|
+
}
|
|
706
|
+
.mat-mdc-form-field.spa-readonly .mat-mdc-form-field-focus-overlay {
|
|
707
|
+
display: none; /* no hover/focus highlight — the field should not invite interaction */
|
|
708
|
+
}
|
|
709
|
+
.mat-mdc-form-field.spa-readonly .mdc-line-ripple::before,
|
|
710
|
+
.mat-mdc-form-field.spa-readonly .mdc-line-ripple::after {
|
|
711
|
+
border-bottom-style: dotted; /* dotted underline mirrors MDC's disabled filled-field underline */
|
|
712
|
+
border-bottom-color: rgba(0, 0, 0, 0.38) !important;
|
|
713
|
+
}
|
|
714
|
+
/* Dim prefix/suffix content (currency symbols, etc.) but keep info/copy icons usable */
|
|
715
|
+
.mat-mdc-form-field.spa-readonly .mat-mdc-form-field-text-prefix,
|
|
716
|
+
.mat-mdc-form-field.spa-readonly [matPrefix] {
|
|
717
|
+
color: rgba(0, 0, 0, 0.38);
|
|
718
|
+
}
|
|
719
|
+
/* Chip inputs (text-multi/email): gray out chips in readonly mode */
|
|
720
|
+
.mat-mdc-form-field.spa-readonly .mat-mdc-chip {
|
|
721
|
+
opacity: 0.65;
|
|
722
|
+
}
|
|
723
|
+
/* Rich-text editor: gray out the editing surface when readonly */
|
|
724
|
+
.spa-editor-wrap.spa-readonly .angular-editor-textarea {
|
|
725
|
+
background-color: rgba(0, 0, 0, 0.06) !important;
|
|
726
|
+
color: rgba(0, 0, 0, 0.55) !important;
|
|
727
|
+
cursor: default;
|
|
728
|
+
}
|
|
729
|
+
.spa-editor-wrap.spa-readonly .angular-editor-toolbar {
|
|
730
|
+
opacity: 0.5;
|
|
731
|
+
pointer-events: none; /* toolbar buttons are meaningless when the surface is not editable */
|
|
732
|
+
}
|
|
733
|
+
.spa-editor-wrap.spa-readonly .spa-editor-label label {
|
|
734
|
+
color: rgba(0, 0, 0, 0.38);
|
|
735
|
+
}
|