wacom 20.0.17 → 20.0.19

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.
@@ -185,10 +185,10 @@ class MetaService {
185
185
  console.warn(`To disable these warnings, set metaConfig.warnMissingGuard: false in your MetaConfig passed to MetaModule.forRoot()`);
186
186
  }
187
187
  }
188
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MetaService, deps: [{ token: i1.Router }, { token: i2.Meta }, { token: i2.Title }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
189
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MetaService, providedIn: 'root' });
188
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MetaService, deps: [{ token: i1.Router }, { token: i2.Meta }, { token: i2.Title }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
189
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MetaService, providedIn: 'root' });
190
190
  }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MetaService, decorators: [{
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MetaService, decorators: [{
192
192
  type: Injectable,
193
193
  args: [{
194
194
  providedIn: 'root',
@@ -255,10 +255,10 @@ class MetaGuard {
255
255
  this.metaService.setTag(key, this._meta.defaults[key]);
256
256
  });
257
257
  }
258
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MetaGuard, deps: [{ token: MetaService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
259
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MetaGuard });
258
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MetaGuard, deps: [{ token: MetaService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
259
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MetaGuard });
260
260
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MetaGuard, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MetaGuard, decorators: [{
262
262
  type: Injectable
263
263
  }], ctorParameters: () => [{ type: MetaService }, { type: undefined, decorators: [{
264
264
  type: Inject,
@@ -310,10 +310,10 @@ class AlertComponent {
310
310
  this.delete_animation = false;
311
311
  }, 350);
312
312
  }
313
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
314
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: AlertComponent, isStandalone: false, selector: "alert", viewQueries: [{ propertyName: "alert", first: true, predicate: ["alert"], descendants: true }], ngImport: i0, template: "<div\r\n\t*ngIf=\"text\"\r\n\t[ngClass]=\"class\"\r\n\tclass=\"waw-alert-container height\"\r\n\t[class._close]=\"delete_animation\"\r\n>\r\n\t<div\r\n\t\t[class.waw-alert-color-blue]=\"type == 'info'\"\r\n\t\t[class.waw-alert-color-red]=\"type == 'error'\"\r\n\t\t[class.waw-alert-color-green]=\"type == 'success'\"\r\n\t\t[class.waw-alert-color-orange]=\"type == 'warning'\"\r\n\t\t[class.waw-alert-color-yellow]=\"type == 'question'\"\r\n\t\tclass=\"waw-alert bounceInUp waw-alert-theme-light waw-alert-animateInside waw-alert-opened\"\r\n\t\t#alert\r\n\t>\r\n\t\t<div class=\"waw-alert__progress\" *ngIf=\"progress\">\r\n\t\t\t<span\r\n\t\t\t\t[ngStyle]=\"{\r\n\t\t\t\t\t'animation-duration': (timeout + 350) / 1000 + 's'\r\n\t\t\t\t}\"\r\n\t\t\t></span>\r\n\t\t</div>\r\n\t\t<div class=\"waw-alert-body\">\r\n\t\t\t<div *ngIf=\"!component\" class=\"waw-alert-texts\">\r\n\t\t\t\t<div *ngIf=\"icon\" class=\"{{ icon }}\"></div>\r\n\t\t\t\t<div class=\"waw-alert-message slideIn\">{{ text }}</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!component && type == 'question'\">\r\n\t\t\t\t<button\r\n\t\t\t\t\tclass=\"alert-btn\"\r\n\t\t\t\t\t*ngFor=\"let b of buttons\"\r\n\t\t\t\t\t(click)=\"remove(); b.callback && b.callback()\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ b.text }}\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"waw-alert__close\"\r\n\t\t\t\t*ngIf=\"closable\"\r\n\t\t\t\t(click)=\"remove()\"\r\n\t\t\t></div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: ["@keyframes iziT-bounceInUp{0%{opacity:0;transform:translateY(200px)}50%{opacity:1;transform:translateY(-10px)}70%{transform:translateY(5px)}to{transform:translateY(0)}}@keyframes iziT-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes iziT-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziT-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziT-bounceInLeft{0%{opacity:0;transform:translate(280px)}50%{opacity:1;transform:translate(-20px)}70%{transform:translate(10px)}to{transform:translate(0)}}@keyframes iziT-bounceInDown{0%{opacity:0;transform:translateY(-200px)}50%{opacity:1;transform:translateY(10px)}70%{transform:translateY(-5px)}to{transform:translateY(0)}}.alert-wrapper{position:fixed;bottom:50px;left:0;width:100%;height:60px;overflow:hidden}.alert{display:flex;-webkit-box-align:center;align-items:center;width:auto;background:#3aed92;color:#fff;max-width:700px;margin:0 auto;transform:translateY(300px) scale(0);transition:.3s all ease-in-out}.alert._show{transform:translateY(0) scale(1);transition:.3s all ease-in-out}.alert-icon{min-width:60px;min-height:60px;position:relative;display:flex;justify-content:center;align-items:center;background-color:#2bd17d}.alert-icon:before{content:\"\";position:absolute;width:25px;height:25px;border-radius:50%;border:2px solid #fff}.alert-icon:after{content:\"\";position:absolute;top:22px;width:7px;height:11px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.alert-text{padding:0 20px;word-break:break-all;overflow:auto;height:60px}.alert-text .text-block{width:99%}.alert-text .text-block__text{text-overflow:ellipsis;overflow:hidden;white-space:pre}.alert-close{min-width:50px;margin-left:auto;font-size:25px;display:flex;justify-content:center;align-items:center}.font-bold{font-weight:700}.waw-alert__progress{bottom:0;position:absolute;width:100%;margin-bottom:0;border-radius:50px}.waw-alert__progress:hover span{animation-play-state:paused}.waw-alert__progress span{display:block;width:100%;height:2px;background-color:#a5a5a5ed;animation-name:waw-alert-progress;animation-duration:10s;border-radius:50px}.waw-alert__progress span._red{background-color:#ffafb4}.waw-alert__progress span._green{background-color:#a6efb8}.waw-alert__progress span._yellow{background-color:#fff9b2}.waw-alert__progress span._orange,.waw-alert__progress span._blue{background-color:#ffcfa5}.waw-alert__progress span._white{background-color:#fff}.waw-alert__progress span._black{background-color:#000}.waw-alert:hover .waw-alert__progress>span{animation-play-state:paused}.waw-alert__close{width:15px;height:15px;opacity:.3;position:relative;order:2}.waw-alert__close:hover{opacity:1}.waw-alert__close:before,.waw-alert__close:after{cursor:pointer;position:absolute;left:15px;content:\" \";height:12px;width:2px;background-color:#47525d}.waw-alert__close:before{transform:rotate(45deg)}.waw-alert__close:after{transform:rotate(-45deg)}@keyframes waw-alert-progress{0%{width:100%}to{width:0%}}.waw-alert-container{font-size:0;height:100px;width:100%;transform:translateZ(0);backface-visibility:hidden;transition:.3s all ease-in-out;opacity:1}.waw-alert-container._close{opacity:0;transition:.3s all ease-in-out}.waw-alert{display:inline-block;clear:both;position:relative;font-family:Lato,Tahoma,Arial;font-size:14px;padding:8px 25px 9px 0;background:#eeeeeee6;border-color:#eeeeeee6;width:100%;pointer-events:all;cursor:default;transform:translate(0);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:54px}.waw-alert>.waw-alert-progressbar{position:absolute;left:0;bottom:0;width:100%;z-index:1;background:#fff3}.waw-alert>.waw-alert-progressbar>div{height:2px;width:100%;background:#0000004d;border-radius:0 0 3px 3px}.waw-alert>.waw-alert-close{position:absolute;right:0;top:0;border:0;padding:0;opacity:.6;width:42px;height:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJPAAACTwBcGfW0QAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAD3SURBVFiF1ZdtDoMgDEBfdi4PwAX8vLFn0qT7wxantojKupmQmCi8R4tSACpgjC2ICCUbEBa8ingjsU1AXRBeR8aLN64FiknswN8CYefBBDQ3whuFESy7WyQMeC0ipEI0A+0FeBvHUFN8xPaUhAH/iKoWsnXHGegy4J0yxialOfaHJAz4bhRzQzgDvdGnz4GbAonZbCQMuBm1K/kcFu8Mp1N2cFFpsxsMuJqqbIGExGl4loARajU1twskJLLhIsID7+tvUoDnIjTg5T9DPH9EBrz8rxjPzciAl9+O8SxI8CzJ8CxKFfh3ynK8Dyb8wNHM/XDqejx/AtNyPO87tNybAAAAAElFTkSuQmCC) no-repeat 50% 50%;background-size:8px;cursor:pointer;outline:none}.waw-alert>.waw-alert-close:hover{opacity:1}.waw-alert>.waw-alert-body{position:relative;padding:0 0 0 10px;height:auto;min-height:36px;margin:0 0 0 15px;text-align:left;display:flex;justify-content:space-between;align-items:center}.waw-alert>.waw-alert-body:after{content:\"\";display:table;clear:both}.waw-alert>.waw-alert-body .waw-alert-texts{margin:10px 0 0;padding-right:2px;display:inline-block;float:left;display:flex;justify-content:space-between;align-items:center}.waw-alert>.waw-alert-body .waw-alert-icon{height:100%;position:absolute;left:0;top:50%;display:table;font-size:23px;line-height:24px;margin-top:-12px;color:#000;width:24px;height:24px}.waw-alert>.waw-alert-body .waw-alert-title{padding:0;margin:0 10px 0 0;line-height:16px;font-size:14px;text-align:left;float:left;color:#000;white-space:normal;font-weight:700}.waw-alert>.waw-alert-body .waw-alert-message{padding:0;font-size:14px;line-height:16px;text-align:left;float:left;color:#0009;white-space:normal}@media only screen and (min-width: 568px){.waw-alert-wrapper{padding:10px 15px}.waw-alert{margin:5px;border-radius:3px;width:auto}.waw-alert:after{content:\"\";z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:3px;box-shadow:inset 0 -10px 20px -10px #0003,inset 0 0 5px #0000001a,0 8px 8px -5px #00000040}.waw-alert:not(.waw-alert-rtl) .waw-alert-cover{border-radius:3px 0 0 3px}.waw-alert.waw-alert-rtl .waw-alert-cover{border-radius:0 3px 3px 0}.waw-alert.waw-alert-color-dark:after{box-shadow:inset 0 -10px 20px -10px #ffffff4d,0 10px 10px -5px #00000040}.waw-alert.waw-alert-balloon .waw-alert-progressbar{background:transparent}.waw-alert.waw-alert-balloon:after{box-shadow:0 10px 10px -5px #00000040,inset 0 10px 20px -5px #00000040}.waw-alert-target .waw-alert:after{box-shadow:inset 0 -10px 20px -10px #0003,inset 0 0 5px #0000001a}}.waw-alert.waw-alert-theme-dark{background:#565c70;border-color:#565c70}.waw-alert.waw-alert-theme-dark .waw-alert-title{color:#fff}.waw-alert.waw-alert-theme-dark .waw-alert-message{color:#ffffffb3;font-weight:300}.waw-alert.waw-alert-theme-dark .waw-alert-icon{color:#fff}.waw-alert.waw-alert-color-red{background:#ffafb4e6;border-color:#ffafb4e6}.waw-alert.waw-alert-color-orange{background:#ffcfa5e6;border-color:#ffcfa5e6}.waw-alert.waw-alert-color-yellow{background:#fff9b2e6;border-color:#fff9b2e6}.waw-alert.waw-alert-color-blue{background:#9ddeffe6;border-color:#9ddeffe6}.waw-alert.waw-alert-color-green{background:#a6efb8e6;border-color:#a6efb8e6}.waw-alert.slideIn,.waw-alert .slideIn{-webkit-animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.waw-alert.bounceInLeft{-webkit-animation:iziT-bounceInLeft .7s ease-in-out both;animation:iziT-bounceInLeft .7s ease-in-out both}.waw-alert.bounceInRight{-webkit-animation:iziT-bounceInRight .85s ease-in-out both;animation:iziT-bounceInRight .85s ease-in-out both}.waw-alert.bounceInDown{-webkit-animation:iziT-bounceInDown .7s ease-in-out both;animation:iziT-bounceInDown .7s ease-in-out both}.waw-alert.bounceInUp{-webkit-animation:iziT-bounceInUp .7s ease-in-out both;animation:iziT-bounceInUp .7s ease-in-out both}.height{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
313
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
314
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: AlertComponent, isStandalone: false, selector: "alert", viewQueries: [{ propertyName: "alert", first: true, predicate: ["alert"], descendants: true }], ngImport: i0, template: "<div\r\n\t*ngIf=\"text\"\r\n\t[ngClass]=\"class\"\r\n\tclass=\"waw-alert-container height\"\r\n\t[class._close]=\"delete_animation\"\r\n>\r\n\t<div\r\n\t\t[class.waw-alert-color-blue]=\"type == 'info'\"\r\n\t\t[class.waw-alert-color-red]=\"type == 'error'\"\r\n\t\t[class.waw-alert-color-green]=\"type == 'success'\"\r\n\t\t[class.waw-alert-color-orange]=\"type == 'warning'\"\r\n\t\t[class.waw-alert-color-yellow]=\"type == 'question'\"\r\n\t\tclass=\"waw-alert bounceInUp waw-alert-theme-light waw-alert-animateInside waw-alert-opened\"\r\n\t\t#alert\r\n\t>\r\n\t\t<div class=\"waw-alert__progress\" *ngIf=\"progress\">\r\n\t\t\t<span\r\n\t\t\t\t[ngStyle]=\"{\r\n\t\t\t\t\t'animation-duration': (timeout + 350) / 1000 + 's'\r\n\t\t\t\t}\"\r\n\t\t\t></span>\r\n\t\t</div>\r\n\t\t<div class=\"waw-alert-body\">\r\n\t\t\t<div *ngIf=\"!component\" class=\"waw-alert-texts\">\r\n\t\t\t\t<div *ngIf=\"icon\" class=\"{{ icon }}\"></div>\r\n\t\t\t\t<div class=\"waw-alert-message slideIn\">{{ text }}</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!component && type == 'question'\">\r\n\t\t\t\t<button\r\n\t\t\t\t\tclass=\"alert-btn\"\r\n\t\t\t\t\t*ngFor=\"let b of buttons\"\r\n\t\t\t\t\t(click)=\"remove(); b.callback && b.callback()\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ b.text }}\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"waw-alert__close\"\r\n\t\t\t\t*ngIf=\"closable\"\r\n\t\t\t\t(click)=\"remove()\"\r\n\t\t\t></div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: ["@keyframes iziT-bounceInUp{0%{opacity:0;transform:translateY(200px)}50%{opacity:1;transform:translateY(-10px)}70%{transform:translateY(5px)}to{transform:translateY(0)}}@keyframes iziT-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes iziT-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziT-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziT-bounceInLeft{0%{opacity:0;transform:translate(280px)}50%{opacity:1;transform:translate(-20px)}70%{transform:translate(10px)}to{transform:translate(0)}}@keyframes iziT-bounceInDown{0%{opacity:0;transform:translateY(-200px)}50%{opacity:1;transform:translateY(10px)}70%{transform:translateY(-5px)}to{transform:translateY(0)}}.alert-wrapper{position:fixed;bottom:50px;left:0;width:100%;height:60px;overflow:hidden}.alert{display:flex;-webkit-box-align:center;align-items:center;width:auto;background:#3aed92;color:#fff;max-width:700px;margin:0 auto;transform:translateY(300px) scale(0);transition:.3s all ease-in-out}.alert._show{transform:translateY(0) scale(1);transition:.3s all ease-in-out}.alert-icon{min-width:60px;min-height:60px;position:relative;display:flex;justify-content:center;align-items:center;background-color:#2bd17d}.alert-icon:before{content:\"\";position:absolute;width:25px;height:25px;border-radius:50%;border:2px solid #fff}.alert-icon:after{content:\"\";position:absolute;top:22px;width:7px;height:11px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.alert-text{padding:0 20px;word-break:break-all;overflow:auto;height:60px}.alert-text .text-block{width:99%}.alert-text .text-block__text{text-overflow:ellipsis;overflow:hidden;white-space:pre}.alert-close{min-width:50px;margin-left:auto;font-size:25px;display:flex;justify-content:center;align-items:center}.font-bold{font-weight:700}.waw-alert__progress{bottom:0;position:absolute;width:100%;margin-bottom:0;border-radius:50px}.waw-alert__progress:hover span{animation-play-state:paused}.waw-alert__progress span{display:block;width:100%;height:2px;background-color:#a5a5a5ed;animation-name:waw-alert-progress;animation-duration:10s;border-radius:50px}.waw-alert__progress span._red{background-color:#ffafb4}.waw-alert__progress span._green{background-color:#a6efb8}.waw-alert__progress span._yellow{background-color:#fff9b2}.waw-alert__progress span._orange,.waw-alert__progress span._blue{background-color:#ffcfa5}.waw-alert__progress span._white{background-color:#fff}.waw-alert__progress span._black{background-color:#000}.waw-alert:hover .waw-alert__progress>span{animation-play-state:paused}.waw-alert__close{width:15px;height:15px;opacity:.3;position:relative;order:2}.waw-alert__close:hover{opacity:1}.waw-alert__close:before,.waw-alert__close:after{cursor:pointer;position:absolute;left:15px;content:\" \";height:12px;width:2px;background-color:#47525d}.waw-alert__close:before{transform:rotate(45deg)}.waw-alert__close:after{transform:rotate(-45deg)}@keyframes waw-alert-progress{0%{width:100%}to{width:0%}}.waw-alert-container{font-size:0;height:100px;width:100%;transform:translateZ(0);backface-visibility:hidden;transition:.3s all ease-in-out;opacity:1}.waw-alert-container._close{opacity:0;transition:.3s all ease-in-out}.waw-alert{display:inline-block;clear:both;position:relative;font-family:Lato,Tahoma,Arial;font-size:14px;padding:8px 25px 9px 0;background:#eeeeeee6;border-color:#eeeeeee6;width:100%;pointer-events:all;cursor:default;transform:translate(0);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:54px}.waw-alert>.waw-alert-progressbar{position:absolute;left:0;bottom:0;width:100%;z-index:1;background:#fff3}.waw-alert>.waw-alert-progressbar>div{height:2px;width:100%;background:#0000004d;border-radius:0 0 3px 3px}.waw-alert>.waw-alert-close{position:absolute;right:0;top:0;border:0;padding:0;opacity:.6;width:42px;height:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJPAAACTwBcGfW0QAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAD3SURBVFiF1ZdtDoMgDEBfdi4PwAX8vLFn0qT7wxantojKupmQmCi8R4tSACpgjC2ICCUbEBa8ingjsU1AXRBeR8aLN64FiknswN8CYefBBDQ3whuFESy7WyQMeC0ipEI0A+0FeBvHUFN8xPaUhAH/iKoWsnXHGegy4J0yxialOfaHJAz4bhRzQzgDvdGnz4GbAonZbCQMuBm1K/kcFu8Mp1N2cFFpsxsMuJqqbIGExGl4loARajU1twskJLLhIsID7+tvUoDnIjTg5T9DPH9EBrz8rxjPzciAl9+O8SxI8CzJ8CxKFfh3ynK8Dyb8wNHM/XDqejx/AtNyPO87tNybAAAAAElFTkSuQmCC) no-repeat 50% 50%;background-size:8px;cursor:pointer;outline:none}.waw-alert>.waw-alert-close:hover{opacity:1}.waw-alert>.waw-alert-body{position:relative;padding:0 0 0 10px;height:auto;min-height:36px;margin:0 0 0 15px;text-align:left;display:flex;justify-content:space-between;align-items:center}.waw-alert>.waw-alert-body:after{content:\"\";display:table;clear:both}.waw-alert>.waw-alert-body .waw-alert-texts{margin:10px 0 0;padding-right:2px;display:inline-block;float:left;display:flex;justify-content:space-between;align-items:center}.waw-alert>.waw-alert-body .waw-alert-icon{height:100%;position:absolute;left:0;top:50%;display:table;font-size:23px;line-height:24px;margin-top:-12px;color:#000;width:24px;height:24px}.waw-alert>.waw-alert-body .waw-alert-title{padding:0;margin:0 10px 0 0;line-height:16px;font-size:14px;text-align:left;float:left;color:#000;white-space:normal;font-weight:700}.waw-alert>.waw-alert-body .waw-alert-message{padding:0;font-size:14px;line-height:16px;text-align:left;float:left;color:#0009;white-space:normal}@media only screen and (min-width: 568px){.waw-alert-wrapper{padding:10px 15px}.waw-alert{margin:5px;border-radius:3px;width:auto}.waw-alert:after{content:\"\";z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:3px;box-shadow:inset 0 -10px 20px -10px #0003,inset 0 0 5px #0000001a,0 8px 8px -5px #00000040}.waw-alert:not(.waw-alert-rtl) .waw-alert-cover{border-radius:3px 0 0 3px}.waw-alert.waw-alert-rtl .waw-alert-cover{border-radius:0 3px 3px 0}.waw-alert.waw-alert-color-dark:after{box-shadow:inset 0 -10px 20px -10px #ffffff4d,0 10px 10px -5px #00000040}.waw-alert.waw-alert-balloon .waw-alert-progressbar{background:transparent}.waw-alert.waw-alert-balloon:after{box-shadow:0 10px 10px -5px #00000040,inset 0 10px 20px -5px #00000040}.waw-alert-target .waw-alert:after{box-shadow:inset 0 -10px 20px -10px #0003,inset 0 0 5px #0000001a}}.waw-alert.waw-alert-theme-dark{background:#565c70;border-color:#565c70}.waw-alert.waw-alert-theme-dark .waw-alert-title{color:#fff}.waw-alert.waw-alert-theme-dark .waw-alert-message{color:#ffffffb3;font-weight:300}.waw-alert.waw-alert-theme-dark .waw-alert-icon{color:#fff}.waw-alert.waw-alert-color-red{background:#ffafb4e6;border-color:#ffafb4e6}.waw-alert.waw-alert-color-orange{background:#ffcfa5e6;border-color:#ffcfa5e6}.waw-alert.waw-alert-color-yellow{background:#fff9b2e6;border-color:#fff9b2e6}.waw-alert.waw-alert-color-blue{background:#9ddeffe6;border-color:#9ddeffe6}.waw-alert.waw-alert-color-green{background:#a6efb8e6;border-color:#a6efb8e6}.waw-alert.slideIn,.waw-alert .slideIn{-webkit-animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.waw-alert.bounceInLeft{-webkit-animation:iziT-bounceInLeft .7s ease-in-out both;animation:iziT-bounceInLeft .7s ease-in-out both}.waw-alert.bounceInRight{-webkit-animation:iziT-bounceInRight .85s ease-in-out both;animation:iziT-bounceInRight .85s ease-in-out both}.waw-alert.bounceInDown{-webkit-animation:iziT-bounceInDown .7s ease-in-out both;animation:iziT-bounceInDown .7s ease-in-out both}.waw-alert.bounceInUp{-webkit-animation:iziT-bounceInUp .7s ease-in-out both;animation:iziT-bounceInUp .7s ease-in-out both}.height{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
315
315
  }
316
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AlertComponent, decorators: [{
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AlertComponent, decorators: [{
317
317
  type: Component,
318
318
  args: [{ selector: 'alert', standalone: false, template: "<div\r\n\t*ngIf=\"text\"\r\n\t[ngClass]=\"class\"\r\n\tclass=\"waw-alert-container height\"\r\n\t[class._close]=\"delete_animation\"\r\n>\r\n\t<div\r\n\t\t[class.waw-alert-color-blue]=\"type == 'info'\"\r\n\t\t[class.waw-alert-color-red]=\"type == 'error'\"\r\n\t\t[class.waw-alert-color-green]=\"type == 'success'\"\r\n\t\t[class.waw-alert-color-orange]=\"type == 'warning'\"\r\n\t\t[class.waw-alert-color-yellow]=\"type == 'question'\"\r\n\t\tclass=\"waw-alert bounceInUp waw-alert-theme-light waw-alert-animateInside waw-alert-opened\"\r\n\t\t#alert\r\n\t>\r\n\t\t<div class=\"waw-alert__progress\" *ngIf=\"progress\">\r\n\t\t\t<span\r\n\t\t\t\t[ngStyle]=\"{\r\n\t\t\t\t\t'animation-duration': (timeout + 350) / 1000 + 's'\r\n\t\t\t\t}\"\r\n\t\t\t></span>\r\n\t\t</div>\r\n\t\t<div class=\"waw-alert-body\">\r\n\t\t\t<div *ngIf=\"!component\" class=\"waw-alert-texts\">\r\n\t\t\t\t<div *ngIf=\"icon\" class=\"{{ icon }}\"></div>\r\n\t\t\t\t<div class=\"waw-alert-message slideIn\">{{ text }}</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!component && type == 'question'\">\r\n\t\t\t\t<button\r\n\t\t\t\t\tclass=\"alert-btn\"\r\n\t\t\t\t\t*ngFor=\"let b of buttons\"\r\n\t\t\t\t\t(click)=\"remove(); b.callback && b.callback()\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ b.text }}\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"waw-alert__close\"\r\n\t\t\t\t*ngIf=\"closable\"\r\n\t\t\t\t(click)=\"remove()\"\r\n\t\t\t></div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: ["@keyframes iziT-bounceInUp{0%{opacity:0;transform:translateY(200px)}50%{opacity:1;transform:translateY(-10px)}70%{transform:translateY(5px)}to{transform:translateY(0)}}@keyframes iziT-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes iziT-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziT-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziT-bounceInLeft{0%{opacity:0;transform:translate(280px)}50%{opacity:1;transform:translate(-20px)}70%{transform:translate(10px)}to{transform:translate(0)}}@keyframes iziT-bounceInDown{0%{opacity:0;transform:translateY(-200px)}50%{opacity:1;transform:translateY(10px)}70%{transform:translateY(-5px)}to{transform:translateY(0)}}.alert-wrapper{position:fixed;bottom:50px;left:0;width:100%;height:60px;overflow:hidden}.alert{display:flex;-webkit-box-align:center;align-items:center;width:auto;background:#3aed92;color:#fff;max-width:700px;margin:0 auto;transform:translateY(300px) scale(0);transition:.3s all ease-in-out}.alert._show{transform:translateY(0) scale(1);transition:.3s all ease-in-out}.alert-icon{min-width:60px;min-height:60px;position:relative;display:flex;justify-content:center;align-items:center;background-color:#2bd17d}.alert-icon:before{content:\"\";position:absolute;width:25px;height:25px;border-radius:50%;border:2px solid #fff}.alert-icon:after{content:\"\";position:absolute;top:22px;width:7px;height:11px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.alert-text{padding:0 20px;word-break:break-all;overflow:auto;height:60px}.alert-text .text-block{width:99%}.alert-text .text-block__text{text-overflow:ellipsis;overflow:hidden;white-space:pre}.alert-close{min-width:50px;margin-left:auto;font-size:25px;display:flex;justify-content:center;align-items:center}.font-bold{font-weight:700}.waw-alert__progress{bottom:0;position:absolute;width:100%;margin-bottom:0;border-radius:50px}.waw-alert__progress:hover span{animation-play-state:paused}.waw-alert__progress span{display:block;width:100%;height:2px;background-color:#a5a5a5ed;animation-name:waw-alert-progress;animation-duration:10s;border-radius:50px}.waw-alert__progress span._red{background-color:#ffafb4}.waw-alert__progress span._green{background-color:#a6efb8}.waw-alert__progress span._yellow{background-color:#fff9b2}.waw-alert__progress span._orange,.waw-alert__progress span._blue{background-color:#ffcfa5}.waw-alert__progress span._white{background-color:#fff}.waw-alert__progress span._black{background-color:#000}.waw-alert:hover .waw-alert__progress>span{animation-play-state:paused}.waw-alert__close{width:15px;height:15px;opacity:.3;position:relative;order:2}.waw-alert__close:hover{opacity:1}.waw-alert__close:before,.waw-alert__close:after{cursor:pointer;position:absolute;left:15px;content:\" \";height:12px;width:2px;background-color:#47525d}.waw-alert__close:before{transform:rotate(45deg)}.waw-alert__close:after{transform:rotate(-45deg)}@keyframes waw-alert-progress{0%{width:100%}to{width:0%}}.waw-alert-container{font-size:0;height:100px;width:100%;transform:translateZ(0);backface-visibility:hidden;transition:.3s all ease-in-out;opacity:1}.waw-alert-container._close{opacity:0;transition:.3s all ease-in-out}.waw-alert{display:inline-block;clear:both;position:relative;font-family:Lato,Tahoma,Arial;font-size:14px;padding:8px 25px 9px 0;background:#eeeeeee6;border-color:#eeeeeee6;width:100%;pointer-events:all;cursor:default;transform:translate(0);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:54px}.waw-alert>.waw-alert-progressbar{position:absolute;left:0;bottom:0;width:100%;z-index:1;background:#fff3}.waw-alert>.waw-alert-progressbar>div{height:2px;width:100%;background:#0000004d;border-radius:0 0 3px 3px}.waw-alert>.waw-alert-close{position:absolute;right:0;top:0;border:0;padding:0;opacity:.6;width:42px;height:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJPAAACTwBcGfW0QAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAD3SURBVFiF1ZdtDoMgDEBfdi4PwAX8vLFn0qT7wxantojKupmQmCi8R4tSACpgjC2ICCUbEBa8ingjsU1AXRBeR8aLN64FiknswN8CYefBBDQ3whuFESy7WyQMeC0ipEI0A+0FeBvHUFN8xPaUhAH/iKoWsnXHGegy4J0yxialOfaHJAz4bhRzQzgDvdGnz4GbAonZbCQMuBm1K/kcFu8Mp1N2cFFpsxsMuJqqbIGExGl4loARajU1twskJLLhIsID7+tvUoDnIjTg5T9DPH9EBrz8rxjPzciAl9+O8SxI8CzJ8CxKFfh3ynK8Dyb8wNHM/XDqejx/AtNyPO87tNybAAAAAElFTkSuQmCC) no-repeat 50% 50%;background-size:8px;cursor:pointer;outline:none}.waw-alert>.waw-alert-close:hover{opacity:1}.waw-alert>.waw-alert-body{position:relative;padding:0 0 0 10px;height:auto;min-height:36px;margin:0 0 0 15px;text-align:left;display:flex;justify-content:space-between;align-items:center}.waw-alert>.waw-alert-body:after{content:\"\";display:table;clear:both}.waw-alert>.waw-alert-body .waw-alert-texts{margin:10px 0 0;padding-right:2px;display:inline-block;float:left;display:flex;justify-content:space-between;align-items:center}.waw-alert>.waw-alert-body .waw-alert-icon{height:100%;position:absolute;left:0;top:50%;display:table;font-size:23px;line-height:24px;margin-top:-12px;color:#000;width:24px;height:24px}.waw-alert>.waw-alert-body .waw-alert-title{padding:0;margin:0 10px 0 0;line-height:16px;font-size:14px;text-align:left;float:left;color:#000;white-space:normal;font-weight:700}.waw-alert>.waw-alert-body .waw-alert-message{padding:0;font-size:14px;line-height:16px;text-align:left;float:left;color:#0009;white-space:normal}@media only screen and (min-width: 568px){.waw-alert-wrapper{padding:10px 15px}.waw-alert{margin:5px;border-radius:3px;width:auto}.waw-alert:after{content:\"\";z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:3px;box-shadow:inset 0 -10px 20px -10px #0003,inset 0 0 5px #0000001a,0 8px 8px -5px #00000040}.waw-alert:not(.waw-alert-rtl) .waw-alert-cover{border-radius:3px 0 0 3px}.waw-alert.waw-alert-rtl .waw-alert-cover{border-radius:0 3px 3px 0}.waw-alert.waw-alert-color-dark:after{box-shadow:inset 0 -10px 20px -10px #ffffff4d,0 10px 10px -5px #00000040}.waw-alert.waw-alert-balloon .waw-alert-progressbar{background:transparent}.waw-alert.waw-alert-balloon:after{box-shadow:0 10px 10px -5px #00000040,inset 0 10px 20px -5px #00000040}.waw-alert-target .waw-alert:after{box-shadow:inset 0 -10px 20px -10px #0003,inset 0 0 5px #0000001a}}.waw-alert.waw-alert-theme-dark{background:#565c70;border-color:#565c70}.waw-alert.waw-alert-theme-dark .waw-alert-title{color:#fff}.waw-alert.waw-alert-theme-dark .waw-alert-message{color:#ffffffb3;font-weight:300}.waw-alert.waw-alert-theme-dark .waw-alert-icon{color:#fff}.waw-alert.waw-alert-color-red{background:#ffafb4e6;border-color:#ffafb4e6}.waw-alert.waw-alert-color-orange{background:#ffcfa5e6;border-color:#ffcfa5e6}.waw-alert.waw-alert-color-yellow{background:#fff9b2e6;border-color:#fff9b2e6}.waw-alert.waw-alert-color-blue{background:#9ddeffe6;border-color:#9ddeffe6}.waw-alert.waw-alert-color-green{background:#a6efb8e6;border-color:#a6efb8e6}.waw-alert.slideIn,.waw-alert .slideIn{-webkit-animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziT-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.waw-alert.bounceInLeft{-webkit-animation:iziT-bounceInLeft .7s ease-in-out both;animation:iziT-bounceInLeft .7s ease-in-out both}.waw-alert.bounceInRight{-webkit-animation:iziT-bounceInRight .85s ease-in-out both;animation:iziT-bounceInRight .85s ease-in-out both}.waw-alert.bounceInDown{-webkit-animation:iziT-bounceInDown .7s ease-in-out both;animation:iziT-bounceInDown .7s ease-in-out both}.waw-alert.bounceInUp{-webkit-animation:iziT-bounceInUp .7s ease-in-out both;animation:iziT-bounceInUp .7s ease-in-out both}.height{height:auto!important}\n"] }]
319
319
  }], ctorParameters: () => [], propDecorators: { alert: [{
@@ -357,10 +357,10 @@ class ModalComponent {
357
357
  popStateListener(e) {
358
358
  this.close();
359
359
  }
360
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
361
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: ModalComponent, isStandalone: false, selector: "lib-modal", ngImport: i0, template: "<div\r\n\t[hidden]=\"!showModal\"\r\n\tclass=\"modal\"\r\n\t[ngClass]=\"class + ' ' + size\"\r\n\t(click)=\"onClickOutside()\"\r\n>\r\n\t<!-- (click)=\"$event.stopPropagation()\" -->\r\n\t<!-- <div class=\"modal-content\" (mousedown)=\"allowClose = false\"> -->\r\n\t<div class=\"modal-content\" (click)=\"$event.stopPropagation()\">\r\n\t\t<div><!-- Content Will Drop Here --></div>\r\n\t\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">&times;</span>\r\n\t</div>\r\n</div>\r\n", styles: [".modal{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;overflow-y:auto;background-color:#000;background-color:#00000080}.modal-content{position:relative;background-color:#fff;margin:15% auto;padding:20px;border:1px solid #888;min-width:20%;max-width:80%}.close{color:#aaa;position:absolute;right:10px;top:3px;font-size:32px;line-height:1}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
360
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
361
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: ModalComponent, isStandalone: false, selector: "lib-modal", ngImport: i0, template: "<div\r\n\t[hidden]=\"!showModal\"\r\n\tclass=\"modal\"\r\n\t[ngClass]=\"class + ' ' + size\"\r\n\t(click)=\"onClickOutside()\"\r\n>\r\n\t<!-- (click)=\"$event.stopPropagation()\" -->\r\n\t<!-- <div class=\"modal-content\" (mousedown)=\"allowClose = false\"> -->\r\n\t<div class=\"modal-content\" (click)=\"$event.stopPropagation()\">\r\n\t\t<div><!-- Content Will Drop Here --></div>\r\n\t\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">&times;</span>\r\n\t</div>\r\n</div>\r\n", styles: [".modal{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;overflow-y:auto;background-color:#000;background-color:#00000080}.modal-content{position:relative;background-color:#fff;margin:15% auto;padding:20px;border:1px solid #888;min-width:20%;max-width:80%}.close{color:#aaa;position:absolute;right:10px;top:3px;font-size:32px;line-height:1}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
362
362
  }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ModalComponent, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ModalComponent, decorators: [{
364
364
  type: Component,
365
365
  args: [{ selector: 'lib-modal', standalone: false, template: "<div\r\n\t[hidden]=\"!showModal\"\r\n\tclass=\"modal\"\r\n\t[ngClass]=\"class + ' ' + size\"\r\n\t(click)=\"onClickOutside()\"\r\n>\r\n\t<!-- (click)=\"$event.stopPropagation()\" -->\r\n\t<!-- <div class=\"modal-content\" (mousedown)=\"allowClose = false\"> -->\r\n\t<div class=\"modal-content\" (click)=\"$event.stopPropagation()\">\r\n\t\t<div><!-- Content Will Drop Here --></div>\r\n\t\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">&times;</span>\r\n\t</div>\r\n</div>\r\n", styles: [".modal{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;overflow-y:auto;background-color:#000;background-color:#00000080}.modal-content{position:relative;background-color:#fff;margin:15% auto;padding:20px;border:1px solid #888;min-width:20%;max-width:80%}.close{color:#aaa;position:absolute;right:10px;top:3px;font-size:32px;line-height:1}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}\n"] }]
366
366
  }] });
@@ -381,10 +381,10 @@ class LoaderComponent {
381
381
  }, this.timeout);
382
382
  }
383
383
  }
384
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
385
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LoaderComponent, isStandalone: false, selector: "lib-loader", viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true }], ngImport: i0, template: "<div\r\n\tstyle=\"\r\n\t\tposition: fixed;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tleft: 0;\r\n\t\ttop: 0;\r\n\t\tbackground-color: #334d6e;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tz-index: 999999;\r\n\t\"\r\n\t#loader\r\n>\r\n\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">&times;</span>\r\n\t<span style=\"font-size: 30px; color: white\">\r\n\t\t{{ text }}\r\n\t</span>\r\n</div>\r\n", styles: [".close{color:#aaa;position:absolute;right:20px;top:20px;font-size:32px;line-height:1}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
384
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
385
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: LoaderComponent, isStandalone: false, selector: "lib-loader", viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true }], ngImport: i0, template: "<div\r\n\tstyle=\"\r\n\t\tposition: fixed;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tleft: 0;\r\n\t\ttop: 0;\r\n\t\tbackground-color: #334d6e;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tz-index: 999999;\r\n\t\"\r\n\t#loader\r\n>\r\n\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">&times;</span>\r\n\t<span style=\"font-size: 30px; color: white\">\r\n\t\t{{ text }}\r\n\t</span>\r\n</div>\r\n", styles: [".close{color:#aaa;position:absolute;right:20px;top:20px;font-size:32px;line-height:1}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
386
386
  }
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LoaderComponent, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoaderComponent, decorators: [{
388
388
  type: Component,
389
389
  args: [{ selector: 'lib-loader', standalone: false, template: "<div\r\n\tstyle=\"\r\n\t\tposition: fixed;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tleft: 0;\r\n\t\ttop: 0;\r\n\t\tbackground-color: #334d6e;\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tz-index: 999999;\r\n\t\"\r\n\t#loader\r\n>\r\n\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">&times;</span>\r\n\t<span style=\"font-size: 30px; color: white\">\r\n\t\t{{ text }}\r\n\t</span>\r\n</div>\r\n", styles: [".close{color:#aaa;position:absolute;right:20px;top:20px;font-size:32px;line-height:1}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}\n"] }]
390
390
  }], ctorParameters: () => [], propDecorators: { loader: [{
@@ -408,260 +408,533 @@ class BaseComponent {
408
408
  }
409
409
  }
410
410
 
411
- // Add capitalize method to String prototype if it doesn't already exist
412
- if (!String.prototype.capitalize) {
413
- String.prototype.capitalize = function () {
414
- if (this.length > 0) {
415
- return this.charAt(0).toUpperCase() + this.slice(1).toLowerCase();
416
- }
417
- return '';
418
- };
411
+ class WrapperComponent {
412
+ constructor() { }
413
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
414
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: WrapperComponent, isStandalone: false, selector: "lib-wrapper", ngImport: i0, template: "<div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomRight\"\r\n\t\tid=\"bottomRight\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomLeft\"\r\n\t\tid=\"bottomLeft\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topRight\"\r\n\t\tid=\"topRight\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topLeft\" id=\"topLeft\"></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topCenter\"\r\n\t\tid=\"topCenter\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomCenter\"\r\n\t\tid=\"bottomCenter\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-center\" id=\"center\"></div>\r\n</div>\r\n", styles: [".waw-alert-wrapper{z-index:99999;position:fixed;width:100%;pointer-events:none;display:flex;flex-direction:column}.waw-alert-wrapper-bottomLeft{left:0;bottom:0;text-align:left}.waw-alert-wrapper-bottomRight{right:0;bottom:0;text-align:right}.waw-alert-wrapper-topLeft{left:0;top:0;text-align:left}.waw-alert-wrapper-topRight{top:0;right:0;text-align:right}.waw-alert-wrapper-topCenter{top:0;left:0;right:0;text-align:center}.waw-alert-wrapper-bottomCenter{bottom:0;left:0;right:0;text-align:center}.waw-alert-wrapper-center{inset:0;text-align:center;justify-content:center;flex-flow:column;align-items:center}\n"] });
419
415
  }
420
- class CoreService {
421
- platformId;
422
- deviceID = localStorage.getItem('deviceID') ||
423
- (typeof crypto?.randomUUID === 'function'
424
- ? crypto.randomUUID()
425
- : this.UUID());
426
- constructor(platformId) {
427
- this.platformId = platformId;
428
- localStorage.setItem('deviceID', this.deviceID);
429
- this.detectDevice();
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WrapperComponent, decorators: [{
417
+ type: Component,
418
+ args: [{ selector: 'lib-wrapper', standalone: false, template: "<div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomRight\"\r\n\t\tid=\"bottomRight\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomLeft\"\r\n\t\tid=\"bottomLeft\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topRight\"\r\n\t\tid=\"topRight\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topLeft\" id=\"topLeft\"></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topCenter\"\r\n\t\tid=\"topCenter\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomCenter\"\r\n\t\tid=\"bottomCenter\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-center\" id=\"center\"></div>\r\n</div>\r\n", styles: [".waw-alert-wrapper{z-index:99999;position:fixed;width:100%;pointer-events:none;display:flex;flex-direction:column}.waw-alert-wrapper-bottomLeft{left:0;bottom:0;text-align:left}.waw-alert-wrapper-bottomRight{right:0;bottom:0;text-align:right}.waw-alert-wrapper-topLeft{left:0;top:0;text-align:left}.waw-alert-wrapper-topRight{top:0;right:0;text-align:right}.waw-alert-wrapper-topCenter{top:0;left:0;right:0;text-align:center}.waw-alert-wrapper-bottomCenter{bottom:0;left:0;right:0;text-align:center}.waw-alert-wrapper-center{inset:0;text-align:center;justify-content:center;flex-flow:column;align-items:center}\n"] }]
419
+ }], ctorParameters: () => [] });
420
+
421
+ class DomService {
422
+ componentFactoryResolver;
423
+ appRef;
424
+ injector;
425
+ providedIn = {};
426
+ constructor(componentFactoryResolver, appRef, injector) {
427
+ this.componentFactoryResolver = componentFactoryResolver;
428
+ this.appRef = appRef;
429
+ this.injector = injector;
430
430
  }
431
431
  /**
432
- * Generates a UUID (Universally Unique Identifier) version 4.
433
- *
434
- * This implementation uses `Math.random()` to generate random values,
435
- * making it suitable for general-purpose identifiers, but **not** for
436
- * cryptographic or security-sensitive use cases.
437
- *
438
- * The format follows the UUID v4 standard: `xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`
439
- * where:
440
- * - `x` is a random hexadecimal digit (0–f)
441
- * - `4` indicates UUID version 4
442
- * - `y` is one of 8, 9, A, or B
443
- *
444
- * Example: `f47ac10b-58cc-4372-a567-0e02b2c3d479`
432
+ * Appends a component to a specified element by ID.
445
433
  *
446
- * @returns A string containing a UUID v4.
434
+ * @param component - The component to append.
435
+ * @param options - The options to project into the component.
436
+ * @param id - The ID of the element to append the component to.
437
+ * @returns An object containing the native element and the component reference.
447
438
  */
448
- UUID() {
449
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
450
- const r = (Math.random() * 16) | 0;
451
- const v = c === 'x' ? r : (r & 0x3) | 0x8;
452
- return v.toString(16);
453
- });
439
+ appendById(component, options = {}, id) {
440
+ const componentRef = this.componentFactoryResolver
441
+ .resolveComponentFactory(component)
442
+ .create(this.injector);
443
+ this.projectComponentInputs(componentRef, options);
444
+ this.appRef.attachView(componentRef.hostView);
445
+ const domElem = componentRef.hostView
446
+ .rootNodes[0];
447
+ const element = document.getElementById(id);
448
+ if (element && typeof element.appendChild === 'function') {
449
+ element.appendChild(domElem);
450
+ }
451
+ return {
452
+ nativeElement: domElem,
453
+ componentRef: componentRef,
454
+ };
454
455
  }
455
456
  /**
456
- * Converts an object to an array. Optionally holds keys instead of values.
457
+ * Appends a component to a specified element or to the body.
457
458
  *
458
- * @param {any} obj - The object to be converted.
459
- * @param {boolean} [holder=false] - If true, the keys will be held in the array; otherwise, the values will be held.
460
- * @returns {any[]} The resulting array.
459
+ * @param component - The component to append.
460
+ * @param options - The options to project into the component.
461
+ * @param element - The element to append the component to. Defaults to body.
462
+ * @returns An object containing the native element and the component reference.
461
463
  */
462
- ota(obj, holder = false) {
463
- if (Array.isArray(obj))
464
- return obj;
465
- if (typeof obj !== 'object' || obj === null)
466
- return [];
467
- const arr = [];
468
- for (const each in obj) {
469
- if (obj.hasOwnProperty(each) &&
470
- (obj[each] ||
471
- typeof obj[each] === 'number' ||
472
- typeof obj[each] === 'boolean')) {
473
- if (holder) {
474
- arr.push(each);
475
- }
476
- else {
477
- arr.push(obj[each]);
478
- }
464
+ appendComponent(component, options = {}, element = document.body) {
465
+ if (options.providedIn) {
466
+ if (this.providedIn[options.providedIn]) {
467
+ return;
479
468
  }
469
+ this.providedIn[options.providedIn] = true;
480
470
  }
481
- return arr;
482
- }
483
- /**
484
- * Removes elements from `fromArray` that are present in `removeArray` based on a comparison field.
485
- *
486
- * @param {any[]} removeArray - The array of elements to remove.
487
- * @param {any[]} fromArray - The array from which to remove elements.
488
- * @param {string} [compareField='_id'] - The field to use for comparison.
489
- * @returns {any[]} The modified `fromArray` with elements removed.
490
- */
491
- splice(removeArray, fromArray, compareField = '_id') {
492
- if (!Array.isArray(removeArray) || !Array.isArray(fromArray)) {
493
- return fromArray;
471
+ const componentRef = this.componentFactoryResolver
472
+ .resolveComponentFactory(component)
473
+ .create(this.injector);
474
+ this.projectComponentInputs(componentRef, options);
475
+ this.appRef.attachView(componentRef.hostView);
476
+ const domElem = componentRef.hostView
477
+ .rootNodes[0];
478
+ if (element && typeof element.appendChild === 'function') {
479
+ element.appendChild(domElem);
494
480
  }
495
- const removeSet = new Set(removeArray.map((item) => item[compareField]));
496
- return fromArray.filter((item) => !removeSet.has(item[compareField]));
481
+ return {
482
+ nativeElement: domElem,
483
+ componentRef: componentRef,
484
+ };
497
485
  }
498
486
  /**
499
- * Unites multiple _id values into a single unique _id.
500
- * The resulting _id is unique regardless of the order of the input _id values.
487
+ * Gets a reference to a dynamically created component.
501
488
  *
502
- * @param {...string[]} args - The _id values to be united.
503
- * @returns {string} The unique combined _id.
489
+ * @param component - The component to create.
490
+ * @param options - The options to project into the component.
491
+ * @returns The component reference.
504
492
  */
505
- ids2id(...args) {
506
- args.sort((a, b) => {
507
- if (Number(a.toString().substring(0, 8)) >
508
- Number(b.toString().substring(0, 8))) {
509
- return 1;
510
- }
511
- return -1;
512
- });
513
- return args.join();
493
+ getComponentRef(component, options = {}) {
494
+ const componentRef = this.componentFactoryResolver
495
+ .resolveComponentFactory(component)
496
+ .create(this.injector);
497
+ this.projectComponentInputs(componentRef, options);
498
+ this.appRef.attachView(componentRef.hostView);
499
+ return componentRef;
514
500
  }
515
- // After While
516
- _afterWhile = {};
517
501
  /**
518
- * Delays the execution of a callback function for a specified amount of time.
519
- * If called again within that time, the timer resets.
502
+ * Projects the inputs onto the component.
520
503
  *
521
- * @param {string | object | (() => void)} doc - A unique identifier for the timer, an object to host the timer, or the callback function.
522
- * @param {() => void} [cb] - The callback function to execute after the delay.
523
- * @param {number} [time=1000] - The delay time in milliseconds.
504
+ * @param component - The component reference.
505
+ * @param options - The options to project into the component.
506
+ * @returns The component reference with the projected inputs.
524
507
  */
525
- afterWhile(doc, cb, time = 1000) {
526
- if (typeof doc === 'function') {
527
- cb = doc;
528
- doc = 'common';
529
- }
530
- if (typeof cb === 'function' && typeof time === 'number') {
531
- if (typeof doc === 'string') {
532
- clearTimeout(this._afterWhile[doc]);
533
- this._afterWhile[doc] = window.setTimeout(cb, time);
534
- }
535
- else if (typeof doc === 'object') {
536
- clearTimeout(doc.__afterWhile);
537
- doc.__afterWhile =
538
- window.setTimeout(cb, time);
539
- }
540
- else {
541
- console.warn('badly configured after while');
508
+ projectComponentInputs(component, options) {
509
+ if (options) {
510
+ const props = Object.getOwnPropertyNames(options);
511
+ for (const prop of props) {
512
+ component.instance[prop] = options[prop];
542
513
  }
543
514
  }
515
+ return component;
544
516
  }
545
- /**
546
- * Recursively copies properties from one object to another.
547
- * Handles nested objects, arrays, and Date instances appropriately.
548
- *
549
- * @param from - The source object from which properties are copied.
550
- * @param to - The target object to which properties are copied.
551
- */
552
- copy(from, to) {
553
- for (const each in from) {
554
- if (typeof from[each] !== 'object' ||
555
- from[each] instanceof Date ||
556
- Array.isArray(from[each]) ||
557
- from[each] === null) {
558
- to[each] = from[each];
559
- }
560
- else {
561
- if (typeof to[each] !== 'object' ||
562
- to[each] instanceof Date ||
563
- Array.isArray(to[each]) ||
564
- to[each] === null) {
565
- to[each] = {};
566
- }
567
- this.copy(from[each], to[each]);
517
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: DomService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
518
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: DomService, providedIn: 'root' });
519
+ }
520
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: DomService, decorators: [{
521
+ type: Injectable,
522
+ args: [{
523
+ providedIn: 'root',
524
+ }]
525
+ }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }] });
526
+
527
+ class AlertService {
528
+ dom;
529
+ config;
530
+ alert;
531
+ _container;
532
+ constructor(dom, config) {
533
+ this.dom = dom;
534
+ this.config = config;
535
+ if (!this.config)
536
+ this.config = DEFAULT_CONFIG;
537
+ this.alert = this.config.alert;
538
+ if (!this.alert) {
539
+ this.alert = DEFAULT_Alert;
540
+ }
541
+ else {
542
+ for (let each in DEFAULT_Alert) {
543
+ if (this.alert[each])
544
+ continue;
545
+ this.alert[each] = DEFAULT_Alert[each];
568
546
  }
569
547
  }
548
+ this._container = this.dom.appendComponent(WrapperComponent);
570
549
  }
571
- // Device management
572
- device = '';
573
- /**
574
- * Detects the device type based on the user agent.
575
- */
576
- detectDevice() {
577
- const userAgent = navigator.userAgent || navigator.vendor || window.opera;
578
- if (/windows phone/i.test(userAgent)) {
579
- this.device = 'Windows Phone';
580
- }
581
- else if (/android/i.test(userAgent)) {
582
- this.device = 'Android';
583
- }
584
- else if (/iPad|iPhone|iPod/.test(userAgent) &&
585
- !window.MSStream) {
586
- this.device = 'iOS';
550
+ uniques = {};
551
+ shortcuts = {
552
+ tl: 'topLeft',
553
+ tc: 'topCenter',
554
+ tr: 'topRight',
555
+ r: 'right',
556
+ br: 'bottomRight',
557
+ bc: 'bottomCenter',
558
+ bl: 'bottomLeft',
559
+ l: 'left',
560
+ c: 'center',
561
+ };
562
+ positionNumber = {
563
+ topLeft: 3,
564
+ topCenter: 4,
565
+ topRight: 2,
566
+ right: '',
567
+ bottomRight: 0,
568
+ bottomCenter: 5,
569
+ bottomLeft: 1,
570
+ left: '',
571
+ center: 6,
572
+ };
573
+ show(opts) {
574
+ if (typeof opts === 'string') {
575
+ opts = {
576
+ text: opts,
577
+ };
578
+ }
579
+ if (!opts)
580
+ opts = {};
581
+ if (!opts['type'])
582
+ opts['type'] = 'info';
583
+ for (let each in this.alert) {
584
+ if (each == 'class')
585
+ opts[each] = opts[each] + ' ' + this.alert[each];
586
+ else if (typeof opts[each] == 'undefined')
587
+ opts[each] = this.alert[each];
588
+ }
589
+ if (this.shortcuts[opts.position])
590
+ opts.position = this.shortcuts[opts.position];
591
+ if (!opts.position)
592
+ opts.position = 'bottomRight';
593
+ var content;
594
+ opts.close = () => {
595
+ if (content)
596
+ content.componentRef.destroy();
597
+ opts.component.nativeElement.remove();
598
+ if (typeof opts.onClose == 'function')
599
+ opts.onClose();
600
+ };
601
+ // let component = this.dom.appendById(AlertComponent, opts, opts.position);
602
+ let customElement = false;
603
+ if (typeof opts.component == 'string' &&
604
+ this.alert.alerts[opts.component]) {
605
+ opts.component = this.alert.alerts[opts.component];
606
+ customElement = true;
587
607
  }
588
608
  else {
589
- this.device = 'Web';
609
+ opts.component = this.dom.appendById(AlertComponent, opts, opts.position);
610
+ }
611
+ if (typeof opts.component === 'function') {
612
+ content = this.dom.appendComponent(opts.component, opts, this._container.nativeElement.children[0].children[this.positionNumber[opts.position] || 0]
613
+ // component.nativeElement.children[0].children[0].children[0] as HTMLElement
614
+ );
615
+ }
616
+ if (opts.unique) {
617
+ if (this.uniques[opts.unique])
618
+ this.uniques[opts.unique].remove();
619
+ this.uniques[opts.unique] = opts.component.nativeElement;
620
+ }
621
+ if (typeof opts.timeout !== 'number') {
622
+ opts.timeout = 2000;
623
+ }
624
+ if (opts.timeout) {
625
+ setTimeout(() => {
626
+ opts.close();
627
+ }, opts.timeout);
590
628
  }
629
+ return opts.component.nativeElement;
591
630
  }
592
- /**
593
- * Checks if the device is a mobile device.
594
- * @returns {boolean} - Returns true if the device is a mobile device.
595
- */
596
- isMobile() {
597
- return (this.device === 'Windows Phone' ||
598
- this.device === 'Android' ||
599
- this.device === 'iOS');
631
+ open(opts) {
632
+ this.show(opts);
600
633
  }
601
- /**
602
- * Checks if the device is a tablet.
603
- * @returns {boolean} - Returns true if the device is a tablet.
604
- */
605
- isTablet() {
606
- return this.device === 'iOS' && /iPad/.test(navigator.userAgent);
634
+ info(opts) {
635
+ opts['type'] = 'info';
636
+ this.show(opts);
607
637
  }
608
- /**
609
- * Checks if the device is a web browser.
610
- * @returns {boolean} - Returns true if the device is a web browser.
611
- */
612
- isWeb() {
613
- return this.device === 'Web';
638
+ success(opts) {
639
+ opts['type'] = 'success';
640
+ this.show(opts);
614
641
  }
615
- /**
616
- * Checks if the device is an Android device.
617
- * @returns {boolean} - Returns true if the device is an Android device.
618
- */
619
- isAndroid() {
620
- return this.device === 'Android';
642
+ warning(opts) {
643
+ opts['type'] = 'warning';
644
+ this.show(opts);
621
645
  }
622
- /**
623
- * Checks if the device is an iOS device.
624
- * @returns {boolean} - Returns true if the device is an iOS device.
625
- */
626
- isIos() {
627
- return this.device === 'iOS';
646
+ error(opts) {
647
+ opts['type'] = 'error';
648
+ this.show(opts);
649
+ }
650
+ question(opts) {
651
+ opts['type'] = 'question';
652
+ this.show(opts);
653
+ }
654
+ destroy() {
655
+ [
656
+ 'bottomRight',
657
+ 'bottomLeft',
658
+ 'bottomCenter',
659
+ 'topRight',
660
+ 'topLeft',
661
+ 'topCenter',
662
+ 'center',
663
+ ].forEach((id) => {
664
+ const el = document.getElementById(id);
665
+ if (el)
666
+ el.innerHTML = '';
667
+ });
668
+ }
669
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AlertService, deps: [{ token: DomService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
670
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AlertService, providedIn: 'root' });
671
+ }
672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AlertService, decorators: [{
673
+ type: Injectable,
674
+ args: [{
675
+ providedIn: 'root',
676
+ }]
677
+ }], ctorParameters: () => [{ type: DomService }, { type: undefined, decorators: [{
678
+ type: Inject,
679
+ args: [CONFIG_TOKEN]
680
+ }, {
681
+ type: Optional
682
+ }] }] });
683
+
684
+ // Add capitalize method to String prototype if it doesn't already exist
685
+ if (!String.prototype.capitalize) {
686
+ String.prototype.capitalize = function () {
687
+ if (this.length > 0) {
688
+ return this.charAt(0).toUpperCase() + this.slice(1).toLowerCase();
689
+ }
690
+ return '';
691
+ };
692
+ }
693
+ class CoreService {
694
+ platformId;
695
+ deviceID = localStorage.getItem('deviceID') ||
696
+ (typeof crypto?.randomUUID === 'function'
697
+ ? crypto.randomUUID()
698
+ : this.UUID());
699
+ constructor(platformId) {
700
+ this.platformId = platformId;
701
+ localStorage.setItem('deviceID', this.deviceID);
702
+ this.detectDevice();
628
703
  }
629
- // Version management
630
- version = '1.0.0';
631
- appVersion = '';
632
- dateVersion = '';
633
704
  /**
634
- * Sets the combined version string based on appVersion and dateVersion.
705
+ * Generates a UUID (Universally Unique Identifier) version 4.
706
+ *
707
+ * This implementation uses `Math.random()` to generate random values,
708
+ * making it suitable for general-purpose identifiers, but **not** for
709
+ * cryptographic or security-sensitive use cases.
710
+ *
711
+ * The format follows the UUID v4 standard: `xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`
712
+ * where:
713
+ * - `x` is a random hexadecimal digit (0–f)
714
+ * - `4` indicates UUID version 4
715
+ * - `y` is one of 8, 9, A, or B
716
+ *
717
+ * Example: `f47ac10b-58cc-4372-a567-0e02b2c3d479`
718
+ *
719
+ * @returns A string containing a UUID v4.
635
720
  */
636
- setVersion() {
637
- this.version = this.appVersion || '';
638
- this.version += this.version && this.dateVersion ? ' ' : '';
639
- this.version += this.dateVersion || '';
721
+ UUID() {
722
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
723
+ const r = (Math.random() * 16) | 0;
724
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
725
+ return v.toString(16);
726
+ });
640
727
  }
641
728
  /**
642
- * Sets the app version and updates the combined version string.
729
+ * Converts an object to an array. Optionally holds keys instead of values.
643
730
  *
644
- * @param {string} appVersion - The application version to set.
731
+ * @param {any} obj - The object to be converted.
732
+ * @param {boolean} [holder=false] - If true, the keys will be held in the array; otherwise, the values will be held.
733
+ * @returns {any[]} The resulting array.
645
734
  */
646
- setAppVersion(appVersion) {
647
- this.appVersion = appVersion;
648
- this.setVersion();
735
+ ota(obj, holder = false) {
736
+ if (Array.isArray(obj))
737
+ return obj;
738
+ if (typeof obj !== 'object' || obj === null)
739
+ return [];
740
+ const arr = [];
741
+ for (const each in obj) {
742
+ if (obj.hasOwnProperty(each) &&
743
+ (obj[each] ||
744
+ typeof obj[each] === 'number' ||
745
+ typeof obj[each] === 'boolean')) {
746
+ if (holder) {
747
+ arr.push(each);
748
+ }
749
+ else {
750
+ arr.push(obj[each]);
751
+ }
752
+ }
753
+ }
754
+ return arr;
649
755
  }
650
756
  /**
651
- * Sets the date version and updates the combined version string.
757
+ * Removes elements from `fromArray` that are present in `removeArray` based on a comparison field.
652
758
  *
653
- * @param {string} dateVersion - The date version to set.
759
+ * @param {any[]} removeArray - The array of elements to remove.
760
+ * @param {any[]} fromArray - The array from which to remove elements.
761
+ * @param {string} [compareField='_id'] - The field to use for comparison.
762
+ * @returns {any[]} The modified `fromArray` with elements removed.
654
763
  */
655
- setDateVersion(dateVersion) {
656
- this.dateVersion = dateVersion;
657
- this.setVersion();
764
+ splice(removeArray, fromArray, compareField = '_id') {
765
+ if (!Array.isArray(removeArray) || !Array.isArray(fromArray)) {
766
+ return fromArray;
767
+ }
768
+ const removeSet = new Set(removeArray.map((item) => item[compareField]));
769
+ return fromArray.filter((item) => !removeSet.has(item[compareField]));
658
770
  }
659
- // Signal management
660
- _signals = {};
661
771
  /**
662
- * Emits a signal, optionally passing data to the listeners.
663
- * @param signal - The name of the signal to emit.
664
- * @param data - Optional data to pass to the listeners.
772
+ * Unites multiple _id values into a single unique _id.
773
+ * The resulting _id is unique regardless of the order of the input _id values.
774
+ *
775
+ * @param {...string[]} args - The _id values to be united.
776
+ * @returns {string} The unique combined _id.
777
+ */
778
+ ids2id(...args) {
779
+ args.sort((a, b) => {
780
+ if (Number(a.toString().substring(0, 8)) >
781
+ Number(b.toString().substring(0, 8))) {
782
+ return 1;
783
+ }
784
+ return -1;
785
+ });
786
+ return args.join();
787
+ }
788
+ // After While
789
+ _afterWhile = {};
790
+ /**
791
+ * Delays the execution of a callback function for a specified amount of time.
792
+ * If called again within that time, the timer resets.
793
+ *
794
+ * @param {string | object | (() => void)} doc - A unique identifier for the timer, an object to host the timer, or the callback function.
795
+ * @param {() => void} [cb] - The callback function to execute after the delay.
796
+ * @param {number} [time=1000] - The delay time in milliseconds.
797
+ */
798
+ afterWhile(doc, cb, time = 1000) {
799
+ if (typeof doc === 'function') {
800
+ cb = doc;
801
+ doc = 'common';
802
+ }
803
+ if (typeof cb === 'function' && typeof time === 'number') {
804
+ if (typeof doc === 'string') {
805
+ clearTimeout(this._afterWhile[doc]);
806
+ this._afterWhile[doc] = window.setTimeout(cb, time);
807
+ }
808
+ else if (typeof doc === 'object') {
809
+ clearTimeout(doc.__afterWhile);
810
+ doc.__afterWhile =
811
+ window.setTimeout(cb, time);
812
+ }
813
+ else {
814
+ console.warn('badly configured after while');
815
+ }
816
+ }
817
+ }
818
+ /**
819
+ * Recursively copies properties from one object to another.
820
+ * Handles nested objects, arrays, and Date instances appropriately.
821
+ *
822
+ * @param from - The source object from which properties are copied.
823
+ * @param to - The target object to which properties are copied.
824
+ */
825
+ copy(from, to) {
826
+ for (const each in from) {
827
+ if (typeof from[each] !== 'object' ||
828
+ from[each] instanceof Date ||
829
+ Array.isArray(from[each]) ||
830
+ from[each] === null) {
831
+ to[each] = from[each];
832
+ }
833
+ else {
834
+ if (typeof to[each] !== 'object' ||
835
+ to[each] instanceof Date ||
836
+ Array.isArray(to[each]) ||
837
+ to[each] === null) {
838
+ to[each] = {};
839
+ }
840
+ this.copy(from[each], to[each]);
841
+ }
842
+ }
843
+ }
844
+ // Device management
845
+ device = '';
846
+ /**
847
+ * Detects the device type based on the user agent.
848
+ */
849
+ detectDevice() {
850
+ const userAgent = navigator.userAgent || navigator.vendor || window.opera;
851
+ if (/windows phone/i.test(userAgent)) {
852
+ this.device = 'Windows Phone';
853
+ }
854
+ else if (/android/i.test(userAgent)) {
855
+ this.device = 'Android';
856
+ }
857
+ else if (/iPad|iPhone|iPod/.test(userAgent) &&
858
+ !window.MSStream) {
859
+ this.device = 'iOS';
860
+ }
861
+ else {
862
+ this.device = 'Web';
863
+ }
864
+ }
865
+ /**
866
+ * Checks if the device is a mobile device.
867
+ * @returns {boolean} - Returns true if the device is a mobile device.
868
+ */
869
+ isMobile() {
870
+ return (this.device === 'Windows Phone' ||
871
+ this.device === 'Android' ||
872
+ this.device === 'iOS');
873
+ }
874
+ /**
875
+ * Checks if the device is a tablet.
876
+ * @returns {boolean} - Returns true if the device is a tablet.
877
+ */
878
+ isTablet() {
879
+ return this.device === 'iOS' && /iPad/.test(navigator.userAgent);
880
+ }
881
+ /**
882
+ * Checks if the device is a web browser.
883
+ * @returns {boolean} - Returns true if the device is a web browser.
884
+ */
885
+ isWeb() {
886
+ return this.device === 'Web';
887
+ }
888
+ /**
889
+ * Checks if the device is an Android device.
890
+ * @returns {boolean} - Returns true if the device is an Android device.
891
+ */
892
+ isAndroid() {
893
+ return this.device === 'Android';
894
+ }
895
+ /**
896
+ * Checks if the device is an iOS device.
897
+ * @returns {boolean} - Returns true if the device is an iOS device.
898
+ */
899
+ isIos() {
900
+ return this.device === 'iOS';
901
+ }
902
+ // Version management
903
+ version = '1.0.0';
904
+ appVersion = '';
905
+ dateVersion = '';
906
+ /**
907
+ * Sets the combined version string based on appVersion and dateVersion.
908
+ */
909
+ setVersion() {
910
+ this.version = this.appVersion || '';
911
+ this.version += this.version && this.dateVersion ? ' ' : '';
912
+ this.version += this.dateVersion || '';
913
+ }
914
+ /**
915
+ * Sets the app version and updates the combined version string.
916
+ *
917
+ * @param {string} appVersion - The application version to set.
918
+ */
919
+ setAppVersion(appVersion) {
920
+ this.appVersion = appVersion;
921
+ this.setVersion();
922
+ }
923
+ /**
924
+ * Sets the date version and updates the combined version string.
925
+ *
926
+ * @param {string} dateVersion - The date version to set.
927
+ */
928
+ setDateVersion(dateVersion) {
929
+ this.dateVersion = dateVersion;
930
+ this.setVersion();
931
+ }
932
+ // Signal management
933
+ _signals = {};
934
+ /**
935
+ * Emits a signal, optionally passing data to the listeners.
936
+ * @param signal - The name of the signal to emit.
937
+ * @param data - Optional data to pass to the listeners.
665
938
  */
666
939
  emit(signal, data) {
667
940
  if (!this._signals[signal]) {
@@ -971,10 +1244,10 @@ class CoreService {
971
1244
  if (sig)
972
1245
  sig.update(updater);
973
1246
  }
974
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CoreService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
975
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CoreService, providedIn: 'root' });
1247
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: CoreService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1248
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: CoreService, providedIn: 'root' });
976
1249
  }
977
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CoreService, decorators: [{
1250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: CoreService, decorators: [{
978
1251
  type: Injectable,
979
1252
  args: [{
980
1253
  providedIn: 'root',
@@ -984,279 +1257,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
984
1257
  args: [PLATFORM_ID]
985
1258
  }] }] });
986
1259
 
987
- class WrapperComponent {
988
- constructor() { }
989
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: WrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
990
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: WrapperComponent, isStandalone: false, selector: "lib-wrapper", ngImport: i0, template: "<div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomRight\"\r\n\t\tid=\"bottomRight\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomLeft\"\r\n\t\tid=\"bottomLeft\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topRight\"\r\n\t\tid=\"topRight\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topLeft\" id=\"topLeft\"></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topCenter\"\r\n\t\tid=\"topCenter\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomCenter\"\r\n\t\tid=\"bottomCenter\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-center\" id=\"center\"></div>\r\n</div>\r\n", styles: [".waw-alert-wrapper{z-index:99999;position:fixed;width:100%;pointer-events:none;display:flex;flex-direction:column}.waw-alert-wrapper-bottomLeft{left:0;bottom:0;text-align:left}.waw-alert-wrapper-bottomRight{right:0;bottom:0;text-align:right}.waw-alert-wrapper-topLeft{left:0;top:0;text-align:left}.waw-alert-wrapper-topRight{top:0;right:0;text-align:right}.waw-alert-wrapper-topCenter{top:0;left:0;right:0;text-align:center}.waw-alert-wrapper-bottomCenter{bottom:0;left:0;right:0;text-align:center}.waw-alert-wrapper-center{inset:0;text-align:center;justify-content:center;flex-flow:column;align-items:center}\n"] });
991
- }
992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: WrapperComponent, decorators: [{
993
- type: Component,
994
- args: [{ selector: 'lib-wrapper', standalone: false, template: "<div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomRight\"\r\n\t\tid=\"bottomRight\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomLeft\"\r\n\t\tid=\"bottomLeft\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topRight\"\r\n\t\tid=\"topRight\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topLeft\" id=\"topLeft\"></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-topCenter\"\r\n\t\tid=\"topCenter\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"waw-alert-wrapper waw-alert-wrapper-bottomCenter\"\r\n\t\tid=\"bottomCenter\"\r\n\t></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-center\" id=\"center\"></div>\r\n</div>\r\n", styles: [".waw-alert-wrapper{z-index:99999;position:fixed;width:100%;pointer-events:none;display:flex;flex-direction:column}.waw-alert-wrapper-bottomLeft{left:0;bottom:0;text-align:left}.waw-alert-wrapper-bottomRight{right:0;bottom:0;text-align:right}.waw-alert-wrapper-topLeft{left:0;top:0;text-align:left}.waw-alert-wrapper-topRight{top:0;right:0;text-align:right}.waw-alert-wrapper-topCenter{top:0;left:0;right:0;text-align:center}.waw-alert-wrapper-bottomCenter{bottom:0;left:0;right:0;text-align:center}.waw-alert-wrapper-center{inset:0;text-align:center;justify-content:center;flex-flow:column;align-items:center}\n"] }]
995
- }], ctorParameters: () => [] });
996
-
997
- class DomService {
998
- componentFactoryResolver;
999
- appRef;
1000
- injector;
1001
- providedIn = {};
1002
- constructor(componentFactoryResolver, appRef, injector) {
1003
- this.componentFactoryResolver = componentFactoryResolver;
1004
- this.appRef = appRef;
1005
- this.injector = injector;
1006
- }
1007
- /**
1008
- * Appends a component to a specified element by ID.
1009
- *
1010
- * @param component - The component to append.
1011
- * @param options - The options to project into the component.
1012
- * @param id - The ID of the element to append the component to.
1013
- * @returns An object containing the native element and the component reference.
1014
- */
1015
- appendById(component, options = {}, id) {
1016
- const componentRef = this.componentFactoryResolver
1017
- .resolveComponentFactory(component)
1018
- .create(this.injector);
1019
- this.projectComponentInputs(componentRef, options);
1020
- this.appRef.attachView(componentRef.hostView);
1021
- const domElem = componentRef.hostView
1022
- .rootNodes[0];
1023
- const element = document.getElementById(id);
1024
- if (element && typeof element.appendChild === 'function') {
1025
- element.appendChild(domElem);
1026
- }
1027
- return {
1028
- nativeElement: domElem,
1029
- componentRef: componentRef,
1030
- };
1031
- }
1032
- /**
1033
- * Appends a component to a specified element or to the body.
1034
- *
1035
- * @param component - The component to append.
1036
- * @param options - The options to project into the component.
1037
- * @param element - The element to append the component to. Defaults to body.
1038
- * @returns An object containing the native element and the component reference.
1039
- */
1040
- appendComponent(component, options = {}, element = document.body) {
1041
- if (options.providedIn) {
1042
- if (this.providedIn[options.providedIn]) {
1043
- return;
1044
- }
1045
- this.providedIn[options.providedIn] = true;
1046
- }
1047
- const componentRef = this.componentFactoryResolver
1048
- .resolveComponentFactory(component)
1049
- .create(this.injector);
1050
- this.projectComponentInputs(componentRef, options);
1051
- this.appRef.attachView(componentRef.hostView);
1052
- const domElem = componentRef.hostView
1053
- .rootNodes[0];
1054
- if (element && typeof element.appendChild === 'function') {
1055
- element.appendChild(domElem);
1056
- }
1057
- return {
1058
- nativeElement: domElem,
1059
- componentRef: componentRef,
1060
- };
1061
- }
1062
- /**
1063
- * Gets a reference to a dynamically created component.
1064
- *
1065
- * @param component - The component to create.
1066
- * @param options - The options to project into the component.
1067
- * @returns The component reference.
1068
- */
1069
- getComponentRef(component, options = {}) {
1070
- const componentRef = this.componentFactoryResolver
1071
- .resolveComponentFactory(component)
1072
- .create(this.injector);
1073
- this.projectComponentInputs(componentRef, options);
1074
- this.appRef.attachView(componentRef.hostView);
1075
- return componentRef;
1076
- }
1077
- /**
1078
- * Projects the inputs onto the component.
1079
- *
1080
- * @param component - The component reference.
1081
- * @param options - The options to project into the component.
1082
- * @returns The component reference with the projected inputs.
1083
- */
1084
- projectComponentInputs(component, options) {
1085
- if (options) {
1086
- const props = Object.getOwnPropertyNames(options);
1087
- for (const prop of props) {
1088
- component.instance[prop] = options[prop];
1089
- }
1090
- }
1091
- return component;
1092
- }
1093
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DomService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1094
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DomService, providedIn: 'root' });
1095
- }
1096
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DomService, decorators: [{
1097
- type: Injectable,
1098
- args: [{
1099
- providedIn: 'root',
1100
- }]
1101
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }] });
1102
-
1103
- class AlertService {
1104
- dom;
1105
- config;
1106
- alert;
1107
- _container;
1108
- constructor(dom, config) {
1109
- this.dom = dom;
1110
- this.config = config;
1111
- if (!this.config)
1112
- this.config = DEFAULT_CONFIG;
1113
- this.alert = this.config.alert;
1114
- if (!this.alert) {
1115
- this.alert = DEFAULT_Alert;
1116
- }
1117
- else {
1118
- for (let each in DEFAULT_Alert) {
1119
- if (this.alert[each])
1120
- continue;
1121
- this.alert[each] = DEFAULT_Alert[each];
1122
- }
1123
- }
1124
- this._container = this.dom.appendComponent(WrapperComponent);
1125
- }
1126
- uniques = {};
1127
- shortcuts = {
1128
- tl: 'topLeft',
1129
- tc: 'topCenter',
1130
- tr: 'topRight',
1131
- r: 'right',
1132
- br: 'bottomRight',
1133
- bc: 'bottomCenter',
1134
- bl: 'bottomLeft',
1135
- l: 'left',
1136
- c: 'center',
1137
- };
1138
- positionNumber = {
1139
- topLeft: 3,
1140
- topCenter: 4,
1141
- topRight: 2,
1142
- right: '',
1143
- bottomRight: 0,
1144
- bottomCenter: 5,
1145
- bottomLeft: 1,
1146
- left: '',
1147
- center: 6,
1148
- };
1149
- show(opts) {
1150
- if (typeof opts === 'string') {
1151
- opts = {
1152
- text: opts,
1153
- };
1154
- }
1155
- if (!opts)
1156
- opts = {};
1157
- if (!opts['type'])
1158
- opts['type'] = 'info';
1159
- for (let each in this.alert) {
1160
- if (each == 'class')
1161
- opts[each] = opts[each] + ' ' + this.alert[each];
1162
- else if (typeof opts[each] == 'undefined')
1163
- opts[each] = this.alert[each];
1164
- }
1165
- if (this.shortcuts[opts.position])
1166
- opts.position = this.shortcuts[opts.position];
1167
- if (!opts.position)
1168
- opts.position = 'bottomRight';
1169
- var content;
1170
- opts.close = () => {
1171
- if (content)
1172
- content.componentRef.destroy();
1173
- opts.component.nativeElement.remove();
1174
- if (typeof opts.onClose == 'function')
1175
- opts.onClose();
1176
- };
1177
- // let component = this.dom.appendById(AlertComponent, opts, opts.position);
1178
- let customElement = false;
1179
- if (typeof opts.component == 'string' &&
1180
- this.alert.alerts[opts.component]) {
1181
- opts.component = this.alert.alerts[opts.component];
1182
- customElement = true;
1183
- }
1184
- else {
1185
- opts.component = this.dom.appendById(AlertComponent, opts, opts.position);
1186
- }
1187
- if (typeof opts.component === 'function') {
1188
- content = this.dom.appendComponent(opts.component, opts, this._container.nativeElement.children[0].children[this.positionNumber[opts.position] || 0]
1189
- // component.nativeElement.children[0].children[0].children[0] as HTMLElement
1190
- );
1191
- }
1192
- if (opts.unique) {
1193
- if (this.uniques[opts.unique])
1194
- this.uniques[opts.unique].remove();
1195
- this.uniques[opts.unique] = opts.component.nativeElement;
1196
- }
1197
- if (typeof opts.timeout !== 'number') {
1198
- opts.timeout = 2000;
1199
- }
1200
- if (opts.timeout) {
1201
- setTimeout(() => {
1202
- opts.close();
1203
- }, opts.timeout);
1204
- }
1205
- return opts.component.nativeElement;
1206
- }
1207
- open(opts) {
1208
- this.show(opts);
1209
- }
1210
- info(opts) {
1211
- opts['type'] = 'info';
1212
- this.show(opts);
1213
- }
1214
- success(opts) {
1215
- opts['type'] = 'success';
1216
- this.show(opts);
1217
- }
1218
- warning(opts) {
1219
- opts['type'] = 'warning';
1220
- this.show(opts);
1221
- }
1222
- error(opts) {
1223
- opts['type'] = 'error';
1224
- this.show(opts);
1225
- }
1226
- question(opts) {
1227
- opts['type'] = 'question';
1228
- this.show(opts);
1229
- }
1230
- destroy() {
1231
- [
1232
- 'bottomRight',
1233
- 'bottomLeft',
1234
- 'bottomCenter',
1235
- 'topRight',
1236
- 'topLeft',
1237
- 'topCenter',
1238
- 'center',
1239
- ].forEach((id) => {
1240
- const el = document.getElementById(id);
1241
- if (el)
1242
- el.innerHTML = '';
1243
- });
1244
- }
1245
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AlertService, deps: [{ token: DomService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1246
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AlertService, providedIn: 'root' });
1247
- }
1248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AlertService, decorators: [{
1249
- type: Injectable,
1250
- args: [{
1251
- providedIn: 'root',
1252
- }]
1253
- }], ctorParameters: () => [{ type: DomService }, { type: undefined, decorators: [{
1254
- type: Inject,
1255
- args: [CONFIG_TOKEN]
1256
- }, {
1257
- type: Optional
1258
- }] }] });
1259
-
1260
1260
  /**
1261
1261
  * Abstract reusable base class for CRUD list views.
1262
1262
  * It encapsulates pagination, modals, and document handling logic.
@@ -1289,13 +1289,14 @@ class CrudComponent {
1289
1289
  * @param translate - An object providing a translate() method for i18n
1290
1290
  * @param service - CRUD service implementing get/create/update/delete
1291
1291
  */
1292
- constructor(formConfig, formService, translate, service) {
1292
+ constructor(formConfig, formService, translate, service, module = '') {
1293
1293
  this.formService = formService;
1294
1294
  this.translate = translate;
1295
1295
  this.service = service;
1296
1296
  this.__form = formService;
1297
1297
  const form = formConfig;
1298
1298
  this.form = this.__form.prepareForm(form);
1299
+ this._module = module;
1299
1300
  }
1300
1301
  /**
1301
1302
  * Loads documents for a given page.
@@ -1425,7 +1426,7 @@ class CrudComponent {
1425
1426
  delete: this.allowMutate()
1426
1427
  ? (doc) => {
1427
1428
  this.__alert.question({
1428
- text: this.translate.translate('Common.Are you sure you want to delete this bird?'),
1429
+ text: this.translate.translate(`Common.Are you sure you want to delete this${this._module ? ' ' + this._module : ''}?`),
1429
1430
  buttons: [
1430
1431
  { text: this.translate.translate('Common.No') },
1431
1432
  {
@@ -1440,11 +1441,11 @@ class CrudComponent {
1440
1441
  }
1441
1442
  : null,
1442
1443
  buttons: [
1443
- this.allowUrl()
1444
+ this.allowUrl() && this._module
1444
1445
  ? {
1445
1446
  icon: 'cloud_download',
1446
1447
  click: (doc) => {
1447
- this.__form.modalUnique('bird', 'url', doc);
1448
+ this.__form.modalUnique(this._module, 'url', doc);
1448
1449
  },
1449
1450
  }
1450
1451
  : null,
@@ -1495,6 +1496,7 @@ class CrudComponent {
1495
1496
  }
1496
1497
  : config;
1497
1498
  }
1499
+ _module = '';
1498
1500
  }
1499
1501
 
1500
1502
  class ClickOutsideDirective {
@@ -1509,10 +1511,10 @@ class ClickOutsideDirective {
1509
1511
  this.clickOutside.emit(event);
1510
1512
  }
1511
1513
  }
1512
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1513
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.2", type: ClickOutsideDirective, isStandalone: false, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 });
1514
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1515
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.3", type: ClickOutsideDirective, isStandalone: false, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 });
1514
1516
  }
1515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ClickOutsideDirective, decorators: [{
1517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ClickOutsideDirective, decorators: [{
1516
1518
  type: Directive,
1517
1519
  args: [{
1518
1520
  selector: '[clickOutside]',
@@ -1557,10 +1559,10 @@ class ArrPipe {
1557
1559
  }
1558
1560
  return arr;
1559
1561
  }
1560
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ArrPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1561
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: ArrPipe, isStandalone: false, name: "arr" });
1562
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ArrPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1563
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: ArrPipe, isStandalone: false, name: "arr" });
1562
1564
  }
1563
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ArrPipe, decorators: [{
1565
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ArrPipe, decorators: [{
1564
1566
  type: Pipe,
1565
1567
  args: [{
1566
1568
  name: 'arr',
@@ -1575,10 +1577,10 @@ class MongodatePipe {
1575
1577
  let timestamp = _id.toString().substring(0, 8);
1576
1578
  return new Date(parseInt(timestamp, 16) * 1000);
1577
1579
  }
1578
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MongodatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1579
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: MongodatePipe, isStandalone: false, name: "mongodate" });
1580
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MongodatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1581
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: MongodatePipe, isStandalone: false, name: "mongodate" });
1580
1582
  }
1581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MongodatePipe, decorators: [{
1583
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MongodatePipe, decorators: [{
1582
1584
  type: Pipe,
1583
1585
  args: [{
1584
1586
  name: 'mongodate',
@@ -1607,10 +1609,10 @@ class PaginationPipe {
1607
1609
  }
1608
1610
  return arr.slice((config.page - 1) * config.perPage, config.page * config.perPage);
1609
1611
  }
1610
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: PaginationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1611
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: PaginationPipe, isStandalone: false, name: "page", pure: false });
1612
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: PaginationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1613
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: PaginationPipe, isStandalone: false, name: "page", pure: false });
1612
1614
  }
1613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: PaginationPipe, decorators: [{
1615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: PaginationPipe, decorators: [{
1614
1616
  type: Pipe,
1615
1617
  args: [{
1616
1618
  name: 'page',
@@ -1627,10 +1629,10 @@ class SafePipe {
1627
1629
  transform(html) {
1628
1630
  return this.sanitizer.bypassSecurityTrustResourceUrl(html);
1629
1631
  }
1630
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SafePipe, deps: [{ token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
1631
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: SafePipe, isStandalone: false, name: "safe" });
1632
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SafePipe, deps: [{ token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
1633
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: SafePipe, isStandalone: false, name: "safe" });
1632
1634
  }
1633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SafePipe, decorators: [{
1635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SafePipe, decorators: [{
1634
1636
  type: Pipe,
1635
1637
  args: [{
1636
1638
  name: 'safe',
@@ -1740,10 +1742,10 @@ class SearchPipe {
1740
1742
  return _arr.splice(0, l);
1741
1743
  return _arr;
1742
1744
  }
1743
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1744
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: SearchPipe, isStandalone: false, name: "search" });
1745
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1746
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: SearchPipe, isStandalone: false, name: "search" });
1745
1747
  }
1746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SearchPipe, decorators: [{
1748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SearchPipe, decorators: [{
1747
1749
  type: Pipe,
1748
1750
  args: [{
1749
1751
  name: 'search',
@@ -1806,10 +1808,10 @@ class SplicePipe {
1806
1808
  }
1807
1809
  return arr;
1808
1810
  }
1809
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SplicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1810
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: SplicePipe, isStandalone: false, name: "splice" });
1811
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SplicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1812
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: SplicePipe, isStandalone: false, name: "splice" });
1811
1813
  }
1812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SplicePipe, decorators: [{
1814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SplicePipe, decorators: [{
1813
1815
  type: Pipe,
1814
1816
  args: [{
1815
1817
  name: 'splice',
@@ -1822,10 +1824,10 @@ class SplitPipe {
1822
1824
  const arr = value.split(devider);
1823
1825
  return arr.length > index ? arr[index] : '';
1824
1826
  }
1825
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SplitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1826
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: SplitPipe, isStandalone: false, name: "split" });
1827
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SplitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1828
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: SplitPipe, isStandalone: false, name: "split" });
1827
1829
  }
1828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SplitPipe, decorators: [{
1830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SplitPipe, decorators: [{
1829
1831
  type: Pipe,
1830
1832
  args: [{
1831
1833
  name: 'split',
@@ -1838,10 +1840,10 @@ class NumberPipe {
1838
1840
  const result = Number(value); // Convert value to a number
1839
1841
  return isNaN(result) ? 0 : result; // Return 0 if conversion fails
1840
1842
  }
1841
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1842
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: NumberPipe, isStandalone: false, name: "number" });
1843
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1844
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: NumberPipe, isStandalone: false, name: "number" });
1843
1845
  }
1844
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NumberPipe, decorators: [{
1846
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NumberPipe, decorators: [{
1845
1847
  type: Pipe,
1846
1848
  args: [{
1847
1849
  name: 'number',
@@ -1854,10 +1856,10 @@ class BaseService {
1854
1856
  refreshNow() {
1855
1857
  this.now = new Date().getTime();
1856
1858
  }
1857
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1858
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, providedIn: 'root' });
1859
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1860
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: BaseService, providedIn: 'root' });
1859
1861
  }
1860
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, decorators: [{
1862
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: BaseService, decorators: [{
1861
1863
  type: Injectable,
1862
1864
  args: [{
1863
1865
  providedIn: 'root',
@@ -2109,10 +2111,10 @@ class StoreService {
2109
2111
  async has(key) {
2110
2112
  return !!(await this.getAsync(key));
2111
2113
  }
2112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: StoreService, deps: [{ token: CONFIG_TOKEN, optional: true }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
2113
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: StoreService, providedIn: 'root' });
2114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: StoreService, deps: [{ token: CONFIG_TOKEN, optional: true }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
2115
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: StoreService, providedIn: 'root' });
2114
2116
  }
2115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: StoreService, decorators: [{
2117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: StoreService, decorators: [{
2116
2118
  type: Injectable,
2117
2119
  args: [{
2118
2120
  providedIn: 'root',
@@ -2456,10 +2458,10 @@ class HttpService {
2456
2458
  }
2457
2459
  return newDoc;
2458
2460
  }
2459
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: HttpService, deps: [{ token: StoreService }, { token: i2$1.HttpClient }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
2460
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: HttpService, providedIn: 'root' });
2461
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: HttpService, deps: [{ token: StoreService }, { token: i2$1.HttpClient }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
2462
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: HttpService, providedIn: 'root' });
2461
2463
  }
2462
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: HttpService, decorators: [{
2464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: HttpService, decorators: [{
2463
2465
  type: Injectable,
2464
2466
  args: [{
2465
2467
  providedIn: 'root',
@@ -3980,10 +3982,10 @@ class MongoService {
3980
3982
  });
3981
3983
  });
3982
3984
  }
3983
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MongoService, deps: [{ token: StoreService }, { token: HttpService }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
3984
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MongoService, providedIn: 'root' });
3985
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MongoService, deps: [{ token: StoreService }, { token: HttpService }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
3986
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MongoService, providedIn: 'root' });
3985
3987
  }
3986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: MongoService, decorators: [{
3988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MongoService, decorators: [{
3987
3989
  type: Injectable,
3988
3990
  args: [{
3989
3991
  providedIn: 'root',
@@ -4026,10 +4028,10 @@ class RenderService {
4026
4028
  }
4027
4029
  }
4028
4030
  }
4029
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: RenderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4030
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: RenderService, providedIn: 'root' });
4031
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: RenderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4032
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: RenderService, providedIn: 'root' });
4031
4033
  }
4032
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: RenderService, decorators: [{
4034
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: RenderService, decorators: [{
4033
4035
  type: Injectable,
4034
4036
  args: [{
4035
4037
  providedIn: 'root',
@@ -4144,10 +4146,10 @@ class HashService {
4144
4146
  }
4145
4147
  this.save();
4146
4148
  }
4147
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: HashService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4148
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: HashService, providedIn: 'root' });
4149
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: HashService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4150
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: HashService, providedIn: 'root' });
4149
4151
  }
4150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: HashService, decorators: [{
4152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: HashService, decorators: [{
4151
4153
  type: Injectable,
4152
4154
  args: [{
4153
4155
  providedIn: 'root',
@@ -4186,10 +4188,10 @@ class LoaderService {
4186
4188
  this.loaders.splice(i, 1);
4187
4189
  }
4188
4190
  }
4189
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LoaderService, deps: [{ token: DomService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4190
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LoaderService, providedIn: 'root' });
4191
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoaderService, deps: [{ token: DomService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4192
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoaderService, providedIn: 'root' });
4191
4193
  }
4192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LoaderService, decorators: [{
4194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoaderService, decorators: [{
4193
4195
  type: Injectable,
4194
4196
  args: [{
4195
4197
  providedIn: 'root',
@@ -4296,10 +4298,10 @@ class SocketService {
4296
4298
  }
4297
4299
  this._io.emit(to, message, room);
4298
4300
  }
4299
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SocketService, deps: [{ token: CONFIG_TOKEN, optional: true }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
4300
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SocketService, providedIn: 'root' });
4301
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SocketService, deps: [{ token: CONFIG_TOKEN, optional: true }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
4302
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SocketService, providedIn: 'root' });
4301
4303
  }
4302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SocketService, decorators: [{
4304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SocketService, decorators: [{
4303
4305
  type: Injectable,
4304
4306
  args: [{
4305
4307
  providedIn: 'root',
@@ -4427,10 +4429,10 @@ class ModalService {
4427
4429
  }
4428
4430
  document.body.classList.remove('modalOpened');
4429
4431
  }
4430
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ModalService, deps: [{ token: DomService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4431
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ModalService, providedIn: 'root' });
4432
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ModalService, deps: [{ token: DomService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4433
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ModalService, providedIn: 'root' });
4432
4434
  }
4433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ModalService, decorators: [{
4435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ModalService, decorators: [{
4434
4436
  type: Injectable,
4435
4437
  args: [{
4436
4438
  providedIn: 'root',
@@ -4445,10 +4447,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
4445
4447
  class FilesComponent {
4446
4448
  fs;
4447
4449
  constructor() { }
4448
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FilesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4449
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: FilesComponent, isStandalone: false, selector: "lib-files", ngImport: i0, template: "<ng-container *ngFor=\"let file of fs.files\">\r\n\t<input\r\n\t\t[id]=\"file.id\"\r\n\t\ttype=\"file\"\r\n\t\tname=\"file\"\r\n\t\t(change)=\"fs.change($event, file); input.value = ''\"\r\n\t\t#input\r\n\t\t[hidden]=\"true\"\r\n\t\t[accept]=\"file.accept || (file.part && 'image/*') || ''\"\r\n\t\t[multiple]=\"(file.multiple && true) || ''\"\r\n\t/>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4450
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FilesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4451
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: FilesComponent, isStandalone: false, selector: "lib-files", ngImport: i0, template: "<ng-container *ngFor=\"let file of fs.files\">\r\n\t<input\r\n\t\t[id]=\"file.id\"\r\n\t\ttype=\"file\"\r\n\t\tname=\"file\"\r\n\t\t(change)=\"fs.change($event, file); input.value = ''\"\r\n\t\t#input\r\n\t\t[hidden]=\"true\"\r\n\t\t[accept]=\"file.accept || (file.part && 'image/*') || ''\"\r\n\t\t[multiple]=\"(file.multiple && true) || ''\"\r\n\t/>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4450
4452
  }
4451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FilesComponent, decorators: [{
4453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FilesComponent, decorators: [{
4452
4454
  type: Component,
4453
4455
  args: [{ selector: 'lib-files', standalone: false, template: "<ng-container *ngFor=\"let file of fs.files\">\r\n\t<input\r\n\t\t[id]=\"file.id\"\r\n\t\ttype=\"file\"\r\n\t\tname=\"file\"\r\n\t\t(change)=\"fs.change($event, file); input.value = ''\"\r\n\t\t#input\r\n\t\t[hidden]=\"true\"\r\n\t\t[accept]=\"file.accept || (file.part && 'image/*') || ''\"\r\n\t\t[multiple]=\"(file.multiple && true) || ''\"\r\n\t/>\r\n</ng-container>\r\n" }]
4454
4456
  }], ctorParameters: () => [] });
@@ -4691,10 +4693,10 @@ class FileService {
4691
4693
  };
4692
4694
  reader.readAsDataURL(file);
4693
4695
  }
4694
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FileService, deps: [{ token: DomService }, { token: HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
4695
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FileService, providedIn: 'root' });
4696
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FileService, deps: [{ token: DomService }, { token: HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
4697
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FileService, providedIn: 'root' });
4696
4698
  }
4697
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FileService, decorators: [{
4699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FileService, decorators: [{
4698
4700
  type: Injectable,
4699
4701
  args: [{
4700
4702
  providedIn: 'root',
@@ -4885,10 +4887,10 @@ class UiService {
4885
4887
  }
4886
4888
  return result;
4887
4889
  }
4888
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: UiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4889
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: UiService, providedIn: 'root' });
4890
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: UiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4891
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: UiService, providedIn: 'root' });
4890
4892
  }
4891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: UiService, decorators: [{
4893
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: UiService, decorators: [{
4892
4894
  type: Injectable,
4893
4895
  args: [{
4894
4896
  providedIn: 'root',
@@ -5096,10 +5098,10 @@ class TimeService {
5096
5098
  }
5097
5099
  return lastWeek - firstWeek + 1;
5098
5100
  }
5099
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: TimeService, deps: [{ token: i1$1.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
5100
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: TimeService, providedIn: 'root' });
5101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TimeService, deps: [{ token: i1$1.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
5102
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TimeService, providedIn: 'root' });
5101
5103
  }
5102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: TimeService, decorators: [{
5104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TimeService, decorators: [{
5103
5105
  type: Injectable,
5104
5106
  args: [{
5105
5107
  providedIn: 'root',
@@ -5215,10 +5217,10 @@ class RtcService {
5215
5217
  this.localStream?.getTracks().forEach((track) => track.stop());
5216
5218
  this.localStream = null;
5217
5219
  }
5218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: RtcService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5219
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: RtcService, providedIn: 'root' });
5220
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: RtcService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5221
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: RtcService, providedIn: 'root' });
5220
5222
  }
5221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: RtcService, decorators: [{
5223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: RtcService, decorators: [{
5222
5224
  type: Injectable,
5223
5225
  args: [{ providedIn: 'root' }]
5224
5226
  }] });
@@ -5247,8 +5249,8 @@ class WacomModule {
5247
5249
  ],
5248
5250
  };
5249
5251
  }
5250
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: WacomModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5251
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: WacomModule, declarations: [WrapperComponent, FilesComponent, ArrPipe,
5252
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WacomModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5253
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: WacomModule, declarations: [WrapperComponent, FilesComponent, ArrPipe,
5252
5254
  SafePipe,
5253
5255
  SplicePipe,
5254
5256
  SearchPipe,
@@ -5259,14 +5261,14 @@ class WacomModule {
5259
5261
  SearchPipe,
5260
5262
  MongodatePipe,
5261
5263
  PaginationPipe, LoaderComponent, ModalComponent, AlertComponent, ClickOutsideDirective] });
5262
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: WacomModule, providers: [
5264
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WacomModule, providers: [
5263
5265
  { provide: CONFIG_TOKEN, useValue: DEFAULT_CONFIG },
5264
5266
  MetaGuard,
5265
5267
  MetaService,
5266
5268
  provideHttpClient(withInterceptorsFromDi()),
5267
5269
  ], imports: [CommonModule, FormsModule] });
5268
5270
  }
5269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: WacomModule, decorators: [{
5271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WacomModule, decorators: [{
5270
5272
  type: NgModule,
5271
5273
  args: [{
5272
5274
  declarations: [...LOCAL_COMPONENTS, ...PIPES, ...COMPONENTS, ...DIRECTIVES],