@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.
@@ -5846,121 +5846,6 @@
5846
5846
  maxLength: [{ type: i0.Input }]
5847
5847
  };
5848
5848
 
5849
- /** Exposes the markup and styles that represent the spinner. No inputs or outputs defined because it is just a visual component*/
5850
- var SpinnerComponent = /** @class */ (function () {
5851
- function SpinnerComponent() {
5852
- }
5853
- return SpinnerComponent;
5854
- }());
5855
- SpinnerComponent.decorators = [
5856
- { type: i0.Component, args: [{
5857
- selector: 'ec-spinner',
5858
- 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>",
5859
- 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}"]
5860
- },] }
5861
- ];
5862
-
5863
- var SplashService = /** @class */ (function () {
5864
- function SplashService() {
5865
- /** Used to interact with the splash component
5866
- * The splash component will subscribe to this and any components
5867
- * that wish to bring the splash visible can use this to communicate
5868
- * with the splash component.
5869
- */
5870
- this._splashVisibility = new rxjs.Subject();
5871
- this.splashVisibility = this._splashVisibility;
5872
- }
5873
- /**
5874
- * Shows the splash screen
5875
- */
5876
- SplashService.prototype.showSplash = function () {
5877
- this._splashVisibility.next(true);
5878
- };
5879
- /**
5880
- * Hides the splash screen
5881
- */
5882
- SplashService.prototype.hideSplash = function () {
5883
- this._splashVisibility.next(false);
5884
- };
5885
- return SplashService;
5886
- }());
5887
- SplashService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SplashService_Factory() { return new SplashService(); }, token: SplashService, providedIn: "root" });
5888
- SplashService.decorators = [
5889
- { type: i0.Injectable, args: [{
5890
- providedIn: 'root'
5891
- },] }
5892
- ];
5893
- SplashService.ctorParameters = function () { return []; };
5894
-
5895
- var SplashComponent = /** @class */ (function () {
5896
- function SplashComponent(splashService) {
5897
- this.splashService = splashService;
5898
- /** Sets the visibility of the splash display */
5899
- this.isVisible = true;
5900
- this.stopAnimation = false;
5901
- /** Emits when the service is destroyed */
5902
- this.destroyed = new rxjs.Subject();
5903
- }
5904
- SplashComponent.prototype.ngOnInit = function () {
5905
- var _this = this;
5906
- this.splashService.splashVisibility.pipe(operators.takeUntil(this.destroyed), operators.tap(function (value) { return __awaiter(_this, void 0, void 0, function () {
5907
- var _this = this;
5908
- return __generator(this, function (_a) {
5909
- if (value) {
5910
- this.stopAnimation = false;
5911
- }
5912
- else {
5913
- // Prevent animation from continuing after splash screen is hidden
5914
- // but if we hide it then show while the timer is running, don't stop the animation after all
5915
- rxjs.timer(1000).pipe(operators.takeUntil(this.splashService.splashVisibility)).subscribe(function () {
5916
- _this.stopAnimation = true;
5917
- });
5918
- }
5919
- return [2 /*return*/];
5920
- });
5921
- }); })).subscribe(function (showSplash) {
5922
- _this.isVisible = showSplash;
5923
- });
5924
- };
5925
- SplashComponent.prototype.ngOnDestroy = function () {
5926
- this.destroyed.next();
5927
- this.destroyed.unsubscribe();
5928
- };
5929
- return SplashComponent;
5930
- }());
5931
- SplashComponent.decorators = [
5932
- { type: i0.Component, args: [{
5933
- selector: 'ec-splash',
5934
- 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>"
5935
- },] }
5936
- ];
5937
- SplashComponent.ctorParameters = function () { return [
5938
- { type: SplashService }
5939
- ]; };
5940
-
5941
- var ResizableColumnComponent = /** @class */ (function () {
5942
- function ResizableColumnComponent(el) {
5943
- this.el = el;
5944
- this.onResize = new i0.EventEmitter();
5945
- }
5946
- ResizableColumnComponent.prototype.emitWidth = function (width) {
5947
- this.onResize.emit(width);
5948
- };
5949
- return ResizableColumnComponent;
5950
- }());
5951
- ResizableColumnComponent.decorators = [
5952
- { type: i0.Component, args: [{
5953
- selector: 'th.is-resizable',
5954
- 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"
5955
- },] }
5956
- ];
5957
- ResizableColumnComponent.ctorParameters = function () { return [
5958
- { type: i0.ElementRef }
5959
- ]; };
5960
- ResizableColumnComponent.propDecorators = {
5961
- onResize: [{ type: i0.Output }]
5962
- };
5963
-
5964
5849
  var CacheService = /** @class */ (function () {
5965
5850
  function CacheService() {
5966
5851
  this.localStorageAvailable = false;
@@ -6186,6 +6071,174 @@
6186
6071
  id: [{ type: i0.Input }]
6187
6072
  };
6188
6073
 
6074
+ /**
6075
+ * Make an element resizable horizontally by wrapping it in the ResizableComponent.
6076
+ * Default widths / limits are applied but you can optionally override them
6077
+ * with min-width and max-width with style attributes
6078
+ * @example
6079
+ * <ec-resizable [style.width.px]="200"
6080
+ * [style.min-width.px]="75"
6081
+ * [style.max-width.px]="300">
6082
+ * <div> ... </div>
6083
+ * </ec-resizable>
6084
+ */
6085
+ var ResizableComponent = /** @class */ (function (_super) {
6086
+ __extends(ResizableComponent, _super);
6087
+ function ResizableComponent(el, renderer, cacheService, document) {
6088
+ var _this = _super.call(this, renderer, cacheService, document) || this;
6089
+ _this.el = el;
6090
+ //default rememberWidth to true for standard resizable, resizable tables default to false
6091
+ _this.rememberWidth = true;
6092
+ return _this;
6093
+ }
6094
+ /** Store the host element to reference later */
6095
+ ResizableComponent.prototype.ngOnInit = function () {
6096
+ this.currentEl = this.el.nativeElement;
6097
+ };
6098
+ /**
6099
+ * Set the new width of the element and emit the new width to subscribers
6100
+ */
6101
+ ResizableComponent.prototype.setWidth = function (width) {
6102
+ this.renderer.setStyle(this.currentEl, 'width', width + 'px');
6103
+ this.saveWidths([width]);
6104
+ };
6105
+ /**Called from the base class when cached widths are available and restoring
6106
+ * width is enabled. We only care about the first one because we only have one width
6107
+ */
6108
+ ResizableComponent.prototype.restoreWidths = function (widths) {
6109
+ this.setWidth(widths[0]);
6110
+ };
6111
+ return ResizableComponent;
6112
+ }(ResizableBase));
6113
+ ResizableComponent.decorators = [
6114
+ { type: i0.Component, args: [{
6115
+ selector: 'ec-resizable',
6116
+ template: "<div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"handle\" (mousedown)=\"startDrag($event)\"></div>",
6117
+ 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}"]
6118
+ },] }
6119
+ ];
6120
+ ResizableComponent.ctorParameters = function () { return [
6121
+ { type: i0.ElementRef },
6122
+ { type: i0.Renderer2 },
6123
+ { type: CacheService },
6124
+ { type: Document, decorators: [{ type: i0.Inject, args: [common.DOCUMENT,] }] }
6125
+ ]; };
6126
+
6127
+ /** Exposes the markup and styles that represent the spinner. No inputs or outputs defined because it is just a visual component*/
6128
+ var SpinnerComponent = /** @class */ (function () {
6129
+ function SpinnerComponent() {
6130
+ }
6131
+ return SpinnerComponent;
6132
+ }());
6133
+ SpinnerComponent.decorators = [
6134
+ { type: i0.Component, args: [{
6135
+ selector: 'ec-spinner',
6136
+ 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>",
6137
+ 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}"]
6138
+ },] }
6139
+ ];
6140
+
6141
+ var SplashService = /** @class */ (function () {
6142
+ function SplashService() {
6143
+ /** Used to interact with the splash component
6144
+ * The splash component will subscribe to this and any components
6145
+ * that wish to bring the splash visible can use this to communicate
6146
+ * with the splash component.
6147
+ */
6148
+ this._splashVisibility = new rxjs.Subject();
6149
+ this.splashVisibility = this._splashVisibility;
6150
+ }
6151
+ /**
6152
+ * Shows the splash screen
6153
+ */
6154
+ SplashService.prototype.showSplash = function () {
6155
+ this._splashVisibility.next(true);
6156
+ };
6157
+ /**
6158
+ * Hides the splash screen
6159
+ */
6160
+ SplashService.prototype.hideSplash = function () {
6161
+ this._splashVisibility.next(false);
6162
+ };
6163
+ return SplashService;
6164
+ }());
6165
+ SplashService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SplashService_Factory() { return new SplashService(); }, token: SplashService, providedIn: "root" });
6166
+ SplashService.decorators = [
6167
+ { type: i0.Injectable, args: [{
6168
+ providedIn: 'root'
6169
+ },] }
6170
+ ];
6171
+ SplashService.ctorParameters = function () { return []; };
6172
+
6173
+ var SplashComponent = /** @class */ (function () {
6174
+ function SplashComponent(splashService) {
6175
+ this.splashService = splashService;
6176
+ /** Sets the visibility of the splash display */
6177
+ this.isVisible = true;
6178
+ this.stopAnimation = false;
6179
+ /** Emits when the service is destroyed */
6180
+ this.destroyed = new rxjs.Subject();
6181
+ }
6182
+ SplashComponent.prototype.ngOnInit = function () {
6183
+ var _this = this;
6184
+ this.splashService.splashVisibility.pipe(operators.takeUntil(this.destroyed), operators.tap(function (value) { return __awaiter(_this, void 0, void 0, function () {
6185
+ var _this = this;
6186
+ return __generator(this, function (_a) {
6187
+ if (value) {
6188
+ this.stopAnimation = false;
6189
+ }
6190
+ else {
6191
+ // Prevent animation from continuing after splash screen is hidden
6192
+ // but if we hide it then show while the timer is running, don't stop the animation after all
6193
+ rxjs.timer(1000).pipe(operators.takeUntil(this.splashService.splashVisibility)).subscribe(function () {
6194
+ _this.stopAnimation = true;
6195
+ });
6196
+ }
6197
+ return [2 /*return*/];
6198
+ });
6199
+ }); })).subscribe(function (showSplash) {
6200
+ _this.isVisible = showSplash;
6201
+ });
6202
+ };
6203
+ SplashComponent.prototype.ngOnDestroy = function () {
6204
+ this.destroyed.next();
6205
+ this.destroyed.unsubscribe();
6206
+ };
6207
+ return SplashComponent;
6208
+ }());
6209
+ SplashComponent.decorators = [
6210
+ { type: i0.Component, args: [{
6211
+ selector: 'ec-splash',
6212
+ 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>"
6213
+ },] }
6214
+ ];
6215
+ SplashComponent.ctorParameters = function () { return [
6216
+ { type: SplashService }
6217
+ ]; };
6218
+
6219
+ var ResizableColumnComponent = /** @class */ (function () {
6220
+ function ResizableColumnComponent(el) {
6221
+ this.el = el;
6222
+ this.onResize = new i0.EventEmitter();
6223
+ }
6224
+ ResizableColumnComponent.prototype.emitWidth = function (width) {
6225
+ this.onResize.emit(width);
6226
+ };
6227
+ return ResizableColumnComponent;
6228
+ }());
6229
+ ResizableColumnComponent.decorators = [
6230
+ { type: i0.Component, args: [{
6231
+ selector: 'th.is-resizable',
6232
+ 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"
6233
+ },] }
6234
+ ];
6235
+ ResizableColumnComponent.ctorParameters = function () { return [
6236
+ { type: i0.ElementRef }
6237
+ ]; };
6238
+ ResizableColumnComponent.propDecorators = {
6239
+ onResize: [{ type: i0.Output }]
6240
+ };
6241
+
6189
6242
  /**
6190
6243
  * Add the ability to resize columns to a standard HTML table.
6191
6244
  * Specify a column as resizable by adding the .is-resizable class to a <th>.
@@ -8185,7 +8238,7 @@
8185
8238
  PageTitleComponent.decorators = [
8186
8239
  { type: i0.Component, args: [{
8187
8240
  selector: 'app-page-title',
8188
- 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 class=\"text-title-1 mb-0 py-1 text-truncate\">{{title}}</h1>\r\n <p *ngIf=\"subTitle\"\r\n class=\"text-caption-1 mb-0 mt-n1 text-truncate\">{{subTitle}}</p>\r\n</div>",
8241
+ 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>",
8189
8242
  host: {
8190
8243
  class: 'd-flex'
8191
8244
  }
@@ -8251,7 +8304,7 @@
8251
8304
  PageViewComponent.decorators = [
8252
8305
  { type: i0.Component, args: [{
8253
8306
  selector: 'ec-page-view',
8254
- 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",
8307
+ 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",
8255
8308
  host: {
8256
8309
  class: "flex-grow"
8257
8310
  },
@@ -8735,59 +8788,6 @@
8735
8788
  }());
8736
8789
  ;
8737
8790
 
8738
- /**
8739
- * Make an element resizable horizontally by wrapping it in the ResizableComponent.
8740
- * Default widths / limits are applied but you can optionally override them
8741
- * with min-width and max-width with style attributes
8742
- * @example
8743
- * <ec-resizable [style.width.px]="200"
8744
- * [style.min-width.px]="75"
8745
- * [style.max-width.px]="300">
8746
- * <div> ... </div>
8747
- * </ec-resizable>
8748
- */
8749
- var ResizableComponent = /** @class */ (function (_super) {
8750
- __extends(ResizableComponent, _super);
8751
- function ResizableComponent(el, renderer, cacheService, document) {
8752
- var _this = _super.call(this, renderer, cacheService, document) || this;
8753
- _this.el = el;
8754
- //default rememberWidth to true for standard resizable, resizable tables default to false
8755
- _this.rememberWidth = true;
8756
- return _this;
8757
- }
8758
- /** Store the host element to reference later */
8759
- ResizableComponent.prototype.ngOnInit = function () {
8760
- this.currentEl = this.el.nativeElement;
8761
- };
8762
- /**
8763
- * Set the new width of the element and emit the new width to subscribers
8764
- */
8765
- ResizableComponent.prototype.setWidth = function (width) {
8766
- this.renderer.setStyle(this.currentEl, 'width', width + 'px');
8767
- this.saveWidths([width]);
8768
- };
8769
- /**Called from the base class when cached widths are available and restoring
8770
- * width is enabled. We only care about the first one because we only have one width
8771
- */
8772
- ResizableComponent.prototype.restoreWidths = function (widths) {
8773
- this.setWidth(widths[0]);
8774
- };
8775
- return ResizableComponent;
8776
- }(ResizableBase));
8777
- ResizableComponent.decorators = [
8778
- { type: i0.Component, args: [{
8779
- selector: 'ec-resizable',
8780
- template: "<div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"handle\" (mousedown)=\"startDrag($event)\"></div>",
8781
- 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}"]
8782
- },] }
8783
- ];
8784
- ResizableComponent.ctorParameters = function () { return [
8785
- { type: i0.ElementRef },
8786
- { type: i0.Renderer2 },
8787
- { type: CacheService },
8788
- { type: Document, decorators: [{ type: i0.Inject, args: [common.DOCUMENT,] }] }
8789
- ]; };
8790
-
8791
8791
  var CustomValidators = /** @class */ (function () {
8792
8792
  function CustomValidators() {
8793
8793
  }
@@ -8882,6 +8882,10 @@
8882
8882
  * Default unknown save error message, override if a more specific message is needed
8883
8883
  */
8884
8884
  this.defaultUnknownSaveError = 'PageBaseUnknownSaveError_SC';
8885
+ /**
8886
+ * Used to opt out of hiding the splash screen when the page is loaded
8887
+ */
8888
+ this.skipHideSplashOnComplete = false;
8885
8889
  /**
8886
8890
  * Used to unsubscribe from observables
8887
8891
  */
@@ -8903,6 +8907,7 @@
8903
8907
  this.router = injector.get(i1$1.Router);
8904
8908
  this.activatedRoute = injector.get(i1$1.ActivatedRoute);
8905
8909
  this.dialogService = injector.get(DialogService);
8910
+ this.splashService = injector.get(SplashService);
8906
8911
  }
8907
8912
  Object.defineProperty(PageBaseComponent.prototype, "errors", {
8908
8913
  get: function () {
@@ -8977,6 +8982,9 @@
8977
8982
  if (this.status.status === 'pending') {
8978
8983
  this.showStatus(exports.PageStatus.Loaded);
8979
8984
  }
8985
+ if (!this.skipHideSplashOnComplete) {
8986
+ this.splashService.hideSplash();
8987
+ }
8980
8988
  this.setUpRouterSubscriptions();
8981
8989
  return [3 /*break*/, 5];
8982
8990
  case 4:
@@ -9387,6 +9395,13 @@
9387
9395
  return new MockActivatedRoute();
9388
9396
  },
9389
9397
  deps: [],
9398
+ },
9399
+ {
9400
+ provide: SplashService,
9401
+ useFactory: function () {
9402
+ return SpyFactory.createSpy(SplashService);
9403
+ },
9404
+ deps: []
9390
9405
  }
9391
9406
  ];
9392
9407
  /**