@bootkit/ng0 0.0.0-alpha.14 → 0.0.0-alpha.15
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/components/modal/index.d.ts +21 -3
- package/components/table/index.d.ts +1 -1
- package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-accordion.mjs +13 -13
- package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-backdrop.mjs +4 -4
- package/fesm2022/bootkit-ng0-components-backdrop.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-button.mjs +11 -11
- package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-card.mjs +11 -11
- package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-code.mjs +9 -9
- package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-collapse.mjs +14 -14
- package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-confirmation.mjs +13 -13
- package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-form-field.mjs +13 -13
- package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-modal.mjs +40 -23
- package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-nav.mjs +26 -26
- package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-offcanvas.mjs +9 -9
- package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-overlay.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-pagination.mjs +14 -14
- package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-popover.mjs +10 -10
- package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-sidenav.mjs +20 -20
- package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-stepper.mjs +12 -12
- package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-table.mjs +55 -77
- package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-toast.mjs +6 -6
- package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-tooltip.mjs +8 -8
- package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +24 -24
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-data.mjs +1 -1
- package/fesm2022/bootkit-ng0-data.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-date.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-file.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-form.mjs +24 -24
- package/fesm2022/bootkit-ng0-form.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-http.mjs +3 -3
- package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-localization-locales.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-localization.mjs +39 -42
- package/fesm2022/bootkit-ng0-localization.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-platform-browser.mjs +7 -7
- package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-script.mjs +3 -3
- package/fesm2022/bootkit-ng0-script.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-security.mjs +15 -15
- package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
- package/localization/index.d.ts +3 -3
- package/package.json +8 -8
|
@@ -34,10 +34,10 @@ class Locale {
|
|
|
34
34
|
* @param fallbackKey
|
|
35
35
|
* @returns The translated string or the enum value itself if not found
|
|
36
36
|
*/
|
|
37
|
-
translateEnum(enumName, enumValue,
|
|
37
|
+
translateEnum(enumName, enumValue, fallback) {
|
|
38
38
|
let e = this.definition.enums?.[enumName];
|
|
39
39
|
if (!e) {
|
|
40
|
-
return
|
|
40
|
+
return fallback || enumValue?.toString();
|
|
41
41
|
}
|
|
42
42
|
if (enumValue === null) {
|
|
43
43
|
return e['[null]'] || e['[empty]'];
|
|
@@ -48,12 +48,9 @@ class Locale {
|
|
|
48
48
|
else if (enumValue === '') {
|
|
49
49
|
return e['empty'];
|
|
50
50
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return result;
|
|
51
|
+
else {
|
|
52
|
+
return e[enumValue] || e['[?]'] || fallback || enumValue?.toString();
|
|
54
53
|
}
|
|
55
|
-
var fallback = e['[?]'];
|
|
56
|
-
return fallback ?? (returnEnumAsFallback ? enumValue : undefined);
|
|
57
54
|
}
|
|
58
55
|
/**
|
|
59
56
|
* Translates a form validation error
|
|
@@ -157,10 +154,10 @@ class LocalizationService {
|
|
|
157
154
|
get() {
|
|
158
155
|
return this._activeLocale;
|
|
159
156
|
}
|
|
160
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
161
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
157
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
158
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizationService, providedIn: 'root' });
|
|
162
159
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizationService, decorators: [{
|
|
164
161
|
type: Injectable,
|
|
165
162
|
args: [{
|
|
166
163
|
providedIn: 'root'
|
|
@@ -180,10 +177,10 @@ class TranslatePipe {
|
|
|
180
177
|
transform(dictionaryKey, fallback) {
|
|
181
178
|
return this._ls.get()?.translate(dictionaryKey, fallback) || dictionaryKey;
|
|
182
179
|
}
|
|
183
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
184
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
180
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TranslatePipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
181
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: TranslatePipe, isStandalone: true, name: "ng0Translate" });
|
|
185
182
|
}
|
|
186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TranslatePipe, decorators: [{
|
|
187
184
|
type: Pipe,
|
|
188
185
|
args: [{
|
|
189
186
|
name: 'ng0Translate',
|
|
@@ -206,13 +203,13 @@ class TranslateEnumPipe {
|
|
|
206
203
|
* @param fallbackKey
|
|
207
204
|
* @returns
|
|
208
205
|
*/
|
|
209
|
-
transform(enumValue, enumName,
|
|
210
|
-
return this._ls.get()?.translateEnum(enumName, enumValue,
|
|
206
|
+
transform(enumValue, enumName, fallback) {
|
|
207
|
+
return this._ls.get()?.translateEnum(enumName, enumValue, fallback);
|
|
211
208
|
}
|
|
212
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
213
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
209
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TranslateEnumPipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
210
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: TranslateEnumPipe, isStandalone: true, name: "ng0TranslateEnum" });
|
|
214
211
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TranslateEnumPipe, decorators: [{
|
|
216
213
|
type: Pipe,
|
|
217
214
|
args: [{
|
|
218
215
|
name: 'ng0TranslateEnum',
|
|
@@ -229,10 +226,10 @@ class TranslateBooleanPipe {
|
|
|
229
226
|
transform(value, falseKey = 'true', trueKey = 'false') {
|
|
230
227
|
return this.localeProvider.get()?.translate(value ? trueKey : falseKey);
|
|
231
228
|
}
|
|
232
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
233
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
229
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TranslateBooleanPipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
230
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: TranslateBooleanPipe, isStandalone: true, name: "ng0TranslateBool" });
|
|
234
231
|
}
|
|
235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TranslateBooleanPipe, decorators: [{
|
|
236
233
|
type: Pipe,
|
|
237
234
|
args: [{
|
|
238
235
|
name: 'ng0TranslateBool',
|
|
@@ -249,10 +246,10 @@ class DatePipe {
|
|
|
249
246
|
transform(value, format) {
|
|
250
247
|
return this._ls.get()?.formatDate(value, format);
|
|
251
248
|
}
|
|
252
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
253
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
249
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DatePipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
250
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: DatePipe, isStandalone: true, name: "ng0Date" });
|
|
254
251
|
}
|
|
255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DatePipe, decorators: [{
|
|
256
253
|
type: Pipe,
|
|
257
254
|
args: [{
|
|
258
255
|
name: 'ng0Date',
|
|
@@ -269,10 +266,10 @@ class LocalizePipe {
|
|
|
269
266
|
transform(dictionaryKey) {
|
|
270
267
|
return this._ls.get()?.translate(dictionaryKey);
|
|
271
268
|
}
|
|
272
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
273
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
269
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizePipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
270
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: LocalizePipe, isStandalone: true, name: "ng0Localize", pure: false });
|
|
274
271
|
}
|
|
275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizePipe, decorators: [{
|
|
276
273
|
type: Pipe,
|
|
277
274
|
args: [{
|
|
278
275
|
name: 'ng0Localize',
|
|
@@ -298,17 +295,17 @@ class LocalizeEnumPipe {
|
|
|
298
295
|
* @param fallbackKey
|
|
299
296
|
* @returns
|
|
300
297
|
*/
|
|
301
|
-
transform(enumValue, enumName,
|
|
298
|
+
transform(enumValue, enumName, fallback) {
|
|
302
299
|
if (this._recompute) {
|
|
303
|
-
this._value = this._ls.get()?.translateEnum(enumName, enumValue,
|
|
300
|
+
this._value = this._ls.get()?.translateEnum(enumName, enumValue, fallback);
|
|
304
301
|
this._recompute = false;
|
|
305
302
|
}
|
|
306
303
|
return this._value;
|
|
307
304
|
}
|
|
308
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
309
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
305
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizeEnumPipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
306
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: LocalizeEnumPipe, isStandalone: true, name: "ng0LocalizeEnum", pure: false });
|
|
310
307
|
}
|
|
311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizeEnumPipe, decorators: [{
|
|
312
309
|
type: Pipe,
|
|
313
310
|
args: [{
|
|
314
311
|
name: 'ng0LocalizeEnum',
|
|
@@ -325,10 +322,10 @@ class LocalizeBooleanPipe {
|
|
|
325
322
|
transform(value, falseKey = 'true', trueKey) {
|
|
326
323
|
return this._ls.get()?.translate(value ? trueKey : falseKey);
|
|
327
324
|
}
|
|
328
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
329
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
325
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizeBooleanPipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
326
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: LocalizeBooleanPipe, isStandalone: true, name: "ng0LocalizeBool", pure: false });
|
|
330
327
|
}
|
|
331
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizeBooleanPipe, decorators: [{
|
|
332
329
|
type: Pipe,
|
|
333
330
|
args: [{
|
|
334
331
|
name: 'ng0LocalizeBool',
|
|
@@ -352,10 +349,10 @@ class LocalizeDatePipe {
|
|
|
352
349
|
}
|
|
353
350
|
return this._value;
|
|
354
351
|
}
|
|
355
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
356
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
352
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizeDatePipe, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
353
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: LocalizeDatePipe, isStandalone: true, name: "ng0LocalizeDate", pure: false });
|
|
357
354
|
}
|
|
358
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizeDatePipe, decorators: [{
|
|
359
356
|
type: Pipe,
|
|
360
357
|
args: [{
|
|
361
358
|
name: 'ng0LocalizeDate',
|
|
@@ -377,8 +374,8 @@ const Declares = [
|
|
|
377
374
|
LocalizeDatePipe
|
|
378
375
|
];
|
|
379
376
|
class LocalizationModule {
|
|
380
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
381
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
377
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
378
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: LocalizationModule, imports: [
|
|
382
379
|
// Pure pipes
|
|
383
380
|
TranslatePipe,
|
|
384
381
|
TranslateEnumPipe,
|
|
@@ -399,9 +396,9 @@ class LocalizationModule {
|
|
|
399
396
|
LocalizeEnumPipe,
|
|
400
397
|
LocalizeBooleanPipe,
|
|
401
398
|
LocalizeDatePipe] });
|
|
402
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
399
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizationModule });
|
|
403
400
|
}
|
|
404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LocalizationModule, decorators: [{
|
|
405
402
|
type: NgModule,
|
|
406
403
|
args: [{
|
|
407
404
|
imports: Declares,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-localization.mjs","sources":["../../../projects/ng0/localization/locale.ts","../../../projects/ng0/localization/locale-definition.ts","../../../projects/ng0/localization/localization.service.ts","../../../projects/ng0/localization/translate.pipe.ts","../../../projects/ng0/localization/translate-enum.pipe.ts","../../../projects/ng0/localization/translate-boolean-pipe.ts","../../../projects/ng0/localization/date.pipe.ts","../../../projects/ng0/localization/localize.pipe.ts","../../../projects/ng0/localization/localize-enum.pipe.ts","../../../projects/ng0/localization/localize-boolean-pipe.ts","../../../projects/ng0/localization/localize-date.pipe.ts","../../../projects/ng0/localization/localization.module.ts","../../../projects/ng0/localization/types.ts","../../../projects/ng0/localization/bootkit-ng0-localization.ts"],"sourcesContent":["import { LocaleDefinition } from \"./locale-definition\";\nimport { TranslatedValidationError } from \"./types\";\n\n/** Locale */\nexport class Locale {\n\n constructor(public readonly definition: LocaleDefinition) {\n }\n\n /** \n * Returns the name of the locale\n * @returns The name of the locale\n */\n get name(): string {\n return this.definition.name;\n }\n\n /** \n * Translates a key in the dictionary\n * @param key The key to look up\n * @param fallback Optional fallback value if the key is not found\n * @returns The translated string or the fallbackValue if not found\n */\n translate(key: string, fallback?: string): string | undefined {\n return this.definition.dictionary?.[key] ?? fallback;\n }\n\n /**\n * Translates an enum value \n * @param enumName The name of the enum \n * @param enumValue The value of the enum to translate \n * @param nullValueKey\n * @param returnEnumAsFallback\n * @param fallbackKey\n * @returns The translated string or the enum value itself if not found \n */\n\n translateEnum(enumName: string, enumValue: string | number | null | undefined, returnEnumAsFallback = true): string | undefined {\n let e = this.definition.enums?.[enumName];\n if (!e) {\n return undefined;\n }\n\n if (enumValue === null) {\n return e['[null]'] || e['[empty]'];\n } else if (enumValue === undefined) {\n return e['[undefined]'] || e['[empty]'];\n } else if(enumValue === '') {\n return e['empty'];\n }\n\n var result = e[enumValue];\n\n if (result) {\n return result;\n }\n\n var fallback = e['[?]'];\n return fallback ?? (returnEnumAsFallback ? enumValue : undefined);\n }\n\n /** \n * Translates a form validation error\n * @param errorKey The key of the error to translate\n * @param error The error object\n */\n translateError(errorKey: string, error: any, fallbackMessage: string | undefined = undefined): string | undefined {\n const errors = this.definition?.form?.validation?.errors;\n\n if (!errors) {\n return fallbackMessage;\n }\n\n const translatorFunc = errors[errorKey] ?? errors['*'];\n return typeof translatorFunc === 'function' ? translatorFunc(error) : fallbackMessage;\n }\n\n /** \n * Translates validation errors \n * @param errors Validation errors object\n * @returns Array of translated validation errors\n */\n translateErrors(errors: any): TranslatedValidationError[] {\n const result: TranslatedValidationError[] = [];\n for (const key in errors) {\n if (Object.prototype.hasOwnProperty.call(errors, key)) {\n result.push({\n key: key,\n value: errors[key],\n text: this.translateError(key, errors[key])\n });\n }\n }\n\n return result;\n }\n\n /** \n * Translates the first error in the validation errors object \n * @param errors Validation errors object\n * @returns TranslatedValidationError or undefined if no errors\n */\n translateFirstError(errors: any, fallbackMessage: string | undefined = undefined): TranslatedValidationError | undefined {\n const keys = Object.keys(errors);\n if (keys.length === 0) {\n return undefined;\n }\n\n const key = keys[0];\n const value = errors[key];\n return {\n key,\n value,\n text: this.translateError(key, value, fallbackMessage)\n };\n }\n\n /**\n * Clones and extends this object and returns a new Locale (without modifying this object).\n */\n extend(definition?: Omit<LocaleDefinition, 'name'>): Locale {\n return new Locale({...this.definition, ...definition });\n }\n\n /**\n * \n * @param date Date string or timestamp\n * @returns Formatted date string based on the locale \n */\n formatDate(date: Date | string | number, format?: string): string {\n return date ? new Date(date).toLocaleDateString(this.definition.name, { hour: '2-digit', minute: '2-digit' }) : '';\n }\n}\n","/** Locale dictionary */\nexport type LocaleDictionary = { [key: string]: string; };\nexport type LocaleEnums = { [enumName: string]: { [enumValue: string]: string } };\n\n/** Locale Error Translator */\nexport type LocaleValidationErrorTranslator = (error: any) => string;\n\n\n/** Locale validation error translator functions */\nexport type LocaleValidationErrorTranslators = {\n [key: string]: LocaleValidationErrorTranslator;\n};\n\n\n/** \n * Locale definition\n */\nexport interface LocaleDefinition {\n /** Locale name */\n readonly name: string;\n\n /** Does this locale belongs to a RTL language */\n readonly rtl?: boolean;\n\n /** Locale dictionary */\n dictionary?: LocaleDictionary;\n enums?: LocaleEnums,\n form?: {\n validation?: {\n /** Form validation error translators. */\n errors?: LocaleValidationErrorTranslators\n }\n }\n components?: {\n table?: {\n /**\n * No records found message.\n */\n noRecords?: string;\n\n /** \n * Error message displayed when loading data fails. \n */\n loadError?: string;\n\n /**\n * A format function to format the paging info.\n */\n pagingInfo?: TableComponentPagingFormatter;\n }\n }\n\n // date?: {\n // calendars?: {\n // [calendar: string]: {\n // days: string[],\n // daysShort: string[],\n // months: string[],\n // monthsShort: string[],\n // }\n // }\n // };\n // }\n};\n\n/**\n * A function to format the paging info of a table.\n * \n */\nexport type TableComponentPagingFormatter = (info: {\n /**\n * The first record in the current page.\n */\n firstRecord: number,\n\n /**\n * The last record in the current page.\n */\n lastRecord: number,\n\n /**\n * The total number of records.\n */\n totalRecords?: number,\n\n /**\n * The current page index.\n */\n currentPage: number\n}) => string;","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Locale } from './locale';\nimport { LocaleChangeEvent } from './types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalizationService {\n private _locales: Locale[] = [];\n private _activeLocale?: Locale;\n private _changeSubject = new Subject<LocaleChangeEvent>();\n readonly change = this._changeSubject.asObservable();\n\n constructor() {\n }\n\n /** \n * Adds a Locale \n */\n add(locale: Locale): void;\n /** Adds an array of Locales to this LocaleProvider */\n add(locales: Locale[]): void;\n add(l: any): void {\n if (l instanceof Locale) {\n this._locales.push(l);\n } else if (Array.isArray(l)) {\n l.forEach(x => this.add(x));\n } else {\n throw Error('Invalid locale');\n }\n\n if (this._locales.length == 1) {\n this._activeLocale = this._locales[0];\n }\n }\n\n /** Changes the active locale */\n set(localeName: string): void {\n const locale = this._locales.find(x => x.name === localeName);\n if (locale) {\n this._changeSubject.next({ old: this._activeLocale, new: locale });\n this._activeLocale = locale;\n return;\n }\n\n throw Error('Locale not found.');\n }\n\n /** Gets the active locale */\n get(): Locale | undefined {\n return this._activeLocale;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n\n/**\n * Pipe to translate a dictionary key into a localized string.\n * It uses the LocalizationService to fetch the translation.\n * If the translation is not found, it returns the fallback string if provided.\n */\n@Pipe({\n name: 'ng0Translate',\n standalone: true,\n pure: true\n})\nexport class TranslatePipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(dictionaryKey: string, fallback?: string) {\n return this._ls.get()?.translate(dictionaryKey, fallback) || dictionaryKey;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0TranslateEnum',\n standalone: true,\n pure: true\n})\nexport class TranslateEnumPipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n /**\n * \n * @param enumValue \n * @param enumName \n * @param nullValueKey \n * @param returnEnumAsFallback\n * @param fallbackKey \n * @returns \n */\n transform(enumValue: string | number | null | undefined, enumName: string, returnEnumAsFallback = true): any {\n return this._ls.get()?.translateEnum(enumName, enumValue, returnEnumAsFallback);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0TranslateBool',\n standalone: true,\n pure: true\n})\nexport class TranslateBooleanPipe implements PipeTransform {\n\n constructor(private localeProvider: LocalizationService) {\n }\n\n transform(value: any, falseKey: string = 'true', trueKey: string = 'false'): any {\n return this.localeProvider.get()?.translate(value ? trueKey : falseKey);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0Date',\n standalone: true,\n pure: true\n})\nexport class DatePipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(value: Date | string | number, format?: string) {\n return this._ls.get()?.formatDate(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0Localize',\n standalone: true,\n pure: false\n})\nexport class LocalizePipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(dictionaryKey: string) {\n return this._ls.get()?.translate(dictionaryKey);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Pipe({\n name: 'ng0LocalizeEnum',\n standalone: true,\n pure: false\n})\nexport class LocalizeEnumPipe implements PipeTransform {\n private _recompute = true;\n private _value?: string;\n\n constructor(private _ls: LocalizationService) {\n _ls.change.pipe(takeUntilDestroyed()).subscribe(x => this._recompute = true);\n }\n\n /**\n * \n * @param enumValue \n * @param enumName \n * @param nullValueKey \n * @param returnEnumAsFallback\n * @param fallbackKey \n * @returns \n */\n transform(enumValue: string | number | null | undefined, enumName: string, returnEnumAsFallback = true): any {\n if (this._recompute) {\n this._value = this._ls.get()?.translateEnum(enumName, enumValue, returnEnumAsFallback);\n this._recompute = false;\n }\n\n return this._value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0LocalizeBool',\n standalone: true,\n pure: false\n})\nexport class LocalizeBooleanPipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(value: any, falseKey = 'true', trueKey: 'false') {\n return this._ls.get()?.translate(value ? trueKey : falseKey);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Locale } from './locale';\nimport { LocalizationService } from './localization.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Pipe({\n name: 'ng0LocalizeDate',\n standalone: true,\n pure: false\n})\nexport class LocalizeDatePipe implements PipeTransform {\n private _value?: string;\n private _recompute = true;\n\n constructor(private _ls: LocalizationService) {\n _ls.change.pipe(takeUntilDestroyed()).subscribe(x => this._recompute = true);\n }\n\n transform(value: number | string, format?: string) {\n if (this._recompute) {\n this._value = this._ls.get()?.formatDate(value, format);\n this._recompute = false;\n }\n\n return this._value;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslatePipe } from './translate.pipe';\nimport { TranslateEnumPipe } from './translate-enum.pipe';\nimport { TranslateBooleanPipe } from './translate-boolean-pipe';\nimport { DatePipe } from './date.pipe';\nimport { LocalizePipe } from './localize.pipe';\nimport { LocalizeEnumPipe } from './localize-enum.pipe';\nimport { LocalizeBooleanPipe } from './localize-boolean-pipe';\nimport { LocalizeDatePipe } from './localize-date.pipe';\n\nconst Declares = [\n // Pure pipes\n TranslatePipe,\n TranslateEnumPipe,\n TranslateBooleanPipe,\n DatePipe,\n\n // Impure pipes\n LocalizePipe,\n LocalizeEnumPipe,\n LocalizeBooleanPipe,\n LocalizeDatePipe\n];\n\n@NgModule({\n imports: Declares,\n exports: Declares\n})\nexport class LocalizationModule {\n}\n\n","import { InjectionToken } from '@angular/core';\nimport { LocalizationService } from './localization.service';\nimport { Locale } from './locale';\n\nexport const LOCALE = new InjectionToken<Locale | LocalizationService>('LOCALE');\n\nexport interface TranslatedValidationError {\n /** Error key */\n key: string;\n \n /** Error object */\n value: any;\n \n /** localized error text */\n text?: string;\n }\n \n export interface LocaleChangeEvent {\n old?: Locale;\n new: Locale;\n }\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LocalizationService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-localization.mjs","sources":["../../../projects/ng0/localization/locale.ts","../../../projects/ng0/localization/locale-definition.ts","../../../projects/ng0/localization/localization.service.ts","../../../projects/ng0/localization/translate.pipe.ts","../../../projects/ng0/localization/translate-enum.pipe.ts","../../../projects/ng0/localization/translate-boolean-pipe.ts","../../../projects/ng0/localization/date.pipe.ts","../../../projects/ng0/localization/localize.pipe.ts","../../../projects/ng0/localization/localize-enum.pipe.ts","../../../projects/ng0/localization/localize-boolean-pipe.ts","../../../projects/ng0/localization/localize-date.pipe.ts","../../../projects/ng0/localization/localization.module.ts","../../../projects/ng0/localization/types.ts","../../../projects/ng0/localization/bootkit-ng0-localization.ts"],"sourcesContent":["import { LocaleDefinition } from \"./locale-definition\";\nimport { TranslatedValidationError } from \"./types\";\n\n/** Locale */\nexport class Locale {\n\n constructor(public readonly definition: LocaleDefinition) {\n }\n\n /** \n * Returns the name of the locale\n * @returns The name of the locale\n */\n get name(): string {\n return this.definition.name;\n }\n\n /** \n * Translates a key in the dictionary\n * @param key The key to look up\n * @param fallback Optional fallback value if the key is not found\n * @returns The translated string or the fallbackValue if not found\n */\n translate(key: string, fallback?: string): string | undefined {\n return this.definition.dictionary?.[key] ?? fallback;\n }\n\n /**\n * Translates an enum value \n * @param enumName The name of the enum \n * @param enumValue The value of the enum to translate \n * @param nullValueKey\n * @param returnEnumAsFallback\n * @param fallbackKey\n * @returns The translated string or the enum value itself if not found \n */\n\n translateEnum(enumName: string, enumValue: string | number | null | undefined, fallback?: string): string | undefined {\n let e = this.definition.enums?.[enumName];\n\n if (!e) {\n return fallback || enumValue?.toString();\n }\n\n if (enumValue === null) {\n return e['[null]'] || e['[empty]'];\n } else if (enumValue === undefined) {\n return e['[undefined]'] || e['[empty]'];\n } else if (enumValue === '') {\n return e['empty'];\n } else {\n return e[enumValue] || e['[?]'] || fallback || enumValue?.toString();\n }\n }\n\n /** \n * Translates a form validation error\n * @param errorKey The key of the error to translate\n * @param error The error object\n */\n translateError(errorKey: string, error: any, fallbackMessage: string | undefined = undefined): string | undefined {\n const errors = this.definition?.form?.validation?.errors;\n\n if (!errors) {\n return fallbackMessage;\n }\n\n const translatorFunc = errors[errorKey] ?? errors['*'];\n return typeof translatorFunc === 'function' ? translatorFunc(error) : fallbackMessage;\n }\n\n /** \n * Translates validation errors \n * @param errors Validation errors object\n * @returns Array of translated validation errors\n */\n translateErrors(errors: any): TranslatedValidationError[] {\n const result: TranslatedValidationError[] = [];\n for (const key in errors) {\n if (Object.prototype.hasOwnProperty.call(errors, key)) {\n result.push({\n key: key,\n value: errors[key],\n text: this.translateError(key, errors[key])\n });\n }\n }\n\n return result;\n }\n\n /** \n * Translates the first error in the validation errors object \n * @param errors Validation errors object\n * @returns TranslatedValidationError or undefined if no errors\n */\n translateFirstError(errors: any, fallbackMessage: string | undefined = undefined): TranslatedValidationError | undefined {\n const keys = Object.keys(errors);\n if (keys.length === 0) {\n return undefined;\n }\n\n const key = keys[0];\n const value = errors[key];\n return {\n key,\n value,\n text: this.translateError(key, value, fallbackMessage)\n };\n }\n\n /**\n * Clones and extends this object and returns a new Locale (without modifying this object).\n */\n extend(definition?: Omit<LocaleDefinition, 'name'>): Locale {\n return new Locale({ ...this.definition, ...definition });\n }\n\n /**\n * \n * @param date Date string or timestamp\n * @returns Formatted date string based on the locale \n */\n formatDate(date: Date | string | number, format?: string): string {\n return date ? new Date(date).toLocaleDateString(this.definition.name, { hour: '2-digit', minute: '2-digit' }) : '';\n }\n}\n","/** Locale dictionary */\nexport type LocaleDictionary = { [key: string]: string; };\nexport type LocaleEnums = { [enumName: string]: { [enumValue: string]: string } };\n\n/** Locale Error Translator */\nexport type LocaleValidationErrorTranslator = (error: any) => string;\n\n\n/** Locale validation error translator functions */\nexport type LocaleValidationErrorTranslators = {\n [key: string]: LocaleValidationErrorTranslator;\n};\n\n\n/** \n * Locale definition\n */\nexport interface LocaleDefinition {\n /** Locale name */\n readonly name: string;\n\n /** Does this locale belongs to a RTL language */\n readonly rtl?: boolean;\n\n /** Locale dictionary */\n dictionary?: LocaleDictionary;\n enums?: LocaleEnums,\n form?: {\n validation?: {\n /** Form validation error translators. */\n errors?: LocaleValidationErrorTranslators\n }\n }\n components?: {\n table?: {\n /**\n * No records found message.\n */\n noRecords?: string;\n\n /** \n * Error message displayed when loading data fails. \n */\n loadError?: string;\n\n /**\n * A format function to format the paging info.\n */\n pagingInfo?: TableComponentPagingFormatter;\n }\n }\n\n // date?: {\n // calendars?: {\n // [calendar: string]: {\n // days: string[],\n // daysShort: string[],\n // months: string[],\n // monthsShort: string[],\n // }\n // }\n // };\n // }\n};\n\n/**\n * A function to format the paging info of a table.\n * \n */\nexport type TableComponentPagingFormatter = (info: {\n /**\n * The first record in the current page.\n */\n firstRecord: number,\n\n /**\n * The last record in the current page.\n */\n lastRecord: number,\n\n /**\n * The total number of records.\n */\n totalRecords?: number,\n\n /**\n * The current page index.\n */\n currentPage: number\n}) => string;","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Locale } from './locale';\nimport { LocaleChangeEvent } from './types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalizationService {\n private _locales: Locale[] = [];\n private _activeLocale?: Locale;\n private _changeSubject = new Subject<LocaleChangeEvent>();\n readonly change = this._changeSubject.asObservable();\n\n constructor() {\n }\n\n /** \n * Adds a Locale \n */\n add(locale: Locale): void;\n /** Adds an array of Locales to this LocaleProvider */\n add(locales: Locale[]): void;\n add(l: any): void {\n if (l instanceof Locale) {\n this._locales.push(l);\n } else if (Array.isArray(l)) {\n l.forEach(x => this.add(x));\n } else {\n throw Error('Invalid locale');\n }\n\n if (this._locales.length == 1) {\n this._activeLocale = this._locales[0];\n }\n }\n\n /** Changes the active locale */\n set(localeName: string): void {\n const locale = this._locales.find(x => x.name === localeName);\n if (locale) {\n this._changeSubject.next({ old: this._activeLocale, new: locale });\n this._activeLocale = locale;\n return;\n }\n\n throw Error('Locale not found.');\n }\n\n /** Gets the active locale */\n get(): Locale | undefined {\n return this._activeLocale;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n\n/**\n * Pipe to translate a dictionary key into a localized string.\n * It uses the LocalizationService to fetch the translation.\n * If the translation is not found, it returns the fallback string if provided.\n */\n@Pipe({\n name: 'ng0Translate',\n standalone: true,\n pure: true\n})\nexport class TranslatePipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(dictionaryKey: string, fallback?: string) {\n return this._ls.get()?.translate(dictionaryKey, fallback) || dictionaryKey;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0TranslateEnum',\n standalone: true,\n pure: true\n})\nexport class TranslateEnumPipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n /**\n * \n * @param enumValue \n * @param enumName \n * @param nullValueKey \n * @param returnEnumAsFallback\n * @param fallbackKey \n * @returns \n */\n transform(enumValue: string | number | null | undefined, enumName: string, fallback?: string): any {\n return this._ls.get()?.translateEnum(enumName, enumValue, fallback);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0TranslateBool',\n standalone: true,\n pure: true\n})\nexport class TranslateBooleanPipe implements PipeTransform {\n\n constructor(private localeProvider: LocalizationService) {\n }\n\n transform(value: any, falseKey: string = 'true', trueKey: string = 'false'): any {\n return this.localeProvider.get()?.translate(value ? trueKey : falseKey);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0Date',\n standalone: true,\n pure: true\n})\nexport class DatePipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(value: Date | string | number, format?: string) {\n return this._ls.get()?.formatDate(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0Localize',\n standalone: true,\n pure: false\n})\nexport class LocalizePipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(dictionaryKey: string) {\n return this._ls.get()?.translate(dictionaryKey);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Pipe({\n name: 'ng0LocalizeEnum',\n standalone: true,\n pure: false\n})\nexport class LocalizeEnumPipe implements PipeTransform {\n private _recompute = true;\n private _value?: string;\n\n constructor(private _ls: LocalizationService) {\n _ls.change.pipe(takeUntilDestroyed()).subscribe(x => this._recompute = true);\n }\n\n /**\n * \n * @param enumValue \n * @param enumName \n * @param nullValueKey \n * @param returnEnumAsFallback\n * @param fallbackKey \n * @returns \n */\n transform(enumValue: string | number | null | undefined, enumName: string, fallback?: string): any {\n if (this._recompute) {\n this._value = this._ls.get()?.translateEnum(enumName, enumValue, fallback);\n this._recompute = false;\n }\n\n return this._value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocalizationService } from './localization.service';\n\n@Pipe({\n name: 'ng0LocalizeBool',\n standalone: true,\n pure: false\n})\nexport class LocalizeBooleanPipe implements PipeTransform {\n constructor(private _ls: LocalizationService) {\n }\n\n transform(value: any, falseKey = 'true', trueKey: 'false') {\n return this._ls.get()?.translate(value ? trueKey : falseKey);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Locale } from './locale';\nimport { LocalizationService } from './localization.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Pipe({\n name: 'ng0LocalizeDate',\n standalone: true,\n pure: false\n})\nexport class LocalizeDatePipe implements PipeTransform {\n private _value?: string;\n private _recompute = true;\n\n constructor(private _ls: LocalizationService) {\n _ls.change.pipe(takeUntilDestroyed()).subscribe(x => this._recompute = true);\n }\n\n transform(value: number | string, format?: string) {\n if (this._recompute) {\n this._value = this._ls.get()?.formatDate(value, format);\n this._recompute = false;\n }\n\n return this._value;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslatePipe } from './translate.pipe';\nimport { TranslateEnumPipe } from './translate-enum.pipe';\nimport { TranslateBooleanPipe } from './translate-boolean-pipe';\nimport { DatePipe } from './date.pipe';\nimport { LocalizePipe } from './localize.pipe';\nimport { LocalizeEnumPipe } from './localize-enum.pipe';\nimport { LocalizeBooleanPipe } from './localize-boolean-pipe';\nimport { LocalizeDatePipe } from './localize-date.pipe';\n\nconst Declares = [\n // Pure pipes\n TranslatePipe,\n TranslateEnumPipe,\n TranslateBooleanPipe,\n DatePipe,\n\n // Impure pipes\n LocalizePipe,\n LocalizeEnumPipe,\n LocalizeBooleanPipe,\n LocalizeDatePipe\n];\n\n@NgModule({\n imports: Declares,\n exports: Declares\n})\nexport class LocalizationModule {\n}\n\n","import { InjectionToken } from '@angular/core';\nimport { LocalizationService } from './localization.service';\nimport { Locale } from './locale';\n\nexport const LOCALE = new InjectionToken<Locale | LocalizationService>('LOCALE');\n\nexport interface TranslatedValidationError {\n /** Error key */\n key: string;\n \n /** Error object */\n value: any;\n \n /** localized error text */\n text?: string;\n }\n \n export interface LocaleChangeEvent {\n old?: Locale;\n new: Locale;\n }\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LocalizationService"],"mappings":"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"}
|
|
@@ -10,10 +10,10 @@ class ClipboardService {
|
|
|
10
10
|
window.navigator.clipboard.writeText(text);
|
|
11
11
|
this._writeSubject.next(text);
|
|
12
12
|
}
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ClipboardService, providedIn: 'root' });
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ClipboardService, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{
|
|
19
19
|
providedIn: 'root'
|
|
@@ -22,17 +22,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
22
22
|
|
|
23
23
|
class ClipboardCopyDirective {
|
|
24
24
|
clipboardService;
|
|
25
|
-
value = input(undefined,
|
|
25
|
+
value = input(undefined, { alias: 'ng0-clipboard-copy' });
|
|
26
26
|
constructor(clipboardService) {
|
|
27
27
|
this.clipboardService = clipboardService;
|
|
28
28
|
}
|
|
29
29
|
_onHostClick() {
|
|
30
30
|
this.clipboardService.writeText(this.value());
|
|
31
31
|
}
|
|
32
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
33
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ClipboardCopyDirective, deps: [{ token: ClipboardService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
33
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: ClipboardCopyDirective, isStandalone: true, selector: "[ng0-clipboard-copy]", inputs: { value: { classPropertyName: "value", publicName: "ng0-clipboard-copy", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onHostClick()" } }, ngImport: i0 });
|
|
34
34
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ClipboardCopyDirective, decorators: [{
|
|
36
36
|
type: Directive,
|
|
37
37
|
args: [{
|
|
38
38
|
selector: '[ng0-clipboard-copy]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-platform-browser.mjs","sources":["../../../projects/ng0/platform/browser/clipboard/clipboard.service.ts","../../../projects/ng0/platform/browser/clipboard/clipboard-copy.directive.ts","../../../projects/ng0/platform/browser/bootkit-ng0-platform-browser.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClipboardService {\n private _writeSubject = new Subject<any>;\n public readonly write = this._writeSubject.asObservable();\n\n constructor() { }\n\n public writeText(text: string) {\n window.navigator.clipboard.writeText(text);\n this._writeSubject.next(text);\n }\n}\n","import { Directive, HostListener, input } from '@angular/core';\nimport { ClipboardService } from './clipboard.service';\n\n@Directive({\n selector: '[ng0-clipboard-copy]',\n standalone: true\n})\nexport class ClipboardCopyDirective {\n public value = input<string>(undefined, {alias: 'ng0-clipboard-copy'})\n\n constructor(private clipboardService: ClipboardService) {\n }\n\n \n\n @HostListener('click') private _onHostClick() {\n this.clipboardService.writeText(this.value()!);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ClipboardService"],"mappings":";;;;MAMa,gBAAgB,CAAA;IACnB,aAAa,GAAG,IAAI,OAAY;AACxB,IAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEzD,IAAA,WAAA,GAAA
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-platform-browser.mjs","sources":["../../../projects/ng0/platform/browser/clipboard/clipboard.service.ts","../../../projects/ng0/platform/browser/clipboard/clipboard-copy.directive.ts","../../../projects/ng0/platform/browser/bootkit-ng0-platform-browser.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClipboardService {\n private _writeSubject = new Subject<any>;\n public readonly write = this._writeSubject.asObservable();\n\n constructor() { }\n\n public writeText(text: string) {\n window.navigator.clipboard.writeText(text);\n this._writeSubject.next(text);\n }\n}\n","import { Directive, HostListener, input } from '@angular/core';\nimport { ClipboardService } from './clipboard.service';\n\n@Directive({\n selector: '[ng0-clipboard-copy]',\n standalone: true\n})\nexport class ClipboardCopyDirective {\n public value = input<string>(undefined, {alias: 'ng0-clipboard-copy'})\n\n constructor(private clipboardService: ClipboardService) {\n }\n\n \n\n @HostListener('click') private _onHostClick() {\n this.clipboardService.writeText(this.value()!);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ClipboardService"],"mappings":";;;;MAMa,gBAAgB,CAAA;IACnB,aAAa,GAAG,IAAI,OAAY;AACxB,IAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEzD,IAAA,WAAA,GAAA;AAEO,IAAA,SAAS,CAAC,IAAY,EAAA;QAC3B,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;uGARpB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCEY,sBAAsB,CAAA;AAGb,IAAA,gBAAA;IAFb,KAAK,GAAG,KAAK,CAAS,SAAS,EAAE,EAAC,KAAK,EAAE,oBAAoB,EAAC,CAAC;AAEtE,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;IAKL,YAAY,GAAA;QACzC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAG,CAAC;;uGATrC,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE;AACb,iBAAA;kFASgC,YAAY,EAAA,CAAA;sBAA1C,YAAY;uBAAC,OAAO;;;ACfvB;;AAEG;;;;"}
|
|
@@ -38,10 +38,10 @@ class ScriptLoader {
|
|
|
38
38
|
this._renderer.appendChild(this._document.body, elm);
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
42
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ScriptLoader, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ScriptLoader, providedIn: 'root' });
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ScriptLoader, decorators: [{
|
|
45
45
|
type: Injectable,
|
|
46
46
|
args: [{
|
|
47
47
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-script.mjs","sources":["../../../projects/ng0/script/script-locader.ts","../../../projects/ng0/script/bootkit-ng0-script.ts"],"sourcesContent":["import { Renderer2, Inject, Injectable, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ScriptDefinition, ScriptDefinitionObject } from './types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptLoader {\n private _renderer: Renderer2;\n private _loadedScripts = new Map<string, any>();\n\n constructor(\n _rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private _document: Document,\n ) {\n this._renderer = _rendererFactory.createRenderer(null, null);\n }\n\n public async loadAll(...scripts: ScriptDefinition[]) {\n let r: { script: ScriptDefinition, element: any }[] = [];\n for (let s of scripts) {\n r.push({ script: s, element: await this.load(s) })\n }\n\n return r;\n }\n\n public load(script: ScriptDefinition): Promise<any> {\n return new Promise<string>((resolve, reject) => {\n\n let d: ScriptDefinitionObject = typeof script == 'string' ? { src: script } : script;\n\n if (this._loadedScripts.has(d.src)) {\n return resolve(this._loadedScripts.get(d.src));\n }\n\n const elm = this._renderer.createElement('script');\n elm.type = 'text/javascript';\n elm.src = d.src;\n\n // if (Array.isArray(d.attrs)) {\n // d.attrs.forEach(attr => {\n // this._renderer.setAttribute(elm, attr, d.attrs[attr]);\n // });\n // }\n\n elm.onload = (res: any) => {\n this._loadedScripts.set(d.src, elm);\n return resolve(elm);\n }\n\n this._renderer.appendChild(this._document.body, elm);\n });\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAOa,YAAY,CAAA;AAMK,IAAA,SAAA;AALpB,IAAA,SAAS;AACT,IAAA,cAAc,GAAG,IAAI,GAAG,EAAe;IAE/C,
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-script.mjs","sources":["../../../projects/ng0/script/script-locader.ts","../../../projects/ng0/script/bootkit-ng0-script.ts"],"sourcesContent":["import { Renderer2, Inject, Injectable, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ScriptDefinition, ScriptDefinitionObject } from './types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptLoader {\n private _renderer: Renderer2;\n private _loadedScripts = new Map<string, any>();\n\n constructor(\n _rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private _document: Document,\n ) {\n this._renderer = _rendererFactory.createRenderer(null, null);\n }\n\n public async loadAll(...scripts: ScriptDefinition[]) {\n let r: { script: ScriptDefinition, element: any }[] = [];\n for (let s of scripts) {\n r.push({ script: s, element: await this.load(s) })\n }\n\n return r;\n }\n\n public load(script: ScriptDefinition): Promise<any> {\n return new Promise<string>((resolve, reject) => {\n\n let d: ScriptDefinitionObject = typeof script == 'string' ? { src: script } : script;\n\n if (this._loadedScripts.has(d.src)) {\n return resolve(this._loadedScripts.get(d.src));\n }\n\n const elm = this._renderer.createElement('script');\n elm.type = 'text/javascript';\n elm.src = d.src;\n\n // if (Array.isArray(d.attrs)) {\n // d.attrs.forEach(attr => {\n // this._renderer.setAttribute(elm, attr, d.attrs[attr]);\n // });\n // }\n\n elm.onload = (res: any) => {\n this._loadedScripts.set(d.src, elm);\n return resolve(elm);\n }\n\n this._renderer.appendChild(this._document.body, elm);\n });\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAOa,YAAY,CAAA;AAMK,IAAA,SAAA;AALpB,IAAA,SAAS;AACT,IAAA,cAAc,GAAG,IAAI,GAAG,EAAe;IAE/C,WACE,CAAA,gBAAkC,EACR,SAAmB,EAAA;QAAnB,IAAS,CAAA,SAAA,GAAT,SAAS;QAEnC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;;AAGvD,IAAA,MAAM,OAAO,CAAC,GAAG,OAA2B,EAAA;QACjD,IAAI,CAAC,GAAiD,EAAE;AACxD,QAAA,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;AACrB,YAAA,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;;AAGpD,QAAA,OAAO,CAAC;;AAGH,IAAA,IAAI,CAAC,MAAwB,EAAA;QAClC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,KAAI;AAE7C,YAAA,IAAI,CAAC,GAA2B,OAAO,MAAM,IAAI,QAAQ,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;YAEpF,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAClC,gBAAA,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;YAGhD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;AAClD,YAAA,GAAG,CAAC,IAAI,GAAG,iBAAiB;AAC5B,YAAA,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;;;;;;AAQf,YAAA,GAAG,CAAC,MAAM,GAAG,CAAC,GAAQ,KAAI;gBACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;AACnC,gBAAA,OAAO,OAAO,CAAC,GAAG,CAAC;AACrB,aAAC;AAED,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;AACtD,SAAC,CAAC;;AA7CO,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kDAMb,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AANP,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAOI,MAAM;2BAAC,QAAQ;;;ACbpB;;AAEG;;;;"}
|
|
@@ -35,19 +35,19 @@ class User {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
class UserStore {
|
|
38
|
-
user = signal(undefined
|
|
38
|
+
user = signal(undefined);
|
|
39
39
|
constructor() {
|
|
40
40
|
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
42
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, providedIn: 'root' });
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, decorators: [{
|
|
45
45
|
type: Injectable,
|
|
46
46
|
args: [{ providedIn: 'root' }]
|
|
47
47
|
}], ctorParameters: () => [] });
|
|
48
48
|
|
|
49
49
|
class UserDirective {
|
|
50
|
-
claim = input(undefined,
|
|
50
|
+
claim = input(undefined, { alias: 'ng0Claim' });
|
|
51
51
|
_viewCreated = false;
|
|
52
52
|
constructor(templateRef, viewContainer, userStore) {
|
|
53
53
|
effect(() => {
|
|
@@ -64,10 +64,10 @@ class UserDirective {
|
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
68
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
|
|
68
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: UserDirective, isStandalone: true, selector: "[ng0Claim]", inputs: { claim: { classPropertyName: "claim", publicName: "ng0Claim", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0Claim"], ngImport: i0 });
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserDirective, decorators: [{
|
|
71
71
|
type: Directive,
|
|
72
72
|
args: [{
|
|
73
73
|
selector: '[ng0Claim]',
|
|
@@ -91,10 +91,10 @@ class GuestUserDirective {
|
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
95
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
94
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GuestUserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
|
|
95
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: GuestUserDirective, isStandalone: true, selector: "[ng0GuestUser]", exportAs: ["ng0GuestUser"], ngImport: i0 });
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GuestUserDirective, decorators: [{
|
|
98
98
|
type: Directive,
|
|
99
99
|
args: [{
|
|
100
100
|
selector: '[ng0GuestUser]',
|
|
@@ -108,13 +108,13 @@ const items = [
|
|
|
108
108
|
GuestUserDirective
|
|
109
109
|
];
|
|
110
110
|
class SecurityModule {
|
|
111
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
112
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
112
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, imports: [UserDirective,
|
|
113
113
|
GuestUserDirective], exports: [UserDirective,
|
|
114
114
|
GuestUserDirective] });
|
|
115
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
115
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule });
|
|
116
116
|
}
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, decorators: [{
|
|
118
118
|
type: NgModule,
|
|
119
119
|
args: [{
|
|
120
120
|
imports: items,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-security.mjs","sources":["../../../projects/ng0/security/user.ts","../../../projects/ng0/security/user-store.ts","../../../projects/ng0/security/claim.directive.ts","../../../projects/ng0/security/guest-user.directive.ts","../../../projects/ng0/security/security.module.ts","../../../projects/ng0/security/public-api.ts","../../../projects/ng0/security/bootkit-ng0-security.ts"],"sourcesContent":["import { ClaimLike, ClaimObject } from '@bootkit/ng0/common';\n\n/** User */\nexport class User {\n constructor(public readonly claims: string[]) {\n }\n\n public hasClaims(claims: string[]): boolean {\n return claims.every(x => this.claims.some(y => x === y));\n }\n\n public hasAnyClaim(claims: string[]): boolean {\n return claims.length == 0 || claims.some(x => this.claims.some(y => x === y));\n }\n\n public hasClaim(claim: ClaimLike): boolean {\n var type = typeof claim;\n if (type === 'string') {\n return this.claims.some(x => x === claim);\n }\n\n if (type === 'object') {\n const co = claim as ClaimObject;\n if (co?.any && co?.all) {\n throw Error('Setting \"any\" and \"all\" at the same time is not valid.');\n }\n\n if (Array.isArray(co?.any)) {\n return this.hasAnyClaim(co.any);\n }\n if (Array.isArray(co?.all)) {\n return this.hasClaims(co.all);\n }\n }\n\n throw Error('Invalid claim');\n }\n}\n","import { User } from './user';\nimport { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class UserStore<U extends User = User> {\n public readonly user = signal<U | null | undefined>(undefined);\n\n constructor() {\n }\n}","import { Directive, TemplateRef, ViewContainerRef, input, effect } from '@angular/core';\n\nimport { UserStore } from './user-store';\nimport { ClaimLike } from '@bootkit/ng0/common';\n\n@Directive({\n selector: '[ng0Claim]',\n exportAs: 'ng0Claim',\n standalone: true\n})\nexport class UserDirective {\n public claim = input<ClaimLike | null | undefined>(undefined, { alias: 'ng0Claim' });\n private _viewCreated = false;\n\n constructor(\n templateRef: TemplateRef<any>,\n viewContainer: ViewContainerRef,\n userStore: UserStore,\n ) {\n effect(() => {\n let claim = this.claim();\n let user = userStore.user();\n let show = !user ? false : (claim == undefined ? true : user.hasClaim(claim))\n\n if (show && !this._viewCreated) {\n viewContainer.createEmbeddedView(templateRef);\n this._viewCreated = true;\n } else if (!show && this._viewCreated) {\n viewContainer.clear();\n this._viewCreated = false;\n }\n })\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, effect } from '@angular/core';\nimport { UserStore } from './user-store';\n\n@Directive({\n selector: '[ng0GuestUser]',\n exportAs: 'ng0GuestUser',\n standalone: true\n})\nexport class GuestUserDirective {\n private _created = false;\n\n constructor(\n templateRef: TemplateRef<any>,\n viewContainer: ViewContainerRef,\n userStore: UserStore,\n ) {\n effect(() => {\n let show = userStore.user() == undefined\n\n if (show && !this._created) {\n viewContainer.createEmbeddedView(templateRef);\n this._created = true;\n } else if (!show && this._created) {\n viewContainer.clear();\n this._created = false;\n }\n })\n }\n}\n","import { NgModule } from '@angular/core';\nimport { UserDirective } from './claim.directive';\nimport { GuestUserDirective } from './guest-user.directive';\n\nconst items = [\n UserDirective,\n GuestUserDirective\n]\n\n@NgModule({\n imports: items,\n exports: items\n})\nexport class SecurityModule { }\n","// export * from './types';\nexport * from './user';\nexport * from './user-store';\nexport * from './claim.directive';\nexport * from './guest-user.directive';\nexport * from './security.module';\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserStore"],"mappings":";;;AAEA;MACa,IAAI,CAAA;AACe,IAAA,MAAA;AAA5B,IAAA,WAAA,CAA4B,MAAgB,EAAA;QAAhB,
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-security.mjs","sources":["../../../projects/ng0/security/user.ts","../../../projects/ng0/security/user-store.ts","../../../projects/ng0/security/claim.directive.ts","../../../projects/ng0/security/guest-user.directive.ts","../../../projects/ng0/security/security.module.ts","../../../projects/ng0/security/public-api.ts","../../../projects/ng0/security/bootkit-ng0-security.ts"],"sourcesContent":["import { ClaimLike, ClaimObject } from '@bootkit/ng0/common';\n\n/** User */\nexport class User {\n constructor(public readonly claims: string[]) {\n }\n\n public hasClaims(claims: string[]): boolean {\n return claims.every(x => this.claims.some(y => x === y));\n }\n\n public hasAnyClaim(claims: string[]): boolean {\n return claims.length == 0 || claims.some(x => this.claims.some(y => x === y));\n }\n\n public hasClaim(claim: ClaimLike): boolean {\n var type = typeof claim;\n if (type === 'string') {\n return this.claims.some(x => x === claim);\n }\n\n if (type === 'object') {\n const co = claim as ClaimObject;\n if (co?.any && co?.all) {\n throw Error('Setting \"any\" and \"all\" at the same time is not valid.');\n }\n\n if (Array.isArray(co?.any)) {\n return this.hasAnyClaim(co.any);\n }\n if (Array.isArray(co?.all)) {\n return this.hasClaims(co.all);\n }\n }\n\n throw Error('Invalid claim');\n }\n}\n","import { User } from './user';\nimport { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class UserStore<U extends User = User> {\n public readonly user = signal<U | null | undefined>(undefined);\n\n constructor() {\n }\n}","import { Directive, TemplateRef, ViewContainerRef, input, effect } from '@angular/core';\n\nimport { UserStore } from './user-store';\nimport { ClaimLike } from '@bootkit/ng0/common';\n\n@Directive({\n selector: '[ng0Claim]',\n exportAs: 'ng0Claim',\n standalone: true\n})\nexport class UserDirective {\n public claim = input<ClaimLike | null | undefined>(undefined, { alias: 'ng0Claim' });\n private _viewCreated = false;\n\n constructor(\n templateRef: TemplateRef<any>,\n viewContainer: ViewContainerRef,\n userStore: UserStore,\n ) {\n effect(() => {\n let claim = this.claim();\n let user = userStore.user();\n let show = !user ? false : (claim == undefined ? true : user.hasClaim(claim))\n\n if (show && !this._viewCreated) {\n viewContainer.createEmbeddedView(templateRef);\n this._viewCreated = true;\n } else if (!show && this._viewCreated) {\n viewContainer.clear();\n this._viewCreated = false;\n }\n })\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, effect } from '@angular/core';\nimport { UserStore } from './user-store';\n\n@Directive({\n selector: '[ng0GuestUser]',\n exportAs: 'ng0GuestUser',\n standalone: true\n})\nexport class GuestUserDirective {\n private _created = false;\n\n constructor(\n templateRef: TemplateRef<any>,\n viewContainer: ViewContainerRef,\n userStore: UserStore,\n ) {\n effect(() => {\n let show = userStore.user() == undefined\n\n if (show && !this._created) {\n viewContainer.createEmbeddedView(templateRef);\n this._created = true;\n } else if (!show && this._created) {\n viewContainer.clear();\n this._created = false;\n }\n })\n }\n}\n","import { NgModule } from '@angular/core';\nimport { UserDirective } from './claim.directive';\nimport { GuestUserDirective } from './guest-user.directive';\n\nconst items = [\n UserDirective,\n GuestUserDirective\n]\n\n@NgModule({\n imports: items,\n exports: items\n})\nexport class SecurityModule { }\n","// export * from './types';\nexport * from './user';\nexport * from './user-store';\nexport * from './claim.directive';\nexport * from './guest-user.directive';\nexport * from './security.module';\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserStore"],"mappings":"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"}
|
package/localization/index.d.ts
CHANGED
|
@@ -133,7 +133,7 @@ declare class Locale {
|
|
|
133
133
|
* @param fallbackKey
|
|
134
134
|
* @returns The translated string or the enum value itself if not found
|
|
135
135
|
*/
|
|
136
|
-
translateEnum(enumName: string, enumValue: string | number | null | undefined,
|
|
136
|
+
translateEnum(enumName: string, enumValue: string | number | null | undefined, fallback?: string): string | undefined;
|
|
137
137
|
/**
|
|
138
138
|
* Translates a form validation error
|
|
139
139
|
* @param errorKey The key of the error to translate
|
|
@@ -189,7 +189,7 @@ declare class TranslateEnumPipe implements PipeTransform {
|
|
|
189
189
|
* @param fallbackKey
|
|
190
190
|
* @returns
|
|
191
191
|
*/
|
|
192
|
-
transform(enumValue: string | number | null | undefined, enumName: string,
|
|
192
|
+
transform(enumValue: string | number | null | undefined, enumName: string, fallback?: string): any;
|
|
193
193
|
static ɵfac: i0.ɵɵFactoryDeclaration<TranslateEnumPipe, never>;
|
|
194
194
|
static ɵpipe: i0.ɵɵPipeDeclaration<TranslateEnumPipe, "ng0TranslateEnum", true>;
|
|
195
195
|
}
|
|
@@ -232,7 +232,7 @@ declare class LocalizeEnumPipe implements PipeTransform {
|
|
|
232
232
|
* @param fallbackKey
|
|
233
233
|
* @returns
|
|
234
234
|
*/
|
|
235
|
-
transform(enumValue: string | number | null | undefined, enumName: string,
|
|
235
|
+
transform(enumValue: string | number | null | undefined, enumName: string, fallback?: string): any;
|
|
236
236
|
static ɵfac: i0.ɵɵFactoryDeclaration<LocalizeEnumPipe, never>;
|
|
237
237
|
static ɵpipe: i0.ɵɵPipeDeclaration<LocalizeEnumPipe, "ng0LocalizeEnum", true>;
|
|
238
238
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bootkit/ng0",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.15",
|
|
4
4
|
"description": "Angular+Bootstrap Component Library",
|
|
5
5
|
"homepage": "https://bootkitlib.github.io/",
|
|
6
6
|
"author": "BootKit",
|
|
@@ -35,22 +35,22 @@
|
|
|
35
35
|
"types": "./index.d.ts",
|
|
36
36
|
"default": "./fesm2022/bootkit-ng0.mjs"
|
|
37
37
|
},
|
|
38
|
-
"./
|
|
39
|
-
"types": "./
|
|
40
|
-
"default": "./fesm2022/bootkit-ng0-
|
|
38
|
+
"./data": {
|
|
39
|
+
"types": "./data/index.d.ts",
|
|
40
|
+
"default": "./fesm2022/bootkit-ng0-data.mjs"
|
|
41
41
|
},
|
|
42
42
|
"./date": {
|
|
43
43
|
"types": "./date/index.d.ts",
|
|
44
44
|
"default": "./fesm2022/bootkit-ng0-date.mjs"
|
|
45
45
|
},
|
|
46
|
+
"./common": {
|
|
47
|
+
"types": "./common/index.d.ts",
|
|
48
|
+
"default": "./fesm2022/bootkit-ng0-common.mjs"
|
|
49
|
+
},
|
|
46
50
|
"./file": {
|
|
47
51
|
"types": "./file/index.d.ts",
|
|
48
52
|
"default": "./fesm2022/bootkit-ng0-file.mjs"
|
|
49
53
|
},
|
|
50
|
-
"./data": {
|
|
51
|
-
"types": "./data/index.d.ts",
|
|
52
|
-
"default": "./fesm2022/bootkit-ng0-data.mjs"
|
|
53
|
-
},
|
|
54
54
|
"./form": {
|
|
55
55
|
"types": "./form/index.d.ts",
|
|
56
56
|
"default": "./fesm2022/bootkit-ng0-form.mjs"
|