@ngx-stoui/core 21.0.1 → 21.0.2

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, HostListener, Directive, ContentChildren, inject, ElementRef, HostBinding, NgModule, Pipe } from '@angular/core';
2
+ import { input, HostListener, Directive, ContentChildren, inject, ElementRef, HostBinding, output, NgModule, Pipe } from '@angular/core';
3
3
  import { MatInput } from '@angular/material/input';
4
4
  import { Subject, fromEvent } from 'rxjs';
5
5
  import { takeUntil, switchMap, take } from 'rxjs/operators';
@@ -146,6 +146,117 @@ var Key;
146
146
  Key[Key["Quote"] = 222] = "Quote";
147
147
  })(Key || (Key = {}));
148
148
 
149
+ class ContextMenuDirective {
150
+ constructor() {
151
+ this.menuTrigger = input.required(...(ngDevMode ? [{ debugName: "menuTrigger" }] : []));
152
+ this.overlayDirective = input.required(...(ngDevMode ? [{ debugName: "overlayDirective" }] : []));
153
+ this.menuContext = input(...(ngDevMode ? [undefined, { debugName: "menuContext" }] : []));
154
+ }
155
+ contextMenu(event) {
156
+ event.preventDefault();
157
+ if (this.menuTrigger().menuOpen) {
158
+ this.menuTrigger().closeMenu();
159
+ }
160
+ this.overlayDirective().updatePosition(event);
161
+ setTimeout(() => {
162
+ this.menuTrigger().menuData = this.menuContext();
163
+ this.menuTrigger().openMenu();
164
+ }, 150);
165
+ }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContextMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
167
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: ContextMenuDirective, isStandalone: true, selector: "[stoContextMenu]", inputs: { menuTrigger: { classPropertyName: "menuTrigger", publicName: "menuTrigger", isSignal: true, isRequired: true, transformFunction: null }, overlayDirective: { classPropertyName: "overlayDirective", publicName: "overlayDirective", isSignal: true, isRequired: true, transformFunction: null }, menuContext: { classPropertyName: "menuContext", publicName: "menuContext", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "contextmenu": "contextMenu($event)" } }, ngImport: i0 }); }
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContextMenuDirective, decorators: [{
170
+ type: Directive,
171
+ args: [{
172
+ selector: '[stoContextMenu]',
173
+ }]
174
+ }], propDecorators: { menuTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuTrigger", required: true }] }], overlayDirective: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlayDirective", required: true }] }], menuContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuContext", required: false }] }], contextMenu: [{
175
+ type: HostListener,
176
+ args: ['contextmenu', ['$event']]
177
+ }] } });
178
+
179
+ /**
180
+ * Directive that can be placed on mat-form-fields that contains a mat-datepicker.
181
+ * This directive has two tasks:
182
+ * Clicking anywhere on the mat-form-field will open the datepicker dialog
183
+ * When the datepicker is closed in any manner, we shift focus back to the datepicker input
184
+ */
185
+ class DateFormFieldClickDirective {
186
+ constructor() {
187
+ this.stoDateFormFieldClick = input.required(...(ngDevMode ? [{ debugName: "stoDateFormFieldClick" }] : []));
188
+ this.destroy$ = new Subject();
189
+ }
190
+ clickEvent() {
191
+ this.stoDateFormFieldClick().open();
192
+ }
193
+ ngOnInit() {
194
+ this.stoDateFormFieldClick()
195
+ .closedStream.pipe(takeUntil(this.destroy$))
196
+ .subscribe(() => this.inputs.first.focus());
197
+ }
198
+ ngOnDestroy() {
199
+ this.destroy$.next(true);
200
+ this.destroy$.complete();
201
+ }
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateFormFieldClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
203
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: DateFormFieldClickDirective, isStandalone: true, selector: "[stoDateFormFieldClick]", inputs: { stoDateFormFieldClick: { classPropertyName: "stoDateFormFieldClick", publicName: "stoDateFormFieldClick", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "clickEvent()" } }, queries: [{ propertyName: "inputs", predicate: MatInput }], ngImport: i0 }); }
204
+ }
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateFormFieldClickDirective, decorators: [{
206
+ type: Directive,
207
+ args: [{
208
+ selector: '[stoDateFormFieldClick]',
209
+ }]
210
+ }], propDecorators: { inputs: [{
211
+ type: ContentChildren,
212
+ args: [MatInput]
213
+ }], stoDateFormFieldClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "stoDateFormFieldClick", required: true }] }], clickEvent: [{
214
+ type: HostListener,
215
+ args: ['click']
216
+ }] } });
217
+
218
+ class MenuOverlayDirective {
219
+ constructor() {
220
+ this.trigger = inject(MatMenuTrigger, { host: true });
221
+ this.left = 0;
222
+ this.top = 0;
223
+ const trigger = this.trigger;
224
+ const el = inject(ElementRef);
225
+ this.menu = trigger.menu;
226
+ this.trigger.menuOpened.pipe(switchMap(() => fromEvent(document, 'click')
227
+ .pipe(take(1)))).subscribe(() => {
228
+ this.trigger.closeMenu();
229
+ });
230
+ this.setStyle(el.nativeElement);
231
+ }
232
+ updatePosition(event) {
233
+ this.left = event.x;
234
+ this.top = event.y;
235
+ }
236
+ setStyle(element) {
237
+ element.style.overflow = 'hidden';
238
+ element.style.position = 'fixed';
239
+ element.style.height = '1px';
240
+ element.style.width = '1px';
241
+ }
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MenuOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
243
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: MenuOverlayDirective, isStandalone: true, selector: "[stoMenuOverlay]", host: { properties: { "style.left.px": "this.left", "style.top.px": "this.top" } }, exportAs: ["stoMenuOverlay"], ngImport: i0 }); }
244
+ }
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MenuOverlayDirective, decorators: [{
246
+ type: Directive,
247
+ args: [{
248
+ selector: '[stoMenuOverlay]',
249
+ exportAs: 'stoMenuOverlay',
250
+ standalone: true
251
+ }]
252
+ }], ctorParameters: () => [], propDecorators: { left: [{
253
+ type: HostBinding,
254
+ args: ['style.left.px']
255
+ }], top: [{
256
+ type: HostBinding,
257
+ args: ['style.top.px']
258
+ }] } });
259
+
149
260
  /**
150
261
  * QuickKeysDirective is used to implement shortcut keys on DOM elements, e.g to submit or reset a form on enter/escape
151
262
  * <form quickKeys (quickSubmit)="save()" (quickCancel)="reset()">
@@ -220,79 +331,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
220
331
  args: ['keyup', ['$event']]
221
332
  }] } });
222
333
 
223
- /**
224
- * Directive that can be placed on mat-form-fields that contains a mat-datepicker.
225
- * This directive has two tasks:
226
- * Clicking anywhere on the mat-form-field will open the datepicker dialog
227
- * When the datepicker is closed in any manner, we shift focus back to the datepicker input
228
- */
229
- class DateFormFieldClickDirective {
230
- constructor() {
231
- this.stoDateFormFieldClick = input.required(...(ngDevMode ? [{ debugName: "stoDateFormFieldClick" }] : []));
232
- this.destroy$ = new Subject();
233
- }
234
- clickEvent() {
235
- this.stoDateFormFieldClick().open();
236
- }
237
- ngOnInit() {
238
- this.stoDateFormFieldClick()
239
- .closedStream.pipe(takeUntil(this.destroy$))
240
- .subscribe(() => this.inputs.first.focus());
241
- }
242
- ngOnDestroy() {
243
- this.destroy$.next(true);
244
- this.destroy$.complete();
245
- }
246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateFormFieldClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
247
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: DateFormFieldClickDirective, isStandalone: true, selector: "[stoDateFormFieldClick]", inputs: { stoDateFormFieldClick: { classPropertyName: "stoDateFormFieldClick", publicName: "stoDateFormFieldClick", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "clickEvent()" } }, queries: [{ propertyName: "inputs", predicate: MatInput }], ngImport: i0 }); }
248
- }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateFormFieldClickDirective, decorators: [{
250
- type: Directive,
251
- args: [{
252
- selector: '[stoDateFormFieldClick]',
253
- }]
254
- }], propDecorators: { inputs: [{
255
- type: ContentChildren,
256
- args: [MatInput]
257
- }], stoDateFormFieldClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "stoDateFormFieldClick", required: true }] }], clickEvent: [{
258
- type: HostListener,
259
- args: ['click']
260
- }] } });
261
-
262
- /**
263
- * stoSelectTextOnFocus listens for input focus events, and selects the contents of the input
264
- * A user service is established in {@link StoUserPreferenceService} that allows a user to toggle this feature
265
- */
266
- class StoSelectTextOnFocusDirective {
267
- constructor() {
268
- this.elementRef = inject(ElementRef);
269
- this._el = this.elementRef.nativeElement;
270
- }
271
- /**
272
- * Listens for focus events on the host (input) element, and focuses if applicable
273
- */
274
- onFocus() {
275
- if (!this._el.readOnly) {
276
- this._el.select();
277
- }
278
- }
279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: StoSelectTextOnFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
280
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: StoSelectTextOnFocusDirective, isStandalone: true, selector: "[stoSelectTextOnFocus]", host: { listeners: { "focus": "onFocus()", "dblclick": "onFocus()" } }, ngImport: i0 }); }
281
- }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: StoSelectTextOnFocusDirective, decorators: [{
283
- type: Directive,
284
- args: [{
285
- selector: '[stoSelectTextOnFocus]',
286
- standalone: true
287
- }]
288
- }], ctorParameters: () => [], propDecorators: { onFocus: [{
289
- type: HostListener,
290
- args: ['focus']
291
- }, {
292
- type: HostListener,
293
- args: ['dblclick']
294
- }] } });
295
-
296
334
  class StoGridSpacerDirective {
297
335
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: StoGridSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
298
336
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: StoGridSpacerDirective, isStandalone: true, selector: "[stoGridSpacer]", host: { classAttribute: "sto-grid__col sto-grid__col--spacer" }, ngImport: i0 }); }
@@ -344,76 +382,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
344
382
  }]
345
383
  }], propDecorators: { maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }] } });
346
384
 
347
- class MenuOverlayDirective {
348
- constructor() {
349
- this.trigger = inject(MatMenuTrigger, { host: true });
350
- this.left = 0;
351
- this.top = 0;
352
- const trigger = this.trigger;
353
- const el = inject(ElementRef);
354
- this.menu = trigger.menu;
355
- this.trigger.menuOpened.pipe(switchMap(() => fromEvent(document, 'click')
356
- .pipe(take(1)))).subscribe(() => {
357
- this.trigger.closeMenu();
358
- });
359
- this.setStyle(el.nativeElement);
360
- }
361
- updatePosition(event) {
362
- this.left = event.x;
363
- this.top = event.y;
364
- }
365
- setStyle(element) {
366
- element.style.overflow = 'hidden';
367
- element.style.position = 'fixed';
368
- element.style.height = '1px';
369
- element.style.width = '1px';
370
- }
371
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MenuOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
372
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: MenuOverlayDirective, isStandalone: true, selector: "[stoMenuOverlay]", host: { properties: { "style.left.px": "this.left", "style.top.px": "this.top" } }, exportAs: ["stoMenuOverlay"], ngImport: i0 }); }
373
- }
374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MenuOverlayDirective, decorators: [{
375
- type: Directive,
376
- args: [{
377
- selector: '[stoMenuOverlay]',
378
- exportAs: 'stoMenuOverlay',
379
- standalone: true
380
- }]
381
- }], ctorParameters: () => [], propDecorators: { left: [{
382
- type: HostBinding,
383
- args: ['style.left.px']
384
- }], top: [{
385
- type: HostBinding,
386
- args: ['style.top.px']
387
- }] } });
388
-
389
- class ContextMenuDirective {
385
+ /**
386
+ * stoSelectTextOnFocus listens for input focus events, and selects the contents of the input
387
+ * A user service is established in {@link StoUserPreferenceService} that allows a user to toggle this feature
388
+ */
389
+ class StoSelectTextOnFocusDirective {
390
390
  constructor() {
391
- this.menuTrigger = input.required(...(ngDevMode ? [{ debugName: "menuTrigger" }] : []));
392
- this.overlayDirective = input.required(...(ngDevMode ? [{ debugName: "overlayDirective" }] : []));
393
- this.menuContext = input(...(ngDevMode ? [undefined, { debugName: "menuContext" }] : []));
391
+ this.elementRef = inject(ElementRef);
392
+ this._el = this.elementRef.nativeElement;
394
393
  }
395
- contextMenu(event) {
396
- event.preventDefault();
397
- if (this.menuTrigger().menuOpen) {
398
- this.menuTrigger().closeMenu();
394
+ /**
395
+ * Listens for focus events on the host (input) element, and focuses if applicable
396
+ */
397
+ onFocus() {
398
+ if (!this._el.readOnly) {
399
+ this._el.select();
399
400
  }
400
- this.overlayDirective().updatePosition(event);
401
- setTimeout(() => {
402
- this.menuTrigger().menuData = this.menuContext();
403
- this.menuTrigger().openMenu();
404
- }, 150);
405
401
  }
406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContextMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
407
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: ContextMenuDirective, isStandalone: true, selector: "[stoContextMenu]", inputs: { menuTrigger: { classPropertyName: "menuTrigger", publicName: "menuTrigger", isSignal: true, isRequired: true, transformFunction: null }, overlayDirective: { classPropertyName: "overlayDirective", publicName: "overlayDirective", isSignal: true, isRequired: true, transformFunction: null }, menuContext: { classPropertyName: "menuContext", publicName: "menuContext", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "contextmenu": "contextMenu($event)" } }, ngImport: i0 }); }
402
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: StoSelectTextOnFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
403
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: StoSelectTextOnFocusDirective, isStandalone: true, selector: "[stoSelectTextOnFocus]", host: { listeners: { "focus": "onFocus()", "dblclick": "onFocus()" } }, ngImport: i0 }); }
408
404
  }
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContextMenuDirective, decorators: [{
405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: StoSelectTextOnFocusDirective, decorators: [{
410
406
  type: Directive,
411
407
  args: [{
412
- selector: '[stoContextMenu]',
408
+ selector: '[stoSelectTextOnFocus]',
409
+ standalone: true
413
410
  }]
414
- }], propDecorators: { menuTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuTrigger", required: true }] }], overlayDirective: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlayDirective", required: true }] }], menuContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuContext", required: false }] }], contextMenu: [{
411
+ }], ctorParameters: () => [], propDecorators: { onFocus: [{
415
412
  type: HostListener,
416
- args: ['contextmenu', ['$event']]
413
+ args: ['focus']
414
+ }, {
415
+ type: HostListener,
416
+ args: ['dblclick']
417
417
  }] } });
418
418
 
419
419
  class StoDirectivesModule {
@@ -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-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/currency-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/date-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/keys.pipe.ts","../../../../libs/core/src/lib/sto-pipes/number-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/index.ts","../../../../libs/core/src/ngx-stoui-core.ts"],"sourcesContent":["/**\r\nMIT License\r\n\r\nCopyright (c) 2017 Nathan Friend\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE. **/\r\n\r\nexport enum Key {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Ctrl = 17,\r\n Alt = 18,\r\n PauseBreak = 19,\r\n CapsLock = 20,\r\n Escape = 27,\r\n Space = 32,\r\n PageUp = 33,\r\n PageDown = 34,\r\n End = 35,\r\n Home = 36,\r\n\r\n LeftArrow = 37,\r\n UpArrow = 38,\r\n RightArrow = 39,\r\n DownArrow = 40,\r\n\r\n Insert = 45,\r\n Delete = 46,\r\n\r\n Zero = 48,\r\n ClosedParen = Zero,\r\n One = 49,\r\n ExclamationMark = One,\r\n Two = 50,\r\n AtSign = Two,\r\n Three = 51,\r\n PoundSign = Three,\r\n Hash = PoundSign,\r\n Four = 52,\r\n DollarSign = Four,\r\n Five = 53,\r\n PercentSign = Five,\r\n Six = 54,\r\n Caret = Six,\r\n Hat = Caret,\r\n Seven = 55,\r\n Ampersand = Seven,\r\n Eight = 56,\r\n Star = Eight,\r\n Asterik = Star,\r\n Nine = 57,\r\n OpenParen = Nine,\r\n\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n E = 69,\r\n F = 70,\r\n G = 71,\r\n H = 72,\r\n I = 73,\r\n J = 74,\r\n K = 75,\r\n L = 76,\r\n M = 77,\r\n N = 78,\r\n O = 79,\r\n P = 80,\r\n Q = 81,\r\n R = 82,\r\n S = 83,\r\n T = 84,\r\n U = 85,\r\n V = 86,\r\n W = 87,\r\n X = 88,\r\n Y = 89,\r\n Z = 90,\r\n\r\n LeftWindowKey = 91,\r\n RightWindowKey = 92,\r\n SelectKey = 93,\r\n\r\n Numpad0 = 96,\r\n Numpad1 = 97,\r\n Numpad2 = 98,\r\n Numpad3 = 99,\r\n Numpad4 = 100,\r\n Numpad5 = 101,\r\n Numpad6 = 102,\r\n Numpad7 = 103,\r\n Numpad8 = 104,\r\n Numpad9 = 105,\r\n\r\n Multiply = 106,\r\n Add = 107,\r\n Subtract = 109,\r\n DecimalPoint = 110,\r\n Divide = 111,\r\n\r\n F1 = 112,\r\n F2 = 113,\r\n F3 = 114,\r\n F4 = 115,\r\n F5 = 116,\r\n F6 = 117,\r\n F7 = 118,\r\n F8 = 119,\r\n F9 = 120,\r\n F10 = 121,\r\n F11 = 122,\r\n F12 = 123,\r\n\r\n NumLock = 144,\r\n ScrollLock = 145,\r\n\r\n SemiColon = 186,\r\n Equals = 187,\r\n Comma = 188,\r\n Dash = 189,\r\n Period = 190,\r\n UnderScore = Dash,\r\n PlusSign = Equals,\r\n ForwardSlash = 191,\r\n Tilde = 192,\r\n GraveAccent = Tilde,\r\n\r\n OpenBracket = 219,\r\n ClosedBracket = 221,\r\n Quote = 222\r\n}\r\n","import { Directive, HostListener, input, output } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { Key } from '../abstract-and-interfaces/keyPress.enum';\r\n\r\n/**\r\n * QuickKeysDirective is used to implement shortcut keys on DOM elements, e.g to submit or reset a form on enter/escape\r\n * <form quickKeys (quickSubmit)=\"save()\" (quickCancel)=\"reset()\">\r\n */\r\n\r\n@Directive({\r\n selector: '[stoQuickKeys]',\r\n})\r\nexport class QuickKeysDirective {\r\n readonly quickKeys = input<unknown>();\r\n /**\r\n * Optional formGroup input, when used in combination with a reactive form\r\n */\r\n readonly formGroup = input<UntypedFormGroup>();\r\n /**\r\n * Emits when ctrl + enter is clicked in combination\r\n * <form (quickSubmit)=\"save()\">\r\n */\r\n readonly quickSubmit = output<void>();\r\n /**\r\n * Emits when escape is clicked\r\n * <form (quickCancel)=\"cancel()\">\r\n */\r\n readonly quickCancel = output<void>();\r\n\r\n /**\r\n * Listens on the host element for any keyup events\r\n * @param e\r\n */\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(e: KeyboardEvent) {\r\n if (this.formGroup()) {\r\n this.handleFormKeys(e);\r\n }\r\n this.handleGenericKeydown(e);\r\n }\r\n\r\n /**\r\n * Handler for generic keydowns, such as cancel events to close drawers\r\n * @param e\r\n * void\r\n */\r\n private handleGenericKeydown(e: KeyboardEvent) {\r\n // Shortcuts that are useful outside of forms\r\n if (e.keyCode === Key.Escape) {\r\n // TODO: The 'emit' function requires a mandatory void argument\r\n this.quickCancel.emit();\r\n }\r\n if (!this.formGroup() && e.keyCode === Key.Enter && e.ctrlKey) {\r\n // TODO: The 'emit' function requires a mandatory void argument\r\n this.quickSubmit.emit();\r\n }\r\n }\r\n\r\n /**\r\n * Handler for form specific shortcuts, such as saving the form\r\n * @param e\r\n */\r\n private handleFormKeys(e: KeyboardEvent) {\r\n if (this.formGroup()?.pristine) {\r\n return;\r\n }\r\n if (e.keyCode === Key.Enter && e.ctrlKey) {\r\n // TODO: The 'emit' function requires a mandatory void argument\r\n this.quickSubmit.emit();\r\n }\r\n }\r\n}\r\n","import {\r\n ContentChildren,\r\n Directive,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n input,\r\n} from '@angular/core';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * Directive that can be placed on mat-form-fields that contains a mat-datepicker.\r\n * This directive has two tasks:\r\n * Clicking anywhere on the mat-form-field will open the datepicker dialog\r\n * When the datepicker is closed in any manner, we shift focus back to the datepicker input\r\n */\r\n@Directive({\r\n selector: '[stoDateFormFieldClick]',\r\n})\r\nexport class DateFormFieldClickDirective implements OnInit, OnDestroy {\r\n @ContentChildren(MatInput) inputs: QueryList<MatInput>;\r\n readonly stoDateFormFieldClick = input.required<MatDatepicker<Date>>();\r\n private destroy$ = new Subject();\r\n\r\n @HostListener('click')\r\n clickEvent() {\r\n this.stoDateFormFieldClick().open();\r\n }\r\n\r\n ngOnInit() {\r\n this.stoDateFormFieldClick()\r\n .closedStream.pipe(takeUntil(this.destroy$))\r\n .subscribe(() => this.inputs.first.focus());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\r\n\r\n/**\r\n * stoSelectTextOnFocus listens for input focus events, and selects the contents of the input\r\n * A user service is established in {@link StoUserPreferenceService} that allows a user to toggle this feature\r\n */\r\n@Directive({\r\n selector: '[stoSelectTextOnFocus]',\r\n standalone: true\r\n})\r\nexport class StoSelectTextOnFocusDirective {\n private elementRef = inject(ElementRef);\n\r\n\r\n private _el: HTMLInputElement;\r\n\r\n constructor() {\r\n this._el = this.elementRef.nativeElement;\r\n }\r\n\r\n /**\r\n * Listens for focus events on the host (input) element, and focuses if applicable\r\n */\r\n @HostListener('focus')\r\n @HostListener('dblclick')\r\n onFocus() {\r\n if ( !this._el.readOnly ) {\r\n this._el.select();\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Directive, input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[stoGridSpacer]',\r\n host: {\r\n class: 'sto-grid__col sto-grid__col--spacer',\r\n },\r\n})\r\nexport class StoGridSpacerDirective {}\r\n\r\n@Directive({\r\n selector: '[stoGridColumn]',\r\n host: {\r\n class: 'sto-grid__col',\r\n '[class.sto-grid__col--2]': 'stoGridColumnDouble()',\r\n },\r\n})\r\nexport class StoGridColumnDirective {\r\n readonly stoGridColumnDouble = input(false);\r\n}\r\n\r\n@Directive({\r\n selector: '[stoGrid]',\r\n exportAs: 'stoGrid',\r\n host: {\r\n class: 'sto-grid',\r\n '[style.max-width.px]': 'maxWidth()',\r\n '[style.min-width.px]': 'minWidth()',\r\n },\r\n})\r\nexport class StoGridDirective {\r\n readonly maxWidth = input(1000);\r\n readonly minWidth = input(250);\r\n}\r\n","import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\r\nimport { MatMenuPanel, MatMenuTrigger } from '@angular/material/menu';\r\nimport { fromEvent } from 'rxjs';\r\nimport { switchMap, take } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[stoMenuOverlay]',\r\n exportAs: 'stoMenuOverlay',\r\n standalone: true\r\n})\r\nexport class MenuOverlayDirective {\n private trigger = inject(MatMenuTrigger, { host: true });\n\r\n @HostBinding('style.left.px')\r\n left = 0;\r\n @HostBinding('style.top.px')\r\n top = 0;\r\n private readonly menu: MatMenuPanel;\r\n\r\n constructor() {\n const trigger = this.trigger;\n const el = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n\r\n this.menu = trigger.menu as MatMenuPanel;\r\n this.trigger.menuOpened.pipe(\r\n switchMap(() =>\r\n fromEvent<MouseEvent>(document, 'click')\r\n .pipe(take(1))\r\n ),\r\n ).subscribe(() => {\r\n this.trigger.closeMenu();\r\n });\r\n this.setStyle(el.nativeElement);\r\n }\r\n\r\n public updatePosition(event: MouseEvent) {\r\n this.left = event.x;\r\n this.top = event.y;\r\n }\r\n\r\n private setStyle(element: HTMLButtonElement) {\r\n element.style.overflow = 'hidden';\r\n element.style.position = 'fixed';\r\n element.style.height = '1px';\r\n element.style.width = '1px';\r\n }\r\n}\r\n","import { Directive, HostListener, input } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { MenuOverlayDirective } from './menu-overlay.directive';\r\n\r\n@Directive({\r\n selector: '[stoContextMenu]',\r\n})\r\nexport class ContextMenuDirective {\r\n readonly menuTrigger = input.required<MatMenuTrigger>();\r\n readonly overlayDirective = input.required<MenuOverlayDirective>();\r\n readonly menuContext = input<unknown>();\r\n\r\n @HostListener('contextmenu', ['$event'])\r\n contextMenu(event: MouseEvent) {\r\n event.preventDefault();\r\n if (this.menuTrigger().menuOpen) {\r\n this.menuTrigger().closeMenu();\r\n }\r\n this.overlayDirective().updatePosition(event);\r\n setTimeout(() => {\r\n this.menuTrigger().menuData = this.menuContext();\r\n this.menuTrigger().openMenu();\r\n }, 150);\r\n }\r\n}\r\n","import { ContextMenuDirective } from './context-menu.directive';\r\nimport { DateFormFieldClickDirective } from './date-form-field-click.directive';\r\nimport { MenuOverlayDirective } from './menu-overlay.directive';\r\nimport { QuickKeysDirective } from './quick-keys.directive';\r\nimport {\r\n StoGridColumnDirective,\r\n StoGridDirective,\r\n StoGridSpacerDirective,\r\n} from './sto-grid.directive';\r\nimport { StoSelectTextOnFocusDirective } from './sto-select-text-on-focus.directive';\r\n\r\n/**\r\n * Directives have been made standalone, import them directly:\r\n * QuickKeysDirective\r\n * DateFormFieldClickDirective\r\n * StoSelectTextOnFocusDirective\r\n * StoGridDirective\r\n * StoGridColumnDirective\r\n * StoGridSpacerDirective\r\n * MenuOverlayDirective\r\n * ContextMenuDirective\r\n *\r\n */\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [\r\n QuickKeysDirective,\r\n DateFormFieldClickDirective,\r\n StoSelectTextOnFocusDirective,\r\n StoGridDirective,\r\n StoGridColumnDirective,\r\n StoGridSpacerDirective,\r\n MenuOverlayDirective,\r\n ContextMenuDirective,\r\n ],\r\n exports: [\r\n QuickKeysDirective,\r\n DateFormFieldClickDirective,\r\n StoSelectTextOnFocusDirective,\r\n StoGridDirective,\r\n StoGridColumnDirective,\r\n StoGridSpacerDirective,\r\n MenuOverlayDirective,\r\n ContextMenuDirective,\r\n ],\r\n})\r\nexport class StoDirectivesModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Pipe used to transform numbers to a currency format\r\n *\r\n * @example\r\n *\r\n * <span>{{ 5000.5824 | currentFormat:'$':3 }}</span>\r\n * Results in\r\n * <span>5 000,582 $</span>\r\n */\r\n@Pipe({\r\n name: 'currencyFormat',\r\n standalone: true\r\n})\r\nexport class CurrencyFormatPipe implements PipeTransform {\r\n transform(value: number, unit = '', maximumFractionDigits = 3): string | null {\r\n if ( !value ) {\r\n return null;\r\n }\r\n if ( typeof value === 'string' ) {\r\n value = parseFloat(value);\r\n if ( isNaN(value) ) {\r\n return '';\r\n }\r\n }\r\n\r\n const intl = new Intl.NumberFormat('en-US', { maximumFractionDigits }).format(value);\r\n return intl.replace(/,/g, ' ').replace('.', ',') + ` ${unit}`;\r\n }\r\n}\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { format as formatDate, isValid, parseISO } from 'date-fns';\r\n\r\n/**\r\n * Pipe used to transform dates, based on our default formats.\r\n *\r\n * @example\r\n *\r\n * public date = \"2018-08-27 14:00:30\"\r\n * <span>{{ date | dateFormat }}</span> -> Aug 27, 2018\r\n * <span>{{ date | dateFormat:'long' }}</span> -> Monday Aug 27, 2018\r\n */\r\n\r\n@Pipe({\r\n name: 'formatDate',\r\n standalone: true\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n transform(value: string | number | Date | null, format?: string): string | null {\r\n if ( !value ) {\r\n return null;\r\n }\r\n if ( typeof value === 'string' ) {\r\n const originalValue = value;\r\n value = parseISO(value);\r\n if ( !isValid(value) ) {\r\n // If invalid ISO date (e.g single-digit day), fall back to new Date()\r\n console.warn(`${originalValue} is not a valid ISO date string, falling back to native date`);\r\n value = new Date(originalValue);\r\n }\r\n }\r\n switch ( format ) {\r\n case 'long':\r\n return formatDate(value, 'EEEE MMM d, yyyy');\r\n case 'short':\r\n return formatDate(value, 'yyyy-MM-dd');\r\n case 'datetime':\r\n return formatDate(value, 'MMM d, yyyy, HH:mm');\r\n case 'datetimezone':\r\n return formatDate(value, `MMM d, yyyy, HH:mm:ss ('UTC'xxx)`);\r\n case 'datetime-long':\r\n return formatDate(value, 'EEEE MMM dd, yyyy, HH:mm');\r\n case 'datetime-short':\r\n return formatDate(value, 'yyyy-MM-dd, HH:mm');\r\n default:\r\n return formatDate(value, 'MMM d, yyyy');\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Transforms an Object to an Array.\r\n *\r\n * @example\r\n *\r\n * public obj = {a: 1, b: 2, c: 3};\r\n * <span *ngFor=\"let key of obj | keys \"> {{ obj[key] }}, </span> -> 1, 2, 3,\r\n */\r\n\r\n@Pipe({\r\n name: 'keys',\r\n standalone: true\r\n})\r\nexport class KeysPipe implements PipeTransform {\r\n\r\n transform(value: Record<string, unknown>): Array<string> {\r\n if ( value ) {\r\n return Object.keys(value);\r\n }\r\n return [];\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Formats numbers to use our standard formatting (d ddd,ddd)\r\n *\r\n * @example\r\n *\r\n * {{ 1234,32 | numberFormat }} -> 1 234,320\r\n * {{ 1234,32 | numberFormat:'M3' }} -> 1 234,320 M3\r\n * {{ -1234,32 | numberFormat:'M3':true }} -> 1 234,320 M3\r\n * {{ 1234,32 | numberFormat:'M3':false:false }} -> 1 234 M3\r\n * {{ 1234,32 | numberFormat:'M3':false:true:5 }} -> 1 234,32000 M3\r\n */\r\n@Pipe({\r\n name: 'numberFormat',\r\n standalone: true,\r\n})\r\nexport class NumberFormatPipe implements PipeTransform {\r\n transform(\r\n value: number | string,\r\n unit = '',\r\n abs?: boolean,\r\n appendDecimals = true,\r\n numberOfDecimals = 3,\r\n ): string | null {\r\n if (value !== 0 && !value) {\r\n return '';\r\n }\r\n if (typeof value === 'string') {\r\n const newValue = parseFloat(value);\r\n if (isNaN(newValue)) {\r\n return null;\r\n }\r\n value = newValue;\r\n }\r\n if (abs) {\r\n value = Math.abs(value);\r\n }\r\n // We absolute the value to ensure that the rounding rules is always away from zero.\r\n // 1.5 => 2 and -1.5 => -2\r\n const isNegativeNumber = value < 0;\r\n value = Math.abs(value);\r\n\r\n if (!appendDecimals) {\r\n value = Math.round(value);\r\n }\r\n if (!isNaN(value) && appendDecimals) {\r\n value = parseFloat(this.toFixed(value, numberOfDecimals));\r\n }\r\n // Turn negative numbers back, but only if value is not -0\r\n \r\n if (isNegativeNumber && value < 0) {\r\n value = value * -1;\r\n }\r\n const localized = this.prettyPrintValue(\r\n value,\r\n appendDecimals,\r\n numberOfDecimals,\r\n );\r\n return (\r\n localized.replace(/,/g, ' ').replace('.', ',') +\r\n `${unit ? ' ' + unit : ''}`\r\n );\r\n }\r\n\r\n private prettyPrintValue(\r\n value: number,\r\n appendDecimals: boolean,\r\n numberOfDecimals: number,\r\n ) {\r\n const intlOptions = {\r\n minimumFractionDigits: numberOfDecimals,\r\n maximumFractionDigits: numberOfDecimals,\r\n };\r\n const intl = new Intl.NumberFormat('en-US', intlOptions).format(value);\r\n const split = intl.split('.');\r\n let localized = split[0];\r\n\r\n if (appendDecimals) {\r\n const decimals = split.length === 2 ? split[1] : '';\r\n split[1] = decimals.padEnd(numberOfDecimals, '0');\r\n localized = split.join('.');\r\n }\r\n return localized;\r\n }\r\n\r\n // Normal toFixed has some issues: https://stackoverflow.com/questions/10015027/javascript-tofixed-not-rounding\r\n private toFixed(num: number, precision: number) {\r\n // This method also has some issues - namely, it's unable to parse negative numbers with huge floating points\r\n // -8.185452315956354e-12 becomes NaN\r\n let returnValue = +(\r\n Math.round(+(num + 'e' + precision)) +\r\n 'e' +\r\n -precision\r\n );\r\n if (isNaN(returnValue)) {\r\n returnValue = parseFloat(num.toFixed(precision));\r\n }\r\n return returnValue.toFixed(precision);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'getUnit', standalone: true })\r\nexport class GetUnit implements PipeTransform {\r\n transform(value: string, withParens?: boolean): string {\r\n if ( value ) {\r\n const arr = value.split('(');\r\n if ( arr.length > 0 ) {\r\n if ( withParens ) {\r\n value = '(' + arr[ 1 ];\r\n } else {\r\n arr[ 1 ].slice(0, -1);\r\n value = arr[ 1 ].slice(0, -1);\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\n@Pipe({ name: 'excludeUnit', standalone: true })\r\nexport class ExcludeUnit implements PipeTransform {\r\n transform(value: string): string {\r\n if ( value ) {\r\n const arr = value.split('(');\r\n if ( arr.length > 0 ) {\r\n value = arr[ 0 ];\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'yesNo', standalone: true })\r\nexport class YesNoPipe implements PipeTransform {\r\n transform(value: boolean, ignoreNulls = false): string {\r\n let valueStr = '';\r\n if ( ignoreNulls ) {\r\n valueStr = value ? 'Yes' : value === false ? 'No' : '';\r\n } else {\r\n valueStr = value ? 'Yes' : 'No';\r\n }\r\n return valueStr;\r\n\r\n }\r\n}\r\n","import { NumberFormatPipe } from './number-format.pipe';\r\nimport { CurrencyFormatPipe } from './currency-format.pipe';\r\nimport { KeysPipe } from './keys.pipe';\r\nimport { DateFormatPipe } from './date-format.pipe';\r\nimport { ExcludeUnit, GetUnit } from './with-unit';\r\nimport { YesNoPipe } from './yes-no';\r\n\r\n\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [\r\n DateFormatPipe,\r\n KeysPipe,\r\n NumberFormatPipe,\r\n CurrencyFormatPipe,\r\n GetUnit,\r\n ExcludeUnit,\r\n YesNoPipe\r\n ],\r\n exports: [\r\n DateFormatPipe,\r\n KeysPipe,\r\n NumberFormatPipe,\r\n CurrencyFormatPipe,\r\n GetUnit,\r\n ExcludeUnit,\r\n YesNoPipe\r\n ]\r\n})\r\nexport class StoPipesModule {\r\n}\r\n","/*\r\n * Public API Surface of @ngx-stoui/core\r\n */\r\n\r\nexport * from './lib/abstract-and-interfaces/keyPress.enum';\r\nexport * from './lib/sto-directives';\r\n\r\n\r\nexport * from './lib/sto-pipes/currency-format.pipe';\r\nexport * from './lib/sto-pipes/date-format.pipe';\r\nexport * from './lib/sto-pipes/keys.pipe';\r\nexport * from './lib/sto-pipes/number-format.pipe';\r\nexport * from './lib/sto-pipes/sto-pipes.module';\r\n\r\nexport * from './lib/sto-pipes/with-unit';\r\nexport * from './lib/sto-pipes/yes-no';\r\n\r\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/context-menu.directive.ts","../../../../libs/core/src/lib/sto-directives/date-form-field-click.directive.ts","../../../../libs/core/src/lib/sto-directives/menu-overlay.directive.ts","../../../../libs/core/src/lib/sto-directives/quick-keys.directive.ts","../../../../libs/core/src/lib/sto-directives/sto-grid.directive.ts","../../../../libs/core/src/lib/sto-directives/sto-select-text-on-focus.directive.ts","../../../../libs/core/src/lib/sto-directives/directives.module.ts","../../../../libs/core/src/lib/sto-pipes/currency-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/date-format.pipe.ts","../../../../libs/core/src/lib/sto-pipes/keys.pipe.ts","../../../../libs/core/src/lib/sto-pipes/number-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/index.ts","../../../../libs/core/src/ngx-stoui-core.ts"],"sourcesContent":["/**\r\nMIT License\r\n\r\nCopyright (c) 2017 Nathan Friend\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE. **/\r\n\r\nexport enum Key {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Ctrl = 17,\r\n Alt = 18,\r\n PauseBreak = 19,\r\n CapsLock = 20,\r\n Escape = 27,\r\n Space = 32,\r\n PageUp = 33,\r\n PageDown = 34,\r\n End = 35,\r\n Home = 36,\r\n\r\n LeftArrow = 37,\r\n UpArrow = 38,\r\n RightArrow = 39,\r\n DownArrow = 40,\r\n\r\n Insert = 45,\r\n Delete = 46,\r\n\r\n Zero = 48,\r\n ClosedParen = Zero,\r\n One = 49,\r\n ExclamationMark = One,\r\n Two = 50,\r\n AtSign = Two,\r\n Three = 51,\r\n PoundSign = Three,\r\n Hash = PoundSign,\r\n Four = 52,\r\n DollarSign = Four,\r\n Five = 53,\r\n PercentSign = Five,\r\n Six = 54,\r\n Caret = Six,\r\n Hat = Caret,\r\n Seven = 55,\r\n Ampersand = Seven,\r\n Eight = 56,\r\n Star = Eight,\r\n Asterik = Star,\r\n Nine = 57,\r\n OpenParen = Nine,\r\n\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n E = 69,\r\n F = 70,\r\n G = 71,\r\n H = 72,\r\n I = 73,\r\n J = 74,\r\n K = 75,\r\n L = 76,\r\n M = 77,\r\n N = 78,\r\n O = 79,\r\n P = 80,\r\n Q = 81,\r\n R = 82,\r\n S = 83,\r\n T = 84,\r\n U = 85,\r\n V = 86,\r\n W = 87,\r\n X = 88,\r\n Y = 89,\r\n Z = 90,\r\n\r\n LeftWindowKey = 91,\r\n RightWindowKey = 92,\r\n SelectKey = 93,\r\n\r\n Numpad0 = 96,\r\n Numpad1 = 97,\r\n Numpad2 = 98,\r\n Numpad3 = 99,\r\n Numpad4 = 100,\r\n Numpad5 = 101,\r\n Numpad6 = 102,\r\n Numpad7 = 103,\r\n Numpad8 = 104,\r\n Numpad9 = 105,\r\n\r\n Multiply = 106,\r\n Add = 107,\r\n Subtract = 109,\r\n DecimalPoint = 110,\r\n Divide = 111,\r\n\r\n F1 = 112,\r\n F2 = 113,\r\n F3 = 114,\r\n F4 = 115,\r\n F5 = 116,\r\n F6 = 117,\r\n F7 = 118,\r\n F8 = 119,\r\n F9 = 120,\r\n F10 = 121,\r\n F11 = 122,\r\n F12 = 123,\r\n\r\n NumLock = 144,\r\n ScrollLock = 145,\r\n\r\n SemiColon = 186,\r\n Equals = 187,\r\n Comma = 188,\r\n Dash = 189,\r\n Period = 190,\r\n UnderScore = Dash,\r\n PlusSign = Equals,\r\n ForwardSlash = 191,\r\n Tilde = 192,\r\n GraveAccent = Tilde,\r\n\r\n OpenBracket = 219,\r\n ClosedBracket = 221,\r\n Quote = 222\r\n}\r\n","import { Directive, HostListener, input } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { MenuOverlayDirective } from './menu-overlay.directive';\r\n\r\n@Directive({\r\n selector: '[stoContextMenu]',\r\n})\r\nexport class ContextMenuDirective {\r\n readonly menuTrigger = input.required<MatMenuTrigger>();\r\n readonly overlayDirective = input.required<MenuOverlayDirective>();\r\n readonly menuContext = input<unknown>();\r\n\r\n @HostListener('contextmenu', ['$event'])\r\n contextMenu(event: MouseEvent) {\r\n event.preventDefault();\r\n if (this.menuTrigger().menuOpen) {\r\n this.menuTrigger().closeMenu();\r\n }\r\n this.overlayDirective().updatePosition(event);\r\n setTimeout(() => {\r\n this.menuTrigger().menuData = this.menuContext();\r\n this.menuTrigger().openMenu();\r\n }, 150);\r\n }\r\n}\r\n","import {\r\n ContentChildren,\r\n Directive,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n input,\r\n} from '@angular/core';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * Directive that can be placed on mat-form-fields that contains a mat-datepicker.\r\n * This directive has two tasks:\r\n * Clicking anywhere on the mat-form-field will open the datepicker dialog\r\n * When the datepicker is closed in any manner, we shift focus back to the datepicker input\r\n */\r\n@Directive({\r\n selector: '[stoDateFormFieldClick]',\r\n})\r\nexport class DateFormFieldClickDirective implements OnInit, OnDestroy {\r\n @ContentChildren(MatInput) inputs: QueryList<MatInput>;\r\n readonly stoDateFormFieldClick = input.required<MatDatepicker<Date>>();\r\n private destroy$ = new Subject();\r\n\r\n @HostListener('click')\r\n clickEvent() {\r\n this.stoDateFormFieldClick().open();\r\n }\r\n\r\n ngOnInit() {\r\n this.stoDateFormFieldClick()\r\n .closedStream.pipe(takeUntil(this.destroy$))\r\n .subscribe(() => this.inputs.first.focus());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\r\nimport { MatMenuPanel, MatMenuTrigger } from '@angular/material/menu';\r\nimport { fromEvent } from 'rxjs';\r\nimport { switchMap, take } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[stoMenuOverlay]',\r\n exportAs: 'stoMenuOverlay',\r\n standalone: true\r\n})\r\nexport class MenuOverlayDirective {\n private trigger = inject(MatMenuTrigger, { host: true });\n\r\n @HostBinding('style.left.px')\r\n left = 0;\r\n @HostBinding('style.top.px')\r\n top = 0;\r\n private readonly menu: MatMenuPanel;\r\n\r\n constructor() {\n const trigger = this.trigger;\n const el = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n\r\n this.menu = trigger.menu as MatMenuPanel;\r\n this.trigger.menuOpened.pipe(\r\n switchMap(() =>\r\n fromEvent<MouseEvent>(document, 'click')\r\n .pipe(take(1))\r\n ),\r\n ).subscribe(() => {\r\n this.trigger.closeMenu();\r\n });\r\n this.setStyle(el.nativeElement);\r\n }\r\n\r\n public updatePosition(event: MouseEvent) {\r\n this.left = event.x;\r\n this.top = event.y;\r\n }\r\n\r\n private setStyle(element: HTMLButtonElement) {\r\n element.style.overflow = 'hidden';\r\n element.style.position = 'fixed';\r\n element.style.height = '1px';\r\n element.style.width = '1px';\r\n }\r\n}\r\n","import { Directive, HostListener, input, output } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { Key } from '../abstract-and-interfaces/keyPress.enum';\r\n\r\n/**\r\n * QuickKeysDirective is used to implement shortcut keys on DOM elements, e.g to submit or reset a form on enter/escape\r\n * <form quickKeys (quickSubmit)=\"save()\" (quickCancel)=\"reset()\">\r\n */\r\n\r\n@Directive({\r\n selector: '[stoQuickKeys]',\r\n})\r\nexport class QuickKeysDirective {\r\n readonly quickKeys = input<unknown>();\r\n /**\r\n * Optional formGroup input, when used in combination with a reactive form\r\n */\r\n readonly formGroup = input<UntypedFormGroup>();\r\n /**\r\n * Emits when ctrl + enter is clicked in combination\r\n * <form (quickSubmit)=\"save()\">\r\n */\r\n readonly quickSubmit = output<void>();\r\n /**\r\n * Emits when escape is clicked\r\n * <form (quickCancel)=\"cancel()\">\r\n */\r\n readonly quickCancel = output<void>();\r\n\r\n /**\r\n * Listens on the host element for any keyup events\r\n * @param e\r\n */\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(e: KeyboardEvent) {\r\n if (this.formGroup()) {\r\n this.handleFormKeys(e);\r\n }\r\n this.handleGenericKeydown(e);\r\n }\r\n\r\n /**\r\n * Handler for generic keydowns, such as cancel events to close drawers\r\n * @param e\r\n * void\r\n */\r\n private handleGenericKeydown(e: KeyboardEvent) {\r\n // Shortcuts that are useful outside of forms\r\n if (e.keyCode === Key.Escape) {\r\n // TODO: The 'emit' function requires a mandatory void argument\r\n this.quickCancel.emit();\r\n }\r\n if (!this.formGroup() && e.keyCode === Key.Enter && e.ctrlKey) {\r\n // TODO: The 'emit' function requires a mandatory void argument\r\n this.quickSubmit.emit();\r\n }\r\n }\r\n\r\n /**\r\n * Handler for form specific shortcuts, such as saving the form\r\n * @param e\r\n */\r\n private handleFormKeys(e: KeyboardEvent) {\r\n if (this.formGroup()?.pristine) {\r\n return;\r\n }\r\n if (e.keyCode === Key.Enter && e.ctrlKey) {\r\n // TODO: The 'emit' function requires a mandatory void argument\r\n this.quickSubmit.emit();\r\n }\r\n }\r\n}\r\n","import { Directive, input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[stoGridSpacer]',\r\n host: {\r\n class: 'sto-grid__col sto-grid__col--spacer',\r\n },\r\n})\r\nexport class StoGridSpacerDirective {}\r\n\r\n@Directive({\r\n selector: '[stoGridColumn]',\r\n host: {\r\n class: 'sto-grid__col',\r\n '[class.sto-grid__col--2]': 'stoGridColumnDouble()',\r\n },\r\n})\r\nexport class StoGridColumnDirective {\r\n readonly stoGridColumnDouble = input(false);\r\n}\r\n\r\n@Directive({\r\n selector: '[stoGrid]',\r\n exportAs: 'stoGrid',\r\n host: {\r\n class: 'sto-grid',\r\n '[style.max-width.px]': 'maxWidth()',\r\n '[style.min-width.px]': 'minWidth()',\r\n },\r\n})\r\nexport class StoGridDirective {\r\n readonly maxWidth = input(1000);\r\n readonly minWidth = input(250);\r\n}\r\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\r\n\r\n/**\r\n * stoSelectTextOnFocus listens for input focus events, and selects the contents of the input\r\n * A user service is established in {@link StoUserPreferenceService} that allows a user to toggle this feature\r\n */\r\n@Directive({\r\n selector: '[stoSelectTextOnFocus]',\r\n standalone: true\r\n})\r\nexport class StoSelectTextOnFocusDirective {\n private elementRef = inject(ElementRef);\n\r\n\r\n private _el: HTMLInputElement;\r\n\r\n constructor() {\r\n this._el = this.elementRef.nativeElement;\r\n }\r\n\r\n /**\r\n * Listens for focus events on the host (input) element, and focuses if applicable\r\n */\r\n @HostListener('focus')\r\n @HostListener('dblclick')\r\n onFocus() {\r\n if ( !this._el.readOnly ) {\r\n this._el.select();\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { ContextMenuDirective } from './context-menu.directive';\r\nimport { DateFormFieldClickDirective } from './date-form-field-click.directive';\r\nimport { MenuOverlayDirective } from './menu-overlay.directive';\r\nimport { QuickKeysDirective } from './quick-keys.directive';\r\nimport {\r\n StoGridColumnDirective,\r\n StoGridDirective,\r\n StoGridSpacerDirective,\r\n} from './sto-grid.directive';\r\nimport { StoSelectTextOnFocusDirective } from './sto-select-text-on-focus.directive';\r\n\r\n/**\r\n * Directives have been made standalone, import them directly:\r\n * QuickKeysDirective\r\n * DateFormFieldClickDirective\r\n * StoSelectTextOnFocusDirective\r\n * StoGridDirective\r\n * StoGridColumnDirective\r\n * StoGridSpacerDirective\r\n * MenuOverlayDirective\r\n * ContextMenuDirective\r\n *\r\n */\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [\r\n QuickKeysDirective,\r\n DateFormFieldClickDirective,\r\n StoSelectTextOnFocusDirective,\r\n StoGridDirective,\r\n StoGridColumnDirective,\r\n StoGridSpacerDirective,\r\n MenuOverlayDirective,\r\n ContextMenuDirective,\r\n ],\r\n exports: [\r\n QuickKeysDirective,\r\n DateFormFieldClickDirective,\r\n StoSelectTextOnFocusDirective,\r\n StoGridDirective,\r\n StoGridColumnDirective,\r\n StoGridSpacerDirective,\r\n MenuOverlayDirective,\r\n ContextMenuDirective,\r\n ],\r\n})\r\nexport class StoDirectivesModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Pipe used to transform numbers to a currency format\r\n *\r\n * @example\r\n *\r\n * <span>{{ 5000.5824 | currentFormat:'$':3 }}</span>\r\n * Results in\r\n * <span>5 000,582 $</span>\r\n */\r\n@Pipe({\r\n name: 'currencyFormat',\r\n standalone: true\r\n})\r\nexport class CurrencyFormatPipe implements PipeTransform {\r\n transform(value: number, unit = '', maximumFractionDigits = 3): string | null {\r\n if ( !value ) {\r\n return null;\r\n }\r\n if ( typeof value === 'string' ) {\r\n value = parseFloat(value);\r\n if ( isNaN(value) ) {\r\n return '';\r\n }\r\n }\r\n\r\n const intl = new Intl.NumberFormat('en-US', { maximumFractionDigits }).format(value);\r\n return intl.replace(/,/g, ' ').replace('.', ',') + ` ${unit}`;\r\n }\r\n}\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { format as formatDate, isValid, parseISO } from 'date-fns';\r\n\r\n/**\r\n * Pipe used to transform dates, based on our default formats.\r\n *\r\n * @example\r\n *\r\n * public date = \"2018-08-27 14:00:30\"\r\n * <span>{{ date | dateFormat }}</span> -> Aug 27, 2018\r\n * <span>{{ date | dateFormat:'long' }}</span> -> Monday Aug 27, 2018\r\n */\r\n\r\n@Pipe({\r\n name: 'formatDate',\r\n standalone: true\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n transform(value: string | number | Date | null, format?: string): string | null {\r\n if ( !value ) {\r\n return null;\r\n }\r\n if ( typeof value === 'string' ) {\r\n const originalValue = value;\r\n value = parseISO(value);\r\n if ( !isValid(value) ) {\r\n // If invalid ISO date (e.g single-digit day), fall back to new Date()\r\n console.warn(`${originalValue} is not a valid ISO date string, falling back to native date`);\r\n value = new Date(originalValue);\r\n }\r\n }\r\n switch ( format ) {\r\n case 'long':\r\n return formatDate(value, 'EEEE MMM d, yyyy');\r\n case 'short':\r\n return formatDate(value, 'yyyy-MM-dd');\r\n case 'datetime':\r\n return formatDate(value, 'MMM d, yyyy, HH:mm');\r\n case 'datetimezone':\r\n return formatDate(value, `MMM d, yyyy, HH:mm:ss ('UTC'xxx)`);\r\n case 'datetime-long':\r\n return formatDate(value, 'EEEE MMM dd, yyyy, HH:mm');\r\n case 'datetime-short':\r\n return formatDate(value, 'yyyy-MM-dd, HH:mm');\r\n default:\r\n return formatDate(value, 'MMM d, yyyy');\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Transforms an Object to an Array.\r\n *\r\n * @example\r\n *\r\n * public obj = {a: 1, b: 2, c: 3};\r\n * <span *ngFor=\"let key of obj | keys \"> {{ obj[key] }}, </span> -> 1, 2, 3,\r\n */\r\n\r\n@Pipe({\r\n name: 'keys',\r\n standalone: true\r\n})\r\nexport class KeysPipe implements PipeTransform {\r\n\r\n transform(value: Record<string, unknown>): Array<string> {\r\n if ( value ) {\r\n return Object.keys(value);\r\n }\r\n return [];\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Formats numbers to use our standard formatting (d ddd,ddd)\r\n *\r\n * @example\r\n *\r\n * {{ 1234,32 | numberFormat }} -> 1 234,320\r\n * {{ 1234,32 | numberFormat:'M3' }} -> 1 234,320 M3\r\n * {{ -1234,32 | numberFormat:'M3':true }} -> 1 234,320 M3\r\n * {{ 1234,32 | numberFormat:'M3':false:false }} -> 1 234 M3\r\n * {{ 1234,32 | numberFormat:'M3':false:true:5 }} -> 1 234,32000 M3\r\n */\r\n@Pipe({\r\n name: 'numberFormat',\r\n standalone: true,\r\n})\r\nexport class NumberFormatPipe implements PipeTransform {\r\n transform(\r\n value: number | string,\r\n unit = '',\r\n abs?: boolean,\r\n appendDecimals = true,\r\n numberOfDecimals = 3,\r\n ): string | null {\r\n if (value !== 0 && !value) {\r\n return '';\r\n }\r\n if (typeof value === 'string') {\r\n const newValue = parseFloat(value);\r\n if (isNaN(newValue)) {\r\n return null;\r\n }\r\n value = newValue;\r\n }\r\n if (abs) {\r\n value = Math.abs(value);\r\n }\r\n // We absolute the value to ensure that the rounding rules is always away from zero.\r\n // 1.5 => 2 and -1.5 => -2\r\n const isNegativeNumber = value < 0;\r\n value = Math.abs(value);\r\n\r\n if (!appendDecimals) {\r\n value = Math.round(value);\r\n }\r\n if (!isNaN(value) && appendDecimals) {\r\n value = parseFloat(this.toFixed(value, numberOfDecimals));\r\n }\r\n // Turn negative numbers back, but only if value is not -0\r\n \r\n if (isNegativeNumber && value < 0) {\r\n value = value * -1;\r\n }\r\n const localized = this.prettyPrintValue(\r\n value,\r\n appendDecimals,\r\n numberOfDecimals,\r\n );\r\n return (\r\n localized.replace(/,/g, ' ').replace('.', ',') +\r\n `${unit ? ' ' + unit : ''}`\r\n );\r\n }\r\n\r\n private prettyPrintValue(\r\n value: number,\r\n appendDecimals: boolean,\r\n numberOfDecimals: number,\r\n ) {\r\n const intlOptions = {\r\n minimumFractionDigits: numberOfDecimals,\r\n maximumFractionDigits: numberOfDecimals,\r\n };\r\n const intl = new Intl.NumberFormat('en-US', intlOptions).format(value);\r\n const split = intl.split('.');\r\n let localized = split[0];\r\n\r\n if (appendDecimals) {\r\n const decimals = split.length === 2 ? split[1] : '';\r\n split[1] = decimals.padEnd(numberOfDecimals, '0');\r\n localized = split.join('.');\r\n }\r\n return localized;\r\n }\r\n\r\n // Normal toFixed has some issues: https://stackoverflow.com/questions/10015027/javascript-tofixed-not-rounding\r\n private toFixed(num: number, precision: number) {\r\n // This method also has some issues - namely, it's unable to parse negative numbers with huge floating points\r\n // -8.185452315956354e-12 becomes NaN\r\n let returnValue = +(\r\n Math.round(+(num + 'e' + precision)) +\r\n 'e' +\r\n -precision\r\n );\r\n if (isNaN(returnValue)) {\r\n returnValue = parseFloat(num.toFixed(precision));\r\n }\r\n return returnValue.toFixed(precision);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'getUnit', standalone: true })\r\nexport class GetUnit implements PipeTransform {\r\n transform(value: string, withParens?: boolean): string {\r\n if ( value ) {\r\n const arr = value.split('(');\r\n if ( arr.length > 0 ) {\r\n if ( withParens ) {\r\n value = '(' + arr[ 1 ];\r\n } else {\r\n arr[ 1 ].slice(0, -1);\r\n value = arr[ 1 ].slice(0, -1);\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\n@Pipe({ name: 'excludeUnit', standalone: true })\r\nexport class ExcludeUnit implements PipeTransform {\r\n transform(value: string): string {\r\n if ( value ) {\r\n const arr = value.split('(');\r\n if ( arr.length > 0 ) {\r\n value = arr[ 0 ];\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'yesNo', standalone: true })\r\nexport class YesNoPipe implements PipeTransform {\r\n transform(value: boolean, ignoreNulls = false): string {\r\n let valueStr = '';\r\n if ( ignoreNulls ) {\r\n valueStr = value ? 'Yes' : value === false ? 'No' : '';\r\n } else {\r\n valueStr = value ? 'Yes' : 'No';\r\n }\r\n return valueStr;\r\n\r\n }\r\n}\r\n","import { NumberFormatPipe } from './number-format.pipe';\r\nimport { CurrencyFormatPipe } from './currency-format.pipe';\r\nimport { KeysPipe } from './keys.pipe';\r\nimport { DateFormatPipe } from './date-format.pipe';\r\nimport { ExcludeUnit, GetUnit } from './with-unit';\r\nimport { YesNoPipe } from './yes-no';\r\n\r\n\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [\r\n DateFormatPipe,\r\n KeysPipe,\r\n NumberFormatPipe,\r\n CurrencyFormatPipe,\r\n GetUnit,\r\n ExcludeUnit,\r\n YesNoPipe\r\n ],\r\n exports: [\r\n DateFormatPipe,\r\n KeysPipe,\r\n NumberFormatPipe,\r\n CurrencyFormatPipe,\r\n GetUnit,\r\n ExcludeUnit,\r\n YesNoPipe\r\n ]\r\n})\r\nexport class StoPipesModule {\r\n}\r\n","/*\r\n * Public API Surface of @ngx-stoui/core\r\n */\r\n\r\nexport * from './lib/abstract-and-interfaces/keyPress.enum';\r\nexport * from './lib/sto-directives';\r\n\r\nexport * from './lib/sto-pipes/currency-format.pipe';\r\nexport * from './lib/sto-pipes/date-format.pipe';\r\nexport * from './lib/sto-pipes/keys.pipe';\r\nexport * from './lib/sto-pipes/number-format.pipe';\r\nexport * from './lib/sto-pipes/sto-pipes.module';\r\n\r\nexport * from './lib/sto-pipes/with-unit';\r\nexport * from './lib/sto-pipes/yes-no';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["format","formatDate"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngx-stoui/core",
3
- "version": "21.0.1",
3
+ "version": "21.0.2",
4
4
  "author": {
5
5
  "name": "Ronnie Laugen",
6
6
  "email": "rhenri@equinor.com"
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnInit, OnDestroy, QueryList, PipeTransform } from '@angular/core';
3
- import { UntypedFormGroup } from '@angular/forms';
3
+ import { MatMenuTrigger } from '@angular/material/menu';
4
4
  import { MatDatepicker } from '@angular/material/datepicker';
5
5
  import { MatInput } from '@angular/material/input';
6
- import { MatMenuTrigger } from '@angular/material/menu';
6
+ import { UntypedFormGroup } from '@angular/forms';
7
7
 
8
8
  /**
9
9
  MIT License
@@ -144,6 +144,44 @@ declare enum Key {
144
144
  Quote = 222
145
145
  }
146
146
 
147
+ declare class MenuOverlayDirective {
148
+ private trigger;
149
+ left: number;
150
+ top: number;
151
+ private readonly menu;
152
+ constructor();
153
+ updatePosition(event: MouseEvent): void;
154
+ private setStyle;
155
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuOverlayDirective, never>;
156
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MenuOverlayDirective, "[stoMenuOverlay]", ["stoMenuOverlay"], {}, {}, never, never, true, never>;
157
+ }
158
+
159
+ declare class ContextMenuDirective {
160
+ readonly menuTrigger: i0.InputSignal<MatMenuTrigger>;
161
+ readonly overlayDirective: i0.InputSignal<MenuOverlayDirective>;
162
+ readonly menuContext: i0.InputSignal<unknown>;
163
+ contextMenu(event: MouseEvent): void;
164
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuDirective, never>;
165
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuDirective, "[stoContextMenu]", never, { "menuTrigger": { "alias": "menuTrigger"; "required": true; "isSignal": true; }; "overlayDirective": { "alias": "overlayDirective"; "required": true; "isSignal": true; }; "menuContext": { "alias": "menuContext"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
166
+ }
167
+
168
+ /**
169
+ * Directive that can be placed on mat-form-fields that contains a mat-datepicker.
170
+ * This directive has two tasks:
171
+ * Clicking anywhere on the mat-form-field will open the datepicker dialog
172
+ * When the datepicker is closed in any manner, we shift focus back to the datepicker input
173
+ */
174
+ declare class DateFormFieldClickDirective implements OnInit, OnDestroy {
175
+ inputs: QueryList<MatInput>;
176
+ readonly stoDateFormFieldClick: i0.InputSignal<MatDatepicker<Date>>;
177
+ private destroy$;
178
+ clickEvent(): void;
179
+ ngOnInit(): void;
180
+ ngOnDestroy(): void;
181
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateFormFieldClickDirective, never>;
182
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DateFormFieldClickDirective, "[stoDateFormFieldClick]", never, { "stoDateFormFieldClick": { "alias": "stoDateFormFieldClick"; "required": true; "isSignal": true; }; }, {}, ["inputs"], never, true, never>;
183
+ }
184
+
147
185
  /**
148
186
  * QuickKeysDirective is used to implement shortcut keys on DOM elements, e.g to submit or reset a form on enter/escape
149
187
  * <form quickKeys (quickSubmit)="save()" (quickCancel)="reset()">
@@ -184,23 +222,6 @@ declare class QuickKeysDirective {
184
222
  static ɵdir: i0.ɵɵDirectiveDeclaration<QuickKeysDirective, "[stoQuickKeys]", never, { "quickKeys": { "alias": "quickKeys"; "required": false; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": false; "isSignal": true; }; }, { "quickSubmit": "quickSubmit"; "quickCancel": "quickCancel"; }, never, never, true, never>;
185
223
  }
186
224
 
187
- /**
188
- * Directive that can be placed on mat-form-fields that contains a mat-datepicker.
189
- * This directive has two tasks:
190
- * Clicking anywhere on the mat-form-field will open the datepicker dialog
191
- * When the datepicker is closed in any manner, we shift focus back to the datepicker input
192
- */
193
- declare class DateFormFieldClickDirective implements OnInit, OnDestroy {
194
- inputs: QueryList<MatInput>;
195
- readonly stoDateFormFieldClick: i0.InputSignal<MatDatepicker<Date>>;
196
- private destroy$;
197
- clickEvent(): void;
198
- ngOnInit(): void;
199
- ngOnDestroy(): void;
200
- static ɵfac: i0.ɵɵFactoryDeclaration<DateFormFieldClickDirective, never>;
201
- static ɵdir: i0.ɵɵDirectiveDeclaration<DateFormFieldClickDirective, "[stoDateFormFieldClick]", never, { "stoDateFormFieldClick": { "alias": "stoDateFormFieldClick"; "required": true; "isSignal": true; }; }, {}, ["inputs"], never, true, never>;
202
- }
203
-
204
225
  /**
205
226
  * stoSelectTextOnFocus listens for input focus events, and selects the contents of the input
206
227
  * A user service is established in {@link StoUserPreferenceService} that allows a user to toggle this feature
@@ -233,27 +254,6 @@ declare class StoGridDirective {
233
254
  static ɵdir: i0.ɵɵDirectiveDeclaration<StoGridDirective, "[stoGrid]", ["stoGrid"], { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
234
255
  }
235
256
 
236
- declare class MenuOverlayDirective {
237
- private trigger;
238
- left: number;
239
- top: number;
240
- private readonly menu;
241
- constructor();
242
- updatePosition(event: MouseEvent): void;
243
- private setStyle;
244
- static ɵfac: i0.ɵɵFactoryDeclaration<MenuOverlayDirective, never>;
245
- static ɵdir: i0.ɵɵDirectiveDeclaration<MenuOverlayDirective, "[stoMenuOverlay]", ["stoMenuOverlay"], {}, {}, never, never, true, never>;
246
- }
247
-
248
- declare class ContextMenuDirective {
249
- readonly menuTrigger: i0.InputSignal<MatMenuTrigger>;
250
- readonly overlayDirective: i0.InputSignal<MenuOverlayDirective>;
251
- readonly menuContext: i0.InputSignal<unknown>;
252
- contextMenu(event: MouseEvent): void;
253
- static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuDirective, never>;
254
- static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuDirective, "[stoContextMenu]", never, { "menuTrigger": { "alias": "menuTrigger"; "required": true; "isSignal": true; }; "overlayDirective": { "alias": "overlayDirective"; "required": true; "isSignal": true; }; "menuContext": { "alias": "menuContext"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
255
- }
256
-
257
257
  declare class StoDirectivesModule {
258
258
  static ɵfac: i0.ɵɵFactoryDeclaration<StoDirectivesModule, never>;
259
259
  static ɵmod: i0.ɵɵNgModuleDeclaration<StoDirectivesModule, never, [typeof QuickKeysDirective, typeof DateFormFieldClickDirective, typeof StoSelectTextOnFocusDirective, typeof StoGridDirective, typeof StoGridColumnDirective, typeof StoGridSpacerDirective, typeof MenuOverlayDirective, typeof ContextMenuDirective], [typeof QuickKeysDirective, typeof DateFormFieldClickDirective, typeof StoSelectTextOnFocusDirective, typeof StoGridDirective, typeof StoGridColumnDirective, typeof StoGridSpacerDirective, typeof MenuOverlayDirective, typeof ContextMenuDirective]>;