@rolatech/angular-common 20.2.9-beta.7 → 20.3.0-beta.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.
|
@@ -7,13 +7,14 @@ import moment from 'moment';
|
|
|
7
7
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
8
8
|
import { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';
|
|
9
9
|
import { MAT_ICON_DEFAULT_OPTIONS } from '@angular/material/icon';
|
|
10
|
+
import { provideHttpClient, withInterceptors, HttpParams } from '@angular/common/http';
|
|
10
11
|
|
|
11
12
|
class AngularCommonModule {
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
13
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.
|
|
14
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: AngularCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: AngularCommonModule, imports: [CommonModule, RouterLink, RouterLinkActive, RouterOutlet, FormsModule, ReactiveFormsModule], exports: [CommonModule, RouterLink, RouterLinkActive, RouterOutlet, FormsModule, ReactiveFormsModule] });
|
|
15
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: AngularCommonModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, CommonModule, FormsModule, ReactiveFormsModule] });
|
|
15
16
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: AngularCommonModule, decorators: [{
|
|
17
18
|
type: NgModule,
|
|
18
19
|
args: [{
|
|
19
20
|
imports: [CommonModule, RouterLink, RouterLinkActive, RouterOutlet, FormsModule, ReactiveFormsModule],
|
|
@@ -30,10 +31,10 @@ class PrettyjsonPipe {
|
|
|
30
31
|
return '{}';
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
34
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PrettyjsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
35
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: PrettyjsonPipe, isStandalone: true, name: "prettyjson" });
|
|
35
36
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PrettyjsonPipe, decorators: [{
|
|
37
38
|
type: Pipe,
|
|
38
39
|
args: [{
|
|
39
40
|
name: 'prettyjson',
|
|
@@ -47,10 +48,10 @@ class TimePipe {
|
|
|
47
48
|
format(date) {
|
|
48
49
|
return moment(date).fromNow();
|
|
49
50
|
}
|
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
51
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
51
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
52
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: TimePipe, isStandalone: true, name: "time", pure: false });
|
|
52
53
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TimePipe, decorators: [{
|
|
54
55
|
type: Pipe,
|
|
55
56
|
args: [{ name: 'time', pure: false }]
|
|
56
57
|
}] });
|
|
@@ -77,10 +78,10 @@ class DurationPipe {
|
|
|
77
78
|
return num < 10 ? `0${num}` : `${num}`;
|
|
78
79
|
// return num !== undefined && num !== null && num >= 0 && num < 10 ? `0${num}` : `${num}`;
|
|
79
80
|
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
81
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: DurationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
82
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: DurationPipe, isStandalone: true, name: "duration" });
|
|
82
83
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: DurationPipe, decorators: [{
|
|
84
85
|
type: Pipe,
|
|
85
86
|
args: [{
|
|
86
87
|
name: 'duration',
|
|
@@ -99,10 +100,10 @@ class OptionsFormatPipe {
|
|
|
99
100
|
});
|
|
100
101
|
return result;
|
|
101
102
|
}
|
|
102
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
103
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
103
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OptionsFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
104
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: OptionsFormatPipe, isStandalone: true, name: "options" });
|
|
104
105
|
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OptionsFormatPipe, decorators: [{
|
|
106
107
|
type: Pipe,
|
|
107
108
|
args: [{
|
|
108
109
|
name: 'options',
|
|
@@ -116,10 +117,10 @@ class AddressFormatPipe {
|
|
|
116
117
|
}
|
|
117
118
|
return 'Unset';
|
|
118
119
|
}
|
|
119
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
120
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
120
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: AddressFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
121
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: AddressFormatPipe, isStandalone: true, name: "address" });
|
|
121
122
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: AddressFormatPipe, decorators: [{
|
|
123
124
|
type: Pipe,
|
|
124
125
|
args: [{
|
|
125
126
|
name: 'address',
|
|
@@ -130,10 +131,10 @@ class FixedPipe {
|
|
|
130
131
|
transform(value, ...args) {
|
|
131
132
|
return value ? (value / 100).toFixed(2) : '0.00';
|
|
132
133
|
}
|
|
133
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
134
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
134
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: FixedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
135
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: FixedPipe, isStandalone: true, name: "fixed" });
|
|
135
136
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: FixedPipe, decorators: [{
|
|
137
138
|
type: Pipe,
|
|
138
139
|
args: [{
|
|
139
140
|
name: 'fixed',
|
|
@@ -152,10 +153,10 @@ class ShippingAddressPipe {
|
|
|
152
153
|
}
|
|
153
154
|
return '无';
|
|
154
155
|
}
|
|
155
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
156
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
156
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ShippingAddressPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
157
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: ShippingAddressPipe, isStandalone: true, name: "shippingAddress" });
|
|
157
158
|
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ShippingAddressPipe, decorators: [{
|
|
159
160
|
type: Pipe,
|
|
160
161
|
args: [{
|
|
161
162
|
name: 'shippingAddress',
|
|
@@ -174,10 +175,10 @@ class PricePipe {
|
|
|
174
175
|
maximumFractionDigits: 2,
|
|
175
176
|
}).format(amount);
|
|
176
177
|
}
|
|
177
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
178
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
178
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PricePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
179
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: PricePipe, isStandalone: true, name: "price" });
|
|
179
180
|
}
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PricePipe, decorators: [{
|
|
181
182
|
type: Pipe,
|
|
182
183
|
args: [{
|
|
183
184
|
name: 'price',
|
|
@@ -193,10 +194,10 @@ class SafeUrlPipe {
|
|
|
193
194
|
// If you want to allow in [href], [src], [poster], [srcdoc], etc.
|
|
194
195
|
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
|
|
195
196
|
}
|
|
196
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
197
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
197
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
198
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" });
|
|
198
199
|
}
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SafeUrlPipe, decorators: [{
|
|
200
201
|
type: Pipe,
|
|
201
202
|
args: [{
|
|
202
203
|
name: 'safeUrl',
|
|
@@ -236,10 +237,10 @@ class DecimalDirective {
|
|
|
236
237
|
event.preventDefault();
|
|
237
238
|
}
|
|
238
239
|
}
|
|
239
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
240
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
240
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: DecimalDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
241
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.1", type: DecimalDirective, isStandalone: true, selector: "[rolatechDecimal]", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 });
|
|
241
242
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: DecimalDirective, decorators: [{
|
|
243
244
|
type: Directive,
|
|
244
245
|
args: [{
|
|
245
246
|
selector: '[rolatechDecimal]',
|
|
@@ -291,6 +292,20 @@ const WINDOW = new InjectionToken('@rolatech/angular-common global Window object
|
|
|
291
292
|
},
|
|
292
293
|
});
|
|
293
294
|
|
|
295
|
+
const credentialsInterceptor = (req, next) => {
|
|
296
|
+
const config = inject(APP_CONFIG);
|
|
297
|
+
/**
|
|
298
|
+
* Only apply credentials to API requests
|
|
299
|
+
*/
|
|
300
|
+
if (!req.url.startsWith(config.baseUrl)) {
|
|
301
|
+
return next(req);
|
|
302
|
+
}
|
|
303
|
+
const request = req.clone({
|
|
304
|
+
withCredentials: true,
|
|
305
|
+
});
|
|
306
|
+
return next(request);
|
|
307
|
+
};
|
|
308
|
+
|
|
294
309
|
const NOTIFICATIONS_CONFIG = new InjectionToken('NOTIFICATIONS_CONFIG');
|
|
295
310
|
function provideAngularCommon(environment) {
|
|
296
311
|
const resolveConfig = () => {
|
|
@@ -323,14 +338,49 @@ function provideAngularCommon(environment) {
|
|
|
323
338
|
{ provide: APP_ID, useValue: 'serverApp' },
|
|
324
339
|
{ provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 2000 } },
|
|
325
340
|
{ provide: MAT_ICON_DEFAULT_OPTIONS, useValue: { fontSet: 'material-symbols-outlined' } },
|
|
341
|
+
/**
|
|
342
|
+
* Register HTTP client + interceptors
|
|
343
|
+
*/
|
|
344
|
+
provideHttpClient(withInterceptors([credentialsInterceptor])),
|
|
326
345
|
importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),
|
|
327
346
|
];
|
|
328
347
|
return makeEnvironmentProviders(providers);
|
|
329
348
|
}
|
|
330
349
|
|
|
350
|
+
function toApiRequestParams(options, extra) {
|
|
351
|
+
let params = new HttpParams();
|
|
352
|
+
const values = {
|
|
353
|
+
page: options?.page,
|
|
354
|
+
limit: options?.limit,
|
|
355
|
+
lang: options?.lang,
|
|
356
|
+
include: options?.include,
|
|
357
|
+
q: options?.q,
|
|
358
|
+
search: options?.search,
|
|
359
|
+
filter: options?.filter,
|
|
360
|
+
fields: options?.fields,
|
|
361
|
+
...(extra ?? {}),
|
|
362
|
+
};
|
|
363
|
+
for (const [key, value] of Object.entries(values)) {
|
|
364
|
+
if (value === null || value === undefined || value === '') {
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
if (Array.isArray(value)) {
|
|
368
|
+
for (const item of value) {
|
|
369
|
+
if (item === null || item === undefined || item === '') {
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
params = params.append(key, String(item));
|
|
373
|
+
}
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
params = params.set(key, String(value));
|
|
377
|
+
}
|
|
378
|
+
return params;
|
|
379
|
+
}
|
|
380
|
+
|
|
331
381
|
/**
|
|
332
382
|
* Generated bundle index. Do not edit.
|
|
333
383
|
*/
|
|
334
384
|
|
|
335
|
-
export { APP_CONFIG, AddressFormatPipe, AngularCommonModule, COMMON_DIRECTIVES, COMMON_PIPES, DecimalDirective, DurationPipe, FixedPipe, NOTIFICATIONS_CONFIG, OptionsFormatPipe, PrettyjsonPipe, PricePipe, REQUEST, RESPONSE, SafeUrlPipe, ShippingAddressPipe, TimePipe, UserStatus, UsernameMatcher, WINDOW, provideAngularCommon };
|
|
385
|
+
export { APP_CONFIG, AddressFormatPipe, AngularCommonModule, COMMON_DIRECTIVES, COMMON_PIPES, DecimalDirective, DurationPipe, FixedPipe, NOTIFICATIONS_CONFIG, OptionsFormatPipe, PrettyjsonPipe, PricePipe, REQUEST, RESPONSE, SafeUrlPipe, ShippingAddressPipe, TimePipe, UserStatus, UsernameMatcher, WINDOW, provideAngularCommon, toApiRequestParams };
|
|
336
386
|
//# sourceMappingURL=rolatech-angular-common.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rolatech-angular-common.mjs","sources":["../../../../packages/angular-common/src/lib/angular-common.module.ts","../../../../packages/angular-common/src/lib/pipes/prettyjson.pipe.ts","../../../../packages/angular-common/src/lib/pipes/time.pipe.ts","../../../../packages/angular-common/src/lib/pipes/duration.pipe.ts","../../../../packages/angular-common/src/lib/pipes/options.pipe.ts","../../../../packages/angular-common/src/lib/pipes/address.pipe.ts","../../../../packages/angular-common/src/lib/pipes/fixed.pipe.ts","../../../../packages/angular-common/src/lib/pipes/shipping-address.pipe.ts","../../../../packages/angular-common/src/lib/pipes/price.pipe.ts","../../../../packages/angular-common/src/lib/pipes/safe-url.pipe.ts","../../../../packages/angular-common/src/lib/pipes/index.ts","../../../../packages/angular-common/src/lib/directive/decimal.directive.ts","../../../../packages/angular-common/src/lib/directive/index.ts","../../../../packages/angular-common/src/lib/interfaces/auth.interface.ts","../../../../packages/angular-common/src/lib/router/username-matcher.ts","../../../../packages/angular-common/src/lib/tokens.ts","../../../../packages/angular-common/src/provider.ts","../../../../packages/angular-common/src/rolatech-angular-common.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, RouterLink, RouterLinkActive, RouterOutlet, FormsModule, ReactiveFormsModule],\n exports: [CommonModule, RouterLink, RouterLinkActive, RouterOutlet, FormsModule, ReactiveFormsModule],\n})\nexport class AngularCommonModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'prettyjson',\n})\nexport class PrettyjsonPipe implements PipeTransform {\n transform(value: any, ...args: any[]): any {\n if (value) {\n return JSON.stringify(value, null, 4).replace(/ /g, ' ').replace(/\\n/g, '<br/>');\n } else {\n return '{}';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n@Pipe({ name: 'time', pure: false })\nexport class TimePipe implements PipeTransform {\n transform(date: string): string {\n return this.format(Date.parse(date));\n }\n\n format(date: number) {\n return moment(date).fromNow();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'duration',\n})\nexport class DurationPipe implements PipeTransform {\n transform(value: number): string {\n if (!value || isNaN(value) || value < 0) {\n return '00:00';\n }\n const hours = Math.floor(value / 3600);\n const minutes = Math.floor((value % 3600) / 60);\n const seconds = Math.floor(value % 60);\n\n const formattedHours = this.padNumber(hours);\n const formattedMinutes = this.padNumber(minutes);\n const formattedSeconds = this.padNumber(seconds);\n if (formattedHours === '00') {\n return `${formattedMinutes}:${formattedSeconds}`;\n } else {\n return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;\n }\n }\n private padNumber(num: number): string {\n return num < 10 ? `0${num}` : `${num}`;\n // return num !== undefined && num !== null && num >= 0 && num < 10 ? `0${num}` : `${num}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'options',\n})\nexport class OptionsFormatPipe implements PipeTransform {\n transform(options: any[]): any {\n if (!options) {\n return;\n }\n let result = '';\n options.forEach((item, index) => {\n const tmp = index === options.length - 1 ? '' : ', ';\n result += item.value ? item.value.name + tmp : item.name + tmp;\n });\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'address',\n})\nexport class AddressFormatPipe implements PipeTransform {\n transform(address: any): any {\n if (address) {\n return address.province + ' ' + address.city + ' ' + address.district + ' ' + address.street + ' ' + address.detail;\n }\n return 'Unset';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fixed',\n})\nexport class FixedPipe implements PipeTransform {\n transform(value: number, ...args: unknown[]): string {\n return value ? (value / 100).toFixed(2) : '0.00';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'shippingAddress',\n})\nexport class ShippingAddressPipe implements PipeTransform {\n transform(address: any, ...args: unknown[]): unknown {\n const includedKeys = ['province', 'city', 'district', 'street', 'detail', 'name', 'phone'];\n if (address) {\n return Object.entries(address)\n .filter(([key]) => includedKeys.includes(key))\n .sort(([keyA], [keyB]) => includedKeys.indexOf(keyA) - includedKeys.indexOf(keyB)) // Sort by includedKeys order\n .map(([key, value]) => value)\n .join(' ');\n }\n return '无';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'price',\n})\nexport class PricePipe implements PipeTransform {\n transform(value: number | string | null | undefined): string {\n if (value == null || value === '') return '£0.00';\n const amount = typeof value === 'string' ? parseFloat(value) : value;\n return new Intl.NumberFormat('en-GB', {\n style: 'currency',\n currency: 'GBP',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(amount);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeUrl',\n standalone: true,\n})\nexport class SafeUrlPipe implements PipeTransform {\n sanitizer = inject(DomSanitizer);\n\n transform(url: string | null | undefined): SafeUrl | SafeResourceUrl | null {\n if (!url) {\n return null;\n }\n // If you want to allow in [href], [src], [poster], [srcdoc], etc.\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { PrettyjsonPipe } from './prettyjson.pipe';\nimport { TimePipe } from '../pipes/time.pipe';\nimport { DurationPipe } from './duration.pipe';\nimport { OptionsFormatPipe } from './options.pipe';\nimport { AddressFormatPipe } from './address.pipe';\nimport { FixedPipe } from './fixed.pipe';\nimport { ShippingAddressPipe } from './shipping-address.pipe';\nimport { PricePipe } from './price.pipe';\nimport { SafeUrlPipe } from './safe-url.pipe';\nexport {\n PrettyjsonPipe,\n TimePipe,\n DurationPipe,\n OptionsFormatPipe,\n AddressFormatPipe,\n ShippingAddressPipe,\n FixedPipe,\n PricePipe,\n SafeUrlPipe,\n};\nexport const COMMON_PIPES = [\n PrettyjsonPipe,\n TimePipe,\n DurationPipe,\n OptionsFormatPipe,\n AddressFormatPipe,\n ShippingAddressPipe,\n FixedPipe,\n PricePipe,\n SafeUrlPipe,\n];\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\n\n@Directive({\n selector: '[rolatechDecimal]',\n})\nexport class DecimalDirective {\n private regex = new RegExp(/^\\d*\\.?\\d{0,2}$/g);\n\n // Test\n // Allow decimal numbers and negative values\n // Allow key codes for special events. Reflect :\n // Backspace, tab, end, home\n private specialKeys: Array<string> = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\n\n private el = inject(ElementRef);\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n // Allow Backspace, tab, end, and home keys\n if (this.specialKeys.indexOf(event.key) !== -1) {\n return;\n }\n const current: string = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join(\n '',\n );\n if (next && !String(next).match(this.regex)) {\n event.preventDefault();\n }\n }\n}\n","import { Provider } from '@angular/core';\nimport { DecimalDirective } from './decimal.directive';\n\nexport { DecimalDirective };\n\nexport const COMMON_DIRECTIVES: Provider[] = [DecimalDirective];\n","export interface User {\n id?: string;\n name: string;\n username?: string;\n status: UserStatus;\n roles: Role[];\n avatar: string;\n firstName: string;\n lastName: string;\n email: string;\n phone: string;\n createdAt: string;\n}\nexport interface Role {\n id: string;\n name: string; // \"USER\"\n authority: string; // \"USER\"\n description?: string | null;\n permissions?: any[] | null;\n}\nexport interface PasswordChange {\n oldPassword: string;\n newPassword: string;\n ne2Password: string;\n}\nexport interface PasswordResetConfirmRequest {\n token: string;\n newPassword: string;\n}\nexport enum UserStatus {\n ACTIVE = 'Active',\n AWAITING = 'Pending',\n DELETED = 'Deleted',\n}\n","import { UrlSegment, UrlMatchResult } from '@angular/router';\n\nexport function UsernameMatcher(url: UrlSegment[]): UrlMatchResult | null {\n // const regex = /^@(\\w+)$/; // Matches strings like \"@username\"\n // const matched = regex.test(url[0].path);\n const matched = url[0].path.startsWith('@');\n if (!matched) {\n return null;\n }\n if (url.length === 1) {\n return { consumed: url, posParams: { username: new UrlSegment(url[0].path.substring(1), {}) } };\n }\n if (url.length === 2) {\n return {\n consumed: url.slice(0, 1),\n posParams: {\n username: new UrlSegment(url[0].path.substring(1), {}),\n path: url[1],\n },\n };\n }\n return { consumed: url };\n}\n","import { InjectionToken, PLATFORM_ID, inject } from '@angular/core';\nimport { Request, Response } from 'express';\nexport interface AppConfig {\n name: string;\n baseUrl: string;\n clientId: string;\n cookieName: string;\n accountsUrl: string;\n myaccountUrl: string;\n www: string;\n endpoint?: EndpointBasicAuth;\n wechat?: WeChatConfig\n}\nexport interface EndpointBasicAuth {\n username: string;\n password: string;\n}\nexport interface WeChatConfig {\n appId: string;\n}\nexport const APP_CONFIG = new InjectionToken<AppConfig | any>('@rolatech/angular-common config');\n\nexport const REQUEST: any = new InjectionToken<Request>('REQUEST');\nexport const RESPONSE: any = new InjectionToken<Response>('RESPONSE');\n\nexport const WINDOW = new InjectionToken<Window>('@rolatech/angular-common global Window object', {\n providedIn: 'root',\n factory: () => {\n const platform = inject(PLATFORM_ID);\n return platform === 'browser' ? window : ({} as Window);\n },\n});\n","import {\n APP_ID,\n EnvironmentProviders,\n InjectionToken,\n Provider,\n importProvidersFrom,\n inject,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nimport { APP_CONFIG, WINDOW } from './lib/tokens';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { COMMON_PIPES } from './lib/pipes';\nimport { COMMON_DIRECTIVES } from './lib/directive';\nimport { CommonModule, IMAGE_CONFIG } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MAT_ICON_DEFAULT_OPTIONS } from '@angular/material/icon';\nexport interface NotificationLink {\n name: string;\n icon: string;\n type?: string;\n}\nexport interface NotificationsConfig {\n title?: string;\n items: NotificationLink[];\n}\nexport const NOTIFICATIONS_CONFIG = new InjectionToken<NotificationsConfig>('NOTIFICATIONS_CONFIG');\n\nexport function provideAngularCommon(environment?: any): EnvironmentProviders {\n const resolveConfig = () => {\n const baseConfig = environment ?? {};\n const win = inject(WINDOW, { optional: true });\n const runtimeConfig = (win as any)?.__APP_CONFIG__ ?? {};\n return { ...baseConfig, ...runtimeConfig };\n };\n\n const providers: (Provider | EnvironmentProviders)[] = [\n ...COMMON_PIPES,\n ...COMMON_DIRECTIVES,\n {\n provide: APP_CONFIG,\n useFactory: resolveConfig,\n },\n {\n provide: IMAGE_CONFIG,\n useValue: {\n disableImageSizeWarning: true,\n disableImageLazyLoadWarning: true,\n },\n },\n {\n provide: NOTIFICATIONS_CONFIG,\n useFactory: () => {\n const config = inject(APP_CONFIG);\n return config?.notification;\n },\n },\n { provide: APP_ID, useValue: 'serverApp' },\n { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 2000 } },\n { provide: MAT_ICON_DEFAULT_OPTIONS, useValue: { fontSet: 'material-symbols-outlined' } },\n importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),\n ];\n return makeEnvironmentProviders(providers);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rolatech-angular-common.mjs","sources":["../../../../packages/angular-common/src/lib/angular-common.module.ts","../../../../packages/angular-common/src/lib/pipes/prettyjson.pipe.ts","../../../../packages/angular-common/src/lib/pipes/time.pipe.ts","../../../../packages/angular-common/src/lib/pipes/duration.pipe.ts","../../../../packages/angular-common/src/lib/pipes/options.pipe.ts","../../../../packages/angular-common/src/lib/pipes/address.pipe.ts","../../../../packages/angular-common/src/lib/pipes/fixed.pipe.ts","../../../../packages/angular-common/src/lib/pipes/shipping-address.pipe.ts","../../../../packages/angular-common/src/lib/pipes/price.pipe.ts","../../../../packages/angular-common/src/lib/pipes/safe-url.pipe.ts","../../../../packages/angular-common/src/lib/pipes/index.ts","../../../../packages/angular-common/src/lib/directive/decimal.directive.ts","../../../../packages/angular-common/src/lib/directive/index.ts","../../../../packages/angular-common/src/lib/interfaces/auth.interface.ts","../../../../packages/angular-common/src/lib/router/username-matcher.ts","../../../../packages/angular-common/src/lib/tokens.ts","../../../../packages/angular-common/src/lib/http/credentials.interceptor.ts","../../../../packages/angular-common/src/provider.ts","../../../../packages/angular-common/src/lib/http/api-request-options.utils.ts","../../../../packages/angular-common/src/rolatech-angular-common.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, RouterLink, RouterLinkActive, RouterOutlet, FormsModule, ReactiveFormsModule],\n exports: [CommonModule, RouterLink, RouterLinkActive, RouterOutlet, FormsModule, ReactiveFormsModule],\n})\nexport class AngularCommonModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'prettyjson',\n})\nexport class PrettyjsonPipe implements PipeTransform {\n transform(value: any, ...args: any[]): any {\n if (value) {\n return JSON.stringify(value, null, 4).replace(/ /g, ' ').replace(/\\n/g, '<br/>');\n } else {\n return '{}';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n@Pipe({ name: 'time', pure: false })\nexport class TimePipe implements PipeTransform {\n transform(date: string): string {\n return this.format(Date.parse(date));\n }\n\n format(date: number) {\n return moment(date).fromNow();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'duration',\n})\nexport class DurationPipe implements PipeTransform {\n transform(value: number): string {\n if (!value || isNaN(value) || value < 0) {\n return '00:00';\n }\n const hours = Math.floor(value / 3600);\n const minutes = Math.floor((value % 3600) / 60);\n const seconds = Math.floor(value % 60);\n\n const formattedHours = this.padNumber(hours);\n const formattedMinutes = this.padNumber(minutes);\n const formattedSeconds = this.padNumber(seconds);\n if (formattedHours === '00') {\n return `${formattedMinutes}:${formattedSeconds}`;\n } else {\n return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;\n }\n }\n private padNumber(num: number): string {\n return num < 10 ? `0${num}` : `${num}`;\n // return num !== undefined && num !== null && num >= 0 && num < 10 ? `0${num}` : `${num}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'options',\n})\nexport class OptionsFormatPipe implements PipeTransform {\n transform(options: any[]): any {\n if (!options) {\n return;\n }\n let result = '';\n options.forEach((item, index) => {\n const tmp = index === options.length - 1 ? '' : ', ';\n result += item.value ? item.value.name + tmp : item.name + tmp;\n });\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'address',\n})\nexport class AddressFormatPipe implements PipeTransform {\n transform(address: any): any {\n if (address) {\n return address.province + ' ' + address.city + ' ' + address.district + ' ' + address.street + ' ' + address.detail;\n }\n return 'Unset';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fixed',\n})\nexport class FixedPipe implements PipeTransform {\n transform(value: number, ...args: unknown[]): string {\n return value ? (value / 100).toFixed(2) : '0.00';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'shippingAddress',\n})\nexport class ShippingAddressPipe implements PipeTransform {\n transform(address: any, ...args: unknown[]): unknown {\n const includedKeys = ['province', 'city', 'district', 'street', 'detail', 'name', 'phone'];\n if (address) {\n return Object.entries(address)\n .filter(([key]) => includedKeys.includes(key))\n .sort(([keyA], [keyB]) => includedKeys.indexOf(keyA) - includedKeys.indexOf(keyB)) // Sort by includedKeys order\n .map(([key, value]) => value)\n .join(' ');\n }\n return '无';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'price',\n})\nexport class PricePipe implements PipeTransform {\n transform(value: number | string | null | undefined): string {\n if (value == null || value === '') return '£0.00';\n const amount = typeof value === 'string' ? parseFloat(value) : value;\n return new Intl.NumberFormat('en-GB', {\n style: 'currency',\n currency: 'GBP',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(amount);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeUrl',\n standalone: true,\n})\nexport class SafeUrlPipe implements PipeTransform {\n sanitizer = inject(DomSanitizer);\n\n transform(url: string | null | undefined): SafeUrl | SafeResourceUrl | null {\n if (!url) {\n return null;\n }\n // If you want to allow in [href], [src], [poster], [srcdoc], etc.\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { PrettyjsonPipe } from './prettyjson.pipe';\nimport { TimePipe } from '../pipes/time.pipe';\nimport { DurationPipe } from './duration.pipe';\nimport { OptionsFormatPipe } from './options.pipe';\nimport { AddressFormatPipe } from './address.pipe';\nimport { FixedPipe } from './fixed.pipe';\nimport { ShippingAddressPipe } from './shipping-address.pipe';\nimport { PricePipe } from './price.pipe';\nimport { SafeUrlPipe } from './safe-url.pipe';\nexport {\n PrettyjsonPipe,\n TimePipe,\n DurationPipe,\n OptionsFormatPipe,\n AddressFormatPipe,\n ShippingAddressPipe,\n FixedPipe,\n PricePipe,\n SafeUrlPipe,\n};\nexport const COMMON_PIPES = [\n PrettyjsonPipe,\n TimePipe,\n DurationPipe,\n OptionsFormatPipe,\n AddressFormatPipe,\n ShippingAddressPipe,\n FixedPipe,\n PricePipe,\n SafeUrlPipe,\n];\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\n\n@Directive({\n selector: '[rolatechDecimal]',\n})\nexport class DecimalDirective {\n private regex = new RegExp(/^\\d*\\.?\\d{0,2}$/g);\n\n // Test\n // Allow decimal numbers and negative values\n // Allow key codes for special events. Reflect :\n // Backspace, tab, end, home\n private specialKeys: Array<string> = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\n\n private el = inject(ElementRef);\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n // Allow Backspace, tab, end, and home keys\n if (this.specialKeys.indexOf(event.key) !== -1) {\n return;\n }\n const current: string = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join(\n '',\n );\n if (next && !String(next).match(this.regex)) {\n event.preventDefault();\n }\n }\n}\n","import { Provider } from '@angular/core';\nimport { DecimalDirective } from './decimal.directive';\n\nexport { DecimalDirective };\n\nexport const COMMON_DIRECTIVES: Provider[] = [DecimalDirective];\n","export interface User {\n id?: string;\n name: string;\n username?: string;\n status: UserStatus;\n roles: Role[];\n avatar: string;\n firstName: string;\n lastName: string;\n email: string;\n phone: string;\n createdAt: string;\n}\nexport interface Role {\n id: string;\n name: string; // \"USER\"\n authority: string; // \"USER\"\n description?: string | null;\n permissions?: any[] | null;\n}\nexport interface PasswordChange {\n oldPassword: string;\n newPassword: string;\n ne2Password: string;\n}\nexport interface PasswordResetConfirmRequest {\n token: string;\n newPassword: string;\n}\nexport enum UserStatus {\n ACTIVE = 'Active',\n AWAITING = 'Pending',\n DELETED = 'Deleted',\n}\n","import { UrlSegment, UrlMatchResult } from '@angular/router';\n\nexport function UsernameMatcher(url: UrlSegment[]): UrlMatchResult | null {\n // const regex = /^@(\\w+)$/; // Matches strings like \"@username\"\n // const matched = regex.test(url[0].path);\n const matched = url[0].path.startsWith('@');\n if (!matched) {\n return null;\n }\n if (url.length === 1) {\n return { consumed: url, posParams: { username: new UrlSegment(url[0].path.substring(1), {}) } };\n }\n if (url.length === 2) {\n return {\n consumed: url.slice(0, 1),\n posParams: {\n username: new UrlSegment(url[0].path.substring(1), {}),\n path: url[1],\n },\n };\n }\n return { consumed: url };\n}\n","import { InjectionToken, PLATFORM_ID, inject } from '@angular/core';\nimport { Request, Response } from 'express';\nexport interface AppConfig {\n name: string;\n baseUrl: string;\n clientId: string;\n cookieName: string;\n accountsUrl: string;\n myaccountUrl: string;\n www: string;\n endpoint?: EndpointBasicAuth;\n wechat?: WeChatConfig\n}\nexport interface EndpointBasicAuth {\n username: string;\n password: string;\n}\nexport interface WeChatConfig {\n appId: string;\n}\nexport const APP_CONFIG = new InjectionToken<AppConfig | any>('@rolatech/angular-common config');\n\nexport const REQUEST: any = new InjectionToken<Request>('REQUEST');\nexport const RESPONSE: any = new InjectionToken<Response>('RESPONSE');\n\nexport const WINDOW = new InjectionToken<Window>('@rolatech/angular-common global Window object', {\n providedIn: 'root',\n factory: () => {\n const platform = inject(PLATFORM_ID);\n return platform === 'browser' ? window : ({} as Window);\n },\n});\n","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { APP_CONFIG, AppConfig } from '../tokens';\n\nexport const credentialsInterceptor: HttpInterceptorFn = (req, next) => {\n const config = inject(APP_CONFIG) as AppConfig;\n\n /**\n * Only apply credentials to API requests\n */\n if (!req.url.startsWith(config.baseUrl)) {\n return next(req);\n }\n\n const request = req.clone({\n withCredentials: true,\n });\n\n return next(request);\n};\n","import {\n APP_ID,\n EnvironmentProviders,\n InjectionToken,\n Provider,\n importProvidersFrom,\n inject,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nimport { APP_CONFIG, WINDOW } from './lib/tokens';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { COMMON_PIPES } from './lib/pipes';\nimport { COMMON_DIRECTIVES } from './lib/directive';\nimport { CommonModule, IMAGE_CONFIG } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MAT_ICON_DEFAULT_OPTIONS } from '@angular/material/icon';\nimport { provideHttpClient, withInterceptors } from '@angular/common/http';\nimport { credentialsInterceptor } from './lib/http/credentials.interceptor';\nexport interface NotificationLink {\n name: string;\n icon: string;\n type?: string;\n}\nexport interface NotificationsConfig {\n title?: string;\n items: NotificationLink[];\n}\nexport const NOTIFICATIONS_CONFIG = new InjectionToken<NotificationsConfig>('NOTIFICATIONS_CONFIG');\n\nexport function provideAngularCommon(environment?: any): EnvironmentProviders {\n const resolveConfig = () => {\n const baseConfig = environment ?? {};\n const win = inject(WINDOW, { optional: true });\n const runtimeConfig = (win as any)?.__APP_CONFIG__ ?? {};\n return { ...baseConfig, ...runtimeConfig };\n };\n\n const providers: (Provider | EnvironmentProviders)[] = [\n ...COMMON_PIPES,\n ...COMMON_DIRECTIVES,\n {\n provide: APP_CONFIG,\n useFactory: resolveConfig,\n },\n {\n provide: IMAGE_CONFIG,\n useValue: {\n disableImageSizeWarning: true,\n disableImageLazyLoadWarning: true,\n },\n },\n {\n provide: NOTIFICATIONS_CONFIG,\n useFactory: () => {\n const config = inject(APP_CONFIG);\n return config?.notification;\n },\n },\n { provide: APP_ID, useValue: 'serverApp' },\n { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 2000 } },\n { provide: MAT_ICON_DEFAULT_OPTIONS, useValue: { fontSet: 'material-symbols-outlined' } },\n /**\n * Register HTTP client + interceptors\n */\n provideHttpClient(withInterceptors([credentialsInterceptor])),\n importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { HttpParams } from '@angular/common/http';\nimport { ApiRequestOptions } from '../interfaces';\n\nexport function toApiRequestParams(options?: ApiRequestOptions | null, extra?: Record<string, unknown>): HttpParams {\n let params = new HttpParams();\n\n const values: Record<string, unknown> = {\n page: options?.page,\n limit: options?.limit,\n lang: options?.lang,\n include: options?.include,\n q: options?.q,\n search: options?.search,\n filter: options?.filter,\n fields: options?.fields,\n ...(extra ?? {}),\n };\n\n for (const [key, value] of Object.entries(values)) {\n if (value === null || value === undefined || value === '') {\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n if (item === null || item === undefined || item === '') {\n continue;\n }\n params = params.append(key, String(item));\n }\n continue;\n }\n\n params = params.set(key, String(value));\n }\n\n return params;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,6 +4,7 @@ import * as i1 from '@angular/common';
|
|
|
4
4
|
import * as i2 from '@angular/router';
|
|
5
5
|
import { UrlSegment, UrlMatchResult } from '@angular/router';
|
|
6
6
|
import * as i3 from '@angular/forms';
|
|
7
|
+
import { HttpParams } from '@angular/common/http';
|
|
7
8
|
import { DomSanitizer, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
|
|
8
9
|
|
|
9
10
|
declare class AngularCommonModule {
|
|
@@ -82,6 +83,31 @@ declare class DecimalDirective {
|
|
|
82
83
|
|
|
83
84
|
declare const COMMON_DIRECTIVES: Provider[];
|
|
84
85
|
|
|
86
|
+
interface ApiRequestOptions {
|
|
87
|
+
/**
|
|
88
|
+
* 1-based page index, same as backend
|
|
89
|
+
*/
|
|
90
|
+
page?: number | null;
|
|
91
|
+
/**
|
|
92
|
+
* Backend uses "limit"
|
|
93
|
+
*/
|
|
94
|
+
limit?: number | null;
|
|
95
|
+
/**
|
|
96
|
+
* Example:
|
|
97
|
+
* ['id desc', 'name asc']
|
|
98
|
+
*/
|
|
99
|
+
sort?: string[] | null;
|
|
100
|
+
lang?: string | null;
|
|
101
|
+
include?: string | null;
|
|
102
|
+
q?: string | null;
|
|
103
|
+
search?: string | null;
|
|
104
|
+
filter?: string | null;
|
|
105
|
+
/**
|
|
106
|
+
* Example:
|
|
107
|
+
* 'id,title,price'
|
|
108
|
+
*/
|
|
109
|
+
fields?: string | null;
|
|
110
|
+
}
|
|
85
111
|
interface ApiResponse<T> {
|
|
86
112
|
code: number;
|
|
87
113
|
data: T;
|
|
@@ -156,6 +182,24 @@ interface Media {
|
|
|
156
182
|
uploading?: boolean;
|
|
157
183
|
}
|
|
158
184
|
|
|
185
|
+
interface NavLink {
|
|
186
|
+
id?: string;
|
|
187
|
+
label?: string;
|
|
188
|
+
title?: string;
|
|
189
|
+
subtitle?: string;
|
|
190
|
+
icon?: string;
|
|
191
|
+
routerLink?: string | any[];
|
|
192
|
+
link?: string | any[];
|
|
193
|
+
href?: string;
|
|
194
|
+
children?: NavLink[];
|
|
195
|
+
button?: boolean;
|
|
196
|
+
exact?: boolean;
|
|
197
|
+
visible?: boolean;
|
|
198
|
+
external?: boolean;
|
|
199
|
+
openInView?: boolean;
|
|
200
|
+
openinView?: boolean;
|
|
201
|
+
}
|
|
202
|
+
|
|
159
203
|
declare function UsernameMatcher(url: UrlSegment[]): UrlMatchResult | null;
|
|
160
204
|
|
|
161
205
|
interface NotificationLink {
|
|
@@ -193,5 +237,7 @@ declare const REQUEST: any;
|
|
|
193
237
|
declare const RESPONSE: any;
|
|
194
238
|
declare const WINDOW: InjectionToken<Window>;
|
|
195
239
|
|
|
196
|
-
|
|
197
|
-
|
|
240
|
+
declare function toApiRequestParams(options?: ApiRequestOptions | null, extra?: Record<string, unknown>): HttpParams;
|
|
241
|
+
|
|
242
|
+
export { APP_CONFIG, AddressFormatPipe, AngularCommonModule, COMMON_DIRECTIVES, COMMON_PIPES, DecimalDirective, DurationPipe, FixedPipe, NOTIFICATIONS_CONFIG, OptionsFormatPipe, PrettyjsonPipe, PricePipe, REQUEST, RESPONSE, SafeUrlPipe, ShippingAddressPipe, TimePipe, UserStatus, UsernameMatcher, WINDOW, provideAngularCommon, toApiRequestParams };
|
|
243
|
+
export type { ApiRequestOptions, ApiResponse, ApiResponseMeta, AppConfig, Media, NavLink, NotificationLink, NotificationsConfig, Pagination, PasswordChange, PasswordResetConfirmRequest, Role, User };
|