@ngx-stoui/core 13.0.0 → 13.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/sto-directives/context-menu.directive.mjs +3 -3
- package/esm2020/lib/sto-directives/date-form-field-click.directive.mjs +3 -3
- package/esm2020/lib/sto-directives/directives.module.mjs +4 -4
- package/esm2020/lib/sto-directives/menu-overlay.directive.mjs +3 -3
- package/esm2020/lib/sto-directives/quick-keys.directive.mjs +3 -3
- package/esm2020/lib/sto-directives/sto-grid.directive.mjs +9 -9
- package/esm2020/lib/sto-directives/sto-select-text-on-focus.directive.mjs +3 -3
- package/esm2020/lib/sto-pipes/currency-format.pipe.mjs +3 -3
- package/esm2020/lib/sto-pipes/date-format.pipe.mjs +6 -6
- package/esm2020/lib/sto-pipes/keys.pipe.mjs +3 -3
- package/esm2020/lib/sto-pipes/number-format.pipe.mjs +3 -3
- package/esm2020/lib/sto-pipes/sto-pipes.module.mjs +4 -4
- package/esm2020/lib/sto-pipes/with-unit.mjs +6 -6
- package/esm2020/lib/sto-pipes/yes-no.mjs +3 -3
- package/esm2020/lib/sto-user-preference/sto-user-preference.component.mjs +3 -3
- package/esm2020/lib/sto-user-preference/sto-user-preference.module.mjs +4 -4
- package/esm2020/lib/sto-user-preference/sto-user-preference.service.mjs +3 -3
- package/fesm2015/ngx-stoui-core.mjs +65 -65
- package/fesm2015/ngx-stoui-core.mjs.map +1 -1
- package/fesm2020/ngx-stoui-core.mjs +65 -65
- package/fesm2020/ngx-stoui-core.mjs.map +1 -1
- package/ngx-stoui.css +44 -73
- package/package.json +1 -1
- package/style/grid.scss +6 -2
- package/style/theme/_drawer.scss +0 -101
|
@@ -10,7 +10,7 @@ import { Subject, BehaviorSubject, fromEvent } from 'rxjs';
|
|
|
10
10
|
import { takeUntil, switchMap, take } from 'rxjs/operators';
|
|
11
11
|
import { LayoutModule } from '@angular/cdk/layout';
|
|
12
12
|
import * as i1 from '@angular/material/menu';
|
|
13
|
-
import { format } from 'date-fns';
|
|
13
|
+
import { parseISO, format } from 'date-fns';
|
|
14
14
|
import * as i3 from '@angular/material/expansion';
|
|
15
15
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
16
16
|
|
|
@@ -208,9 +208,9 @@ class QuickKeysDirective {
|
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
-
QuickKeysDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
212
|
-
QuickKeysDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
211
|
+
QuickKeysDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: QuickKeysDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
212
|
+
QuickKeysDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: QuickKeysDirective, selector: "[stoQuickKeys]", inputs: { quickKeys: "quickKeys", formGroup: "formGroup" }, outputs: { quickSubmit: "quickSubmit", quickCancel: "quickCancel" }, host: { listeners: { "keyup": "onKeyUp($event)" } }, ngImport: i0 });
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: QuickKeysDirective, decorators: [{
|
|
214
214
|
type: Directive,
|
|
215
215
|
args: [{
|
|
216
216
|
selector: '[stoQuickKeys]'
|
|
@@ -250,9 +250,9 @@ class DateFormFieldClickDirective {
|
|
|
250
250
|
this.destroy$.complete();
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
|
-
DateFormFieldClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
254
|
-
DateFormFieldClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
253
|
+
DateFormFieldClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormFieldClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
254
|
+
DateFormFieldClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: DateFormFieldClickDirective, selector: "[stoDateFormFieldClick]", inputs: { stoDateFormFieldClick: "stoDateFormFieldClick" }, host: { listeners: { "click": "clickEvent()" } }, queries: [{ propertyName: "inputs", predicate: MatInput }], ngImport: i0 });
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormFieldClickDirective, decorators: [{
|
|
256
256
|
type: Directive,
|
|
257
257
|
args: [{
|
|
258
258
|
selector: '[stoDateFormFieldClick]'
|
|
@@ -297,9 +297,9 @@ class StoUserPreferenceService {
|
|
|
297
297
|
sessionStorage.setItem(preferenceKey, JSON.stringify(value));
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
|
-
StoUserPreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
301
|
-
StoUserPreferenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
300
|
+
StoUserPreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
301
|
+
StoUserPreferenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceService });
|
|
302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceService, decorators: [{
|
|
303
303
|
type: Injectable
|
|
304
304
|
}], ctorParameters: function () { return []; } });
|
|
305
305
|
|
|
@@ -338,9 +338,9 @@ class StoSelectTextOnFocusDirective {
|
|
|
338
338
|
this.destroyed$.complete();
|
|
339
339
|
}
|
|
340
340
|
}
|
|
341
|
-
StoSelectTextOnFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
342
|
-
StoSelectTextOnFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
343
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
341
|
+
StoSelectTextOnFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoSelectTextOnFocusDirective, deps: [{ token: i0.ElementRef }, { token: StoUserPreferenceService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
342
|
+
StoSelectTextOnFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: StoSelectTextOnFocusDirective, selector: "[stoSelectTextOnFocus]", host: { listeners: { "focus": "onFocus()", "dblclick": "onFocus()" } }, ngImport: i0 });
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoSelectTextOnFocusDirective, decorators: [{
|
|
344
344
|
type: Directive,
|
|
345
345
|
args: [{
|
|
346
346
|
selector: '[stoSelectTextOnFocus]'
|
|
@@ -371,9 +371,9 @@ class StoGridSpacerDirective {
|
|
|
371
371
|
this.useClass = true;
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
|
-
StoGridSpacerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
375
|
-
StoGridSpacerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
376
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
374
|
+
StoGridSpacerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
375
|
+
StoGridSpacerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: StoGridSpacerDirective, selector: "[stoGridSpacer]", host: { properties: { "class.sto-f-grid__col": "this.useClass", "class.sto-f-grid__col--spacer": "this.useClass" } }, ngImport: i0 });
|
|
376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridSpacerDirective, decorators: [{
|
|
377
377
|
type: Directive,
|
|
378
378
|
args: [{ selector: '[stoGridSpacer]' }]
|
|
379
379
|
}], propDecorators: { useClass: [{
|
|
@@ -388,9 +388,9 @@ class StoGridColumnDirective {
|
|
|
388
388
|
this.useClass = true;
|
|
389
389
|
}
|
|
390
390
|
}
|
|
391
|
-
StoGridColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
392
|
-
StoGridColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
393
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
391
|
+
StoGridColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
392
|
+
StoGridColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: StoGridColumnDirective, selector: "[stoGridColumn]", inputs: { stoGridColumnDouble: "stoGridColumnDouble" }, host: { properties: { "class.sto-f-grid__col": "this.useClass", "class.sto-f-grid__col--2": "this.stoGridColumnDouble" } }, ngImport: i0 });
|
|
393
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridColumnDirective, decorators: [{
|
|
394
394
|
type: Directive,
|
|
395
395
|
args: [{ selector: '[stoGridColumn]' }]
|
|
396
396
|
}], propDecorators: { useClass: [{
|
|
@@ -431,9 +431,9 @@ class StoGridDirective {
|
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
|
-
StoGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
435
|
-
StoGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
436
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
434
|
+
StoGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
435
|
+
StoGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: StoGridDirective, selector: "[stoGrid]", inputs: { maxWidth: "maxWidth", minWidth: "minWidth", breakpoints: "breakpoints" }, host: { properties: { "style.max-width.px": "this.maxWidth", "style.min-width.px": "this.minWidth", "class.sto-f-grid": "this.baseClass" } }, queries: [{ propertyName: "columns", predicate: StoGridColumnDirective, read: ElementRef }], exportAs: ["stoGrid"], ngImport: i0 });
|
|
436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridDirective, decorators: [{
|
|
437
437
|
type: Directive,
|
|
438
438
|
args: [{
|
|
439
439
|
selector: '[stoGrid]',
|
|
@@ -482,9 +482,9 @@ class MenuOverlayDirective {
|
|
|
482
482
|
element.style.width = '1px';
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
|
-
MenuOverlayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
486
|
-
MenuOverlayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
487
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
485
|
+
MenuOverlayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MenuOverlayDirective, deps: [{ token: i1.MatMenuTrigger, host: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
486
|
+
MenuOverlayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: MenuOverlayDirective, selector: "[stoMenuOverlay]", host: { properties: { "style.left.px": "this.left", "style.top.px": "this.top" } }, exportAs: ["stoMenuOverlay"], ngImport: i0 });
|
|
487
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MenuOverlayDirective, decorators: [{
|
|
488
488
|
type: Directive,
|
|
489
489
|
args: [{
|
|
490
490
|
selector: '[stoMenuOverlay]',
|
|
@@ -513,9 +513,9 @@ class ContextMenuDirective {
|
|
|
513
513
|
}, 150);
|
|
514
514
|
}
|
|
515
515
|
}
|
|
516
|
-
ContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
517
|
-
ContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
518
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
516
|
+
ContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ContextMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
517
|
+
ContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: ContextMenuDirective, selector: "[stoContextMenu]", inputs: { menuTrigger: "menuTrigger", overlayDirective: "overlayDirective", menuContext: "menuContext" }, host: { listeners: { "contextmenu": "contextMenu($event)" } }, ngImport: i0 });
|
|
518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ContextMenuDirective, decorators: [{
|
|
519
519
|
type: Directive,
|
|
520
520
|
args: [{
|
|
521
521
|
selector: '[stoContextMenu]'
|
|
@@ -533,8 +533,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
|
533
533
|
|
|
534
534
|
class StoDirectivesModule {
|
|
535
535
|
}
|
|
536
|
-
StoDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
537
|
-
StoDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
536
|
+
StoDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
537
|
+
StoDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, declarations: [QuickKeysDirective,
|
|
538
538
|
DateFormFieldClickDirective,
|
|
539
539
|
StoSelectTextOnFocusDirective,
|
|
540
540
|
StoGridDirective,
|
|
@@ -549,8 +549,8 @@ StoDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
|
|
|
549
549
|
StoGridSpacerDirective,
|
|
550
550
|
MenuOverlayDirective,
|
|
551
551
|
ContextMenuDirective] });
|
|
552
|
-
StoDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
553
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
552
|
+
StoDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, imports: [[CommonModule, LayoutModule]] });
|
|
553
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, decorators: [{
|
|
554
554
|
type: NgModule,
|
|
555
555
|
args: [{
|
|
556
556
|
imports: [CommonModule, LayoutModule],
|
|
@@ -644,9 +644,9 @@ class NumberFormatPipe {
|
|
|
644
644
|
return returnValue.toFixed(precision);
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
|
-
NumberFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
648
|
-
NumberFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
649
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
647
|
+
NumberFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NumberFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
648
|
+
NumberFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NumberFormatPipe, name: "numberFormat" });
|
|
649
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NumberFormatPipe, decorators: [{
|
|
650
650
|
type: Pipe,
|
|
651
651
|
args: [{
|
|
652
652
|
name: 'numberFormat'
|
|
@@ -677,9 +677,9 @@ class CurrencyFormatPipe {
|
|
|
677
677
|
return intl.replace(/,/g, ' ').replace('.', ',') + ` ${unit}`;
|
|
678
678
|
}
|
|
679
679
|
}
|
|
680
|
-
CurrencyFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
681
|
-
CurrencyFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
682
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
680
|
+
CurrencyFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CurrencyFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
681
|
+
CurrencyFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CurrencyFormatPipe, name: "currencyFormat" });
|
|
682
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CurrencyFormatPipe, decorators: [{
|
|
683
683
|
type: Pipe,
|
|
684
684
|
args: [{
|
|
685
685
|
name: 'currencyFormat'
|
|
@@ -702,9 +702,9 @@ class KeysPipe {
|
|
|
702
702
|
return [];
|
|
703
703
|
}
|
|
704
704
|
}
|
|
705
|
-
KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
706
|
-
KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
705
|
+
KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
706
|
+
KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: KeysPipe, name: "keys" });
|
|
707
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: KeysPipe, decorators: [{
|
|
708
708
|
type: Pipe,
|
|
709
709
|
args: [{
|
|
710
710
|
name: 'keys'
|
|
@@ -726,7 +726,7 @@ class DateFormatPipe {
|
|
|
726
726
|
return null;
|
|
727
727
|
}
|
|
728
728
|
if (typeof value === 'string') {
|
|
729
|
-
value =
|
|
729
|
+
value = parseISO(value);
|
|
730
730
|
}
|
|
731
731
|
switch (format$1) {
|
|
732
732
|
case 'long':
|
|
@@ -746,9 +746,9 @@ class DateFormatPipe {
|
|
|
746
746
|
}
|
|
747
747
|
}
|
|
748
748
|
}
|
|
749
|
-
DateFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
750
|
-
DateFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
751
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
749
|
+
DateFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
750
|
+
DateFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormatPipe, name: "formatDate" });
|
|
751
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormatPipe, decorators: [{
|
|
752
752
|
type: Pipe,
|
|
753
753
|
args: [{
|
|
754
754
|
name: 'formatDate'
|
|
@@ -772,9 +772,9 @@ class GetUnit {
|
|
|
772
772
|
return value;
|
|
773
773
|
}
|
|
774
774
|
}
|
|
775
|
-
GetUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
776
|
-
GetUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
777
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
775
|
+
GetUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GetUnit, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
776
|
+
GetUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GetUnit, name: "getUnit" });
|
|
777
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GetUnit, decorators: [{
|
|
778
778
|
type: Pipe,
|
|
779
779
|
args: [{ name: 'getUnit' }]
|
|
780
780
|
}] });
|
|
@@ -789,9 +789,9 @@ class ExcludeUnit {
|
|
|
789
789
|
return value;
|
|
790
790
|
}
|
|
791
791
|
}
|
|
792
|
-
ExcludeUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
793
|
-
ExcludeUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
794
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
792
|
+
ExcludeUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ExcludeUnit, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
793
|
+
ExcludeUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ExcludeUnit, name: "excludeUnit" });
|
|
794
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ExcludeUnit, decorators: [{
|
|
795
795
|
type: Pipe,
|
|
796
796
|
args: [{ name: 'excludeUnit' }]
|
|
797
797
|
}] });
|
|
@@ -808,17 +808,17 @@ class YesNoPipe {
|
|
|
808
808
|
return valueStr;
|
|
809
809
|
}
|
|
810
810
|
}
|
|
811
|
-
YesNoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
812
|
-
YesNoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
813
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
811
|
+
YesNoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: YesNoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
812
|
+
YesNoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: YesNoPipe, name: "yesNo" });
|
|
813
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: YesNoPipe, decorators: [{
|
|
814
814
|
type: Pipe,
|
|
815
815
|
args: [{ name: 'yesNo' }]
|
|
816
816
|
}] });
|
|
817
817
|
|
|
818
818
|
class StoPipesModule {
|
|
819
819
|
}
|
|
820
|
-
StoPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
821
|
-
StoPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
820
|
+
StoPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
821
|
+
StoPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, declarations: [DateFormatPipe,
|
|
822
822
|
KeysPipe,
|
|
823
823
|
NumberFormatPipe,
|
|
824
824
|
CurrencyFormatPipe,
|
|
@@ -831,8 +831,8 @@ StoPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
831
831
|
GetUnit,
|
|
832
832
|
ExcludeUnit,
|
|
833
833
|
YesNoPipe] });
|
|
834
|
-
StoPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
835
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
834
|
+
StoPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, imports: [[CommonModule]] });
|
|
835
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, decorators: [{
|
|
836
836
|
type: NgModule,
|
|
837
837
|
args: [{
|
|
838
838
|
imports: [CommonModule],
|
|
@@ -885,9 +885,9 @@ class StoUserPreferenceComponent {
|
|
|
885
885
|
this.destroyed$.complete();
|
|
886
886
|
}
|
|
887
887
|
}
|
|
888
|
-
StoUserPreferenceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
889
|
-
StoUserPreferenceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
890
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
888
|
+
StoUserPreferenceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceComponent, deps: [{ token: i1$1.FormBuilder }, { token: StoUserPreferenceService }], target: i0.ɵɵFactoryTarget.Component });
|
|
889
|
+
StoUserPreferenceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: StoUserPreferenceComponent, selector: "sto-user-preference", ngImport: i0, template: "<mat-expansion-panel [expanded]=\"false\">\n <mat-expansion-panel-header>\n <mat-panel-title>Settings<span style=\"opacity: 0.36\"> (beta)</span></mat-panel-title>\n </mat-expansion-panel-header>\n <div *ngIf=\"form\" class=\"sto-grid sto-grid--4\">\n\n <ng-content></ng-content>\n\n </div>\n</mat-expansion-panel>\n", styles: [""], components: [{ type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }], directives: [{ type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
890
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceComponent, decorators: [{
|
|
891
891
|
type: Component,
|
|
892
892
|
args: [{ selector: 'sto-user-preference', template: "<mat-expansion-panel [expanded]=\"false\">\n <mat-expansion-panel-header>\n <mat-panel-title>Settings<span style=\"opacity: 0.36\"> (beta)</span></mat-panel-title>\n </mat-expansion-panel-header>\n <div *ngIf=\"form\" class=\"sto-grid sto-grid--4\">\n\n <ng-content></ng-content>\n\n </div>\n</mat-expansion-panel>\n", styles: [""] }]
|
|
893
893
|
}], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: StoUserPreferenceService }]; } });
|
|
@@ -900,10 +900,10 @@ class StoUserPreferenceModule {
|
|
|
900
900
|
};
|
|
901
901
|
}
|
|
902
902
|
}
|
|
903
|
-
StoUserPreferenceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
904
|
-
StoUserPreferenceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
905
|
-
StoUserPreferenceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
906
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
903
|
+
StoUserPreferenceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
904
|
+
StoUserPreferenceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceModule, declarations: [StoUserPreferenceComponent], imports: [CommonModule, MatExpansionModule, ReactiveFormsModule, FormsModule], exports: [StoUserPreferenceComponent] });
|
|
905
|
+
StoUserPreferenceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceModule, imports: [[CommonModule, MatExpansionModule, ReactiveFormsModule, FormsModule]] });
|
|
906
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceModule, decorators: [{
|
|
907
907
|
type: NgModule,
|
|
908
908
|
args: [{
|
|
909
909
|
imports: [CommonModule, MatExpansionModule, ReactiveFormsModule, FormsModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-stoui-core.mjs","sources":["../../../../libs/core/src/lib/abstract-and-interfaces/keyPress.enum.ts","../../../../libs/core/src/lib/sto-directives/quick-keys.directive.ts","../../../../libs/core/src/lib/sto-directives/date-form-field-click.directive.ts","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.service.ts","../../../../libs/core/src/lib/sto-directives/sto-select-text-on-focus.directive.ts","../../../../libs/core/src/lib/sto-directives/sto-grid.directive.ts","../../../../libs/core/src/lib/sto-directives/menu-overlay.directive.ts","../../../../libs/core/src/lib/sto-directives/context-menu.directive.ts","../../../../libs/core/src/lib/sto-directives/directives.module.ts","../../../../libs/core/src/lib/sto-pipes/number-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/currency-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/keys.pipe.ts","../../../../libs/core/src/lib/sto-pipes/date-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/with-unit.ts","../../../../libs/core/src/lib/sto-pipes/yes-no.ts","../../../../libs/core/src/lib/sto-pipes/sto-pipes.module.ts","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.component.ts","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.component.html","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.module.ts","../../../../libs/core/src/index.ts","../../../../libs/core/src/ngx-stoui-core.ts"],"sourcesContent":["/**\nMIT License\n\nCopyright (c) 2017 Nathan Friend\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE. **/\n\nexport enum Key {\n Backspace = 8,\n Tab = 9,\n Enter = 13,\n Shift = 16,\n Ctrl = 17,\n Alt = 18,\n PauseBreak = 19,\n CapsLock = 20,\n Escape = 27,\n Space = 32,\n PageUp = 33,\n PageDown = 34,\n End = 35,\n Home = 36,\n\n LeftArrow = 37,\n UpArrow = 38,\n RightArrow = 39,\n DownArrow = 40,\n\n Insert = 45,\n Delete = 46,\n\n Zero = 48,\n ClosedParen = Zero,\n One = 49,\n ExclamationMark = One,\n Two = 50,\n AtSign = Two,\n Three = 51,\n PoundSign = Three,\n Hash = PoundSign,\n Four = 52,\n DollarSign = Four,\n Five = 53,\n PercentSign = Five,\n Six = 54,\n Caret = Six,\n Hat = Caret,\n Seven = 55,\n Ampersand = Seven,\n Eight = 56,\n Star = Eight,\n Asterik = Star,\n Nine = 57,\n OpenParen = Nine,\n\n A = 65,\n B = 66,\n C = 67,\n D = 68,\n E = 69,\n F = 70,\n G = 71,\n H = 72,\n I = 73,\n J = 74,\n K = 75,\n L = 76,\n M = 77,\n N = 78,\n O = 79,\n P = 80,\n Q = 81,\n R = 82,\n S = 83,\n T = 84,\n U = 85,\n V = 86,\n W = 87,\n X = 88,\n Y = 89,\n Z = 90,\n\n LeftWindowKey = 91,\n RightWindowKey = 92,\n SelectKey = 93,\n\n Numpad0 = 96,\n Numpad1 = 97,\n Numpad2 = 98,\n Numpad3 = 99,\n Numpad4 = 100,\n Numpad5 = 101,\n Numpad6 = 102,\n Numpad7 = 103,\n Numpad8 = 104,\n Numpad9 = 105,\n\n Multiply = 106,\n Add = 107,\n Subtract = 109,\n DecimalPoint = 110,\n Divide = 111,\n\n F1 = 112,\n F2 = 113,\n F3 = 114,\n F4 = 115,\n F5 = 116,\n F6 = 117,\n F7 = 118,\n F8 = 119,\n F9 = 120,\n F10 = 121,\n F11 = 122,\n F12 = 123,\n\n NumLock = 144,\n ScrollLock = 145,\n\n SemiColon = 186,\n Equals = 187,\n Comma = 188,\n Dash = 189,\n Period = 190,\n UnderScore = Dash,\n PlusSign = Equals,\n ForwardSlash = 191,\n Tilde = 192,\n GraveAccent = Tilde,\n\n OpenBracket = 219,\n ClosedBracket = 221,\n Quote = 222\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Key } from '../abstract-and-interfaces/keyPress.enum';\n\n/**\n * QuickKeysDirective is used to implement shortcut keys on DOM elements, e.g to submit or reset a form on enter/escape\n * <form quickKeys (quickSubmit)=\"save()\" (quickCancel)=\"reset()\">\n */\n\n@Directive({\n selector: '[stoQuickKeys]'\n})\nexport class QuickKeysDirective {\n @Input() quickKeys: unknown;\n /**\n * Optional formGroup input, when used in combination with a reactive form\n */\n @Input() formGroup: FormGroup;\n /**\n * Emits when ctrl + enter is clicked in combination\n * <form (quickSubmit)=\"save()\">\n */\n @Output() quickSubmit = new EventEmitter<void>();\n /**\n * Emits when escape is clicked\n * <form (quickCancel)=\"cancel()\">\n */\n @Output() quickCancel = new EventEmitter<void>();\n\n /**\n * Listens on the host element for any keyup events\n * @param e\n */\n @HostListener('keyup', ['$event'])\n onKeyUp(e: KeyboardEvent) {\n if (this.formGroup) {\n this.handleFormKeys(e);\n }\n this.handleGenericKeydown(e);\n }\n\n /**\n * Handler for generic keydowns, such as cancel events to close drawers\n * @param e\n * void\n */\n private handleGenericKeydown(e: KeyboardEvent) {\n // Shortcuts that are useful outside of forms\n if (e.keyCode === Key.Escape) {\n this.quickCancel.emit();\n }\n if (!this.formGroup && e.keyCode === Key.Enter && e.ctrlKey) {\n this.quickSubmit.emit();\n }\n }\n\n /**\n * Handler for form specific shortcuts, such as saving the form\n * @param e\n */\n private handleFormKeys(e: KeyboardEvent) {\n if (this.formGroup.pristine) {\n return;\n }\n if (e.keyCode === Key.Enter && e.ctrlKey) {\n this.quickSubmit.emit();\n }\n }\n}\n","import { ContentChildren, Directive, HostListener, Input, OnDestroy, OnInit, QueryList } from '@angular/core';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { MatInput } from '@angular/material/input';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Directive that can be placed on mat-form-fields that contains a mat-datepicker.\n * This directive has two tasks:\n * Clicking anywhere on the mat-form-field will open the datepicker dialog\n * When the datepicker is closed in any manner, we shift focus back to the datepicker input\n */\n@Directive({\n selector: '[stoDateFormFieldClick]'\n})\nexport class DateFormFieldClickDirective implements OnInit, OnDestroy {\n private destroy$ = new Subject();\n @ContentChildren(MatInput) inputs: QueryList<MatInput>;\n @Input() stoDateFormFieldClick: MatDatepicker<Date>;\n @HostListener('click')\n clickEvent() {\n this.stoDateFormFieldClick.open();\n }\n ngOnInit() {\n this.stoDateFormFieldClick.closedStream\n .pipe(\n takeUntil(this.destroy$)\n ).subscribe(() => this.inputs.first.focus());\n }\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nconst preferenceKey = 'TOPS_IM:UserPreferences';\n\n@Injectable()\nexport class StoUserPreferenceService {\n\n public hasSelectTextOnFocusEnabled = new BehaviorSubject<boolean>(true);\n public preferences: {\n hasSelectTextOnFocusEnabled: boolean;\n };\n public default = {\n hasSelectTextOnFocusEnabled: true\n };\n\n\n constructor() {\n let sessionPreferences = {};\n const sessionPreferencesString = this.getPreferences();\n try {\n sessionPreferences = JSON.parse(sessionPreferencesString);\n } catch ( e ) {\n console.error('Unable to parse the preferences from local storage. Loading default');\n }\n this.preferences = { ...this.default, ...sessionPreferences };\n this.setHasSelectTextOnFocusEnabled(this.preferences.hasSelectTextOnFocusEnabled);\n }\n\n public setHasSelectTextOnFocusEnabled(value: boolean) {\n this.hasSelectTextOnFocusEnabled.next(value);\n this.preferences.hasSelectTextOnFocusEnabled = value;\n this.setPreferences(this.preferences);\n }\n\n public getPreferences() {\n return sessionStorage.getItem(preferenceKey) || '{}';\n }\n\n public setPreferences(value: Record<string, unknown>) {\n sessionStorage.setItem(preferenceKey, JSON.stringify(value));\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { StoUserPreferenceService } from '../sto-user-preference/sto-user-preference.service';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * stoSelectTextOnFocus listens for input focus events, and selects the contents of the input\n * A user service is established in {@link StoUserPreferenceService} that allows a user to toggle this feature\n */\n@Directive({\n selector: '[stoSelectTextOnFocus]'\n})\nexport class StoSelectTextOnFocusDirective implements OnInit, OnDestroy {\n\n private destroyed$ = new Subject<boolean>();\n\n private _hasSelectTextOnFocusEnabled: boolean;\n private _el: HTMLInputElement;\n\n constructor(private elementRef: ElementRef, @Optional() private userPreferenceService: StoUserPreferenceService) {\n this._el = this.elementRef.nativeElement;\n }\n\n /**\n * Listens for focus events on the host (input) element, and focuses if applicable\n */\n @HostListener('focus')\n @HostListener('dblclick')\n onFocus() {\n if ( this._hasSelectTextOnFocusEnabled && this._el.readOnly === false ) {\n this._el.select();\n }\n\n }\n\n /**\n * Subscribes to changes in {@link StoUserPreferenceService}, and binds the variable accordingly.\n */\n ngOnInit() {\n if ( this.userPreferenceService ) {\n this.userPreferenceService.hasSelectTextOnFocusEnabled\n .pipe(\n takeUntil(this.destroyed$)\n ).subscribe((hasSelectTextOnFocusEnabled) => {\n this._hasSelectTextOnFocusEnabled = hasSelectTextOnFocusEnabled;\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n\n}\n","import { AfterViewInit, ContentChildren, Directive, ElementRef, HostBinding, Input, OnDestroy, QueryList } from '@angular/core';\n\ninterface BreakpointConfig {\n 2: number;\n 4: number;\n}\n\nconst getClass = (width: number, small = 400, large = 800) => {\n let cols = 1;\n if ( width > small ) {\n cols += 1;\n }\n if ( width > large ) {\n cols += 2;\n }\n return `sto-f-grid--${cols}`;\n};\n\nconst ALL_GRIDS = [ 'sto-f-grid--1', 'sto-f-grid--2', 'sto-f-grid--4', 'sto-f-grid--6' ];\n\n@Directive({ selector: '[stoGridSpacer]' })\nexport class StoGridSpacerDirective {\n @HostBinding('class.sto-f-grid__col')\n @HostBinding('class.sto-f-grid__col--spacer')\n useClass = true;\n}\n\n@Directive({ selector: '[stoGridColumn]' })\nexport class StoGridColumnDirective {\n @HostBinding('class.sto-f-grid__col')\n useClass = true;\n @HostBinding('class.sto-f-grid__col--2')\n @Input()\n stoGridColumnDouble: boolean;\n\n}\n\n@Directive({\n selector: '[stoGrid]',\n exportAs: 'stoGrid'\n})\nexport class StoGridDirective implements AfterViewInit, OnDestroy {\n @HostBinding('style.max-width.px')\n @Input()\n maxWidth = 1000;\n @HostBinding('style.min-width.px')\n @Input()\n minWidth = 250;\n @HostBinding('class.sto-f-grid')\n baseClass = true;\n @ContentChildren(StoGridColumnDirective, { read: ElementRef })\n columns: QueryList<ElementRef<HTMLElement>>;\n @Input()\n breakpoints: BreakpointConfig;\n\n private observer: ResizeObserver;\n\n constructor(\n private elRef: ElementRef<HTMLElement>,\n ) {\n }\n\n ngAfterViewInit() {\n const el = this.elRef.nativeElement as HTMLElement;\n this.observer = new ResizeObserver(entries => {\n for ( const entry of entries ) {\n const cr = entry.contentRect;\n const { width } = cr;\n const breakpoints = this.breakpoints || { 2: 400, 4: 800 };\n const gridType = getClass(width, breakpoints[ 2 ], breakpoints[ 4 ]);\n if ( !el.classList.contains(gridType) ) {\n el.classList.remove(...ALL_GRIDS);\n el.classList.add(gridType);\n }\n }\n });\n this.observer.observe(this.elRef.nativeElement);\n }\n\n ngOnDestroy() {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n }\n\n}\n\n","import { Directive, ElementRef, Host, HostBinding } from '@angular/core';\nimport { MatMenuPanel, MatMenuTrigger } from '@angular/material/menu';\nimport { fromEvent } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\n\n@Directive({\n selector: '[stoMenuOverlay]',\n exportAs: 'stoMenuOverlay'\n})\nexport class MenuOverlayDirective {\n private readonly menu: MatMenuPanel;\n @HostBinding('style.left.px')\n left = 0;\n @HostBinding('style.top.px')\n top = 0;\n\n constructor(@Host() private trigger: MatMenuTrigger, el: ElementRef<HTMLButtonElement>) {\n this.menu = trigger.menu;\n this.trigger.menuOpened.pipe(\n switchMap(() =>\n fromEvent<MouseEvent>(document, 'click')\n .pipe(take(1))\n ),\n ).subscribe(() => {\n this.trigger.closeMenu();\n });\n this.setStyle(el.nativeElement);\n }\n\n public updatePosition(event: MouseEvent) {\n this.left = event.x;\n this.top = event.y;\n }\n\n private setStyle(element: HTMLButtonElement) {\n element.style.overflow = 'hidden';\n element.style.position = 'fixed';\n element.style.height = '1px';\n element.style.width = '1px';\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { MenuOverlayDirective } from './menu-overlay.directive';\n\n@Directive({\n selector: '[stoContextMenu]'\n})\nexport class ContextMenuDirective {\n @Input()\n menuTrigger: MatMenuTrigger;\n @Input()\n overlayDirective: MenuOverlayDirective;\n @Input()\n menuContext: unknown;\n\n @HostListener('contextmenu', [ '$event' ])\n contextMenu(event: MouseEvent) {\n event.preventDefault();\n if ( this.menuTrigger.menuOpen ) {\n this.menuTrigger.closeMenu();\n }\n this.overlayDirective.updatePosition(event);\n setTimeout(() => {\n this.menuTrigger.menuData = this.menuContext;\n this.menuTrigger.openMenu();\n }, 150);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuickKeysDirective } from './quick-keys.directive';\nimport { DateFormFieldClickDirective } from './date-form-field-click.directive';\nimport { StoSelectTextOnFocusDirective } from './sto-select-text-on-focus.directive';\nimport { StoGridColumnDirective, StoGridDirective, StoGridSpacerDirective } from './sto-grid.directive';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { MenuOverlayDirective } from './menu-overlay.directive';\nimport { ContextMenuDirective } from './context-menu.directive';\n\n\n@NgModule({\n imports: [ CommonModule, LayoutModule ],\n declarations: [\n QuickKeysDirective\n , DateFormFieldClickDirective\n , StoSelectTextOnFocusDirective\n , StoGridDirective\n , StoGridColumnDirective\n , StoGridSpacerDirective\n , MenuOverlayDirective\n , ContextMenuDirective\n ],\n exports: [\n QuickKeysDirective\n , DateFormFieldClickDirective\n , StoSelectTextOnFocusDirective\n , StoGridDirective\n , StoGridColumnDirective\n , StoGridSpacerDirective\n , MenuOverlayDirective\n , ContextMenuDirective\n ]\n})\nexport class StoDirectivesModule {\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Formats numbers to use our standard formatting (d ddd,ddd)\n *\n * @example\n *\n * {{ 1234,32 | numberFormat }} -> 1 234,320\n * {{ 1234,32 | numberFormat:'M3' }} -> 1 234,320 M3\n * {{ -1234,32 | numberFormat:'M3':true }} -> 1 234,320 M3\n * {{ 1234,32 | numberFormat:'M3':false:false }} -> 1 234 M3\n * {{ 1234,32 | numberFormat:'M3':false:true:5 }} -> 1 234,32000 M3\n */\n@Pipe({\n name: 'numberFormat'\n})\nexport class NumberFormatPipe implements PipeTransform {\n\n transform(value: number | string, unit: string = '', abs?: boolean, appendDecimals = true, numberOfDecimals = 3): string | null {\n if ( value !== 0 && !value ) {\n return '';\n }\n if ( typeof value === 'string' ) {\n const newValue = parseFloat(value);\n if ( isNaN(newValue) ) {\n return null;\n }\n value = newValue;\n }\n if ( abs ) {\n value = Math.abs(value);\n }\n // We absolute the value to ensure that the rounding rules is always away from zero.\n // 1.5 => 2 and -1.5 => -2\n const isNegativeNumber = value < 0;\n value = Math.abs(value);\n\n if ( !appendDecimals ) {\n value = Math.round(value);\n }\n if ( !isNaN(value) && appendDecimals ) {\n value = parseFloat(this.toFixed(value, numberOfDecimals));\n }\n // Turn negative numbers back, but only if value is not -0\n // eslint-disable-next-line no-compare-neg-zero\n if ( isNegativeNumber && value !== -0 ) {\n value = value * -1;\n }\n const localized = this.prettyPrintValue(value, appendDecimals, numberOfDecimals);\n return localized.replace(/,/g, ' ').replace('.', ',') + `${unit ? ' ' + unit : ''}`;\n }\n\n private prettyPrintValue(value: number, appendDecimals: boolean, numberOfDecimals: number) {\n const intlOptions = { minimumFractionDigits: numberOfDecimals, maximumFractionDigits: numberOfDecimals };\n const intl = new Intl.NumberFormat('en-US', intlOptions).format(value);\n const split = intl.split('.');\n let localized = split[ 0 ];\n\n if ( appendDecimals ) {\n const decimals = split.length === 2 ? split[ 1 ] : '';\n split[ 1 ] = decimals.padEnd(numberOfDecimals, '0');\n localized = split.join('.');\n }\n return localized;\n }\n\n // Normal toFixed has some issues: https://stackoverflow.com/questions/10015027/javascript-tofixed-not-rounding\n private toFixed(num: number, precision: number) {\n // This method also has some issues - namely, it's unable to parse negative numbers with huge floating points\n // -8.185452315956354e-12 becomes NaN\n let returnValue = ( +( Math.round(+( num + 'e' + precision )) + 'e' + -precision ) );\n if ( isNaN(returnValue) ) {\n returnValue = parseFloat(num.toFixed(precision));\n }\n return returnValue.toFixed(precision);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Pipe used to transform numbers to a currency format\n *\n * @example\n *\n * <span>{{ 5000.5824 | currentFormat:'$':3 }}</span>\n * Results in\n * <span>5 000,582 $</span>\n */\n@Pipe({\n name: 'currencyFormat'\n})\nexport class CurrencyFormatPipe implements PipeTransform {\n transform(value: number, unit: string = '', maximumFractionDigits = 3): string | null {\n if (!value) {\n return null;\n }\n if (typeof value === 'string') {\n value = parseFloat(value);\n if (isNaN(value)) {\n return '';\n }\n }\n\n const intl = new Intl.NumberFormat('en-US', {maximumFractionDigits}).format(value);\n return intl.replace(/,/g, ' ').replace('.', ',') + ` ${unit}`;\n }\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Transforms an Object to an Array.\n *\n * @example\n *\n * public obj = {a: 1, b: 2, c: 3};\n * <span *ngFor=\"let key of obj | keys \"> {{ obj[key] }}, </span> -> 1, 2, 3,\n */\n\n@Pipe({\n name: 'keys'\n})\nexport class KeysPipe implements PipeTransform {\n\n transform(value: Record<string, unknown>): Array<string> {\n if (value) {\n return Object.keys(value);\n }\n return [];\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { format as formatDate } from 'date-fns';\n\n/**\n * Pipe used to transform dates, based on our default formats.\n *\n * @example\n *\n * public date = \"2018-08-27 14:00:30\"\n * <span>{{ date | dateFormat }}</span> -> Aug 27, 2018\n * <span>{{ date | dateFormat:'long' }}</span> -> Monday Aug 27, 2018\n */\n\n@Pipe({\n name: 'formatDate'\n})\nexport class DateFormatPipe implements PipeTransform {\n\n transform(value: string | number | Date | null, format?: string): string | null {\n if (!value) {\n return null;\n }\n if (typeof value === 'string') {\n value = new Date(value);\n }\n switch (format) {\n case 'long':\n return formatDate(value, 'EEEE MMM d, yyyy');\n case 'short':\n return formatDate(value, 'yyyy-MM-dd');\n case 'datetime':\n return formatDate(value, 'MMM d, yyyy, HH:mm');\n case 'datetimezone':\n return formatDate(value, `MMM d, yyyy, HH:mm:ss ('UTC'xxx)`);\n case 'datetime-long':\n return formatDate(value, 'EEEE MMM dd, yyyy, HH:mm');\n case 'datetime-short':\n return formatDate(value, 'yyyy-MM-dd, HH:mm');\n default:\n return formatDate(value, 'MMM d, yyyy');\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'getUnit'})\nexport class GetUnit implements PipeTransform {\n transform(value: string, withParens?: boolean): string {\n if (value) {\n const arr = value.split('(');\n if (arr.length > 0 ) {\n if (withParens) {\n value = '(' + arr[1];\n } else {\n arr[1].slice(0, -1);\n value = arr[1].slice(0, -1);\n }\n }\n }\n return value;\n }\n}\n@Pipe({name: 'excludeUnit'})\nexport class ExcludeUnit implements PipeTransform {\n transform(value: string): string {\n if (value) {\n const arr = value.split('(');\n if (arr.length > 0) {\n value = arr[0];\n }\n }\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({name: 'yesNo'})\nexport class YesNoPipe implements PipeTransform {\n transform(value: boolean, ignoreNulls = false): string {\n let valueStr = '';\n if (ignoreNulls) {\n valueStr = value ? 'Yes' : value === false ? 'No' : '';\n } else {\n valueStr = value ? 'Yes' : 'No';\n }\n return valueStr;\n\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NumberFormatPipe } from './number-format.pipe';\nimport { CurrencyFormatPipe } from './currency-format.pipe';\nimport { KeysPipe } from './keys.pipe';\nimport { DateFormatPipe } from './date-format.pipe';\nimport { ExcludeUnit, GetUnit } from './with-unit';\nimport { YesNoPipe } from './yes-no';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DateFormatPipe,\n KeysPipe,\n NumberFormatPipe,\n CurrencyFormatPipe,\n GetUnit,\n ExcludeUnit,\n YesNoPipe\n ],\n exports: [\n DateFormatPipe,\n KeysPipe,\n NumberFormatPipe,\n CurrencyFormatPipe,\n GetUnit,\n ExcludeUnit,\n YesNoPipe\n ]\n})\nexport class StoPipesModule {\n}\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {FormBuilder, FormGroup} from '@angular/forms';\nimport {take, takeUntil} from 'rxjs/operators';\nimport {Subject} from 'rxjs';\nimport {StoUserPreferenceService} from './sto-user-preference.service';\n\n@Component({\n selector: 'sto-user-preference',\n templateUrl: './sto-user-preference.component.html',\n styleUrls: ['./sto-user-preference.component.css']\n})\nexport class StoUserPreferenceComponent implements OnInit, OnDestroy {\n\n public form: FormGroup;\n private destroyed$ = new Subject<boolean>();\n\n constructor(private fb: FormBuilder, private service: StoUserPreferenceService) {\n }\n\n private initForm(value: boolean ) {\n this.form = this.fb.group({\n hasSelectTextOnFocusEnabled: [value]\n });\n this.form.get('hasSelectTextOnFocusEnabled')?.valueChanges\n .pipe(\n takeUntil(this.destroyed$)\n )\n .subscribe((hasSelectTextOnFocusEnabled) => {\n this.service.setHasSelectTextOnFocusEnabled(hasSelectTextOnFocusEnabled);\n });\n }\n\n ngOnInit() {\n this.service.hasSelectTextOnFocusEnabled.asObservable()\n .pipe(\n take(1)\n )\n .subscribe((value) => {\n this.initForm(value);\n });\n\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n}\n","<mat-expansion-panel [expanded]=\"false\">\n <mat-expansion-panel-header>\n <mat-panel-title>Settings<span style=\"opacity: 0.36\"> (beta)</span></mat-panel-title>\n </mat-expansion-panel-header>\n <div *ngIf=\"form\" class=\"sto-grid sto-grid--4\">\n\n <ng-content></ng-content>\n\n </div>\n</mat-expansion-panel>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { StoUserPreferenceService } from './sto-user-preference.service';\nimport { CommonModule } from '@angular/common';\nimport { StoUserPreferenceComponent } from './sto-user-preference.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [CommonModule, MatExpansionModule, ReactiveFormsModule, FormsModule],\n exports: [StoUserPreferenceComponent],\n declarations: [StoUserPreferenceComponent]\n})\nexport class StoUserPreferenceModule {\n static forRoot(): ModuleWithProviders<StoUserPreferenceModule> {\n return {\n ngModule: StoUserPreferenceModule,\n providers: [StoUserPreferenceService]\n };\n }\n}\n","/*\n * Public API Surface of @ngx-stoui/core\n */\n\nexport * from './lib/abstract-and-interfaces/keyPress.enum';\nexport * from './lib/sto-directives/directives.module';\nexport * from './lib/sto-directives';\nexport * from './lib/sto-pipes/sto-pipes.module';\nexport * from './lib/sto-user-preference/sto-user-preference.module';\nexport * from './lib/sto-user-preference/sto-user-preference.service';\nexport * from './lib/sto-user-preference/sto-user-preference.component';\n\nexport * from './lib/sto-pipes/currency-format.pipe';\nexport * from './lib/sto-pipes/date-format.pipe';\nexport * from './lib/sto-pipes/keys.pipe';\nexport * from './lib/sto-pipes/number-format.pipe';\nexport * from './lib/sto-pipes/sto-pipes.module';\nexport * from './lib/sto-pipes/with-unit';\nexport * from './lib/sto-pipes/yes-no';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["format","formatDate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-stoui-core.mjs","sources":["../../../../libs/core/src/lib/abstract-and-interfaces/keyPress.enum.ts","../../../../libs/core/src/lib/sto-directives/quick-keys.directive.ts","../../../../libs/core/src/lib/sto-directives/date-form-field-click.directive.ts","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.service.ts","../../../../libs/core/src/lib/sto-directives/sto-select-text-on-focus.directive.ts","../../../../libs/core/src/lib/sto-directives/sto-grid.directive.ts","../../../../libs/core/src/lib/sto-directives/menu-overlay.directive.ts","../../../../libs/core/src/lib/sto-directives/context-menu.directive.ts","../../../../libs/core/src/lib/sto-directives/directives.module.ts","../../../../libs/core/src/lib/sto-pipes/number-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/currency-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/keys.pipe.ts","../../../../libs/core/src/lib/sto-pipes/date-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/with-unit.ts","../../../../libs/core/src/lib/sto-pipes/yes-no.ts","../../../../libs/core/src/lib/sto-pipes/sto-pipes.module.ts","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.component.ts","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.component.html","../../../../libs/core/src/lib/sto-user-preference/sto-user-preference.module.ts","../../../../libs/core/src/index.ts","../../../../libs/core/src/ngx-stoui-core.ts"],"sourcesContent":["/**\nMIT License\n\nCopyright (c) 2017 Nathan Friend\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE. **/\n\nexport enum Key {\n Backspace = 8,\n Tab = 9,\n Enter = 13,\n Shift = 16,\n Ctrl = 17,\n Alt = 18,\n PauseBreak = 19,\n CapsLock = 20,\n Escape = 27,\n Space = 32,\n PageUp = 33,\n PageDown = 34,\n End = 35,\n Home = 36,\n\n LeftArrow = 37,\n UpArrow = 38,\n RightArrow = 39,\n DownArrow = 40,\n\n Insert = 45,\n Delete = 46,\n\n Zero = 48,\n ClosedParen = Zero,\n One = 49,\n ExclamationMark = One,\n Two = 50,\n AtSign = Two,\n Three = 51,\n PoundSign = Three,\n Hash = PoundSign,\n Four = 52,\n DollarSign = Four,\n Five = 53,\n PercentSign = Five,\n Six = 54,\n Caret = Six,\n Hat = Caret,\n Seven = 55,\n Ampersand = Seven,\n Eight = 56,\n Star = Eight,\n Asterik = Star,\n Nine = 57,\n OpenParen = Nine,\n\n A = 65,\n B = 66,\n C = 67,\n D = 68,\n E = 69,\n F = 70,\n G = 71,\n H = 72,\n I = 73,\n J = 74,\n K = 75,\n L = 76,\n M = 77,\n N = 78,\n O = 79,\n P = 80,\n Q = 81,\n R = 82,\n S = 83,\n T = 84,\n U = 85,\n V = 86,\n W = 87,\n X = 88,\n Y = 89,\n Z = 90,\n\n LeftWindowKey = 91,\n RightWindowKey = 92,\n SelectKey = 93,\n\n Numpad0 = 96,\n Numpad1 = 97,\n Numpad2 = 98,\n Numpad3 = 99,\n Numpad4 = 100,\n Numpad5 = 101,\n Numpad6 = 102,\n Numpad7 = 103,\n Numpad8 = 104,\n Numpad9 = 105,\n\n Multiply = 106,\n Add = 107,\n Subtract = 109,\n DecimalPoint = 110,\n Divide = 111,\n\n F1 = 112,\n F2 = 113,\n F3 = 114,\n F4 = 115,\n F5 = 116,\n F6 = 117,\n F7 = 118,\n F8 = 119,\n F9 = 120,\n F10 = 121,\n F11 = 122,\n F12 = 123,\n\n NumLock = 144,\n ScrollLock = 145,\n\n SemiColon = 186,\n Equals = 187,\n Comma = 188,\n Dash = 189,\n Period = 190,\n UnderScore = Dash,\n PlusSign = Equals,\n ForwardSlash = 191,\n Tilde = 192,\n GraveAccent = Tilde,\n\n OpenBracket = 219,\n ClosedBracket = 221,\n Quote = 222\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Key } from '../abstract-and-interfaces/keyPress.enum';\n\n/**\n * QuickKeysDirective is used to implement shortcut keys on DOM elements, e.g to submit or reset a form on enter/escape\n * <form quickKeys (quickSubmit)=\"save()\" (quickCancel)=\"reset()\">\n */\n\n@Directive({\n selector: '[stoQuickKeys]'\n})\nexport class QuickKeysDirective {\n @Input() quickKeys: unknown;\n /**\n * Optional formGroup input, when used in combination with a reactive form\n */\n @Input() formGroup: FormGroup;\n /**\n * Emits when ctrl + enter is clicked in combination\n * <form (quickSubmit)=\"save()\">\n */\n @Output() quickSubmit = new EventEmitter<void>();\n /**\n * Emits when escape is clicked\n * <form (quickCancel)=\"cancel()\">\n */\n @Output() quickCancel = new EventEmitter<void>();\n\n /**\n * Listens on the host element for any keyup events\n * @param e\n */\n @HostListener('keyup', ['$event'])\n onKeyUp(e: KeyboardEvent) {\n if (this.formGroup) {\n this.handleFormKeys(e);\n }\n this.handleGenericKeydown(e);\n }\n\n /**\n * Handler for generic keydowns, such as cancel events to close drawers\n * @param e\n * void\n */\n private handleGenericKeydown(e: KeyboardEvent) {\n // Shortcuts that are useful outside of forms\n if (e.keyCode === Key.Escape) {\n this.quickCancel.emit();\n }\n if (!this.formGroup && e.keyCode === Key.Enter && e.ctrlKey) {\n this.quickSubmit.emit();\n }\n }\n\n /**\n * Handler for form specific shortcuts, such as saving the form\n * @param e\n */\n private handleFormKeys(e: KeyboardEvent) {\n if (this.formGroup.pristine) {\n return;\n }\n if (e.keyCode === Key.Enter && e.ctrlKey) {\n this.quickSubmit.emit();\n }\n }\n}\n","import { ContentChildren, Directive, HostListener, Input, OnDestroy, OnInit, QueryList } from '@angular/core';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { MatInput } from '@angular/material/input';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Directive that can be placed on mat-form-fields that contains a mat-datepicker.\n * This directive has two tasks:\n * Clicking anywhere on the mat-form-field will open the datepicker dialog\n * When the datepicker is closed in any manner, we shift focus back to the datepicker input\n */\n@Directive({\n selector: '[stoDateFormFieldClick]'\n})\nexport class DateFormFieldClickDirective implements OnInit, OnDestroy {\n private destroy$ = new Subject();\n @ContentChildren(MatInput) inputs: QueryList<MatInput>;\n @Input() stoDateFormFieldClick: MatDatepicker<Date>;\n @HostListener('click')\n clickEvent() {\n this.stoDateFormFieldClick.open();\n }\n ngOnInit() {\n this.stoDateFormFieldClick.closedStream\n .pipe(\n takeUntil(this.destroy$)\n ).subscribe(() => this.inputs.first.focus());\n }\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nconst preferenceKey = 'TOPS_IM:UserPreferences';\n\n@Injectable()\nexport class StoUserPreferenceService {\n\n public hasSelectTextOnFocusEnabled = new BehaviorSubject<boolean>(true);\n public preferences: {\n hasSelectTextOnFocusEnabled: boolean;\n };\n public default = {\n hasSelectTextOnFocusEnabled: true\n };\n\n\n constructor() {\n let sessionPreferences = {};\n const sessionPreferencesString = this.getPreferences();\n try {\n sessionPreferences = JSON.parse(sessionPreferencesString);\n } catch ( e ) {\n console.error('Unable to parse the preferences from local storage. Loading default');\n }\n this.preferences = { ...this.default, ...sessionPreferences };\n this.setHasSelectTextOnFocusEnabled(this.preferences.hasSelectTextOnFocusEnabled);\n }\n\n public setHasSelectTextOnFocusEnabled(value: boolean) {\n this.hasSelectTextOnFocusEnabled.next(value);\n this.preferences.hasSelectTextOnFocusEnabled = value;\n this.setPreferences(this.preferences);\n }\n\n public getPreferences() {\n return sessionStorage.getItem(preferenceKey) || '{}';\n }\n\n public setPreferences(value: Record<string, unknown>) {\n sessionStorage.setItem(preferenceKey, JSON.stringify(value));\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { StoUserPreferenceService } from '../sto-user-preference/sto-user-preference.service';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * stoSelectTextOnFocus listens for input focus events, and selects the contents of the input\n * A user service is established in {@link StoUserPreferenceService} that allows a user to toggle this feature\n */\n@Directive({\n selector: '[stoSelectTextOnFocus]'\n})\nexport class StoSelectTextOnFocusDirective implements OnInit, OnDestroy {\n\n private destroyed$ = new Subject<boolean>();\n\n private _hasSelectTextOnFocusEnabled: boolean;\n private _el: HTMLInputElement;\n\n constructor(private elementRef: ElementRef, @Optional() private userPreferenceService: StoUserPreferenceService) {\n this._el = this.elementRef.nativeElement;\n }\n\n /**\n * Listens for focus events on the host (input) element, and focuses if applicable\n */\n @HostListener('focus')\n @HostListener('dblclick')\n onFocus() {\n if ( this._hasSelectTextOnFocusEnabled && this._el.readOnly === false ) {\n this._el.select();\n }\n\n }\n\n /**\n * Subscribes to changes in {@link StoUserPreferenceService}, and binds the variable accordingly.\n */\n ngOnInit() {\n if ( this.userPreferenceService ) {\n this.userPreferenceService.hasSelectTextOnFocusEnabled\n .pipe(\n takeUntil(this.destroyed$)\n ).subscribe((hasSelectTextOnFocusEnabled) => {\n this._hasSelectTextOnFocusEnabled = hasSelectTextOnFocusEnabled;\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n\n}\n","import { AfterViewInit, ContentChildren, Directive, ElementRef, HostBinding, Input, OnDestroy, QueryList } from '@angular/core';\n\ninterface BreakpointConfig {\n 2: number;\n 4: number;\n}\n\nconst getClass = (width: number, small = 400, large = 800) => {\n let cols = 1;\n if ( width > small ) {\n cols += 1;\n }\n if ( width > large ) {\n cols += 2;\n }\n return `sto-f-grid--${cols}`;\n};\n\nconst ALL_GRIDS = [ 'sto-f-grid--1', 'sto-f-grid--2', 'sto-f-grid--4', 'sto-f-grid--6' ];\n\n@Directive({ selector: '[stoGridSpacer]' })\nexport class StoGridSpacerDirective {\n @HostBinding('class.sto-f-grid__col')\n @HostBinding('class.sto-f-grid__col--spacer')\n useClass = true;\n}\n\n@Directive({ selector: '[stoGridColumn]' })\nexport class StoGridColumnDirective {\n @HostBinding('class.sto-f-grid__col')\n useClass = true;\n @HostBinding('class.sto-f-grid__col--2')\n @Input()\n stoGridColumnDouble: boolean;\n\n}\n\n@Directive({\n selector: '[stoGrid]',\n exportAs: 'stoGrid'\n})\nexport class StoGridDirective implements AfterViewInit, OnDestroy {\n @HostBinding('style.max-width.px')\n @Input()\n maxWidth = 1000;\n @HostBinding('style.min-width.px')\n @Input()\n minWidth = 250;\n @HostBinding('class.sto-f-grid')\n baseClass = true;\n @ContentChildren(StoGridColumnDirective, { read: ElementRef })\n columns: QueryList<ElementRef<HTMLElement>>;\n @Input()\n breakpoints: BreakpointConfig;\n\n private observer: ResizeObserver;\n\n constructor(\n private elRef: ElementRef<HTMLElement>,\n ) {\n }\n\n ngAfterViewInit() {\n const el = this.elRef.nativeElement as HTMLElement;\n this.observer = new ResizeObserver(entries => {\n for ( const entry of entries ) {\n const cr = entry.contentRect;\n const { width } = cr;\n const breakpoints = this.breakpoints || { 2: 400, 4: 800 };\n const gridType = getClass(width, breakpoints[ 2 ], breakpoints[ 4 ]);\n if ( !el.classList.contains(gridType) ) {\n el.classList.remove(...ALL_GRIDS);\n el.classList.add(gridType);\n }\n }\n });\n this.observer.observe(this.elRef.nativeElement);\n }\n\n ngOnDestroy() {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n }\n\n}\n\n","import { Directive, ElementRef, Host, HostBinding } from '@angular/core';\nimport { MatMenuPanel, MatMenuTrigger } from '@angular/material/menu';\nimport { fromEvent } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\n\n@Directive({\n selector: '[stoMenuOverlay]',\n exportAs: 'stoMenuOverlay'\n})\nexport class MenuOverlayDirective {\n private readonly menu: MatMenuPanel;\n @HostBinding('style.left.px')\n left = 0;\n @HostBinding('style.top.px')\n top = 0;\n\n constructor(@Host() private trigger: MatMenuTrigger, el: ElementRef<HTMLButtonElement>) {\n this.menu = trigger.menu;\n this.trigger.menuOpened.pipe(\n switchMap(() =>\n fromEvent<MouseEvent>(document, 'click')\n .pipe(take(1))\n ),\n ).subscribe(() => {\n this.trigger.closeMenu();\n });\n this.setStyle(el.nativeElement);\n }\n\n public updatePosition(event: MouseEvent) {\n this.left = event.x;\n this.top = event.y;\n }\n\n private setStyle(element: HTMLButtonElement) {\n element.style.overflow = 'hidden';\n element.style.position = 'fixed';\n element.style.height = '1px';\n element.style.width = '1px';\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { MenuOverlayDirective } from './menu-overlay.directive';\n\n@Directive({\n selector: '[stoContextMenu]'\n})\nexport class ContextMenuDirective {\n @Input()\n menuTrigger: MatMenuTrigger;\n @Input()\n overlayDirective: MenuOverlayDirective;\n @Input()\n menuContext: unknown;\n\n @HostListener('contextmenu', [ '$event' ])\n contextMenu(event: MouseEvent) {\n event.preventDefault();\n if ( this.menuTrigger.menuOpen ) {\n this.menuTrigger.closeMenu();\n }\n this.overlayDirective.updatePosition(event);\n setTimeout(() => {\n this.menuTrigger.menuData = this.menuContext;\n this.menuTrigger.openMenu();\n }, 150);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuickKeysDirective } from './quick-keys.directive';\nimport { DateFormFieldClickDirective } from './date-form-field-click.directive';\nimport { StoSelectTextOnFocusDirective } from './sto-select-text-on-focus.directive';\nimport { StoGridColumnDirective, StoGridDirective, StoGridSpacerDirective } from './sto-grid.directive';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { MenuOverlayDirective } from './menu-overlay.directive';\nimport { ContextMenuDirective } from './context-menu.directive';\n\n\n@NgModule({\n imports: [ CommonModule, LayoutModule ],\n declarations: [\n QuickKeysDirective\n , DateFormFieldClickDirective\n , StoSelectTextOnFocusDirective\n , StoGridDirective\n , StoGridColumnDirective\n , StoGridSpacerDirective\n , MenuOverlayDirective\n , ContextMenuDirective\n ],\n exports: [\n QuickKeysDirective\n , DateFormFieldClickDirective\n , StoSelectTextOnFocusDirective\n , StoGridDirective\n , StoGridColumnDirective\n , StoGridSpacerDirective\n , MenuOverlayDirective\n , ContextMenuDirective\n ]\n})\nexport class StoDirectivesModule {\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Formats numbers to use our standard formatting (d ddd,ddd)\n *\n * @example\n *\n * {{ 1234,32 | numberFormat }} -> 1 234,320\n * {{ 1234,32 | numberFormat:'M3' }} -> 1 234,320 M3\n * {{ -1234,32 | numberFormat:'M3':true }} -> 1 234,320 M3\n * {{ 1234,32 | numberFormat:'M3':false:false }} -> 1 234 M3\n * {{ 1234,32 | numberFormat:'M3':false:true:5 }} -> 1 234,32000 M3\n */\n@Pipe({\n name: 'numberFormat'\n})\nexport class NumberFormatPipe implements PipeTransform {\n\n transform(value: number | string, unit: string = '', abs?: boolean, appendDecimals = true, numberOfDecimals = 3): string | null {\n if ( value !== 0 && !value ) {\n return '';\n }\n if ( typeof value === 'string' ) {\n const newValue = parseFloat(value);\n if ( isNaN(newValue) ) {\n return null;\n }\n value = newValue;\n }\n if ( abs ) {\n value = Math.abs(value);\n }\n // We absolute the value to ensure that the rounding rules is always away from zero.\n // 1.5 => 2 and -1.5 => -2\n const isNegativeNumber = value < 0;\n value = Math.abs(value);\n\n if ( !appendDecimals ) {\n value = Math.round(value);\n }\n if ( !isNaN(value) && appendDecimals ) {\n value = parseFloat(this.toFixed(value, numberOfDecimals));\n }\n // Turn negative numbers back, but only if value is not -0\n // eslint-disable-next-line no-compare-neg-zero\n if ( isNegativeNumber && value !== -0 ) {\n value = value * -1;\n }\n const localized = this.prettyPrintValue(value, appendDecimals, numberOfDecimals);\n return localized.replace(/,/g, ' ').replace('.', ',') + `${unit ? ' ' + unit : ''}`;\n }\n\n private prettyPrintValue(value: number, appendDecimals: boolean, numberOfDecimals: number) {\n const intlOptions = { minimumFractionDigits: numberOfDecimals, maximumFractionDigits: numberOfDecimals };\n const intl = new Intl.NumberFormat('en-US', intlOptions).format(value);\n const split = intl.split('.');\n let localized = split[ 0 ];\n\n if ( appendDecimals ) {\n const decimals = split.length === 2 ? split[ 1 ] : '';\n split[ 1 ] = decimals.padEnd(numberOfDecimals, '0');\n localized = split.join('.');\n }\n return localized;\n }\n\n // Normal toFixed has some issues: https://stackoverflow.com/questions/10015027/javascript-tofixed-not-rounding\n private toFixed(num: number, precision: number) {\n // This method also has some issues - namely, it's unable to parse negative numbers with huge floating points\n // -8.185452315956354e-12 becomes NaN\n let returnValue = ( +( Math.round(+( num + 'e' + precision )) + 'e' + -precision ) );\n if ( isNaN(returnValue) ) {\n returnValue = parseFloat(num.toFixed(precision));\n }\n return returnValue.toFixed(precision);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Pipe used to transform numbers to a currency format\n *\n * @example\n *\n * <span>{{ 5000.5824 | currentFormat:'$':3 }}</span>\n * Results in\n * <span>5 000,582 $</span>\n */\n@Pipe({\n name: 'currencyFormat'\n})\nexport class CurrencyFormatPipe implements PipeTransform {\n transform(value: number, unit: string = '', maximumFractionDigits = 3): string | null {\n if (!value) {\n return null;\n }\n if (typeof value === 'string') {\n value = parseFloat(value);\n if (isNaN(value)) {\n return '';\n }\n }\n\n const intl = new Intl.NumberFormat('en-US', {maximumFractionDigits}).format(value);\n return intl.replace(/,/g, ' ').replace('.', ',') + ` ${unit}`;\n }\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Transforms an Object to an Array.\n *\n * @example\n *\n * public obj = {a: 1, b: 2, c: 3};\n * <span *ngFor=\"let key of obj | keys \"> {{ obj[key] }}, </span> -> 1, 2, 3,\n */\n\n@Pipe({\n name: 'keys'\n})\nexport class KeysPipe implements PipeTransform {\n\n transform(value: Record<string, unknown>): Array<string> {\n if (value) {\n return Object.keys(value);\n }\n return [];\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { format as formatDate, parseISO } from 'date-fns';\n\n/**\n * Pipe used to transform dates, based on our default formats.\n *\n * @example\n *\n * public date = \"2018-08-27 14:00:30\"\n * <span>{{ date | dateFormat }}</span> -> Aug 27, 2018\n * <span>{{ date | dateFormat:'long' }}</span> -> Monday Aug 27, 2018\n */\n\n@Pipe({\n name: 'formatDate'\n})\nexport class DateFormatPipe implements PipeTransform {\n\n transform(value: string | number | Date | null, format?: string): string | null {\n if (!value) {\n return null;\n }\n if (typeof value === 'string') {\n value = parseISO(value);\n }\n switch (format) {\n case 'long':\n return formatDate(value, 'EEEE MMM d, yyyy');\n case 'short':\n return formatDate(value, 'yyyy-MM-dd');\n case 'datetime':\n return formatDate(value, 'MMM d, yyyy, HH:mm');\n case 'datetimezone':\n return formatDate(value, `MMM d, yyyy, HH:mm:ss ('UTC'xxx)`);\n case 'datetime-long':\n return formatDate(value, 'EEEE MMM dd, yyyy, HH:mm');\n case 'datetime-short':\n return formatDate(value, 'yyyy-MM-dd, HH:mm');\n default:\n return formatDate(value, 'MMM d, yyyy');\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'getUnit'})\nexport class GetUnit implements PipeTransform {\n transform(value: string, withParens?: boolean): string {\n if (value) {\n const arr = value.split('(');\n if (arr.length > 0 ) {\n if (withParens) {\n value = '(' + arr[1];\n } else {\n arr[1].slice(0, -1);\n value = arr[1].slice(0, -1);\n }\n }\n }\n return value;\n }\n}\n@Pipe({name: 'excludeUnit'})\nexport class ExcludeUnit implements PipeTransform {\n transform(value: string): string {\n if (value) {\n const arr = value.split('(');\n if (arr.length > 0) {\n value = arr[0];\n }\n }\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({name: 'yesNo'})\nexport class YesNoPipe implements PipeTransform {\n transform(value: boolean, ignoreNulls = false): string {\n let valueStr = '';\n if (ignoreNulls) {\n valueStr = value ? 'Yes' : value === false ? 'No' : '';\n } else {\n valueStr = value ? 'Yes' : 'No';\n }\n return valueStr;\n\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NumberFormatPipe } from './number-format.pipe';\nimport { CurrencyFormatPipe } from './currency-format.pipe';\nimport { KeysPipe } from './keys.pipe';\nimport { DateFormatPipe } from './date-format.pipe';\nimport { ExcludeUnit, GetUnit } from './with-unit';\nimport { YesNoPipe } from './yes-no';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DateFormatPipe,\n KeysPipe,\n NumberFormatPipe,\n CurrencyFormatPipe,\n GetUnit,\n ExcludeUnit,\n YesNoPipe\n ],\n exports: [\n DateFormatPipe,\n KeysPipe,\n NumberFormatPipe,\n CurrencyFormatPipe,\n GetUnit,\n ExcludeUnit,\n YesNoPipe\n ]\n})\nexport class StoPipesModule {\n}\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {FormBuilder, FormGroup} from '@angular/forms';\nimport {take, takeUntil} from 'rxjs/operators';\nimport {Subject} from 'rxjs';\nimport {StoUserPreferenceService} from './sto-user-preference.service';\n\n@Component({\n selector: 'sto-user-preference',\n templateUrl: './sto-user-preference.component.html',\n styleUrls: ['./sto-user-preference.component.css']\n})\nexport class StoUserPreferenceComponent implements OnInit, OnDestroy {\n\n public form: FormGroup;\n private destroyed$ = new Subject<boolean>();\n\n constructor(private fb: FormBuilder, private service: StoUserPreferenceService) {\n }\n\n private initForm(value: boolean ) {\n this.form = this.fb.group({\n hasSelectTextOnFocusEnabled: [value]\n });\n this.form.get('hasSelectTextOnFocusEnabled')?.valueChanges\n .pipe(\n takeUntil(this.destroyed$)\n )\n .subscribe((hasSelectTextOnFocusEnabled) => {\n this.service.setHasSelectTextOnFocusEnabled(hasSelectTextOnFocusEnabled);\n });\n }\n\n ngOnInit() {\n this.service.hasSelectTextOnFocusEnabled.asObservable()\n .pipe(\n take(1)\n )\n .subscribe((value) => {\n this.initForm(value);\n });\n\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n}\n","<mat-expansion-panel [expanded]=\"false\">\n <mat-expansion-panel-header>\n <mat-panel-title>Settings<span style=\"opacity: 0.36\"> (beta)</span></mat-panel-title>\n </mat-expansion-panel-header>\n <div *ngIf=\"form\" class=\"sto-grid sto-grid--4\">\n\n <ng-content></ng-content>\n\n </div>\n</mat-expansion-panel>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { StoUserPreferenceService } from './sto-user-preference.service';\nimport { CommonModule } from '@angular/common';\nimport { StoUserPreferenceComponent } from './sto-user-preference.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [CommonModule, MatExpansionModule, ReactiveFormsModule, FormsModule],\n exports: [StoUserPreferenceComponent],\n declarations: [StoUserPreferenceComponent]\n})\nexport class StoUserPreferenceModule {\n static forRoot(): ModuleWithProviders<StoUserPreferenceModule> {\n return {\n ngModule: StoUserPreferenceModule,\n providers: [StoUserPreferenceService]\n };\n }\n}\n","/*\n * Public API Surface of @ngx-stoui/core\n */\n\nexport * from './lib/abstract-and-interfaces/keyPress.enum';\nexport * from './lib/sto-directives/directives.module';\nexport * from './lib/sto-directives';\nexport * from './lib/sto-pipes/sto-pipes.module';\nexport * from './lib/sto-user-preference/sto-user-preference.module';\nexport * from './lib/sto-user-preference/sto-user-preference.service';\nexport * from './lib/sto-user-preference/sto-user-preference.component';\n\nexport * from './lib/sto-pipes/currency-format.pipe';\nexport * from './lib/sto-pipes/date-format.pipe';\nexport * from './lib/sto-pipes/keys.pipe';\nexport * from './lib/sto-pipes/number-format.pipe';\nexport * from './lib/sto-pipes/sto-pipes.module';\nexport * from './lib/sto-pipes/with-unit';\nexport * from './lib/sto-pipes/yes-no';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["format","formatDate"],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;IAuBY;AAAZ,WAAY,GAAG;IACX,uCAAa,CAAA;IACb,2BAAO,CAAA;IACP,gCAAU,CAAA;IACV,gCAAU,CAAA;IACV,8BAAS,CAAA;IACT,4BAAQ,CAAA;IACR,0CAAe,CAAA;IACf,sCAAa,CAAA;IACb,kCAAW,CAAA;IACX,gCAAU,CAAA;IACV,kCAAW,CAAA;IACX,sCAAa,CAAA;IACb,4BAAQ,CAAA;IACR,8BAAS,CAAA;IAET,wCAAc,CAAA;IACd,oCAAY,CAAA;IACZ,0CAAe,CAAA;IACf,wCAAc,CAAA;IAEd,kCAAW,CAAA;IACX,kCAAW,CAAA;IAEX,8BAAS,CAAA;IACT,4CAAkB,CAAA;IAClB,4BAAQ,CAAA;IACR,oDAAqB,CAAA;IACrB,4BAAQ,CAAA;IACR,kCAAY,CAAA;IACZ,gCAAU,CAAA;IACV,wCAAiB,CAAA;IACjB,8BAAgB,CAAA;IAChB,8BAAS,CAAA;IACT,0CAAiB,CAAA;IACjB,8BAAS,CAAA;IACT,4CAAkB,CAAA;IAClB,4BAAQ,CAAA;IACR,gCAAW,CAAA;IACX,4BAAW,CAAA;IACX,gCAAU,CAAA;IACV,wCAAiB,CAAA;IACjB,gCAAU,CAAA;IACV,8BAAY,CAAA;IACZ,oCAAc,CAAA;IACd,8BAAS,CAAA;IACT,wCAAgB,CAAA;IAEhB,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,wBAAM,CAAA;IAEN,gDAAkB,CAAA;IAClB,kDAAmB,CAAA;IACnB,wCAAc,CAAA;IAEd,oCAAY,CAAA;IACZ,oCAAY,CAAA;IACZ,oCAAY,CAAA;IACZ,oCAAY,CAAA;IACZ,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,qCAAa,CAAA;IAEb,uCAAc,CAAA;IACd,6BAAS,CAAA;IACT,uCAAc,CAAA;IACd,+CAAkB,CAAA;IAClB,mCAAY,CAAA;IAEZ,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,2BAAQ,CAAA;IACR,6BAAS,CAAA;IACT,6BAAS,CAAA;IACT,6BAAS,CAAA;IAET,qCAAa,CAAA;IACb,2CAAgB,CAAA;IAEhB,yCAAe,CAAA;IACf,mCAAY,CAAA;IACZ,iCAAW,CAAA;IACX,+BAAU,CAAA;IACV,mCAAY,CAAA;IACZ,2CAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,+CAAkB,CAAA;IAClB,iCAAW,CAAA;IACX,6CAAmB,CAAA;IAEnB,6CAAiB,CAAA;IACjB,iDAAmB,CAAA;IACnB,iCAAW,CAAA;AACf,CAAC,EA9HW,GAAG,KAAH,GAAG;;ACnBf;;;;MAQa,kBAAkB;IAH/B;;;;;QAaY,gBAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;;;;;QAKvC,gBAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;KAyClD;;;;;IAlCC,OAAO,CAAC,CAAgB;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;KAC9B;;;;;;IAOO,oBAAoB,CAAC,CAAgB;;QAE3C,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE;YAC3D,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;KACF;;;;;IAMO,cAAc,CAAC,CAAgB;QACrC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3B,OAAO;SACR;QACD,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;KACF;;+GAvDU,kBAAkB;mGAAlB,kBAAkB;2FAAlB,kBAAkB;kBAH9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;iBAC3B;8BAEU,SAAS;sBAAjB,KAAK;gBAIG,SAAS;sBAAjB,KAAK;gBAKI,WAAW;sBAApB,MAAM;gBAKG,WAAW;sBAApB,MAAM;gBAOP,OAAO;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AC3BnC;;;;;;MASa,2BAA2B;IAHxC;QAIU,aAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;KAiBlC;IAbC,UAAU;QACR,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;KACnC;IACD,QAAQ;QACN,IAAI,CAAC,qBAAqB,CAAC,YAAY;aACpC,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;KAChD;IACD,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;;wHAjBU,2BAA2B;4GAA3B,2BAA2B,oMAErB,QAAQ;2FAFd,2BAA2B;kBAHvC,SAAS;mBAAC;oBACT,QAAQ,EAAE,yBAAyB;iBACpC;8BAG4B,MAAM;sBAAhC,eAAe;uBAAC,QAAQ;gBAChB,qBAAqB;sBAA7B,KAAK;gBAEN,UAAU;sBADT,YAAY;uBAAC,OAAO;;;AChBvB,MAAM,aAAa,GAAG,yBAAyB,CAAC;MAGnC,wBAAwB;IAWnC;QATO,gCAA2B,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;QAIjE,YAAO,GAAG;YACf,2BAA2B,EAAE,IAAI;SAClC,CAAC;QAIA,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvD,IAAI;YACF,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3D;QAAC,OAAQ,CAAC,EAAG;YACZ,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACtF;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAC9D,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;KACnF;IAEM,8BAA8B,CAAC,KAAc;QAClD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACvC;IAEM,cAAc;QACnB,OAAO,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;KACtD;IAEM,cAAc,CAAC,KAA8B;QAClD,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9D;;qHAnCU,wBAAwB;yHAAxB,wBAAwB;2FAAxB,wBAAwB;kBADpC,UAAU;;;ACAX;;;;MAOa,6BAA6B;IAOxC,YAAoB,UAAsB,EAAsB,qBAA+C;QAA3F,eAAU,GAAV,UAAU,CAAY;QAAsB,0BAAqB,GAArB,qBAAqB,CAA0B;QALvG,eAAU,GAAG,IAAI,OAAO,EAAW,CAAC;QAM1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KAC1C;;;;IAOD,OAAO;QACL,IAAK,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAG;YACtE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;SACnB;KAEF;;;;IAKD,QAAQ;QACN,IAAK,IAAI,CAAC,qBAAqB,EAAG;YAChC,IAAI,CAAC,qBAAqB,CAAC,2BAA2B;iBACnD,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B,CAAC,SAAS,CAAC,CAAC,2BAA2B;gBACxC,IAAI,CAAC,4BAA4B,GAAG,2BAA2B,CAAC;aACjE,CAAC,CAAC;SACJ;KACF;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;;0HAxCU,6BAA6B;8GAA7B,6BAA6B;2FAA7B,6BAA6B;kBAHzC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;iBACnC;;0BAQ8C,QAAQ;4CASrD,OAAO;sBAFN,YAAY;uBAAC,OAAO;;sBACpB,YAAY;uBAAC,UAAU;;;ACpB1B,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG;IACvD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAK,KAAK,GAAG,KAAK,EAAG;QACnB,IAAI,IAAI,CAAC,CAAC;KACX;IACD,IAAK,KAAK,GAAG,KAAK,EAAG;QACnB,IAAI,IAAI,CAAC,CAAC;KACX;IACD,OAAO,eAAe,IAAI,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAE,CAAC;MAG5E,sBAAsB;IADnC;QAIE,aAAQ,GAAG,IAAI,CAAC;KACjB;;mHAJY,sBAAsB;uGAAtB,sBAAsB;2FAAtB,sBAAsB;kBADlC,SAAS;mBAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE;8BAIxC,QAAQ;sBAFP,WAAW;uBAAC,uBAAuB;;sBACnC,WAAW;uBAAC,+BAA+B;;MAKjC,sBAAsB;IADnC;QAGE,aAAQ,GAAG,IAAI,CAAC;KAKjB;;mHAPY,sBAAsB;uGAAtB,sBAAsB;2FAAtB,sBAAsB;kBADlC,SAAS;mBAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE;8BAGxC,QAAQ;sBADP,WAAW;uBAAC,uBAAuB;gBAIpC,mBAAmB;sBAFlB,WAAW;uBAAC,0BAA0B;;sBACtC,KAAK;;MASK,gBAAgB;IAgB3B,YACU,KAA8B;QAA9B,UAAK,GAAL,KAAK,CAAyB;QAdxC,aAAQ,GAAG,IAAI,CAAC;QAGhB,aAAQ,GAAG,GAAG,CAAC;QAEf,cAAS,GAAG,IAAI,CAAC;KAWhB;IAED,eAAe;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAA4B,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO;YACxC,KAAM,MAAM,KAAK,IAAI,OAAO,EAAG;gBAC7B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;gBAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAE,CAAC,CAAE,EAAE,WAAW,CAAE,CAAC,CAAE,CAAC,CAAC;gBACrE,IAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAG;oBACtC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;oBAClC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBAC5B;aACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACjD;IAED,WAAW;QACT,IAAK,IAAI,CAAC,QAAQ,EAAG;YACnB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC5B;KACF;;6GA1CU,gBAAgB;iGAAhB,gBAAgB,2SASV,sBAAsB,QAAU,UAAU;2FAThD,gBAAgB;kBAJ5B,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,SAAS;iBACpB;iGAIC,QAAQ;sBAFP,WAAW;uBAAC,oBAAoB;;sBAChC,KAAK;gBAIN,QAAQ;sBAFP,WAAW;uBAAC,oBAAoB;;sBAChC,KAAK;gBAGN,SAAS;sBADR,WAAW;uBAAC,kBAAkB;gBAG/B,OAAO;sBADN,eAAe;uBAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAG7D,WAAW;sBADV,KAAK;;;MC3CK,oBAAoB;IAO/B,YAA4B,OAAuB,EAAE,EAAiC;QAA1D,YAAO,GAAP,OAAO,CAAgB;QAJnD,SAAI,GAAG,CAAC,CAAC;QAET,QAAG,GAAG,CAAC,CAAC;QAGN,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAC1B,SAAS,CAAC,MACR,SAAS,CAAa,QAAQ,EAAE,OAAO,CAAC;aACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACjB,CACF,CAAC,SAAS,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;KACjC;IAEM,cAAc,CAAC,KAAiB;QACrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;KACpB;IAEO,QAAQ,CAAC,OAA0B;QACzC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;KAC7B;;iHA9BU,oBAAoB;qGAApB,oBAAoB;2FAApB,oBAAoB;kBAJhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,gBAAgB;iBAC3B;;0BAQc,IAAI;qEAJjB,IAAI;sBADH,WAAW;uBAAC,eAAe;gBAG5B,GAAG;sBADF,WAAW;uBAAC,cAAc;;;MCNhB,oBAAoB;IAS/B,WAAW,CAAC,KAAiB;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAG;YAC/B,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC5C,UAAU,CAAC;YACT,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B,EAAE,GAAG,CAAC,CAAC;KACT;;iHAnBU,oBAAoB;qGAApB,oBAAoB;2FAApB,oBAAoB;kBAHhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;iBAC7B;8BAGC,WAAW;sBADV,KAAK;gBAGN,gBAAgB;sBADf,KAAK;gBAGN,WAAW;sBADV,KAAK;gBAIN,WAAW;sBADV,YAAY;uBAAC,aAAa,EAAE,CAAE,QAAQ,CAAE;;;MCmB9B,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBApB5B,kBAAkB;QAChB,2BAA2B;QAC3B,6BAA6B;QAC7B,gBAAgB;QAChB,sBAAsB;QACtB,sBAAsB;QACtB,oBAAoB;QACpB,oBAAoB,aATb,YAAY,EAAE,YAAY,aAYnC,kBAAkB;QAChB,2BAA2B;QAC3B,6BAA6B;QAC7B,gBAAgB;QAChB,sBAAsB;QACtB,sBAAsB;QACtB,oBAAoB;QACpB,oBAAoB;iHAGb,mBAAmB,YAtBrB,CAAE,YAAY,EAAE,YAAY,CAAE;2FAsB5B,mBAAmB;kBAvB/B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAE,YAAY,EAAE,YAAY,CAAE;oBACvC,YAAY,EAAE;wBACZ,kBAAkB;wBAChB,2BAA2B;wBAC3B,6BAA6B;wBAC7B,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,oBAAoB;wBACpB,oBAAoB;qBACvB;oBACD,OAAO,EAAE;wBACP,kBAAkB;wBAChB,2BAA2B;wBAC3B,6BAA6B;wBAC7B,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,oBAAoB;wBACpB,oBAAoB;qBACvB;iBACF;;;AC/BD;;;;;;;;;;;MAca,gBAAgB;IAE3B,SAAS,CAAC,KAAsB,EAAE,OAAe,EAAE,EAAE,GAAa,EAAE,cAAc,GAAG,IAAI,EAAE,gBAAgB,GAAG,CAAC;QAC7G,IAAK,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAG;YAC3B,OAAO,EAAE,CAAC;SACX;QACD,IAAK,OAAO,KAAK,KAAK,QAAQ,EAAG;YAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,IAAK,KAAK,CAAC,QAAQ,CAAC,EAAG;gBACrB,OAAO,IAAI,CAAC;aACb;YACD,KAAK,GAAG,QAAQ,CAAC;SAClB;QACD,IAAK,GAAG,EAAG;YACT,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACzB;;;QAGD,MAAM,gBAAgB,GAAG,KAAK,GAAG,CAAC,CAAC;QACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAExB,IAAK,CAAC,cAAc,EAAG;YACrB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,IAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,cAAc,EAAG;YACrC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;SAC3D;;;QAGD,IAAK,gBAAgB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAG;YACtC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;SACpB;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QACjF,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;KACrF;IAEO,gBAAgB,CAAC,KAAa,EAAE,cAAuB,EAAE,gBAAwB;QACvF,MAAM,WAAW,GAAG,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC;QACzG,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,SAAS,GAAG,KAAK,CAAE,CAAC,CAAE,CAAC;QAE3B,IAAK,cAAc,EAAG;YACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,CAAE,CAAC,CAAE,GAAG,EAAE,CAAC;YACtD,KAAK,CAAE,CAAC,CAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACpD,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,SAAS,CAAC;KAClB;;IAGO,OAAO,CAAC,GAAW,EAAE,SAAiB;;;QAG5C,IAAI,WAAW,IAAK,EAAG,IAAI,CAAC,KAAK,CAAC,EAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAE,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAE,CAAE,CAAC;QACrF,IAAK,KAAK,CAAC,WAAW,CAAC,EAAG;YACxB,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;SAClD;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACvC;;6GA3DU,gBAAgB;2GAAhB,gBAAgB;2FAAhB,gBAAgB;kBAH5B,IAAI;mBAAC;oBACJ,IAAI,EAAE,cAAc;iBACrB;;;ACbD;;;;;;;;;MAYa,kBAAkB;IAC7B,SAAS,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE,qBAAqB,GAAG,CAAC;QACnE,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;gBAChB,OAAO,EAAE,CAAC;aACX;SACF;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAC,qBAAqB,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;KAC/D;;+GAdU,kBAAkB;6GAAlB,kBAAkB;2FAAlB,kBAAkB;kBAH9B,IAAI;mBAAC;oBACJ,IAAI,EAAE,gBAAgB;iBACvB;;;ACXD;;;;;;;;MAYa,QAAQ;IAEnB,SAAS,CAAC,KAA8B;QACtC,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,OAAO,EAAE,CAAC;KACX;;qGAPU,QAAQ;mGAAR,QAAQ;2FAAR,QAAQ;kBAHpB,IAAI;mBAAC;oBACJ,IAAI,EAAE,MAAM;iBACb;;;ACVD;;;;;;;;;MAaa,cAAc;IAEzB,SAAS,CAAC,KAAoC,EAAEA,QAAe;QAC7D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;SACzB;QACD,QAAQA,QAAM;YACZ,KAAK,MAAM;gBACT,OAAOC,MAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YAC/C,KAAK,OAAO;gBACV,OAAOA,MAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACzC,KAAK,UAAU;gBACb,OAAOA,MAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACjD,KAAK,cAAc;gBACjB,OAAOA,MAAU,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAC;YAC/D,KAAK,eAAe;gBAClB,OAAOA,MAAU,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YACvD,KAAK,gBAAgB;gBACnB,OAAOA,MAAU,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YAChD;gBACE,OAAOA,MAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;SAC3C;KACF;;2GAzBU,cAAc;yGAAd,cAAc;2FAAd,cAAc;kBAH1B,IAAI;mBAAC;oBACJ,IAAI,EAAE,YAAY;iBACnB;;;MCZY,OAAO;IAClB,SAAS,CAAC,KAAa,EAAE,UAAoB;QAC3C,IAAI,KAAK,EAAE;YACT,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAG;gBACnB,IAAI,UAAU,EAAE;oBACd,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;iBACtB;qBAAM;oBACL,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpB,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC7B;aACF;SACF;QACD,OAAO,KAAK,CAAC;KACd;;oGAdU,OAAO;kGAAP,OAAO;2FAAP,OAAO;kBADnB,IAAI;mBAAC,EAAC,IAAI,EAAE,SAAS,EAAC;;MAkBV,WAAW;IACtB,SAAS,CAAC,KAAa;QACrB,IAAI,KAAK,EAAE;YACT,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;SACF;QACD,OAAO,KAAK,CAAC;KACd;;wGATU,WAAW;sGAAX,WAAW;2FAAX,WAAW;kBADvB,IAAI;mBAAC,EAAC,IAAI,EAAE,aAAa,EAAC;;;MCjBd,SAAS;IACpB,SAAS,CAAC,KAAc,EAAE,WAAW,GAAG,KAAK;QAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,WAAW,EAAE;YACf,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;SACxD;aAAM;YACL,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;SACjC;QACD,OAAO,QAAQ,CAAC;KAEjB;;sGAVU,SAAS;oGAAT,SAAS;2FAAT,SAAS;kBADrB,IAAI;mBAAC,EAAC,IAAI,EAAE,OAAO,EAAC;;;MC6BR,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBAlBvB,cAAc;QACd,QAAQ;QACR,gBAAgB;QAChB,kBAAkB;QAClB,OAAO;QACP,WAAW;QACX,SAAS,aARD,YAAY,aAWpB,cAAc;QACd,QAAQ;QACR,gBAAgB;QAChB,kBAAkB;QAClB,OAAO;QACP,WAAW;QACX,SAAS;4GAGA,cAAc,YApBhB,CAAC,YAAY,CAAC;2FAoBZ,cAAc;kBArB1B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE;wBACZ,cAAc;wBACd,QAAQ;wBACR,gBAAgB;wBAChB,kBAAkB;wBAClB,OAAO;wBACP,WAAW;wBACX,SAAS;qBACV;oBACD,OAAO,EAAE;wBACP,cAAc;wBACd,QAAQ;wBACR,gBAAgB;wBAChB,kBAAkB;wBAClB,OAAO;wBACP,WAAW;wBACX,SAAS;qBACV;iBACF;;;MClBY,0BAA0B;IAKrC,YAAoB,EAAe,EAAU,OAAiC;QAA1D,OAAE,GAAF,EAAE,CAAa;QAAU,YAAO,GAAP,OAAO,CAA0B;QAFtE,eAAU,GAAG,IAAI,OAAO,EAAW,CAAC;KAG3C;IAEO,QAAQ,CAAC,KAAc;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,2BAA2B,EAAE,CAAC,KAAK,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,YAAY;aACvD,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;aACA,SAAS,CAAC,CAAC,2BAA2B;YACrC,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,2BAA2B,CAAC,CAAC;SAC1E,CAAC,CAAC;KACN;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,YAAY,EAAE;aACpD,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,CAAC,KAAK;YACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB,CAAC,CAAC;KAEN;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;;uHAnCU,0BAA0B;2GAA1B,0BAA0B,2DCXvC,6UAUA;2FDCa,0BAA0B;kBALtC,SAAS;+BACE,qBAAqB;;;MEKpB,uBAAuB;IAClC,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,uBAAuB;YACjC,SAAS,EAAE,CAAC,wBAAwB,CAAC;SACtC,CAAC;KACH;;oHANU,uBAAuB;qHAAvB,uBAAuB,iBAFnB,0BAA0B,aAF/B,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,aAClE,0BAA0B;qHAGzB,uBAAuB,YAJzB,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,CAAC;2FAIlE,uBAAuB;kBALnC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,CAAC;oBAC7E,OAAO,EAAE,CAAC,0BAA0B,CAAC;oBACrC,YAAY,EAAE,CAAC,0BAA0B,CAAC;iBAC3C;;;ACXD;;;;ACAA;;;;;;"}
|