@energycap/components 0.27.2 → 0.27.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/energycap-components.umd.js +185 -170
- 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 +2 -2
- 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/fesm2015/energycap-components.js +174 -159
- package/fesm2015/energycap-components.js.map +1 -1
- package/lib/shared/page/page-base/page-base.component.d.ts +6 -0
- package/package.json +1 -1
|
@@ -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>.
|
|
@@ -7529,7 +7582,7 @@ class PageTitleComponent {
|
|
|
7529
7582
|
PageTitleComponent.decorators = [
|
|
7530
7583
|
{ type: Component, args: [{
|
|
7531
7584
|
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
|
|
7585
|
+
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
7586
|
host: {
|
|
7534
7587
|
class: 'd-flex'
|
|
7535
7588
|
}
|
|
@@ -7594,7 +7647,7 @@ class PageViewComponent {
|
|
|
7594
7647
|
PageViewComponent.decorators = [
|
|
7595
7648
|
{ type: Component, args: [{
|
|
7596
7649
|
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",
|
|
7650
|
+
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
7651
|
host: {
|
|
7599
7652
|
class: "flex-grow"
|
|
7600
7653
|
},
|
|
@@ -8057,59 +8110,6 @@ class Tag {
|
|
|
8057
8110
|
}
|
|
8058
8111
|
;
|
|
8059
8112
|
|
|
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
8113
|
class CustomValidators {
|
|
8114
8114
|
}
|
|
8115
8115
|
/**
|
|
@@ -8182,6 +8182,10 @@ class PageBaseComponent {
|
|
|
8182
8182
|
* Default unknown save error message, override if a more specific message is needed
|
|
8183
8183
|
*/
|
|
8184
8184
|
this.defaultUnknownSaveError = 'PageBaseUnknownSaveError_SC';
|
|
8185
|
+
/**
|
|
8186
|
+
* Used to opt out of hiding the splash screen when the page is loaded
|
|
8187
|
+
*/
|
|
8188
|
+
this.skipHideSplashOnComplete = false;
|
|
8185
8189
|
/**
|
|
8186
8190
|
* Used to unsubscribe from observables
|
|
8187
8191
|
*/
|
|
@@ -8203,6 +8207,7 @@ class PageBaseComponent {
|
|
|
8203
8207
|
this.router = injector.get(Router);
|
|
8204
8208
|
this.activatedRoute = injector.get(ActivatedRoute);
|
|
8205
8209
|
this.dialogService = injector.get(DialogService);
|
|
8210
|
+
this.splashService = injector.get(SplashService);
|
|
8206
8211
|
}
|
|
8207
8212
|
get errors() {
|
|
8208
8213
|
return this._errors;
|
|
@@ -8250,6 +8255,9 @@ class PageBaseComponent {
|
|
|
8250
8255
|
if (this.status.status === 'pending') {
|
|
8251
8256
|
this.showStatus(PageStatus.Loaded);
|
|
8252
8257
|
}
|
|
8258
|
+
if (!this.skipHideSplashOnComplete) {
|
|
8259
|
+
this.splashService.hideSplash();
|
|
8260
|
+
}
|
|
8253
8261
|
this.setUpRouterSubscriptions();
|
|
8254
8262
|
}
|
|
8255
8263
|
catch (error) {
|
|
@@ -8600,6 +8608,13 @@ PageBaseComponentTestInjectorFactory.CoreProviders = [
|
|
|
8600
8608
|
return new MockActivatedRoute();
|
|
8601
8609
|
},
|
|
8602
8610
|
deps: [],
|
|
8611
|
+
},
|
|
8612
|
+
{
|
|
8613
|
+
provide: SplashService,
|
|
8614
|
+
useFactory: () => {
|
|
8615
|
+
return SpyFactory.createSpy(SplashService);
|
|
8616
|
+
},
|
|
8617
|
+
deps: []
|
|
8603
8618
|
}
|
|
8604
8619
|
];
|
|
8605
8620
|
/**
|