@bitblit/ngx-acute-common 5.0.514-alpha → 5.0.516-alpha

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.
Files changed (29) hide show
  1. package/lib/esm2022/index.d.ts +18 -0
  2. package/lib/esm2022/ngx-acute-common.mjs +514 -0
  3. package/lib/esm2022/ngx-acute-common.mjs.map +1 -0
  4. package/package.json +5 -10
  5. package/lib/index.d.ts +0 -2
  6. package/lib/my-angular-library.cjs.js +0 -7
  7. package/lib/my-angular-library.cjs.js.map +0 -1
  8. package/lib/my-angular-library.esm.js +0 -7
  9. package/lib/my-angular-library.esm.js.map +0 -1
  10. package/lib/my-angular-library.umd.js +0 -7
  11. package/lib/my-angular-library.umd.js.map +0 -1
  12. /package/lib/{build → esm2022/build}/ngx-acute-common-info.d.ts +0 -0
  13. /package/lib/{components → esm2022/components}/dialogs/alert/alert.component.d.ts +0 -0
  14. /package/lib/{components → esm2022/components}/dialogs/block-ui/block-ui.component.d.ts +0 -0
  15. /package/lib/{model → esm2022/model}/google-analytics-config.d.ts +0 -0
  16. /package/lib/{pipes → esm2022/pipes}/capitalize.pipe.d.ts +0 -0
  17. /package/lib/{pipes → esm2022/pipes}/dollar-formatted.pipe.d.ts +0 -0
  18. /package/lib/{pipes → esm2022/pipes}/map-values.pipe.d.ts +0 -0
  19. /package/lib/{pipes → esm2022/pipes}/number-with-commas.pipe.d.ts +0 -0
  20. /package/lib/{pipes → esm2022/pipes}/order-by.pipe.d.ts +0 -0
  21. /package/lib/{pipes → esm2022/pipes}/percent-formatted.pipe.d.ts +0 -0
  22. /package/lib/{pipes → esm2022/pipes}/plural.pipe.d.ts +0 -0
  23. /package/lib/{pipes → esm2022/pipes}/round.pipe.d.ts +0 -0
  24. /package/lib/{pipes → esm2022/pipes}/time-ago-formatted.pipe.d.ts +0 -0
  25. /package/lib/{pipes → esm2022/pipes}/timing.pipe.d.ts +0 -0
  26. /package/lib/{services → esm2022/services}/google-analytics.service.d.ts +0 -0
  27. /package/lib/{services → esm2022/services}/graphql-query.service.d.ts +0 -0
  28. /package/lib/{services → esm2022/services}/local-storage.service.d.ts +0 -0
  29. /package/lib/{services → esm2022/services}/window-ref.service.d.ts +0 -0
@@ -0,0 +1,18 @@
1
+ export * from './build/ngx-acute-common-info';
2
+ export * from './components/dialogs/alert/alert.component';
3
+ export * from './components/dialogs/block-ui/block-ui.component';
4
+ export * from './model/google-analytics-config';
5
+ export * from './pipes/capitalize.pipe';
6
+ export * from './pipes/dollar-formatted.pipe';
7
+ export * from './pipes/map-values.pipe';
8
+ export * from './pipes/number-with-commas.pipe';
9
+ export * from './pipes/order-by.pipe';
10
+ export * from './pipes/percent-formatted.pipe';
11
+ export * from './pipes/plural.pipe';
12
+ export * from './pipes/round.pipe';
13
+ export * from './pipes/time-ago-formatted.pipe';
14
+ export * from './pipes/timing.pipe';
15
+ export * from './services/google-analytics.service';
16
+ export * from './services/graphql-query.service';
17
+ export * from './services/local-storage.service';
18
+ export * from './services/window-ref.service';
@@ -0,0 +1,514 @@
1
+ import { Component, Pipe, Injectable } from '@angular/core';
2
+ import { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';
3
+ import { Logger } from '@bitblit/ratchet-common/logger/logger';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { NgIf, AsyncPipe } from '@angular/common';
6
+ import { ProgressSpinnerModule } from 'primeng/progressspinner';
7
+ import { CurrencyRatchet } from '@bitblit/ratchet-common/lang/currency-ratchet';
8
+ import { NumberRatchet } from '@bitblit/ratchet-common/lang/number-ratchet';
9
+ import { DurationRatchet } from '@bitblit/ratchet-common/lang/duration-ratchet';
10
+ import { NavigationEnd, Router } from '@angular/router';
11
+ import { MessageService } from 'primeng/api';
12
+ import { GraphqlRatchet } from '@bitblit/ratchet-graphql/graphql/graphql-ratchet';
13
+ import { AuthorizationStyle } from '@bitblit/ratchet-graphql/graphql/authorization-style';
14
+
15
+ class NgxAcuteCommonInfo {
16
+ constructor() { }
17
+ static buildInformation() {
18
+ const val = {
19
+ version: 'LOCAL-SNAPSHOT',
20
+ hash: 'LOCAL-HASH',
21
+ branch: 'LOCAL-BRANCH',
22
+ tag: 'LOCAL-TAG',
23
+ timeBuiltISO: 'LOCAL-TIME-ISO',
24
+ notes: 'LOCAL-NOTES',
25
+ };
26
+ return val;
27
+ }
28
+ }
29
+
30
+ /******************************************************************************
31
+ Copyright (c) Microsoft Corporation.
32
+
33
+ Permission to use, copy, modify, and/or distribute this software for any
34
+ purpose with or without fee is hereby granted.
35
+
36
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
37
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
38
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
39
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
40
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
41
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
42
+ PERFORMANCE OF THIS SOFTWARE.
43
+ ***************************************************************************** */
44
+ /* global Reflect, Promise, SuppressedError, Symbol */
45
+
46
+
47
+ function __decorate(decorators, target, key, desc) {
48
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
51
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
52
+ }
53
+
54
+ function __metadata(metadataKey, metadataValue) {
55
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
56
+ }
57
+
58
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
59
+ var e = new Error(message);
60
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
61
+ };
62
+
63
+ var AlertComponent_1;
64
+ let AlertComponent = AlertComponent_1 = class AlertComponent {
65
+ dialogService;
66
+ cfg;
67
+ ref;
68
+ constructor(dialogService, cfg, ref) {
69
+ this.dialogService = dialogService;
70
+ this.cfg = cfg;
71
+ this.ref = ref;
72
+ Logger.info('Creating with %j', this.cfg);
73
+ }
74
+ static showAlert(dialogSvc, message, title = 'Alert') {
75
+ const dlg = dialogSvc.open(AlertComponent_1, {
76
+ data: {
77
+ message: message instanceof BehaviorSubject ? message : new BehaviorSubject(message),
78
+ },
79
+ header: title,
80
+ });
81
+ return dlg;
82
+ }
83
+ };
84
+ AlertComponent = AlertComponent_1 = __decorate([
85
+ Component({
86
+ selector: 'ngx-acute-common-alert',
87
+ template: '<div><pre>{{cfg.data.message | async}}</pre></div>',
88
+ }),
89
+ __metadata("design:paramtypes", [DialogService,
90
+ DynamicDialogConfig,
91
+ DynamicDialogRef])
92
+ ], AlertComponent);
93
+
94
+ var BlockUiComponent_1;
95
+ let BlockUiComponent = BlockUiComponent_1 = class BlockUiComponent {
96
+ dialogService;
97
+ cfg;
98
+ constructor(dialogService, cfg) {
99
+ this.dialogService = dialogService;
100
+ this.cfg = cfg;
101
+ }
102
+ static createUiBlock(dialogService, message = 'Please wait...', subMessage) {
103
+ const dlg = dialogService.open(BlockUiComponent_1, {
104
+ closable: false,
105
+ modal: true,
106
+ data: {
107
+ message: message instanceof BehaviorSubject ? message : new BehaviorSubject(message),
108
+ subMessage: subMessage,
109
+ },
110
+ });
111
+ return dlg;
112
+ }
113
+ static async runPromiseWithUiBlock(dialogService, prom, message = 'Please wait...', subMessage) {
114
+ const dlg = dialogService.open(BlockUiComponent_1, {
115
+ closable: false,
116
+ modal: true,
117
+ data: {
118
+ message: message instanceof BehaviorSubject ? message : new BehaviorSubject(message),
119
+ subMessage: subMessage,
120
+ },
121
+ });
122
+ try {
123
+ const rval = await prom;
124
+ dlg?.close(rval);
125
+ Logger.info('Blockui - Received %j - closing blocker ui and returning', rval);
126
+ return rval;
127
+ }
128
+ catch (err) {
129
+ Logger.error('Caught error inside block ui dialog : %s - rethrowing', err, err);
130
+ dlg?.close();
131
+ throw err;
132
+ }
133
+ }
134
+ };
135
+ BlockUiComponent = BlockUiComponent_1 = __decorate([
136
+ Component({
137
+ selector: 'ngx-acute-common-block-ui',
138
+ template: `<div>
139
+ <div style="display: flex; flex-direction: column; justify-content: center">
140
+ <h4>{{cfg.data.message | async}}</h4>
141
+ <p-progressSpinner styleClass="w-2rem h-2rem" strokeWidth="5" fill="var(--surface-ground)" animationDuration=".8s"></p-progressSpinner>
142
+ <div *ngIf="cfg.data.subMessage">
143
+ {{cfg.data.subMessage}}
144
+ </div>
145
+ </div>
146
+ </div>
147
+ `,
148
+ standalone: true,
149
+ imports: [NgIf, AsyncPipe, ProgressSpinnerModule]
150
+ }),
151
+ __metadata("design:paramtypes", [DialogService,
152
+ DynamicDialogConfig])
153
+ ], BlockUiComponent);
154
+
155
+ let CapitalizePipe = class CapitalizePipe {
156
+ transform(input) {
157
+ return input && input.length
158
+ ? (input.charAt(0).toUpperCase() + input.slice(1).toLowerCase())
159
+ : input;
160
+ }
161
+ };
162
+ CapitalizePipe = __decorate([
163
+ Pipe({ name: 'acuteCapitalize', standalone: true })
164
+ ], CapitalizePipe);
165
+
166
+ let DollarFormattedPipe = class DollarFormattedPipe {
167
+ transform(input) {
168
+ const rval = input === null || input === undefined
169
+ ? 'Null'
170
+ : CurrencyRatchet.dollarFormat(input);
171
+ return rval;
172
+ }
173
+ };
174
+ DollarFormattedPipe = __decorate([
175
+ Pipe({ name: 'acuteDollars', standalone: true })
176
+ ], DollarFormattedPipe);
177
+
178
+ let MapValuesPipe = class MapValuesPipe {
179
+ transform(value, args) {
180
+ const returnArray = [];
181
+ for (const k of Object.keys(value)) {
182
+ returnArray.push({
183
+ key: k,
184
+ val: value[k],
185
+ });
186
+ }
187
+ Logger.info('Map values : %j : %j', returnArray, args);
188
+ return returnArray;
189
+ }
190
+ };
191
+ MapValuesPipe = __decorate([
192
+ Pipe({ name: 'acuteMapValues', standalone: true })
193
+ ], MapValuesPipe);
194
+
195
+ let NumberWithCommasPipe = class NumberWithCommasPipe {
196
+ transform(input) {
197
+ return new Intl.NumberFormat().format(input);
198
+ }
199
+ };
200
+ NumberWithCommasPipe = __decorate([
201
+ Pipe({ name: 'acuteNumberWithCommas', standalone: true })
202
+ ], NumberWithCommasPipe);
203
+
204
+ var OrderByPipe_1;
205
+ let OrderByPipe = OrderByPipe_1 = class OrderByPipe {
206
+ static _orderByComparator(a, b) {
207
+ if (isNaN(parseFloat(a)) || !isFinite(a) || isNaN(parseFloat(b)) || !isFinite(b)) {
208
+ if (String(a).toLowerCase() < String(b).toLowerCase())
209
+ return -1;
210
+ if (String(a).toLowerCase() > String(b).toLowerCase())
211
+ return 1;
212
+ }
213
+ else {
214
+ if (parseFloat(a) < parseFloat(b))
215
+ return -1;
216
+ if (parseFloat(a) > parseFloat(b))
217
+ return 1;
218
+ }
219
+ return 0;
220
+ }
221
+ transform(input, [config = '+']) {
222
+ if (!Array.isArray(input))
223
+ return input;
224
+ if (!Array.isArray(config) || (Array.isArray(config) && config.length == 1)) {
225
+ const propertyToCheck = !Array.isArray(config) ? config : config[0];
226
+ const desc = propertyToCheck.substr(0, 1) == '-';
227
+ if (!propertyToCheck || propertyToCheck == '-' || propertyToCheck == '+') {
228
+ return !desc ? input.sort() : input.sort().reverse();
229
+ }
230
+ else {
231
+ const property = propertyToCheck.substr(0, 1) == '+' || propertyToCheck.substr(0, 1) == '-' ? propertyToCheck.substr(1) : propertyToCheck;
232
+ return input.sort(function (a, b) {
233
+ return !desc
234
+ ? OrderByPipe_1._orderByComparator(a[property], b[property])
235
+ : -OrderByPipe_1._orderByComparator(a[property], b[property]);
236
+ });
237
+ }
238
+ }
239
+ else {
240
+ return input.sort(function (a, b) {
241
+ for (let i = 0; i < config.length; i++) {
242
+ const desc = config[i].substr(0, 1) == '-';
243
+ const property = config[i].substr(0, 1) == '+' || config[i].substr(0, 1) == '-' ? config[i].substr(1) : config[i];
244
+ const comparison = !desc
245
+ ? OrderByPipe_1._orderByComparator(a[property], b[property])
246
+ : -OrderByPipe_1._orderByComparator(a[property], b[property]);
247
+ if (comparison != 0)
248
+ return comparison;
249
+ }
250
+ return 0;
251
+ });
252
+ }
253
+ }
254
+ };
255
+ OrderByPipe = OrderByPipe_1 = __decorate([
256
+ Pipe({ name: 'acuteOrderBy', pure: false, standalone: true })
257
+ ], OrderByPipe);
258
+
259
+ let PercentFormattedPipe = class PercentFormattedPipe {
260
+ transform(input) {
261
+ return NumberRatchet.pctFormatted(input);
262
+ }
263
+ };
264
+ PercentFormattedPipe = __decorate([
265
+ Pipe({ name: 'acutePercent', standalone: true })
266
+ ], PercentFormattedPipe);
267
+
268
+ let PluralPipe = class PluralPipe {
269
+ transform(input, label, pluralLabel = '') {
270
+ input = input || 0;
271
+ return input === 1
272
+ ? `${input} ${label}`
273
+ : pluralLabel
274
+ ? `${input} ${pluralLabel}`
275
+ : `${input} ${label}s`;
276
+ }
277
+ };
278
+ PluralPipe = __decorate([
279
+ Pipe({ name: 'acutePlural', standalone: true })
280
+ ], PluralPipe);
281
+
282
+ let RoundPipe = class RoundPipe {
283
+ transform(input) {
284
+ return Math.round(input);
285
+ }
286
+ };
287
+ RoundPipe = __decorate([
288
+ Pipe({ name: 'acuteRound', standalone: true })
289
+ ], RoundPipe);
290
+
291
+ let TimeAgoFormattedPipe = class TimeAgoFormattedPipe {
292
+ transform(input) {
293
+ return DurationRatchet.formatMsDuration(new Date().getTime() - NumberRatchet.safeNumber(input));
294
+ }
295
+ };
296
+ TimeAgoFormattedPipe = __decorate([
297
+ Pipe({ name: 'acuteTimeAgo', standalone: true })
298
+ ], TimeAgoFormattedPipe);
299
+
300
+ let TimingPipe = class TimingPipe {
301
+ transform(time) {
302
+ if (time) {
303
+ const minutes = Math.floor(time / 60);
304
+ const seconds = Math.floor(time % 60);
305
+ return `${this.initZero(minutes)}${minutes}:${this.initZero(seconds)}${seconds}`;
306
+ }
307
+ return '00:00';
308
+ }
309
+ initZero(time) {
310
+ return time < 10 ? '0' : '';
311
+ }
312
+ };
313
+ TimingPipe = __decorate([
314
+ Pipe({ name: 'acuteTiming', standalone: true })
315
+ ], TimingPipe);
316
+
317
+ var GoogleAnalyticsService_1;
318
+ let GoogleAnalyticsService = class GoogleAnalyticsService {
319
+ static { GoogleAnalyticsService_1 = this; }
320
+ router;
321
+ static IS_PROD = true;
322
+ constructor(router) {
323
+ this.router = router;
324
+ }
325
+ initialize() {
326
+ this.onRouteChange();
327
+ try {
328
+ const url = 'https://www.googletagmanager.com/gtag/js?id=';
329
+ const gTagScript = document.createElement('script');
330
+ gTagScript.async = true;
331
+ const tagId = GoogleAnalyticsService_1.IS_PROD ? 'G-7D5BBK4K8X' : null;
332
+ gTagScript.src = `${url}${tagId}`;
333
+ document.head.appendChild(gTagScript);
334
+ const dataLayerScript = document.createElement('script');
335
+ dataLayerScript.innerHTML = `
336
+ window.dataLayer = window.dataLayer || [];
337
+ function gtag(){dataLayer.push(arguments);}
338
+ gtag('js', new Date());
339
+ gtag('config', '${tagId}', {'send_page_view': false});`;
340
+ document.head.appendChild(dataLayerScript);
341
+ }
342
+ catch (e) {
343
+ Logger.error('Error adding Google Analytics', e, e);
344
+ }
345
+ }
346
+ onRouteChange() {
347
+ const tagId = GoogleAnalyticsService_1.IS_PROD ? 'G-7D5BBK4K8X' : null;
348
+ this.router.events.subscribe((event) => {
349
+ if (event instanceof NavigationEnd) {
350
+ gtag('config', tagId, {
351
+ page_path: event.urlAfterRedirects,
352
+ });
353
+ Logger.info('Sending Google Analytics tracking for: ', event.urlAfterRedirects);
354
+ Logger.info('Google Analytics property ID: ', tagId);
355
+ }
356
+ });
357
+ }
358
+ event(action, eventCategory, eventLabel, value) {
359
+ gtag('event', action, {
360
+ ...(eventCategory && { event_category: eventCategory }),
361
+ ...(eventLabel && { event_label: eventLabel }),
362
+ ...(value && { value: value }),
363
+ });
364
+ }
365
+ };
366
+ GoogleAnalyticsService = GoogleAnalyticsService_1 = __decorate([
367
+ Injectable({
368
+ providedIn: 'root',
369
+ }),
370
+ __metadata("design:paramtypes", [Router])
371
+ ], GoogleAnalyticsService);
372
+
373
+ let GraphqlQueryService = class GraphqlQueryService {
374
+ graphqlRatchet;
375
+ dialogService;
376
+ messageService;
377
+ constructor(graphqlRatchet, dialogService, messageService) {
378
+ this.graphqlRatchet = graphqlRatchet;
379
+ this.dialogService = dialogService;
380
+ this.messageService = messageService;
381
+ }
382
+ async executeQuery(queryName, variables, authStyle = AuthorizationStyle.TokenRequired) {
383
+ let rval = null;
384
+ this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });
385
+ Logger.info('eq: %j -: %s --: %s ---: %j', queryName, variables);
386
+ try {
387
+ rval = await this.graphqlRatchet.executeQuery(queryName, variables, authStyle);
388
+ }
389
+ catch (err) {
390
+ Logger.error('Fail : %s', err);
391
+ }
392
+ finally {
393
+ this.messageService.clear();
394
+ }
395
+ return rval;
396
+ }
397
+ async executeQueryWithBlock(blockMessage, queryName, variables, authStyle = AuthorizationStyle.TokenRequired) {
398
+ let rval = null;
399
+ this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });
400
+ Logger.info('eqb: %j -: %s --: %s ---: %j', blockMessage, queryName, variables);
401
+ try {
402
+ rval = await BlockUiComponent.runPromiseWithUiBlock(this.dialogService, this.graphqlRatchet.executeQuery(queryName, variables, authStyle), blockMessage);
403
+ }
404
+ catch (err) {
405
+ Logger.error('Fail : %s', err);
406
+ }
407
+ finally {
408
+ this.messageService.clear();
409
+ }
410
+ return rval;
411
+ }
412
+ async executeMutate(queryName, variables, authStyle = AuthorizationStyle.TokenRequired) {
413
+ let rval = null;
414
+ this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });
415
+ Logger.info('eq: %j -: %s --: %s ---: %j', queryName, variables);
416
+ try {
417
+ rval = await this.graphqlRatchet.executeMutate(queryName, variables, authStyle);
418
+ }
419
+ catch (err) {
420
+ Logger.error('Fail : %s', err);
421
+ }
422
+ finally {
423
+ this.messageService.clear();
424
+ }
425
+ return rval;
426
+ }
427
+ async executeMutateWithBlock(blockMessage, queryName, variables, authStyle = AuthorizationStyle.TokenRequired) {
428
+ let rval = null;
429
+ this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });
430
+ try {
431
+ rval = await BlockUiComponent.runPromiseWithUiBlock(this.dialogService, this.graphqlRatchet.executeMutate(queryName, variables, authStyle), blockMessage);
432
+ }
433
+ catch (err) {
434
+ Logger.error('Fail : %s', err);
435
+ }
436
+ finally {
437
+ this.messageService.clear();
438
+ }
439
+ return rval;
440
+ }
441
+ };
442
+ GraphqlQueryService = __decorate([
443
+ Injectable({ providedIn: 'root' }),
444
+ __metadata("design:paramtypes", [GraphqlRatchet,
445
+ DialogService,
446
+ MessageService])
447
+ ], GraphqlQueryService);
448
+
449
+ var LocalStorageService_1;
450
+ function storageFinder() {
451
+ if (typeof window !== 'undefined') {
452
+ if (typeof window.localStorage !== 'undefined') {
453
+ return window.localStorage;
454
+ }
455
+ }
456
+ return null;
457
+ }
458
+ let LocalStorageService = class LocalStorageService {
459
+ static { LocalStorageService_1 = this; }
460
+ static APP_NAME = 'Scribe';
461
+ get storageReady() {
462
+ return !!storageFinder();
463
+ }
464
+ clear() {
465
+ this.update({});
466
+ }
467
+ update(value) {
468
+ if (this.storageReady) {
469
+ const toSave = value || {};
470
+ const saveString = JSON.stringify(toSave);
471
+ Logger.info('Updating storage to %s', saveString);
472
+ localStorage.setItem(LocalStorageService_1.APP_NAME, saveString);
473
+ return toSave;
474
+ }
475
+ else {
476
+ Logger.info('Skipping update - storage not ready : %j', value);
477
+ return {};
478
+ }
479
+ }
480
+ fetch() {
481
+ if (this.storageReady) {
482
+ const loadString = localStorage.getItem(LocalStorageService_1.APP_NAME) || '{}';
483
+ const rval = JSON.parse(loadString);
484
+ return rval;
485
+ }
486
+ else {
487
+ Logger.info('Skipping fetch - storage not ready');
488
+ return {};
489
+ }
490
+ }
491
+ };
492
+ LocalStorageService = LocalStorageService_1 = __decorate([
493
+ Injectable({ providedIn: 'root' })
494
+ ], LocalStorageService);
495
+
496
+ function getWindow() {
497
+ if (typeof window !== 'undefined') {
498
+ return window;
499
+ }
500
+ else {
501
+ throw new Error('Cannot find window object - running in SSR?');
502
+ }
503
+ }
504
+ let WindowRefService = class WindowRefService {
505
+ nativeWindow() {
506
+ return getWindow();
507
+ }
508
+ };
509
+ WindowRefService = __decorate([
510
+ Injectable({ providedIn: 'root' })
511
+ ], WindowRefService);
512
+
513
+ export { AlertComponent, BlockUiComponent, CapitalizePipe, DollarFormattedPipe, GoogleAnalyticsService, GraphqlQueryService, LocalStorageService, MapValuesPipe, NgxAcuteCommonInfo, NumberWithCommasPipe, OrderByPipe, PercentFormattedPipe, PluralPipe, RoundPipe, TimeAgoFormattedPipe, TimingPipe, WindowRefService, storageFinder };
514
+ //# sourceMappingURL=ngx-acute-common.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-acute-common.mjs","sources":["../../src/build/ngx-acute-common-info.ts","../../src/components/dialogs/alert/alert.component.ts","../../src/components/dialogs/block-ui/block-ui.component.ts","../../src/pipes/capitalize.pipe.ts","../../src/pipes/dollar-formatted.pipe.ts","../../src/pipes/map-values.pipe.ts","../../src/pipes/number-with-commas.pipe.ts","../../src/pipes/order-by.pipe.ts","../../src/pipes/percent-formatted.pipe.ts","../../src/pipes/plural.pipe.ts","../../src/pipes/round.pipe.ts","../../src/pipes/time-ago-formatted.pipe.ts","../../src/pipes/timing.pipe.ts","../../src/services/google-analytics.service.ts","../../src/services/graphql-query.service.ts","../../src/services/local-storage.service.ts","../../src/services/window-ref.service.ts"],"sourcesContent":["import { BuildInformation } from '@bitblit/ratchet-common/build/build-information';\n\nexport class NgxAcuteCommonInfo {\n // Empty constructor prevents instantiation\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private constructor() {}\n\n public static buildInformation(): BuildInformation {\n const val: BuildInformation = {\n version: 'LOCAL-SNAPSHOT',\n hash: 'LOCAL-HASH',\n branch: 'LOCAL-BRANCH',\n tag: 'LOCAL-TAG',\n timeBuiltISO: 'LOCAL-TIME-ISO',\n notes: 'LOCAL-NOTES',\n };\n return val;\n }\n}\n","import {Component} from '@angular/core';\nimport {DialogService, DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog';\nimport {Logger} from '@bitblit/ratchet-common/logger/logger';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'ngx-acute-common-alert',\n template: '<div><pre>{{cfg.data.message | async}}</pre></div>',\n})\nexport class AlertComponent {\n constructor(\n private dialogService: DialogService,\n public cfg: DynamicDialogConfig,\n protected ref: DynamicDialogRef,\n ) {\n Logger.info('Creating with %j', this.cfg);\n }\n\n public static showAlert(dialogSvc: DialogService, message: BehaviorSubject<string> | string, title: string = 'Alert'): DynamicDialogRef {\n const dlg: DynamicDialogRef = dialogSvc.open(AlertComponent, {\n //disableClose: true,\n //autoFocus: true,\n data: {\n message: message instanceof BehaviorSubject ? message : new BehaviorSubject<string>(message),\n },\n header: title,\n });\n return dlg;\n }\n}\n","import {Component} from '@angular/core';\nimport {DialogService, DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog';\nimport {BehaviorSubject} from 'rxjs';\nimport {Logger} from '@bitblit/ratchet-common/logger/logger';\nimport {AsyncPipe, NgIf} from \"@angular/common\";\nimport {ProgressSpinnerModule} from \"primeng/progressspinner\";\n\n@Component({\n selector: 'ngx-acute-common-block-ui',\n templateUrl: './block-ui.component.html',\n standalone: true,\n imports: [NgIf, AsyncPipe, ProgressSpinnerModule]\n})\nexport class BlockUiComponent {\n constructor(\n private dialogService: DialogService,\n public cfg: DynamicDialogConfig,\n ) {}\n\n public static createUiBlock(\n dialogService: DialogService,\n message: BehaviorSubject<string> | string = 'Please wait...',\n subMessage?: string,\n ): DynamicDialogRef {\n const dlg: DynamicDialogRef = dialogService.open(BlockUiComponent, {\n closable: false,\n modal: true,\n data: {\n message: message instanceof BehaviorSubject ? message : new BehaviorSubject<string>(message),\n subMessage: subMessage,\n },\n });\n return dlg;\n }\n\n public static async runPromiseWithUiBlock<T>(\n dialogService: DialogService,\n prom: Promise<T>,\n message: BehaviorSubject<string> | string = 'Please wait...',\n subMessage?: string,\n ): Promise<T> {\n const dlg = dialogService.open(BlockUiComponent, {\n closable: false,\n modal: true,\n data: {\n message: message instanceof BehaviorSubject ? message : new BehaviorSubject<string>(message),\n subMessage: subMessage,\n },\n });\n\n try {\n const rval: T = await prom;\n dlg?.close(rval); // If it is still open, close it\n Logger.info('Blockui - Received %j - closing blocker ui and returning', rval);\n return rval;\n } catch (err) {\n Logger.error('Caught error inside block ui dialog : %s - rethrowing', err, err);\n dlg?.close(); // If it is still open, close it\n throw err;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'acuteCapitalize' , standalone: true})\nexport class CapitalizePipe implements PipeTransform {\n\n transform(input: string): string {\n return input && input.length\n ? (input.charAt(0).toUpperCase() + input.slice(1).toLowerCase())\n : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {CurrencyRatchet} from \"@bitblit/ratchet-common/lang/currency-ratchet\";\n\n@Pipe({ name: 'acuteDollars', standalone: true })\nexport class DollarFormattedPipe implements PipeTransform {\n transform(input: number): string {\n const rval: string =\n input === null || input === undefined\n ? 'Null'\n : CurrencyRatchet.dollarFormat(input)\n return rval;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Logger } from '@bitblit/ratchet-common/logger/logger';\n\n@Pipe({ name: 'acuteMapValues', standalone: true })\nexport class MapValuesPipe implements PipeTransform {\n transform(value: any, args?: any[]): any[] {\n const returnArray = [];\n\n for (const k of Object.keys(value)) {\n returnArray.push({\n key: k,\n val: value[k],\n });\n }\n\n Logger.info('Map values : %j : %j', returnArray, args);\n return returnArray;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'acuteNumberWithCommas' , standalone: true})\nexport class NumberWithCommasPipe implements PipeTransform {\n\n transform(input: number): string {\n return new Intl.NumberFormat().format(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'acuteOrderBy', pure: false, standalone: true })\nexport class OrderByPipe implements PipeTransform {\n static _orderByComparator(a: any, b: any): number {\n if (isNaN(parseFloat(a)) || !isFinite(a) || isNaN(parseFloat(b)) || !isFinite(b)) {\n //Isn't a number so lowercase the string to properly compare\n if (String(a).toLowerCase() < String(b).toLowerCase()) return -1;\n if (String(a).toLowerCase() > String(b).toLowerCase()) return 1;\n } else {\n //Parse strings as numbers to compare properly\n if (parseFloat(a) < parseFloat(b)) return -1;\n if (parseFloat(a) > parseFloat(b)) return 1;\n }\n\n return 0; //equal each other\n }\n\n transform(input: any, [config = '+']): any {\n if (!Array.isArray(input)) return input;\n\n if (!Array.isArray(config) || (Array.isArray(config) && config.length == 1)) {\n const propertyToCheck: string = !Array.isArray(config) ? config : config[0];\n const desc = propertyToCheck.substr(0, 1) == '-';\n\n //Basic array\n if (!propertyToCheck || propertyToCheck == '-' || propertyToCheck == '+') {\n return !desc ? input.sort() : input.sort().reverse();\n } else {\n const property: string =\n propertyToCheck.substr(0, 1) == '+' || propertyToCheck.substr(0, 1) == '-' ? propertyToCheck.substr(1) : propertyToCheck;\n\n return input.sort(function (a: any, b: any) {\n return !desc\n ? OrderByPipe._orderByComparator(a[property], b[property])\n : -OrderByPipe._orderByComparator(a[property], b[property]);\n });\n }\n } else {\n //Loop over property of the array in order and sort\n return input.sort(function (a: any, b: any) {\n for (let i: number = 0; i < config.length; i++) {\n const desc = config[i].substr(0, 1) == '-';\n const property = config[i].substr(0, 1) == '+' || config[i].substr(0, 1) == '-' ? config[i].substr(1) : config[i];\n\n const comparison = !desc\n ? OrderByPipe._orderByComparator(a[property], b[property])\n : -OrderByPipe._orderByComparator(a[property], b[property]);\n\n //Don't return 0 yet in case of needing to sort by next property\n if (comparison != 0) return comparison;\n }\n\n return 0; //equal each other\n });\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {NumberRatchet} from \"@bitblit/ratchet-common/lang/number-ratchet\";\n\n@Pipe({ name: 'acutePercent' , standalone: true })\nexport class PercentFormattedPipe implements PipeTransform {\n transform(input: number): string {\n return NumberRatchet.pctFormatted(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'acutePlural' , standalone: true})\nexport class PluralPipe implements PipeTransform {\n\n transform(input: number, label: string, pluralLabel: string = ''): string {\n input = input || 0;\n return input === 1\n ? `${input} ${label}`\n : pluralLabel\n ? `${input} ${pluralLabel}`\n : `${input} ${label}s`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'acuteRound' , standalone: true})\nexport class RoundPipe implements PipeTransform {\n\n transform(input: number): number {\n return Math.round(input);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DurationRatchet} from \"@bitblit/ratchet-common/lang/duration-ratchet\";\nimport {NumberRatchet} from \"@bitblit/ratchet-common/lang/number-ratchet\";\n\n@Pipe({ name: 'acuteTimeAgo' , standalone: true})\nexport class TimeAgoFormattedPipe implements PipeTransform {\n transform(input: number): string {\n return DurationRatchet.formatMsDuration(new Date().getTime() - NumberRatchet.safeNumber(input));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'acuteTiming' , standalone: true})\nexport class TimingPipe implements PipeTransform {\n transform(time: number): string {\n if (time) {\n const minutes = Math.floor(time / 60);\n const seconds = Math.floor(time % 60);\n return `${this.initZero(minutes)}${minutes}:${this.initZero(seconds)}${seconds}`;\n }\n\n return '00:00';\n }\n\n private initZero(time: number): string {\n return time < 10 ? '0' : '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Logger } from '@bitblit/ratchet-common/logger/logger';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ndeclare let gtag: Function;\n\n@Injectable({\n providedIn: 'root',\n})\n// See : https://lumin8media.com/blog/add-google-analytics-angular\nexport class GoogleAnalyticsService {\n private static readonly IS_PROD: boolean = true;\n\n constructor(private router: Router) {}\n\n public initialize() {\n this.onRouteChange();\n\n // dynamically add analytics scripts to document head\n try {\n const url:string = 'https://www.googletagmanager.com/gtag/js?id=';\n const gTagScript = document.createElement('script');\n gTagScript.async = true;\n const tagId: string = GoogleAnalyticsService.IS_PROD ? 'G-7D5BBK4K8X' : null;\n gTagScript.src = `${url}${tagId}`;\n document.head.appendChild(gTagScript);\n\n const dataLayerScript = document.createElement('script');\n dataLayerScript.innerHTML = `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${tagId}', {'send_page_view': false});`;\n document.head.appendChild(dataLayerScript);\n } catch (e) {\n Logger.error('Error adding Google Analytics', e, e);\n }\n }\n\n // track visited routes\n private onRouteChange() {\n const tagId: string = GoogleAnalyticsService.IS_PROD ? 'G-7D5BBK4K8X' : null;\n\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n gtag('config', tagId, {\n page_path: event.urlAfterRedirects,\n });\n\n Logger.info('Sending Google Analytics tracking for: ', event.urlAfterRedirects);\n Logger.info('Google Analytics property ID: ', tagId);\n }\n });\n }\n\n // use gtag.js to send Google Analytics Events\n public event(action: string, eventCategory?: string, eventLabel?: string, value?: string) {\n gtag('event', action, {\n ...(eventCategory && { event_category: eventCategory }),\n ...(eventLabel && { event_label: eventLabel }),\n ...(value && { value: value }),\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { MessageService } from 'primeng/api';\nimport { Logger } from '@bitblit/ratchet-common/logger/logger';\nimport { GraphqlRatchet } from '@bitblit/ratchet-graphql/graphql/graphql-ratchet';\nimport { BlockUiComponent } from \"../components/dialogs/block-ui/block-ui.component\";\nimport {AuthorizationStyle} from \"@bitblit/ratchet-graphql/graphql/authorization-style\";\n\n@Injectable({providedIn: 'root'})\nexport class GraphqlQueryService {\n constructor(\n private graphqlRatchet: GraphqlRatchet,\n private dialogService: DialogService,\n private messageService: MessageService,\n ) {}\n\n public async executeQuery<T>(queryName: string, variables: any, authStyle: AuthorizationStyle = AuthorizationStyle.TokenRequired\n ): Promise<T | null> {\n let rval: T | null = null;\n this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });\n\n Logger.info('eq: %j -: %s --: %s ---: %j', queryName, variables);\n\n try {\n rval = await this.graphqlRatchet.executeQuery<T>(queryName, variables, authStyle);\n } catch (err) {\n Logger.error('Fail : %s', err);\n } finally {\n this.messageService.clear();\n }\n return rval;\n }\n\n public async executeQueryWithBlock<T>(\n blockMessage: string,\n queryName: string,\n variables: any,\n authStyle: AuthorizationStyle = AuthorizationStyle.TokenRequired\n ): Promise<T | null> {\n let rval: T | null = null;\n this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });\n\n Logger.info('eqb: %j -: %s --: %s ---: %j', blockMessage, queryName, variables);\n\n try {\n rval = await BlockUiComponent.runPromiseWithUiBlock<T>(\n this.dialogService,\n this.graphqlRatchet.executeQuery<T>(queryName, variables, authStyle),\n blockMessage,\n );\n } catch (err) {\n Logger.error('Fail : %s', err);\n } finally {\n this.messageService.clear();\n }\n\n return rval;\n }\n\n\n public async executeMutate<T>(queryName: string, variables: any, authStyle: AuthorizationStyle = AuthorizationStyle.TokenRequired\n ): Promise<T | null> {\n let rval: T | null = null;\n this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });\n\n Logger.info('eq: %j -: %s --: %s ---: %j', queryName, variables);\n\n try {\n rval = await this.graphqlRatchet.executeMutate<T>(queryName, variables, authStyle);\n } catch (err) {\n Logger.error('Fail : %s', err);\n } finally {\n this.messageService.clear();\n }\n\n return rval;\n }\n\n public async executeMutateWithBlock<T>(\n blockMessage: string,\n queryName: string,\n variables: any,\n authStyle: AuthorizationStyle = AuthorizationStyle.TokenRequired\n\n ): Promise<T | null> {\n let rval: T | null = null;\n this.messageService.add({ severity: 'info', summary: 'Running query', detail: queryName, life: 3000 });\n\n try {\n rval = await BlockUiComponent.runPromiseWithUiBlock<T>(\n this.dialogService,\n this.graphqlRatchet.executeMutate<T>(queryName, variables, authStyle),\n blockMessage,\n );\n } catch (err) {\n Logger.error('Fail : %s', err);\n } finally {\n this.messageService.clear();\n }\n\n return rval;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Logger } from '@bitblit/ratchet-common/logger/logger';\n\n\nexport function storageFinder(): Storage | null {\n if (typeof window !== 'undefined') {\n if (typeof window.localStorage !=='undefined') {\n return window.localStorage;\n }\n }\n return null;\n}\n\n@Injectable({providedIn: 'root'})\nexport class LocalStorageService<T> {\n private static readonly APP_NAME: string = 'Scribe';\n\n public get storageReady(): boolean {\n return !!storageFinder();\n }\n\n public clear(): void {\n this.update({ } as T );\n }\n\n public update(value: T): T {\n if (this.storageReady) {\n const toSave: T = value || ({} as T);\n const saveString: string = JSON.stringify(toSave);\n Logger.info('Updating storage to %s', saveString);\n localStorage.setItem(LocalStorageService.APP_NAME, saveString);\n return toSave;\n } else {\n Logger.info('Skipping update - storage not ready : %j', value);\n return {} as T;\n }\n }\n\n fetch(): T {\n if (this.storageReady) {\n const loadString: string = localStorage.getItem(LocalStorageService.APP_NAME) || '{}';\n const rval: T = JSON.parse(loadString) as T;\n return rval;\n } else {\n Logger.info('Skipping fetch - storage not ready');\n return {} as T;\n }\n }\n\n}\n","import {Injectable} from '@angular/core';\n\n// Taken from https://juristr.com/blog/2016/09/ng2-get-window-ref/\n// Here to make transition to Angular Universal later easier\n\n/* This interface is optional, showing how you can add strong typings for custom globals.\n// Just use \"Window\" as the type if you don't have custom global stuff\nexport interface ICustomWindow extends Window {\n __custom_global_stuff: string;\n} */\n\nfunction getWindow(): any {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n throw new Error('Cannot find window object - running in SSR?');\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class WindowRefService {\n public nativeWindow(): Window {\n return getWindow();\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAEa,kBAAkB,CAAA;AAG7B,IAAA,WAAA,GAAA,GAAwB;AAEjB,IAAA,OAAO,gBAAgB,GAAA;AAC5B,QAAA,MAAM,GAAG,GAAqB;AAC5B,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,YAAY,EAAE,gBAAgB;AAC9B,YAAA,KAAK,EAAE,aAAa;SACrB,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;KACZ;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTY,IAAA,cAAc,GAApB,gBAAA,GAAA,MAAM,cAAc,CAAA;AAEf,IAAA,aAAA,CAAA;AACD,IAAA,GAAA,CAAA;AACG,IAAA,GAAA,CAAA;AAHZ,IAAA,WAAA,CACU,aAA4B,EAC7B,GAAwB,EACrB,GAAqB,EAAA;QAFvB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC7B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAqB;QACrB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;QAE/B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3C;IAEM,OAAO,SAAS,CAAC,SAAwB,EAAE,OAAyC,EAAE,QAAgB,OAAO,EAAA;AAClH,QAAA,MAAM,GAAG,GAAqB,SAAS,CAAC,IAAI,CAAC,gBAAc,EAAE;AAG3D,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,OAAO,YAAY,eAAe,GAAG,OAAO,GAAG,IAAI,eAAe,CAAS,OAAO,CAAC;AAC7F,aAAA;AACD,YAAA,MAAM,EAAE,KAAK;AACd,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC;KACZ;EACF;AApBY,cAAc,GAAA,gBAAA,GAAA,UAAA,CAAA;AAJ1B,IAAA,SAAS,CAAC;AACT,QAAA,QAAQ,EAAE,wBAAwB;AAClC,QAAA,QAAQ,EAAE,oDAAoD;KAC/D,CAAC;qCAGyB,aAAa;QACxB,mBAAmB;QAChB,gBAAgB,CAAA,CAAA;AAJtB,CAAA,EAAA,cAAc,CAoB1B;;;AChBY,IAAA,gBAAgB,GAAtB,kBAAA,GAAA,MAAM,gBAAgB,CAAA;AAEjB,IAAA,aAAA,CAAA;AACD,IAAA,GAAA,CAAA;IAFT,WACU,CAAA,aAA4B,EAC7B,GAAwB,EAAA;QADvB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC7B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAqB;KAC7B;IAEG,OAAO,aAAa,CACzB,aAA4B,EAC5B,OAA4C,GAAA,gBAAgB,EAC5D,UAAmB,EAAA;AAEnB,QAAA,MAAM,GAAG,GAAqB,aAAa,CAAC,IAAI,CAAC,kBAAgB,EAAE;AACjE,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,OAAO,YAAY,eAAe,GAAG,OAAO,GAAG,IAAI,eAAe,CAAS,OAAO,CAAC;AAC5F,gBAAA,UAAU,EAAE,UAAU;AACvB,aAAA;AACF,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC;KACZ;AAEM,IAAA,aAAa,qBAAqB,CACvC,aAA4B,EAC5B,IAAgB,EAChB,OAAA,GAA4C,gBAAgB,EAC5D,UAAmB,EAAA;AAEnB,QAAA,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,kBAAgB,EAAE;AAC/C,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,OAAO,YAAY,eAAe,GAAG,OAAO,GAAG,IAAI,eAAe,CAAS,OAAO,CAAC;AAC5F,gBAAA,UAAU,EAAE,UAAU;AACvB,aAAA;AACF,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAM,MAAM,IAAI,CAAC;AAC3B,YAAA,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACjB,YAAA,MAAM,CAAC,IAAI,CAAC,0DAA0D,EAAE,IAAI,CAAC,CAAC;AAC9E,YAAA,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,uDAAuD,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAChF,GAAG,EAAE,KAAK,EAAE,CAAC;AACb,YAAA,MAAM,GAAG,CAAC;SACX;KACF;EACF;AAhDY,gBAAgB,GAAA,kBAAA,GAAA,UAAA,CAAA;AAN7B,IAAA,SAAA,CAAA;;;;;;;;;;;;;;KAKE,CAAA;qCAGyB,aAAa;QACxB,mBAAmB,CAAA,CAAA;AAHtB,CAAA,EAAA,gBAAgB,CAgD5B;;AC1DY,IAAA,cAAc,GAApB,MAAM,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM;eACvB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;cAC7D,KAAK,CAAC;KACX;EACF;AAPY,cAAc,GAAA,UAAA,CAAA;IAD1B,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAG,UAAU,EAAE,IAAI,EAAC,CAAC;AACvC,CAAA,EAAA,cAAc,CAO1B;;ACNY,IAAA,mBAAmB,GAAzB,MAAM,mBAAmB,CAAA;AAC9B,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,MAAM,IAAI,GACR,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AACnC,cAAE,MAAM;AACR,cAAE,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AACzC,QAAA,OAAO,IAAI,CAAC;KACb;EACF;AARY,mBAAmB,GAAA,UAAA,CAAA;IAD/B,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACpC,CAAA,EAAA,mBAAmB,CAQ/B;;ACRY,IAAA,aAAa,GAAnB,MAAM,aAAa,CAAA;IACxB,SAAS,CAAC,KAAU,EAAE,IAAY,EAAA;QAChC,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClC,WAAW,CAAC,IAAI,CAAC;AACf,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACd,aAAA,CAAC,CAAC;SACJ;QAED,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACvD,QAAA,OAAO,WAAW,CAAC;KACpB;EACF;AAdY,aAAa,GAAA,UAAA,CAAA;IADzB,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACtC,CAAA,EAAA,aAAa,CAczB;;ACfY,IAAA,oBAAoB,GAA1B,MAAM,oBAAoB,CAAA;AAE/B,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC9C;EACF;AALY,oBAAoB,GAAA,UAAA,CAAA;IADhC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAI,UAAU,EAAE,IAAI,EAAC,CAAC;AAC9C,CAAA,EAAA,oBAAoB,CAKhC;;;ACLY,IAAA,WAAW,GAAjB,aAAA,GAAA,MAAM,WAAW,CAAA;AACtB,IAAA,OAAO,kBAAkB,CAAC,CAAM,EAAE,CAAM,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAEhF,YAAA,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAAE,gBAAA,OAAO,CAAC,CAAC;SACjE;aAAM;YAEL,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC7C,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AAAE,gBAAA,OAAO,CAAC,CAAC;SAC7C;AAED,QAAA,OAAO,CAAC,CAAC;KACV;AAED,IAAA,SAAS,CAAC,KAAU,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;YAC3E,MAAM,eAAe,GAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5E,YAAA,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;YAGjD,IAAI,CAAC,eAAe,IAAI,eAAe,IAAI,GAAG,IAAI,eAAe,IAAI,GAAG,EAAE;AACxE,gBAAA,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;aACtD;iBAAM;AACL,gBAAA,MAAM,QAAQ,GACZ,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;AAE3H,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAM,EAAE,CAAM,EAAA;AACxC,oBAAA,OAAO,CAAC,IAAI;AACV,0BAAE,aAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1D,0BAAE,CAAC,aAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChE,iBAAC,CAAC,CAAC;aACJ;SACF;aAAM;AAEL,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAM,EAAE,CAAM,EAAA;AACxC,gBAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,oBAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;oBAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAElH,MAAM,UAAU,GAAG,CAAC,IAAI;AACtB,0BAAE,aAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1D,0BAAE,CAAC,aAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAG9D,IAAI,UAAU,IAAI,CAAC;AAAE,wBAAA,OAAO,UAAU,CAAC;iBACxC;AAED,gBAAA,OAAO,CAAC,CAAC;AACX,aAAC,CAAC,CAAC;SACJ;KACF;EACF;AAtDY,WAAW,GAAA,aAAA,GAAA,UAAA,CAAA;AADvB,IAAA,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACjD,CAAA,EAAA,WAAW,CAsDvB;;ACrDY,IAAA,oBAAoB,GAA1B,MAAM,oBAAoB,CAAA;AAC/B,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1C;EACF;AAJY,oBAAoB,GAAA,UAAA,CAAA;IADhC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;AACrC,CAAA,EAAA,oBAAoB,CAIhC;;ACLY,IAAA,UAAU,GAAhB,MAAM,UAAU,CAAA;AAErB,IAAA,SAAS,CAAC,KAAa,EAAE,KAAa,EAAE,cAAsB,EAAE,EAAA;AAC9D,QAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACnB,OAAO,KAAK,KAAK,CAAC;AAChB,cAAE,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,KAAK,CAAE,CAAA;AACrB,cAAE,WAAW;AACX,kBAAE,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,WAAW,CAAE,CAAA;AAC3B,kBAAE,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,KAAK,GAAG,CAAC;KAC5B;EACF;AAVY,UAAU,GAAA,UAAA,CAAA;IADtB,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAI,UAAU,EAAE,IAAI,EAAC,CAAC;AACpC,CAAA,EAAA,UAAU,CAUtB;;ACVY,IAAA,SAAS,GAAf,MAAM,SAAS,CAAA;AAEpB,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1B;EACF;AALY,SAAS,GAAA,UAAA,CAAA;IADrB,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAI,UAAU,EAAE,IAAI,EAAC,CAAC;AACnC,CAAA,EAAA,SAAS,CAKrB;;ACHY,IAAA,oBAAoB,GAA1B,MAAM,oBAAoB,CAAA;AAC/B,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,eAAe,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KACjG;EACF;AAJY,oBAAoB,GAAA,UAAA,CAAA;IADhC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAI,UAAU,EAAE,IAAI,EAAC,CAAC;AACrC,CAAA,EAAA,oBAAoB,CAIhC;;ACNY,IAAA,UAAU,GAAhB,MAAM,UAAU,CAAA;AACrB,IAAA,SAAS,CAAC,IAAY,EAAA;QACpB,IAAI,IAAI,EAAE;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AACtC,YAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAG,EAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAG,EAAA,OAAO,EAAE,CAAC;SAClF;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;AAEO,IAAA,QAAQ,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;KAC7B;EACF;AAdY,UAAU,GAAA,UAAA,CAAA;IADtB,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAI,UAAU,EAAE,IAAI,EAAC,CAAC;AACpC,CAAA,EAAA,UAAU,CActB;;;ACNY,IAAA,sBAAsB,GAA5B,MAAM,sBAAsB,CAAA;;AAGb,IAAA,MAAA,CAAA;AAFZ,IAAA,OAAgB,OAAO,GAAY,IAAI,CAAC;AAEhD,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAI;IAE/B,UAAU,GAAA;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;AAGrB,QAAA,IAAI;YACF,MAAM,GAAG,GAAU,8CAA8C,CAAC;YAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACpD,YAAA,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,YAAA,MAAM,KAAK,GAAW,wBAAsB,CAAC,OAAO,GAAG,cAAc,GAAG,IAAI,CAAC;YAC7E,UAAU,CAAC,GAAG,GAAG,CAAA,EAAG,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;AAClC,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAEtC,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACzD,eAAe,CAAC,SAAS,GAAG,CAAA;;;;AAIR,wBAAA,EAAA,KAAK,gCAAgC,CAAC;AAC1D,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;SAC5C;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrD;KACF;IAGO,aAAa,GAAA;AACnB,QAAA,MAAM,KAAK,GAAW,wBAAsB,CAAC,OAAO,GAAG,cAAc,GAAG,IAAI,CAAC;QAE7E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACrC,YAAA,IAAI,KAAK,YAAY,aAAa,EAAE;AAClC,gBAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;oBACpB,SAAS,EAAE,KAAK,CAAC,iBAAiB;AACnC,iBAAA,CAAC,CAAC;gBAEH,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAChF,gBAAA,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;aACtD;AACH,SAAC,CAAC,CAAC;KACJ;AAGM,IAAA,KAAK,CAAC,MAAc,EAAE,aAAsB,EAAE,UAAmB,EAAE,KAAc,EAAA;AACtF,QAAA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YACpB,IAAI,aAAa,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;YACvD,IAAI,UAAU,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;YAC9C,IAAI,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/B,SAAA,CAAC,CAAC;KACJ;;AApDU,sBAAsB,GAAA,wBAAA,GAAA,UAAA,CAAA;AAJlC,IAAA,UAAU,CAAC;AACV,QAAA,UAAU,EAAE,MAAM;KACnB,CAAC;qCAK4B,MAAM,CAAA,CAAA;AAHvB,CAAA,EAAA,sBAAsB,CAqDlC;;ACvDY,IAAA,mBAAmB,GAAzB,MAAM,mBAAmB,CAAA;AAEpB,IAAA,cAAA,CAAA;AACA,IAAA,aAAA,CAAA;AACA,IAAA,cAAA,CAAA;AAHV,IAAA,WAAA,CACU,cAA8B,EAC9B,aAA4B,EAC5B,cAA8B,EAAA;QAF9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KACpC;IAEG,MAAM,YAAY,CAAI,SAAiB,EAAE,SAAc,EAAM,SAAA,GAAgC,kBAAkB,CAAC,aAAa,EAAA;QAElI,IAAI,IAAI,GAAa,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvG,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEjE,QAAA,IAAI;AACF,YAAA,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAI,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SACnF;QAAC,OAAO,GAAG,EAAE;AACZ,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SAChC;gBAAS;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC7B;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,qBAAqB,CAChC,YAAoB,EACpB,SAAiB,EACjB,SAAc,EACd,SAAA,GAAgC,kBAAkB,CAAC,aAAa,EAAA;QAEhE,IAAI,IAAI,GAAa,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvG,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhF,QAAA,IAAI;YACF,IAAI,GAAG,MAAM,gBAAgB,CAAC,qBAAqB,CACjD,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAI,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACpE,YAAY,CACb,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;AACZ,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SAChC;gBAAS;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC7B;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAGM,MAAM,aAAa,CAAI,SAAiB,EAAE,SAAc,EAAM,SAAA,GAAgC,kBAAkB,CAAC,aAAa,EAAA;QAEnI,IAAI,IAAI,GAAa,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvG,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEjE,QAAA,IAAI;AACF,YAAA,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAI,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SACpF;QAAC,OAAO,GAAG,EAAE;AACZ,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SAChC;gBAAS;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC7B;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,sBAAsB,CACjC,YAAoB,EACpB,SAAiB,EACjB,SAAc,EACd,SAAA,GAAgC,kBAAkB,CAAC,aAAa,EAAA;QAGhE,IAAI,IAAI,GAAa,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvG,QAAA,IAAI;YACF,IAAI,GAAG,MAAM,gBAAgB,CAAC,qBAAqB,CACjD,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAI,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACrE,YAAY,CACb,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;AACZ,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SAChC;gBAAS;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC7B;AAED,QAAA,OAAO,IAAI,CAAC;KACb;EACF;AA7FY,mBAAmB,GAAA,UAAA,CAAA;AAD/B,IAAA,UAAU,CAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;qCAGL,cAAc;QACf,aAAa;QACZ,cAAc,CAAA,CAAA;AAJ7B,CAAA,EAAA,mBAAmB,CA6F/B;;;SClGe,aAAa,GAAA;AAC3B,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,IAAI,OAAO,MAAM,CAAC,YAAY,KAAI,WAAW,EAAE;YAC7C,OAAO,MAAM,CAAC,YAAY,CAAC;SAC5B;KACF;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAGY,IAAA,mBAAmB,GAAzB,MAAM,mBAAmB,CAAA;;AACtB,IAAA,OAAgB,QAAQ,GAAW,QAAQ,CAAC;AAEpD,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;KAC1B;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,EAAQ,CAAE,CAAC;KACxB;AAEM,IAAA,MAAM,CAAC,KAAQ,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,MAAM,GAAM,KAAK,IAAK,EAAQ,CAAC;YACrC,MAAM,UAAU,GAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAClD,YAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;YAClD,YAAY,CAAC,OAAO,CAAC,qBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D,YAAA,OAAO,MAAM,CAAC;SACf;aAAM;AACL,YAAA,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;AAC/D,YAAA,OAAO,EAAO,CAAC;SAChB;KACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,UAAU,GAAW,YAAY,CAAC,OAAO,CAAC,qBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;YACtF,MAAM,IAAI,GAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAM,CAAC;AAC5C,YAAA,OAAO,IAAI,CAAC;SACb;aAAM;AACL,YAAA,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;AAClD,YAAA,OAAO,EAAO,CAAC;SAChB;KACF;;AAjCU,mBAAmB,GAAA,qBAAA,GAAA,UAAA,CAAA;AAD/B,IAAA,UAAU,CAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;AACpB,CAAA,EAAA,mBAAmB,CAmC/B;;ACtCD,SAAS,SAAS,GAAA;AAChB,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,MAAM,CAAC;KACf;SAAM;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAChE;AACH,CAAC;AAGY,IAAA,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;IACpB,YAAY,GAAA;QACjB,OAAO,SAAS,EAAE,CAAC;KACpB;EACF;AAJY,gBAAgB,GAAA,UAAA,CAAA;AAD5B,IAAA,UAAU,CAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;AACpB,CAAA,EAAA,gBAAgB,CAI5B;;;;"}
package/package.json CHANGED
@@ -1,11 +1,9 @@
1
1
  {
2
2
  "name": "@bitblit/ngx-acute-common",
3
- "version": "5.0.514-alpha",
3
+ "version": "5.0.516-alpha",
4
4
  "description": "Library for using angular",
5
- "main": "lib/my-angular-library.cjs.js",
6
- "module": "lib/my-angular-library.esm.js",
7
- "browser": "lib/my-angular-library.umd.js",
8
- "types": "lib/index.d.ts",
5
+ "module": "lib/esm2022/ngx-acute-common.mjs",
6
+ "types": "lib/esm2022/index.d.ts",
9
7
  "files": [
10
8
  "lib/**",
11
9
  "bin/**"
@@ -34,7 +32,7 @@
34
32
  "@angular/platform-browser": "18.2.8",
35
33
  "@angular/platform-browser-dynamic": "18.2.8",
36
34
  "@angular/router": "18.2.8",
37
- "@bitblit/ratchet-common": "5.0.514-alpha",
35
+ "@bitblit/ratchet-common": "5.0.516-alpha",
38
36
  "primeflex": "3.3.1",
39
37
  "primeicons": "7.0.0",
40
38
  "primeng": "17.18.11",
@@ -50,14 +48,11 @@
50
48
  "@angular/platform-browser": "^18.2.8",
51
49
  "@angular/platform-browser-dynamic": "^18.2.8",
52
50
  "@angular/router": "^18.2.8",
53
- "@bitblit/ratchet-common": "5.0.514-alpha",
51
+ "@bitblit/ratchet-common": "5.0.516-alpha",
54
52
  "primeflex": "3.3.1",
55
53
  "primeicons": "7.0.0",
56
54
  "primeng": "17.18.11",
57
55
  "rxjs": "7.8.1",
58
56
  "zone.js": "0.14.10"
59
- },
60
- "devDependencies": {
61
- "@angular/compiler-cli": "^18.2.8"
62
57
  }
63
58
  }
package/lib/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './build/ngx-acute-common-info';
2
- export * from './components/dialogs/alert/alert.component';