@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
|
@@ -7,7 +7,7 @@ import { Subject, BehaviorSubject, fromEvent } from 'rxjs';
|
|
|
7
7
|
import { takeUntil, switchMap, take } from 'rxjs/operators';
|
|
8
8
|
import { LayoutModule } from '@angular/cdk/layout';
|
|
9
9
|
import * as i1 from '@angular/material/menu';
|
|
10
|
-
import { format } from 'date-fns';
|
|
10
|
+
import { parseISO, format } from 'date-fns';
|
|
11
11
|
import * as i1$1 from '@angular/forms';
|
|
12
12
|
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
13
13
|
import * as i3 from '@angular/material/expansion';
|
|
@@ -207,9 +207,9 @@ class QuickKeysDirective {
|
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
QuickKeysDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
211
|
-
QuickKeysDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
210
|
+
QuickKeysDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: QuickKeysDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
211
|
+
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 });
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: QuickKeysDirective, decorators: [{
|
|
213
213
|
type: Directive,
|
|
214
214
|
args: [{
|
|
215
215
|
selector: '[stoQuickKeys]'
|
|
@@ -249,9 +249,9 @@ class DateFormFieldClickDirective {
|
|
|
249
249
|
this.destroy$.complete();
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
|
-
DateFormFieldClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
253
|
-
DateFormFieldClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
254
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
252
|
+
DateFormFieldClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormFieldClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
253
|
+
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 });
|
|
254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormFieldClickDirective, decorators: [{
|
|
255
255
|
type: Directive,
|
|
256
256
|
args: [{
|
|
257
257
|
selector: '[stoDateFormFieldClick]'
|
|
@@ -296,9 +296,9 @@ class StoUserPreferenceService {
|
|
|
296
296
|
sessionStorage.setItem(preferenceKey, JSON.stringify(value));
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
|
-
StoUserPreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
300
|
-
StoUserPreferenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
299
|
+
StoUserPreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
300
|
+
StoUserPreferenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceService });
|
|
301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceService, decorators: [{
|
|
302
302
|
type: Injectable
|
|
303
303
|
}], ctorParameters: function () { return []; } });
|
|
304
304
|
|
|
@@ -337,9 +337,9 @@ class StoSelectTextOnFocusDirective {
|
|
|
337
337
|
this.destroyed$.complete();
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
|
-
StoSelectTextOnFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
341
|
-
StoSelectTextOnFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
342
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
340
|
+
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 });
|
|
341
|
+
StoSelectTextOnFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: StoSelectTextOnFocusDirective, selector: "[stoSelectTextOnFocus]", host: { listeners: { "focus": "onFocus()", "dblclick": "onFocus()" } }, ngImport: i0 });
|
|
342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoSelectTextOnFocusDirective, decorators: [{
|
|
343
343
|
type: Directive,
|
|
344
344
|
args: [{
|
|
345
345
|
selector: '[stoSelectTextOnFocus]'
|
|
@@ -372,9 +372,9 @@ class StoGridSpacerDirective {
|
|
|
372
372
|
this.useClass = true;
|
|
373
373
|
}
|
|
374
374
|
}
|
|
375
|
-
StoGridSpacerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
376
|
-
StoGridSpacerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
375
|
+
StoGridSpacerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
376
|
+
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 });
|
|
377
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridSpacerDirective, decorators: [{
|
|
378
378
|
type: Directive,
|
|
379
379
|
args: [{ selector: '[stoGridSpacer]' }]
|
|
380
380
|
}], propDecorators: { useClass: [{
|
|
@@ -389,9 +389,9 @@ class StoGridColumnDirective {
|
|
|
389
389
|
this.useClass = true;
|
|
390
390
|
}
|
|
391
391
|
}
|
|
392
|
-
StoGridColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
393
|
-
StoGridColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
394
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
392
|
+
StoGridColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
393
|
+
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 });
|
|
394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridColumnDirective, decorators: [{
|
|
395
395
|
type: Directive,
|
|
396
396
|
args: [{ selector: '[stoGridColumn]' }]
|
|
397
397
|
}], propDecorators: { useClass: [{
|
|
@@ -432,9 +432,9 @@ class StoGridDirective {
|
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
|
-
StoGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
436
|
-
StoGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
435
|
+
StoGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
436
|
+
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 });
|
|
437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoGridDirective, decorators: [{
|
|
438
438
|
type: Directive,
|
|
439
439
|
args: [{
|
|
440
440
|
selector: '[stoGrid]',
|
|
@@ -483,9 +483,9 @@ class MenuOverlayDirective {
|
|
|
483
483
|
element.style.width = '1px';
|
|
484
484
|
}
|
|
485
485
|
}
|
|
486
|
-
MenuOverlayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
487
|
-
MenuOverlayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
486
|
+
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 });
|
|
487
|
+
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 });
|
|
488
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MenuOverlayDirective, decorators: [{
|
|
489
489
|
type: Directive,
|
|
490
490
|
args: [{
|
|
491
491
|
selector: '[stoMenuOverlay]',
|
|
@@ -516,9 +516,9 @@ class ContextMenuDirective {
|
|
|
516
516
|
}, 150);
|
|
517
517
|
}
|
|
518
518
|
}
|
|
519
|
-
ContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
520
|
-
ContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
521
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
519
|
+
ContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ContextMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
520
|
+
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 });
|
|
521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ContextMenuDirective, decorators: [{
|
|
522
522
|
type: Directive,
|
|
523
523
|
args: [{
|
|
524
524
|
selector: '[stoContextMenu]'
|
|
@@ -536,8 +536,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
|
536
536
|
|
|
537
537
|
class StoDirectivesModule {
|
|
538
538
|
}
|
|
539
|
-
StoDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
540
|
-
StoDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
539
|
+
StoDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
540
|
+
StoDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, declarations: [QuickKeysDirective,
|
|
541
541
|
DateFormFieldClickDirective,
|
|
542
542
|
StoSelectTextOnFocusDirective,
|
|
543
543
|
StoGridDirective,
|
|
@@ -552,8 +552,8 @@ StoDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
|
|
|
552
552
|
StoGridSpacerDirective,
|
|
553
553
|
MenuOverlayDirective,
|
|
554
554
|
ContextMenuDirective] });
|
|
555
|
-
StoDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
556
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
555
|
+
StoDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, imports: [[CommonModule, LayoutModule]] });
|
|
556
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoDirectivesModule, decorators: [{
|
|
557
557
|
type: NgModule,
|
|
558
558
|
args: [{
|
|
559
559
|
imports: [CommonModule, LayoutModule],
|
|
@@ -647,9 +647,9 @@ class NumberFormatPipe {
|
|
|
647
647
|
return returnValue.toFixed(precision);
|
|
648
648
|
}
|
|
649
649
|
}
|
|
650
|
-
NumberFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
651
|
-
NumberFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
652
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
650
|
+
NumberFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NumberFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
651
|
+
NumberFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NumberFormatPipe, name: "numberFormat" });
|
|
652
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NumberFormatPipe, decorators: [{
|
|
653
653
|
type: Pipe,
|
|
654
654
|
args: [{
|
|
655
655
|
name: 'numberFormat'
|
|
@@ -680,9 +680,9 @@ class CurrencyFormatPipe {
|
|
|
680
680
|
return intl.replace(/,/g, ' ').replace('.', ',') + ` ${unit}`;
|
|
681
681
|
}
|
|
682
682
|
}
|
|
683
|
-
CurrencyFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
684
|
-
CurrencyFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
683
|
+
CurrencyFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CurrencyFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
684
|
+
CurrencyFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CurrencyFormatPipe, name: "currencyFormat" });
|
|
685
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CurrencyFormatPipe, decorators: [{
|
|
686
686
|
type: Pipe,
|
|
687
687
|
args: [{
|
|
688
688
|
name: 'currencyFormat'
|
|
@@ -705,9 +705,9 @@ class KeysPipe {
|
|
|
705
705
|
return [];
|
|
706
706
|
}
|
|
707
707
|
}
|
|
708
|
-
KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
709
|
-
KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
710
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
708
|
+
KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
709
|
+
KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: KeysPipe, name: "keys" });
|
|
710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: KeysPipe, decorators: [{
|
|
711
711
|
type: Pipe,
|
|
712
712
|
args: [{
|
|
713
713
|
name: 'keys'
|
|
@@ -729,7 +729,7 @@ class DateFormatPipe {
|
|
|
729
729
|
return null;
|
|
730
730
|
}
|
|
731
731
|
if (typeof value === 'string') {
|
|
732
|
-
value =
|
|
732
|
+
value = parseISO(value);
|
|
733
733
|
}
|
|
734
734
|
switch (format$1) {
|
|
735
735
|
case 'long':
|
|
@@ -749,9 +749,9 @@ class DateFormatPipe {
|
|
|
749
749
|
}
|
|
750
750
|
}
|
|
751
751
|
}
|
|
752
|
-
DateFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
753
|
-
DateFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
754
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
752
|
+
DateFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
753
|
+
DateFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormatPipe, name: "formatDate" });
|
|
754
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DateFormatPipe, decorators: [{
|
|
755
755
|
type: Pipe,
|
|
756
756
|
args: [{
|
|
757
757
|
name: 'formatDate'
|
|
@@ -775,9 +775,9 @@ class GetUnit {
|
|
|
775
775
|
return value;
|
|
776
776
|
}
|
|
777
777
|
}
|
|
778
|
-
GetUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
779
|
-
GetUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
780
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
778
|
+
GetUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GetUnit, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
779
|
+
GetUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GetUnit, name: "getUnit" });
|
|
780
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GetUnit, decorators: [{
|
|
781
781
|
type: Pipe,
|
|
782
782
|
args: [{ name: 'getUnit' }]
|
|
783
783
|
}] });
|
|
@@ -792,9 +792,9 @@ class ExcludeUnit {
|
|
|
792
792
|
return value;
|
|
793
793
|
}
|
|
794
794
|
}
|
|
795
|
-
ExcludeUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
796
|
-
ExcludeUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
797
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
795
|
+
ExcludeUnit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ExcludeUnit, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
796
|
+
ExcludeUnit.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ExcludeUnit, name: "excludeUnit" });
|
|
797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ExcludeUnit, decorators: [{
|
|
798
798
|
type: Pipe,
|
|
799
799
|
args: [{ name: 'excludeUnit' }]
|
|
800
800
|
}] });
|
|
@@ -811,17 +811,17 @@ class YesNoPipe {
|
|
|
811
811
|
return valueStr;
|
|
812
812
|
}
|
|
813
813
|
}
|
|
814
|
-
YesNoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
815
|
-
YesNoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.
|
|
816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
814
|
+
YesNoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: YesNoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
815
|
+
YesNoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: YesNoPipe, name: "yesNo" });
|
|
816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: YesNoPipe, decorators: [{
|
|
817
817
|
type: Pipe,
|
|
818
818
|
args: [{ name: 'yesNo' }]
|
|
819
819
|
}] });
|
|
820
820
|
|
|
821
821
|
class StoPipesModule {
|
|
822
822
|
}
|
|
823
|
-
StoPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
824
|
-
StoPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
823
|
+
StoPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
824
|
+
StoPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, declarations: [DateFormatPipe,
|
|
825
825
|
KeysPipe,
|
|
826
826
|
NumberFormatPipe,
|
|
827
827
|
CurrencyFormatPipe,
|
|
@@ -834,8 +834,8 @@ StoPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
834
834
|
GetUnit,
|
|
835
835
|
ExcludeUnit,
|
|
836
836
|
YesNoPipe] });
|
|
837
|
-
StoPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
838
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
837
|
+
StoPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, imports: [[CommonModule]] });
|
|
838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoPipesModule, decorators: [{
|
|
839
839
|
type: NgModule,
|
|
840
840
|
args: [{
|
|
841
841
|
imports: [CommonModule],
|
|
@@ -887,9 +887,9 @@ class StoUserPreferenceComponent {
|
|
|
887
887
|
this.destroyed$.complete();
|
|
888
888
|
}
|
|
889
889
|
}
|
|
890
|
-
StoUserPreferenceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
891
|
-
StoUserPreferenceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
892
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
890
|
+
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 });
|
|
891
|
+
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"] }] });
|
|
892
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceComponent, decorators: [{
|
|
893
893
|
type: Component,
|
|
894
894
|
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: [""] }]
|
|
895
895
|
}], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: StoUserPreferenceService }]; } });
|
|
@@ -902,10 +902,10 @@ class StoUserPreferenceModule {
|
|
|
902
902
|
};
|
|
903
903
|
}
|
|
904
904
|
}
|
|
905
|
-
StoUserPreferenceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
906
|
-
StoUserPreferenceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
907
|
-
StoUserPreferenceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
908
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
905
|
+
StoUserPreferenceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
906
|
+
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] });
|
|
907
|
+
StoUserPreferenceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceModule, imports: [[CommonModule, MatExpansionModule, ReactiveFormsModule, FormsModule]] });
|
|
908
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: StoUserPreferenceModule, decorators: [{
|
|
909
909
|
type: NgModule,
|
|
910
910
|
args: [{
|
|
911
911
|
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":"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"}
|