@energycap/components 0.27.2 → 0.27.3-ECAPID-377-Implement-Sidebar.20220121-0740
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/bundles/energycap-components.umd.js +220 -173
- package/bundles/energycap-components.umd.js.map +1 -1
- package/bundles/energycap-components.umd.min.js +1 -1
- package/bundles/energycap-components.umd.min.js.map +1 -1
- package/energycap-components.metadata.json +1 -1
- package/esm2015/lib/components.module.js +9 -5
- package/esm2015/lib/display/hierarchy/hierarchy-base.js +1 -1
- package/esm2015/lib/shared/display/pipes/highlight-text.pipe.js +26 -0
- package/esm2015/lib/shared/page/page-base/page-base.component.js +10 -1
- package/esm2015/lib/shared/page/page-title/page-title.component.js +2 -2
- package/esm2015/lib/shared/page/page-view/page-view.component.js +2 -2
- package/esm2015/lib/shared/testing/page-base-component-test-injector-factory.spec.js +9 -1
- package/esm2015/public-api.js +2 -1
- package/fesm2015/energycap-components.js +206 -163
- package/fesm2015/energycap-components.js.map +1 -1
- package/lib/display/hierarchy/hierarchy-base.d.ts +5 -0
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +6 -0
- package/lib/shared/page/page-base/page-base.component.d.ts +6 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -5273,110 +5273,6 @@ JsonDisplayComponent.propDecorators = {
|
|
|
5273
5273
|
maxLength: [{ type: Input }]
|
|
5274
5274
|
};
|
|
5275
5275
|
|
|
5276
|
-
/** Exposes the markup and styles that represent the spinner. No inputs or outputs defined because it is just a visual component*/
|
|
5277
|
-
class SpinnerComponent {
|
|
5278
|
-
}
|
|
5279
|
-
SpinnerComponent.decorators = [
|
|
5280
|
-
{ type: Component, args: [{
|
|
5281
|
-
selector: 'ec-spinner',
|
|
5282
|
-
template: "<div class=\"spinner\">\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n</div>",
|
|
5283
|
-
styles: ["@-webkit-keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}@keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}.spinner{display:flex}.spinner-dot{-webkit-animation:sk-bouncedelay 1.7s ease-in-out infinite both;animation:sk-bouncedelay 1.7s ease-in-out infinite both;background-color:#0084a9;height:.75rem;margin-right:.25rem;width:.75rem}.spinner-dot:first-child{-webkit-animation-delay:-.6s;animation-delay:-.6s}.spinner-dot:nth-child(2){-webkit-animation-delay:-.4s;animation-delay:-.4s}.spinner-dot:nth-child(3){-webkit-animation-delay:-.2s;animation-delay:-.2s}:host(.spinner-small) .spinner-dot{-webkit-animation:sk-bouncedelay 1.7s ease-in-out infinite both;animation:sk-bouncedelay 1.7s ease-in-out infinite both;background-color:#0084a9;height:.5rem;margin-right:.1666666667rem;width:.5rem}:host(.spinner-small) .spinner-dot:first-child{-webkit-animation-delay:-.6s;animation-delay:-.6s}:host(.spinner-small) .spinner-dot:nth-child(2){-webkit-animation-delay:-.4s;animation-delay:-.4s}:host(.spinner-small) .spinner-dot:nth-child(3){-webkit-animation-delay:-.2s;animation-delay:-.2s}"]
|
|
5284
|
-
},] }
|
|
5285
|
-
];
|
|
5286
|
-
|
|
5287
|
-
class SplashService {
|
|
5288
|
-
constructor() {
|
|
5289
|
-
/** Used to interact with the splash component
|
|
5290
|
-
* The splash component will subscribe to this and any components
|
|
5291
|
-
* that wish to bring the splash visible can use this to communicate
|
|
5292
|
-
* with the splash component.
|
|
5293
|
-
*/
|
|
5294
|
-
this._splashVisibility = new Subject();
|
|
5295
|
-
this.splashVisibility = this._splashVisibility;
|
|
5296
|
-
}
|
|
5297
|
-
/**
|
|
5298
|
-
* Shows the splash screen
|
|
5299
|
-
*/
|
|
5300
|
-
showSplash() {
|
|
5301
|
-
this._splashVisibility.next(true);
|
|
5302
|
-
}
|
|
5303
|
-
/**
|
|
5304
|
-
* Hides the splash screen
|
|
5305
|
-
*/
|
|
5306
|
-
hideSplash() {
|
|
5307
|
-
this._splashVisibility.next(false);
|
|
5308
|
-
}
|
|
5309
|
-
}
|
|
5310
|
-
SplashService.ɵprov = ɵɵdefineInjectable({ factory: function SplashService_Factory() { return new SplashService(); }, token: SplashService, providedIn: "root" });
|
|
5311
|
-
SplashService.decorators = [
|
|
5312
|
-
{ type: Injectable, args: [{
|
|
5313
|
-
providedIn: 'root'
|
|
5314
|
-
},] }
|
|
5315
|
-
];
|
|
5316
|
-
SplashService.ctorParameters = () => [];
|
|
5317
|
-
|
|
5318
|
-
class SplashComponent {
|
|
5319
|
-
constructor(splashService) {
|
|
5320
|
-
this.splashService = splashService;
|
|
5321
|
-
/** Sets the visibility of the splash display */
|
|
5322
|
-
this.isVisible = true;
|
|
5323
|
-
this.stopAnimation = false;
|
|
5324
|
-
/** Emits when the service is destroyed */
|
|
5325
|
-
this.destroyed = new Subject();
|
|
5326
|
-
}
|
|
5327
|
-
ngOnInit() {
|
|
5328
|
-
this.splashService.splashVisibility.pipe(takeUntil(this.destroyed), tap((value) => __awaiter(this, void 0, void 0, function* () {
|
|
5329
|
-
if (value) {
|
|
5330
|
-
this.stopAnimation = false;
|
|
5331
|
-
}
|
|
5332
|
-
else {
|
|
5333
|
-
// Prevent animation from continuing after splash screen is hidden
|
|
5334
|
-
// but if we hide it then show while the timer is running, don't stop the animation after all
|
|
5335
|
-
timer(1000).pipe(takeUntil(this.splashService.splashVisibility)).subscribe(() => {
|
|
5336
|
-
this.stopAnimation = true;
|
|
5337
|
-
});
|
|
5338
|
-
}
|
|
5339
|
-
}))).subscribe(showSplash => {
|
|
5340
|
-
this.isVisible = showSplash;
|
|
5341
|
-
});
|
|
5342
|
-
}
|
|
5343
|
-
ngOnDestroy() {
|
|
5344
|
-
this.destroyed.next();
|
|
5345
|
-
this.destroyed.unsubscribe();
|
|
5346
|
-
}
|
|
5347
|
-
}
|
|
5348
|
-
SplashComponent.decorators = [
|
|
5349
|
-
{ type: Component, args: [{
|
|
5350
|
-
selector: 'ec-splash',
|
|
5351
|
-
template: "<div class=\"app-splash\"\r\n [class.app-loaded]=\"!isVisible\">\r\n\r\n <!-- This is the raw icon.svg file so we can animate it -->\r\n <svg [class.d-none]=\"stopAnimation\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"50\"\r\n height=\"50\"\r\n viewBox=\"0 0 50 50\">\r\n <g>\r\n <g>\r\n <path fill=\"#A0AD39\"\r\n fill-rule=\"nonzero\"\r\n d=\"M34.93,32.25 L34.93,37.25 L15.21,37.25 L15.21,32.25 L34.93,32.25 Z M28.45,22.48 L28.45,27.48 L15.21,27.48 L15.21,22.48 L28.45,22.48 Z M34.93,12.71 L34.93,17.71 L15.21,17.71 L15.21,12.71 L34.93,12.71 Z\" />\r\n <path fill=\"#A0AD39\"\r\n d=\"M24.99,5 C31.1,5 36.56,7.75 40.23,12.07 L44.33,9.16 C39.75,3.57 32.78,0 24.99,0 C17.2,0 10.23,3.57 5.65,9.16 L9.75,12.07 C13.42,7.75 18.88,5 24.99,5 Z\" />\r\n </g>\r\n <path fill=\"#17303B\"\r\n d=\"M40.24,37.93 C36.57,42.25 31.11,45 25,45 C18.89,45 13.43,42.25 9.76,37.93 L9.78,37.92 C6.82,34.43 5,29.94 5,25 C5,21.86 5.74,18.91 7.03,16.26 L2.89,13.33 C1.05,16.81 0,20.78 0,25 C0,31.01 2.13,36.52 5.66,40.83 L5.66,40.83 C10.24,46.42 17.21,49.99 25,49.99 C32.79,49.99 39.76,46.42 44.34,40.83 L40.24,37.93 Z\" />\r\n </g>\r\n\r\n </svg>\r\n</div>"
|
|
5352
|
-
},] }
|
|
5353
|
-
];
|
|
5354
|
-
SplashComponent.ctorParameters = () => [
|
|
5355
|
-
{ type: SplashService }
|
|
5356
|
-
];
|
|
5357
|
-
|
|
5358
|
-
class ResizableColumnComponent {
|
|
5359
|
-
constructor(el) {
|
|
5360
|
-
this.el = el;
|
|
5361
|
-
this.onResize = new EventEmitter();
|
|
5362
|
-
}
|
|
5363
|
-
emitWidth(width) {
|
|
5364
|
-
this.onResize.emit(width);
|
|
5365
|
-
}
|
|
5366
|
-
}
|
|
5367
|
-
ResizableColumnComponent.decorators = [
|
|
5368
|
-
{ type: Component, args: [{
|
|
5369
|
-
selector: 'th.is-resizable',
|
|
5370
|
-
template: "<div class=\"content-wrapper\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n<div class=\"handle\"></div>\r\n"
|
|
5371
|
-
},] }
|
|
5372
|
-
];
|
|
5373
|
-
ResizableColumnComponent.ctorParameters = () => [
|
|
5374
|
-
{ type: ElementRef }
|
|
5375
|
-
];
|
|
5376
|
-
ResizableColumnComponent.propDecorators = {
|
|
5377
|
-
onResize: [{ type: Output }]
|
|
5378
|
-
};
|
|
5379
|
-
|
|
5380
5276
|
class CacheService {
|
|
5381
5277
|
constructor() {
|
|
5382
5278
|
this.localStorageAvailable = false;
|
|
@@ -5595,6 +5491,163 @@ ResizableBase.propDecorators = {
|
|
|
5595
5491
|
id: [{ type: Input }]
|
|
5596
5492
|
};
|
|
5597
5493
|
|
|
5494
|
+
/**
|
|
5495
|
+
* Make an element resizable horizontally by wrapping it in the ResizableComponent.
|
|
5496
|
+
* Default widths / limits are applied but you can optionally override them
|
|
5497
|
+
* with min-width and max-width with style attributes
|
|
5498
|
+
* @example
|
|
5499
|
+
* <ec-resizable [style.width.px]="200"
|
|
5500
|
+
* [style.min-width.px]="75"
|
|
5501
|
+
* [style.max-width.px]="300">
|
|
5502
|
+
* <div> ... </div>
|
|
5503
|
+
* </ec-resizable>
|
|
5504
|
+
*/
|
|
5505
|
+
class ResizableComponent extends ResizableBase {
|
|
5506
|
+
constructor(el, renderer, cacheService, document) {
|
|
5507
|
+
super(renderer, cacheService, document);
|
|
5508
|
+
this.el = el;
|
|
5509
|
+
//default rememberWidth to true for standard resizable, resizable tables default to false
|
|
5510
|
+
this.rememberWidth = true;
|
|
5511
|
+
}
|
|
5512
|
+
/** Store the host element to reference later */
|
|
5513
|
+
ngOnInit() {
|
|
5514
|
+
this.currentEl = this.el.nativeElement;
|
|
5515
|
+
}
|
|
5516
|
+
/**
|
|
5517
|
+
* Set the new width of the element and emit the new width to subscribers
|
|
5518
|
+
*/
|
|
5519
|
+
setWidth(width) {
|
|
5520
|
+
this.renderer.setStyle(this.currentEl, 'width', width + 'px');
|
|
5521
|
+
this.saveWidths([width]);
|
|
5522
|
+
}
|
|
5523
|
+
/**Called from the base class when cached widths are available and restoring
|
|
5524
|
+
* width is enabled. We only care about the first one because we only have one width
|
|
5525
|
+
*/
|
|
5526
|
+
restoreWidths(widths) {
|
|
5527
|
+
this.setWidth(widths[0]);
|
|
5528
|
+
}
|
|
5529
|
+
}
|
|
5530
|
+
ResizableComponent.decorators = [
|
|
5531
|
+
{ type: Component, args: [{
|
|
5532
|
+
selector: 'ec-resizable',
|
|
5533
|
+
template: `<div class="content">
|
|
5534
|
+
<ng-content></ng-content>
|
|
5535
|
+
</div>
|
|
5536
|
+
<div class="handle" (mousedown)="startDrag($event)"></div>`,
|
|
5537
|
+
styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{border-right:1px solid #d2d7d9;display:flex;max-width:480px;min-width:100px;position:relative;width:240px}:host.is-active{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}:host.is-active .handle:after{background-color:#0084a9}.handle{height:100%;padding:0 5px;position:absolute;right:-7px;top:0;width:13px;z-index:30}.handle:after{content:\"\";display:block;height:100%;position:relative;transition:background-color .3s ease}.handle:hover{cursor:col-resize}.handle:hover:after{background-color:#0084a9}.content{display:flex;overflow:hidden}.content,.content ::ng-deep>*{flex:1 1;min-height:0;min-width:0}"]
|
|
5538
|
+
},] }
|
|
5539
|
+
];
|
|
5540
|
+
ResizableComponent.ctorParameters = () => [
|
|
5541
|
+
{ type: ElementRef },
|
|
5542
|
+
{ type: Renderer2 },
|
|
5543
|
+
{ type: CacheService },
|
|
5544
|
+
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
5545
|
+
];
|
|
5546
|
+
|
|
5547
|
+
/** Exposes the markup and styles that represent the spinner. No inputs or outputs defined because it is just a visual component*/
|
|
5548
|
+
class SpinnerComponent {
|
|
5549
|
+
}
|
|
5550
|
+
SpinnerComponent.decorators = [
|
|
5551
|
+
{ type: Component, args: [{
|
|
5552
|
+
selector: 'ec-spinner',
|
|
5553
|
+
template: "<div class=\"spinner\">\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n</div>",
|
|
5554
|
+
styles: ["@-webkit-keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}@keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}.spinner{display:flex}.spinner-dot{-webkit-animation:sk-bouncedelay 1.7s ease-in-out infinite both;animation:sk-bouncedelay 1.7s ease-in-out infinite both;background-color:#0084a9;height:.75rem;margin-right:.25rem;width:.75rem}.spinner-dot:first-child{-webkit-animation-delay:-.6s;animation-delay:-.6s}.spinner-dot:nth-child(2){-webkit-animation-delay:-.4s;animation-delay:-.4s}.spinner-dot:nth-child(3){-webkit-animation-delay:-.2s;animation-delay:-.2s}:host(.spinner-small) .spinner-dot{-webkit-animation:sk-bouncedelay 1.7s ease-in-out infinite both;animation:sk-bouncedelay 1.7s ease-in-out infinite both;background-color:#0084a9;height:.5rem;margin-right:.1666666667rem;width:.5rem}:host(.spinner-small) .spinner-dot:first-child{-webkit-animation-delay:-.6s;animation-delay:-.6s}:host(.spinner-small) .spinner-dot:nth-child(2){-webkit-animation-delay:-.4s;animation-delay:-.4s}:host(.spinner-small) .spinner-dot:nth-child(3){-webkit-animation-delay:-.2s;animation-delay:-.2s}"]
|
|
5555
|
+
},] }
|
|
5556
|
+
];
|
|
5557
|
+
|
|
5558
|
+
class SplashService {
|
|
5559
|
+
constructor() {
|
|
5560
|
+
/** Used to interact with the splash component
|
|
5561
|
+
* The splash component will subscribe to this and any components
|
|
5562
|
+
* that wish to bring the splash visible can use this to communicate
|
|
5563
|
+
* with the splash component.
|
|
5564
|
+
*/
|
|
5565
|
+
this._splashVisibility = new Subject();
|
|
5566
|
+
this.splashVisibility = this._splashVisibility;
|
|
5567
|
+
}
|
|
5568
|
+
/**
|
|
5569
|
+
* Shows the splash screen
|
|
5570
|
+
*/
|
|
5571
|
+
showSplash() {
|
|
5572
|
+
this._splashVisibility.next(true);
|
|
5573
|
+
}
|
|
5574
|
+
/**
|
|
5575
|
+
* Hides the splash screen
|
|
5576
|
+
*/
|
|
5577
|
+
hideSplash() {
|
|
5578
|
+
this._splashVisibility.next(false);
|
|
5579
|
+
}
|
|
5580
|
+
}
|
|
5581
|
+
SplashService.ɵprov = ɵɵdefineInjectable({ factory: function SplashService_Factory() { return new SplashService(); }, token: SplashService, providedIn: "root" });
|
|
5582
|
+
SplashService.decorators = [
|
|
5583
|
+
{ type: Injectable, args: [{
|
|
5584
|
+
providedIn: 'root'
|
|
5585
|
+
},] }
|
|
5586
|
+
];
|
|
5587
|
+
SplashService.ctorParameters = () => [];
|
|
5588
|
+
|
|
5589
|
+
class SplashComponent {
|
|
5590
|
+
constructor(splashService) {
|
|
5591
|
+
this.splashService = splashService;
|
|
5592
|
+
/** Sets the visibility of the splash display */
|
|
5593
|
+
this.isVisible = true;
|
|
5594
|
+
this.stopAnimation = false;
|
|
5595
|
+
/** Emits when the service is destroyed */
|
|
5596
|
+
this.destroyed = new Subject();
|
|
5597
|
+
}
|
|
5598
|
+
ngOnInit() {
|
|
5599
|
+
this.splashService.splashVisibility.pipe(takeUntil(this.destroyed), tap((value) => __awaiter(this, void 0, void 0, function* () {
|
|
5600
|
+
if (value) {
|
|
5601
|
+
this.stopAnimation = false;
|
|
5602
|
+
}
|
|
5603
|
+
else {
|
|
5604
|
+
// Prevent animation from continuing after splash screen is hidden
|
|
5605
|
+
// but if we hide it then show while the timer is running, don't stop the animation after all
|
|
5606
|
+
timer(1000).pipe(takeUntil(this.splashService.splashVisibility)).subscribe(() => {
|
|
5607
|
+
this.stopAnimation = true;
|
|
5608
|
+
});
|
|
5609
|
+
}
|
|
5610
|
+
}))).subscribe(showSplash => {
|
|
5611
|
+
this.isVisible = showSplash;
|
|
5612
|
+
});
|
|
5613
|
+
}
|
|
5614
|
+
ngOnDestroy() {
|
|
5615
|
+
this.destroyed.next();
|
|
5616
|
+
this.destroyed.unsubscribe();
|
|
5617
|
+
}
|
|
5618
|
+
}
|
|
5619
|
+
SplashComponent.decorators = [
|
|
5620
|
+
{ type: Component, args: [{
|
|
5621
|
+
selector: 'ec-splash',
|
|
5622
|
+
template: "<div class=\"app-splash\"\r\n [class.app-loaded]=\"!isVisible\">\r\n\r\n <!-- This is the raw icon.svg file so we can animate it -->\r\n <svg [class.d-none]=\"stopAnimation\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"50\"\r\n height=\"50\"\r\n viewBox=\"0 0 50 50\">\r\n <g>\r\n <g>\r\n <path fill=\"#A0AD39\"\r\n fill-rule=\"nonzero\"\r\n d=\"M34.93,32.25 L34.93,37.25 L15.21,37.25 L15.21,32.25 L34.93,32.25 Z M28.45,22.48 L28.45,27.48 L15.21,27.48 L15.21,22.48 L28.45,22.48 Z M34.93,12.71 L34.93,17.71 L15.21,17.71 L15.21,12.71 L34.93,12.71 Z\" />\r\n <path fill=\"#A0AD39\"\r\n d=\"M24.99,5 C31.1,5 36.56,7.75 40.23,12.07 L44.33,9.16 C39.75,3.57 32.78,0 24.99,0 C17.2,0 10.23,3.57 5.65,9.16 L9.75,12.07 C13.42,7.75 18.88,5 24.99,5 Z\" />\r\n </g>\r\n <path fill=\"#17303B\"\r\n d=\"M40.24,37.93 C36.57,42.25 31.11,45 25,45 C18.89,45 13.43,42.25 9.76,37.93 L9.78,37.92 C6.82,34.43 5,29.94 5,25 C5,21.86 5.74,18.91 7.03,16.26 L2.89,13.33 C1.05,16.81 0,20.78 0,25 C0,31.01 2.13,36.52 5.66,40.83 L5.66,40.83 C10.24,46.42 17.21,49.99 25,49.99 C32.79,49.99 39.76,46.42 44.34,40.83 L40.24,37.93 Z\" />\r\n </g>\r\n\r\n </svg>\r\n</div>"
|
|
5623
|
+
},] }
|
|
5624
|
+
];
|
|
5625
|
+
SplashComponent.ctorParameters = () => [
|
|
5626
|
+
{ type: SplashService }
|
|
5627
|
+
];
|
|
5628
|
+
|
|
5629
|
+
class ResizableColumnComponent {
|
|
5630
|
+
constructor(el) {
|
|
5631
|
+
this.el = el;
|
|
5632
|
+
this.onResize = new EventEmitter();
|
|
5633
|
+
}
|
|
5634
|
+
emitWidth(width) {
|
|
5635
|
+
this.onResize.emit(width);
|
|
5636
|
+
}
|
|
5637
|
+
}
|
|
5638
|
+
ResizableColumnComponent.decorators = [
|
|
5639
|
+
{ type: Component, args: [{
|
|
5640
|
+
selector: 'th.is-resizable',
|
|
5641
|
+
template: "<div class=\"content-wrapper\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n<div class=\"handle\"></div>\r\n"
|
|
5642
|
+
},] }
|
|
5643
|
+
];
|
|
5644
|
+
ResizableColumnComponent.ctorParameters = () => [
|
|
5645
|
+
{ type: ElementRef }
|
|
5646
|
+
];
|
|
5647
|
+
ResizableColumnComponent.propDecorators = {
|
|
5648
|
+
onResize: [{ type: Output }]
|
|
5649
|
+
};
|
|
5650
|
+
|
|
5598
5651
|
/**
|
|
5599
5652
|
* Add the ability to resize columns to a standard HTML table.
|
|
5600
5653
|
* Specify a column as resizable by adding the .is-resizable class to a <th>.
|
|
@@ -7443,6 +7496,31 @@ IfViewportWidthDirective.propDecorators = {
|
|
|
7443
7496
|
width: [{ type: Input, args: ['ecIfViewportWidth',] }]
|
|
7444
7497
|
};
|
|
7445
7498
|
|
|
7499
|
+
class HighlightTextPipe {
|
|
7500
|
+
transform(value, searchText) {
|
|
7501
|
+
let transformedValue = '';
|
|
7502
|
+
if (value && searchText) {
|
|
7503
|
+
const regex = new RegExp(this.escapeRegex(searchText), 'gi');
|
|
7504
|
+
transformedValue = value.replace(regex, this.strongWrap);
|
|
7505
|
+
}
|
|
7506
|
+
else {
|
|
7507
|
+
transformedValue = value;
|
|
7508
|
+
}
|
|
7509
|
+
return transformedValue;
|
|
7510
|
+
}
|
|
7511
|
+
strongWrap(match) {
|
|
7512
|
+
return `<strong class="text-highlight">${match}</strong>`;
|
|
7513
|
+
}
|
|
7514
|
+
escapeRegex(value) {
|
|
7515
|
+
return value.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
7516
|
+
}
|
|
7517
|
+
}
|
|
7518
|
+
HighlightTextPipe.decorators = [
|
|
7519
|
+
{ type: Pipe, args: [{
|
|
7520
|
+
name: 'highlightText'
|
|
7521
|
+
},] }
|
|
7522
|
+
];
|
|
7523
|
+
|
|
7446
7524
|
/**
|
|
7447
7525
|
* Format a time to the user's preference for display
|
|
7448
7526
|
*/
|
|
@@ -7529,7 +7607,7 @@ class PageTitleComponent {
|
|
|
7529
7607
|
PageTitleComponent.decorators = [
|
|
7530
7608
|
{ type: Component, args: [{
|
|
7531
7609
|
selector: 'app-page-title',
|
|
7532
|
-
template: "<i *ngIf=\"titleIcon\"\r\n class=\"flex-shrink mr-1 my-1 ec-icon ec-icon-md {{titleIcon}}\"></i>\r\n<div>\r\n <h1 *ngIf=\"title\"\r\n
|
|
7610
|
+
template: "<i *ngIf=\"titleIcon\"\r\n class=\"flex-shrink mr-1 my-1 ec-icon ec-icon-md {{titleIcon}}\"></i>\r\n<div class=\"text-truncate\">\r\n <h1 *ngIf=\"title\"\r\n class=\"text-title-1 mb-0 py-1 text-truncate\"\r\n title=\"{{title}}\">{{title}}</h1>\r\n <p *ngIf=\"subTitle\"\r\n class=\"text-caption-1 mb-0 mt-n1 text-truncate\">{{subTitle}}</p>\r\n</div>",
|
|
7533
7611
|
host: {
|
|
7534
7612
|
class: 'd-flex'
|
|
7535
7613
|
}
|
|
@@ -7594,7 +7672,7 @@ class PageViewComponent {
|
|
|
7594
7672
|
PageViewComponent.decorators = [
|
|
7595
7673
|
{ type: Component, args: [{
|
|
7596
7674
|
selector: 'ec-page-view',
|
|
7597
|
-
template: "<div ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <div id=\"PageViewScrollContainer\" \r\n class=\"d-flex flex-column flex-grow scroll-y\" \r\n [class.is-dialog]=\"isDialog\"\r\n [class.fit-content]=\"fitContent\"\r\n [class.sticky-footer]=\"stickyFooter && !!footerTemplate\"\r\n [class.overlay-visible]=\"status?.status !== 'hasData'\">\r\n <section>\r\n <ng-content></ng-content> \r\n </section>\r\n \r\n <footer>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </footer>\r\n\r\n <header *ngIf=\"showHeader\">\r\n \r\n <ol id=\"breadcrumbs\"\r\n *ngIf=\"breadcrumbs?.length && !isDialog\">\r\n <li *ngFor=\"let crumb of breadcrumbs; last as isLast\">\r\n <a *ngIf=\"crumb.url; else label\"\r\n [routerLink]=\"crumb.url\">\r\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\r\n </a>\r\n <ng-template #label>{{crumb.label}}</ng-template>\r\n </li>\r\n </ol>\r\n \r\n <div *ngIf=\"!customHeaderTemplate; else customHeaderOutlet\" class=\"titlebar\">\r\n <app-page-title *ngIf=\"!customTitleTemplate; else customTitle\" \r\n [title]=\"title\"\r\n [subTitle]=\"subTitle\"\r\n [titleIcon]=\"titleIcon\"\r\n class=\"title\">\r\n </app-page-title>\r\n \r\n <ng-template #customTitle>\r\n <div class=\"title\">\r\n <ng-container *ngTemplateOutlet=\"customTitleTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n \r\n <div class=\"actions\">\r\n <ec-button id=\"primaryAction\"\r\n class=\"ml-2\"\r\n *ngIf=\"!hidePrimaryAction && onPrimaryAction.observers?.length\"\r\n [disabled]=\"status?.status === 'pending'\"\r\n type=\"primary\"\r\n [label]=\"primaryActionLabel\"\r\n (clicked)=\"primaryAction($event)\">\r\n </ec-button>\r\n <ec-button id=\"secondaryAction\"\r\n class=\"ml-2\"\r\n *ngIf=\"!hideSecondaryAction && onSecondaryAction.observers?.length\"\r\n type=\"secondary\"\r\n [label]=\"secondaryActionLabel\"\r\n (clicked)=\"secondaryAction($event)\">\r\n </ec-button>\r\n <ec-dropdown id=\"moreActions\"\r\n *ngIf=\"moreActions?.length\"\r\n [disabled]=\"status?.status === 'pending'\"\r\n class=\"ml-2\"\r\n buttonType=\"secondary\"\r\n [label]=\"moreActionsLabel\"\r\n [items]=\"moreActions\">\r\n </ec-dropdown>\r\n <ng-container *ngTemplateOutlet=\"customActionsTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n \r\n <ng-template #customHeaderOutlet> \r\n <div class=\"page-header\">\r\n <ng-container *ngTemplateOutlet=\"customHeaderTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n \r\n <ec-banner *ngIf=\"errors\"\r\n id=\"pageViewErrors\"\r\n [class.border-bottom-0]=\"!isDialog\">\r\n <div [innerHtml]=\"errors\"></div>\r\n </ec-banner>\r\n </header>\r\n </div>\r\n</div>\r\n\r\n",
|
|
7675
|
+
template: "<div ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <div id=\"PageViewScrollContainer\" \r\n class=\"d-flex flex-column flex-grow scroll-y\" \r\n [class.is-dialog]=\"isDialog\"\r\n [class.fit-content]=\"fitContent\"\r\n [class.sticky-footer]=\"stickyFooter && !!footerTemplate\"\r\n [class.overlay-visible]=\"status?.status !== 'hasData'\">\r\n <section>\r\n <ng-content></ng-content> \r\n </section>\r\n \r\n <footer>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </footer>\r\n\r\n <header *ngIf=\"showHeader\">\r\n \r\n <ol id=\"breadcrumbs\"\r\n *ngIf=\"breadcrumbs?.length && !isDialog\">\r\n <li *ngFor=\"let crumb of breadcrumbs; last as isLast\">\r\n <a *ngIf=\"crumb.url; else label\"\r\n [routerLink]=\"crumb.url\">\r\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\r\n </a>\r\n <ng-template #label>{{crumb.label}}</ng-template>\r\n </li>\r\n </ol>\r\n \r\n <div *ngIf=\"!customHeaderTemplate; else customHeaderOutlet\" class=\"titlebar\">\r\n <app-page-title *ngIf=\"!customTitleTemplate; else customTitle\" \r\n [title]=\"title\"\r\n [subTitle]=\"subTitle\"\r\n [titleIcon]=\"titleIcon\"\r\n class=\"title text-truncate\">\r\n </app-page-title>\r\n \r\n <ng-template #customTitle>\r\n <div class=\"title\">\r\n <ng-container *ngTemplateOutlet=\"customTitleTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n \r\n <div class=\"actions\">\r\n <ec-button id=\"primaryAction\"\r\n class=\"ml-2\"\r\n *ngIf=\"!hidePrimaryAction && onPrimaryAction.observers?.length\"\r\n [disabled]=\"status?.status === 'pending'\"\r\n type=\"primary\"\r\n [label]=\"primaryActionLabel\"\r\n (clicked)=\"primaryAction($event)\">\r\n </ec-button>\r\n <ec-button id=\"secondaryAction\"\r\n class=\"ml-2\"\r\n *ngIf=\"!hideSecondaryAction && onSecondaryAction.observers?.length\"\r\n type=\"secondary\"\r\n [label]=\"secondaryActionLabel\"\r\n (clicked)=\"secondaryAction($event)\">\r\n </ec-button>\r\n <ec-dropdown id=\"moreActions\"\r\n *ngIf=\"moreActions?.length\"\r\n [disabled]=\"status?.status === 'pending'\"\r\n class=\"ml-2\"\r\n buttonType=\"secondary\"\r\n [label]=\"moreActionsLabel\"\r\n [items]=\"moreActions\">\r\n </ec-dropdown>\r\n <ng-container *ngTemplateOutlet=\"customActionsTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n \r\n <ng-template #customHeaderOutlet> \r\n <div class=\"page-header\">\r\n <ng-container *ngTemplateOutlet=\"customHeaderTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n \r\n <ec-banner *ngIf=\"errors\"\r\n id=\"pageViewErrors\"\r\n [class.border-bottom-0]=\"!isDialog\">\r\n <div [innerHtml]=\"errors\"></div>\r\n </ec-banner>\r\n </header>\r\n </div>\r\n</div>\r\n\r\n",
|
|
7598
7676
|
host: {
|
|
7599
7677
|
class: "flex-grow"
|
|
7600
7678
|
},
|
|
@@ -7905,7 +7983,8 @@ ComponentsModule.decorators = [
|
|
|
7905
7983
|
HierarchyTreeComponent,
|
|
7906
7984
|
TreeComponent,
|
|
7907
7985
|
RelativeDatePipe,
|
|
7908
|
-
ResizableComponent
|
|
7986
|
+
ResizableComponent,
|
|
7987
|
+
HighlightTextPipe
|
|
7909
7988
|
],
|
|
7910
7989
|
imports: [
|
|
7911
7990
|
CommonModule,
|
|
@@ -7923,7 +8002,8 @@ ComponentsModule.decorators = [
|
|
|
7923
8002
|
TimeDisplayPipe,
|
|
7924
8003
|
MockDateDisplayPipe,
|
|
7925
8004
|
RowCountPipe,
|
|
7926
|
-
RelativeDatePipe
|
|
8005
|
+
RelativeDatePipe,
|
|
8006
|
+
HighlightTextPipe
|
|
7927
8007
|
],
|
|
7928
8008
|
exports: [
|
|
7929
8009
|
ButtonComponent,
|
|
@@ -7978,7 +8058,8 @@ ComponentsModule.decorators = [
|
|
|
7978
8058
|
HierarchyTreeComponent,
|
|
7979
8059
|
TreeComponent,
|
|
7980
8060
|
RelativeDatePipe,
|
|
7981
|
-
ResizableComponent
|
|
8061
|
+
ResizableComponent,
|
|
8062
|
+
HighlightTextPipe
|
|
7982
8063
|
]
|
|
7983
8064
|
},] }
|
|
7984
8065
|
];
|
|
@@ -8057,59 +8138,6 @@ class Tag {
|
|
|
8057
8138
|
}
|
|
8058
8139
|
;
|
|
8059
8140
|
|
|
8060
|
-
/**
|
|
8061
|
-
* Make an element resizable horizontally by wrapping it in the ResizableComponent.
|
|
8062
|
-
* Default widths / limits are applied but you can optionally override them
|
|
8063
|
-
* with min-width and max-width with style attributes
|
|
8064
|
-
* @example
|
|
8065
|
-
* <ec-resizable [style.width.px]="200"
|
|
8066
|
-
* [style.min-width.px]="75"
|
|
8067
|
-
* [style.max-width.px]="300">
|
|
8068
|
-
* <div> ... </div>
|
|
8069
|
-
* </ec-resizable>
|
|
8070
|
-
*/
|
|
8071
|
-
class ResizableComponent extends ResizableBase {
|
|
8072
|
-
constructor(el, renderer, cacheService, document) {
|
|
8073
|
-
super(renderer, cacheService, document);
|
|
8074
|
-
this.el = el;
|
|
8075
|
-
//default rememberWidth to true for standard resizable, resizable tables default to false
|
|
8076
|
-
this.rememberWidth = true;
|
|
8077
|
-
}
|
|
8078
|
-
/** Store the host element to reference later */
|
|
8079
|
-
ngOnInit() {
|
|
8080
|
-
this.currentEl = this.el.nativeElement;
|
|
8081
|
-
}
|
|
8082
|
-
/**
|
|
8083
|
-
* Set the new width of the element and emit the new width to subscribers
|
|
8084
|
-
*/
|
|
8085
|
-
setWidth(width) {
|
|
8086
|
-
this.renderer.setStyle(this.currentEl, 'width', width + 'px');
|
|
8087
|
-
this.saveWidths([width]);
|
|
8088
|
-
}
|
|
8089
|
-
/**Called from the base class when cached widths are available and restoring
|
|
8090
|
-
* width is enabled. We only care about the first one because we only have one width
|
|
8091
|
-
*/
|
|
8092
|
-
restoreWidths(widths) {
|
|
8093
|
-
this.setWidth(widths[0]);
|
|
8094
|
-
}
|
|
8095
|
-
}
|
|
8096
|
-
ResizableComponent.decorators = [
|
|
8097
|
-
{ type: Component, args: [{
|
|
8098
|
-
selector: 'ec-resizable',
|
|
8099
|
-
template: `<div class="content">
|
|
8100
|
-
<ng-content></ng-content>
|
|
8101
|
-
</div>
|
|
8102
|
-
<div class="handle" (mousedown)="startDrag($event)"></div>`,
|
|
8103
|
-
styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{border-right:1px solid #d2d7d9;display:flex;max-width:480px;min-width:100px;position:relative;width:240px}:host.is-active{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}:host.is-active .handle:after{background-color:#0084a9}.handle{height:100%;padding:0 5px;position:absolute;right:-7px;top:0;width:13px;z-index:30}.handle:after{content:\"\";display:block;height:100%;position:relative;transition:background-color .3s ease}.handle:hover{cursor:col-resize}.handle:hover:after{background-color:#0084a9}.content{display:flex;overflow:hidden}.content,.content ::ng-deep>*{flex:1 1;min-height:0;min-width:0}"]
|
|
8104
|
-
},] }
|
|
8105
|
-
];
|
|
8106
|
-
ResizableComponent.ctorParameters = () => [
|
|
8107
|
-
{ type: ElementRef },
|
|
8108
|
-
{ type: Renderer2 },
|
|
8109
|
-
{ type: CacheService },
|
|
8110
|
-
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
8111
|
-
];
|
|
8112
|
-
|
|
8113
8141
|
class CustomValidators {
|
|
8114
8142
|
}
|
|
8115
8143
|
/**
|
|
@@ -8182,6 +8210,10 @@ class PageBaseComponent {
|
|
|
8182
8210
|
* Default unknown save error message, override if a more specific message is needed
|
|
8183
8211
|
*/
|
|
8184
8212
|
this.defaultUnknownSaveError = 'PageBaseUnknownSaveError_SC';
|
|
8213
|
+
/**
|
|
8214
|
+
* Used to opt out of hiding the splash screen when the page is loaded
|
|
8215
|
+
*/
|
|
8216
|
+
this.skipHideSplashOnComplete = false;
|
|
8185
8217
|
/**
|
|
8186
8218
|
* Used to unsubscribe from observables
|
|
8187
8219
|
*/
|
|
@@ -8203,6 +8235,7 @@ class PageBaseComponent {
|
|
|
8203
8235
|
this.router = injector.get(Router);
|
|
8204
8236
|
this.activatedRoute = injector.get(ActivatedRoute);
|
|
8205
8237
|
this.dialogService = injector.get(DialogService);
|
|
8238
|
+
this.splashService = injector.get(SplashService);
|
|
8206
8239
|
}
|
|
8207
8240
|
get errors() {
|
|
8208
8241
|
return this._errors;
|
|
@@ -8250,6 +8283,9 @@ class PageBaseComponent {
|
|
|
8250
8283
|
if (this.status.status === 'pending') {
|
|
8251
8284
|
this.showStatus(PageStatus.Loaded);
|
|
8252
8285
|
}
|
|
8286
|
+
if (!this.skipHideSplashOnComplete) {
|
|
8287
|
+
this.splashService.hideSplash();
|
|
8288
|
+
}
|
|
8253
8289
|
this.setUpRouterSubscriptions();
|
|
8254
8290
|
}
|
|
8255
8291
|
catch (error) {
|
|
@@ -8600,6 +8636,13 @@ PageBaseComponentTestInjectorFactory.CoreProviders = [
|
|
|
8600
8636
|
return new MockActivatedRoute();
|
|
8601
8637
|
},
|
|
8602
8638
|
deps: [],
|
|
8639
|
+
},
|
|
8640
|
+
{
|
|
8641
|
+
provide: SplashService,
|
|
8642
|
+
useFactory: () => {
|
|
8643
|
+
return SpyFactory.createSpy(SplashService);
|
|
8644
|
+
},
|
|
8645
|
+
deps: []
|
|
8603
8646
|
}
|
|
8604
8647
|
];
|
|
8605
8648
|
/**
|
|
@@ -8969,5 +9012,5 @@ class HierarchyBaseTestInjectorFactory {
|
|
|
8969
9012
|
* Generated bundle index. Do not edit.
|
|
8970
9013
|
*/
|
|
8971
9014
|
|
|
8972
|
-
export { AppBarComponent, AvatarComponent, BannerComponent, ButtonComponent, CacheService, CheckboxComponent, ClickAreaForDirective, CollapsibleToggleComponent, ComboboxComponent, ComponentsModule, ConfirmComponent, ConfirmDialogContext, CopyButtonDirective, CustomValidators, DateDisplayPipe, DateTimeHelper, DialogCloseDuration, DialogCloseEvent, DialogCloseLatestEvent, DialogComponent, DialogEvent, DialogGroupComponent, DialogOpenDuration, DialogOpenEndEvent, DialogOpenStartEvent, DialogResult, DialogService, DropdownComponent, ErrorService, FileTypeExtensions, FileUploadComponent, FormControlBase, FormControlComponent, FormGroupComponent, FormGroupHelper, HierarchyBase, HierarchyBaseTestInjectorFactory, HierarchyItem, HierarchyMocks, HierarchyTreeComponent, IfViewportWidthDirective, ItemDisplayComponent, JsonDisplayComponent, JsonHelper, MenuComponent, MockActivatedRoute, MockDateDisplayPipe, MockDialog, MockDialogContent, MockTranslateService, MockTranslationHelperService, NavGroup, NavItemActiveDirective, NumericboxComponent, Overlay, PageBaseComponent, PageBaseComponentTestHelper, PageBaseComponentTestInjectorFactory, PageInitResult, PageStatus, PageStatuses, PageTitleComponent, PageViewComponent, PanelCloseDuration, PanelOpenDuration, PopoverComponent, PopupContainerDirective, RadioButtonComponent, RadioButtonOption, RelativeDatePipe, ResizableBase, ResizableColumnComponent, ResizableComponent, RowCountPipe, ScrollService, SearchableTableComponent, SelectComponent, SpinnerComponent, SplashComponent, SplashService, SpyFactory, TableComponent, TableLockedColumnComponent, TableMasterHeaderRowComponent, TableMasterRowComponent, TablePaginationComponent, TableSelectableRowComponent, TableSelectableRowContext, TabsComponent, Tag, TagsComponent, TelemetryService, TelemetryTrackerService, TextboxComponent, TimeDisplayPipe, ToastComponent, ToastEvent, ToastService, ToasterComponent, TreeComponent, UnicodeStrings, UserPreferenceService, ValidationMessageService, ViewOverlayComponent, WindowService, WizardBaseComponent, WizardButtonsComponent, WizardProgressComponent, canadianPostalCodeRegex, clickEvent, dateInputFormatRegex, findAllSpacesPattern, forEachFormControl, getApiError, getControlValue, getDecimalPattern, integerPattern, isApiError, menuAnimationSpeed, mockRouterFactory, numericboxValidation, orderByIgnoreCase, otherZipCodeRegex, phoneNumberValidationPattern, sortByIgnoreCase, textboxValidation, unitedStatesZipCodeRegex, urlValidationPattern, validateFormGroupValuesAreUnique, ResizableTableDirective as ɵa, AvatarService as ɵb, TableDetailRowComponent as ɵc };
|
|
9015
|
+
export { AppBarComponent, AvatarComponent, BannerComponent, ButtonComponent, CacheService, CheckboxComponent, ClickAreaForDirective, CollapsibleToggleComponent, ComboboxComponent, ComponentsModule, ConfirmComponent, ConfirmDialogContext, CopyButtonDirective, CustomValidators, DateDisplayPipe, DateTimeHelper, DialogCloseDuration, DialogCloseEvent, DialogCloseLatestEvent, DialogComponent, DialogEvent, DialogGroupComponent, DialogOpenDuration, DialogOpenEndEvent, DialogOpenStartEvent, DialogResult, DialogService, DropdownComponent, ErrorService, FileTypeExtensions, FileUploadComponent, FormControlBase, FormControlComponent, FormGroupComponent, FormGroupHelper, HierarchyBase, HierarchyBaseTestInjectorFactory, HierarchyItem, HierarchyMocks, HierarchyTreeComponent, HighlightTextPipe, IfViewportWidthDirective, ItemDisplayComponent, JsonDisplayComponent, JsonHelper, MenuComponent, MockActivatedRoute, MockDateDisplayPipe, MockDialog, MockDialogContent, MockTranslateService, MockTranslationHelperService, NavGroup, NavItemActiveDirective, NumericboxComponent, Overlay, PageBaseComponent, PageBaseComponentTestHelper, PageBaseComponentTestInjectorFactory, PageInitResult, PageStatus, PageStatuses, PageTitleComponent, PageViewComponent, PanelCloseDuration, PanelOpenDuration, PopoverComponent, PopupContainerDirective, RadioButtonComponent, RadioButtonOption, RelativeDatePipe, ResizableBase, ResizableColumnComponent, ResizableComponent, RowCountPipe, ScrollService, SearchableTableComponent, SelectComponent, SpinnerComponent, SplashComponent, SplashService, SpyFactory, TableComponent, TableLockedColumnComponent, TableMasterHeaderRowComponent, TableMasterRowComponent, TablePaginationComponent, TableSelectableRowComponent, TableSelectableRowContext, TabsComponent, Tag, TagsComponent, TelemetryService, TelemetryTrackerService, TextboxComponent, TimeDisplayPipe, ToastComponent, ToastEvent, ToastService, ToasterComponent, TreeComponent, UnicodeStrings, UserPreferenceService, ValidationMessageService, ViewOverlayComponent, WindowService, WizardBaseComponent, WizardButtonsComponent, WizardProgressComponent, canadianPostalCodeRegex, clickEvent, dateInputFormatRegex, findAllSpacesPattern, forEachFormControl, getApiError, getControlValue, getDecimalPattern, integerPattern, isApiError, menuAnimationSpeed, mockRouterFactory, numericboxValidation, orderByIgnoreCase, otherZipCodeRegex, phoneNumberValidationPattern, sortByIgnoreCase, textboxValidation, unitedStatesZipCodeRegex, urlValidationPattern, validateFormGroupValuesAreUnique, ResizableTableDirective as ɵa, AvatarService as ɵb, TableDetailRowComponent as ɵc };
|
|
8973
9016
|
//# sourceMappingURL=energycap-components.js.map
|