@osovitny/anatoly 3.17.97 → 3.17.99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Inject, EventEmitter, Output, Pipe, APP_INITIALIZER, Injector, NgModule, Component, Input, ChangeDetectionStrategy, ViewChild, ViewEncapsulation, Directive, HostBinding, HostListener, Optional, SkipSelf } from '@angular/core';
2
+ import { Injectable, Inject, EventEmitter, Output, Pipe, APP_INITIALIZER, Injector, NgModule, Component, Input, ChangeDetectionStrategy, ViewChild, Directive, ViewEncapsulation, HostBinding, HostListener, Optional, SkipSelf } from '@angular/core';
3
3
  import js_beautify from 'js-beautify';
4
4
  import * as i1 from '@angular/router';
5
5
  import { NavigationEnd, NavigationStart, NavigationCancel, NavigationError, RouterModule } from '@angular/router';
@@ -28,21 +28,34 @@ import * as dropin from 'braintree-web-drop-in';
28
28
  import * as i2$1 from '@progress/kendo-angular-dialog';
29
29
  import { DialogsModule } from '@progress/kendo-angular-dialog';
30
30
  import { loadStripe } from '@stripe/stripe-js';
31
+ import * as i3 from '@progress/kendo-angular-dropdowns';
32
+ import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
33
+ import * as i4$1 from '@progress/kendo-angular-label';
34
+ import { LabelModule } from '@progress/kendo-angular-label';
35
+ import * as i3$1 from 'angular-froala-wysiwyg';
36
+ import { FERootModule } from 'angular-froala-wysiwyg';
31
37
  import * as i1$6 from '@fortawesome/angular-fontawesome';
32
38
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
33
39
  import * as i1$7 from '@progress/kendo-angular-pager';
34
40
  import { PagerModule } from '@progress/kendo-angular-pager';
35
- import * as i3 from 'angular-froala-wysiwyg';
36
- import { FERootModule } from 'angular-froala-wysiwyg';
37
41
  import * as i1$8 from 'ngx-captcha';
38
42
  import { NgxCaptchaModule } from 'ngx-captcha';
39
43
  import { faCheckCircle, faCircleXmark, faDatabase, faCopy } from '@fortawesome/free-solid-svg-icons';
40
44
  import { ButtonsModule } from '@progress/kendo-angular-buttons';
41
- import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
42
- import { InputsModule } from '@progress/kendo-angular-inputs';
43
- import { TreeViewModule } from '@progress/kendo-angular-treeview';
44
- import { TooltipsModule } from '@progress/kendo-angular-tooltip';
45
+ import { ChartsModule } from '@progress/kendo-angular-charts';
46
+ import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
47
+ import { GridModule } from '@progress/kendo-angular-grid';
45
48
  import { IconsModule } from '@progress/kendo-angular-icons';
49
+ import { InputsModule, FormFieldModule } from '@progress/kendo-angular-inputs';
50
+ import { IntlModule } from '@progress/kendo-angular-intl';
51
+ import { LayoutModule } from '@progress/kendo-angular-layout';
52
+ import { PopupModule } from '@progress/kendo-angular-popup';
53
+ import { RippleModule } from '@progress/kendo-angular-ripple';
54
+ import { SchedulerModule } from '@progress/kendo-angular-scheduler';
55
+ import { ScrollViewModule } from '@progress/kendo-angular-scrollview';
56
+ import { TooltipsModule } from '@progress/kendo-angular-tooltip';
57
+ import { TreeViewModule } from '@progress/kendo-angular-treeview';
58
+ import { UploadsModule } from '@progress/kendo-angular-upload';
46
59
 
47
60
  /*
48
61
  <file>
@@ -637,8 +650,7 @@ var PaymentStage;
637
650
 
638
651
  Authors:
639
652
  Vadim Osovitny vadim.osovitny@osovitny.com
640
- Anatoly Osovitny anatoly.osovitny@osovitny.com
641
-
653
+
642
654
  Created:
643
655
  11 Nov 2024
644
656
 
@@ -650,6 +662,20 @@ var DataViewType;
650
662
  DataViewType["Grid"] = "grid";
651
663
  DataViewType["List"] = "list";
652
664
  })(DataViewType || (DataViewType = {}));
665
+ var PublishStatus;
666
+ (function (PublishStatus) {
667
+ PublishStatus[PublishStatus["Draft"] = 1] = "Draft";
668
+ PublishStatus[PublishStatus["PendingReview"] = 2] = "PendingReview";
669
+ PublishStatus[PublishStatus["Published"] = 3] = "Published";
670
+ PublishStatus[PublishStatus["Archived"] = 4] = "Archived";
671
+ })(PublishStatus || (PublishStatus = {}));
672
+ var ModerationStatus;
673
+ (function (ModerationStatus) {
674
+ ModerationStatus[ModerationStatus["Draft"] = 1] = "Draft";
675
+ ModerationStatus[ModerationStatus["PendingReview"] = 2] = "PendingReview";
676
+ ModerationStatus[ModerationStatus["Approved"] = 3] = "Approved";
677
+ ModerationStatus[ModerationStatus["Rejected"] = 4] = "Rejected"; //item is rejected by Moderator
678
+ })(ModerationStatus || (ModerationStatus = {}));
653
679
 
654
680
  /*
655
681
  <file>
@@ -6540,38 +6566,36 @@ class SubscribePlanButtonComponent {
6540
6566
  @osovitny/anatoly
6541
6567
 
6542
6568
  Authors:
6543
- Vadim Osovitny vadim.osovitny@osovitny.com
6544
6569
  Anatoly Osovitny anatoly.osovitny@osovitny.com
6545
6570
 
6546
6571
  Created:
6547
- 15 Aug 2022
6572
+ 29 July 2022
6548
6573
 
6549
6574
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6550
6575
  </file>
6551
6576
  */
6552
6577
  //Node
6553
- const _c0$d = ["*"];
6554
- class CheckIconComponent {
6555
- constructor() {
6556
- //Inputs
6557
- this.checked = true;
6558
- }
6559
- static { this.ɵfac = function CheckIconComponent_Factory(t) { return new (t || CheckIconComponent)(); }; }
6560
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CheckIconComponent, selectors: [["anatoly-check-icon"]], inputs: { checked: "checked" }, ngContentSelectors: _c0$d, decls: 2, vars: 2, consts: [[3, "icon", "ngClass"]], template: function CheckIconComponent_Template(rf, ctx) { if (rf & 1) {
6561
- i0.ɵɵprojectionDef();
6562
- i0.ɵɵelement(0, "fa-icon", 0);
6578
+ const _c0$d = [[["mex-card-header"]], [["mex-card-body"]], "*", [["mex-card-footer"]]];
6579
+ const _c1 = ["mex-card-header", "mex-card-body", "*", "mex-card-footer"];
6580
+ class CardComponent extends ComponentBase {
6581
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardComponent_BaseFactory; return function CardComponent_Factory(t) { return (ɵCardComponent_BaseFactory || (ɵCardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardComponent)))(t || CardComponent); }; })(); }
6582
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardComponent, selectors: [["anatoly-card"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 5, vars: 3, template: function CardComponent_Template(rf, ctx) { if (rf & 1) {
6583
+ i0.ɵɵprojectionDef(_c0$d);
6584
+ i0.ɵɵelementStart(0, "div");
6563
6585
  i0.ɵɵprojection(1);
6586
+ i0.ɵɵprojection(2, 1);
6587
+ i0.ɵɵprojection(3, 2);
6588
+ i0.ɵɵprojection(4, 3);
6589
+ i0.ɵɵelementEnd();
6564
6590
  } if (rf & 2) {
6565
- i0.ɵɵproperty("icon", ctx.checked ? "check-circle" : "circle-xmark")("ngClass", ctx.checked ? "text-success" : "text-danger");
6566
- } }, dependencies: [i1$2.NgClass, i1$6.FaIconComponent], encapsulation: 2 }); }
6591
+ i0.ɵɵclassMapInterpolate1("card ", ctx.classes, "");
6592
+ } }, encapsulation: 2 }); }
6567
6593
  }
6568
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckIconComponent, [{
6594
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardComponent, [{
6569
6595
  type: Component,
6570
- args: [{ selector: 'anatoly-check-icon', template: "<fa-icon [icon]=\"this.checked ? 'check-circle' : 'circle-xmark'\" [ngClass]=\"checked ? 'text-success' : 'text-danger'\">\r\n</fa-icon>\r\n<ng-content></ng-content>\r\n" }]
6571
- }], null, { checked: [{
6572
- type: Input
6573
- }] }); })();
6574
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckIconComponent, { className: "CheckIconComponent", filePath: "lib\\ui\\components\\check-icon\\check-icon.component.ts", lineNumber: 24 }); })();
6596
+ args: [{ selector: 'anatoly-card', template: "<div class='card {{ classes }}'>\r\n <ng-content select='mex-card-header'></ng-content>\r\n <ng-content select='mex-card-body'></ng-content>\r\n <ng-content></ng-content>\r\n <ng-content select='mex-card-footer'></ng-content>\r\n</div>\r\n" }]
6597
+ }], null, null); })();
6598
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardComponent, { className: "CardComponent", filePath: "lib\\ui\\components\\card\\card.component.ts", lineNumber: 26 }); })();
6575
6599
 
6576
6600
  /*
6577
6601
  <file>
@@ -6579,89 +6603,45 @@ class CheckIconComponent {
6579
6603
  @osovitny/anatoly
6580
6604
 
6581
6605
  Authors:
6582
- Vadim Osovitny vadim.osovitny@osovitny.com
6583
6606
  Anatoly Osovitny anatoly.osovitny@osovitny.com
6584
6607
 
6585
6608
  Created:
6586
- 28 Aug 2022
6609
+ 29 July 2022
6587
6610
 
6588
6611
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6589
6612
  </file>
6590
6613
  */
6591
6614
  //Node
6592
- class DataPagerComponent extends ComponentBase {
6593
- constructor() {
6594
- super(...arguments);
6595
- //Private
6596
- this._defaultPageSizes = [5, 10, 20, 30];
6597
- //Public
6598
- this.pageSizes = [];
6599
- //Inputs
6600
- this.totalItems = 0;
6601
- this.pageSize = 0;
6602
- this.skipItems = 0;
6603
- this.pageSizeMax = 30;
6604
- //Outputs
6605
- this.pageChange = new EventEmitter();
6606
- }
6607
- get width() {
6608
- return this._width;
6609
- }
6610
- set width(value) {
6611
- this._width = value;
6612
- if (value) {
6613
- this.style = "width: " + value;
6614
- }
6615
- }
6616
- ngOnInit() {
6617
- this.pageSizes = [];
6618
- if (this.pageSizeDivisor) {
6619
- for (let i = 3; i < this.pageSizeMax; i++) {
6620
- let remainder = i % this.pageSizeDivisor;
6621
- if (remainder == 0) {
6622
- this.pageSizes.push(i);
6623
- }
6624
- }
6625
- }
6626
- else {
6627
- this.pageSizes = this._defaultPageSizes;
6628
- }
6629
- }
6630
- //Events
6631
- onPageChange(e) {
6632
- this.pageChange.emit(e);
6633
- }
6634
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵDataPagerComponent_BaseFactory; return function DataPagerComponent_Factory(t) { return (ɵDataPagerComponent_BaseFactory || (ɵDataPagerComponent_BaseFactory = i0.ɵɵgetInheritedFactory(DataPagerComponent)))(t || DataPagerComponent); }; })(); }
6635
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataPagerComponent, selectors: [["anatoly-datapager"]], inputs: { totalItems: "totalItems", pageSize: "pageSize", skipItems: "skipItems", pageSizeDivisor: "pageSizeDivisor", pageSizeMax: "pageSizeMax", width: "width" }, outputs: { pageChange: "pageChange" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 9, consts: [[3, "total", "pageSize", "pageSizeValues", "skip", "pageChange"]], template: function DataPagerComponent_Template(rf, ctx) { if (rf & 1) {
6636
- i0.ɵɵelementStart(0, "div")(1, "kendo-datapager", 0);
6637
- i0.ɵɵlistener("pageChange", function DataPagerComponent_Template_kendo_datapager_pageChange_1_listener($event) { return ctx.onPageChange($event); });
6638
- i0.ɵɵelementEnd()();
6615
+ function CardHeaderComponent_h3_2_Template(rf, ctx) { if (rf & 1) {
6616
+ i0.ɵɵelementStart(0, "h3");
6617
+ i0.ɵɵtext(1);
6618
+ i0.ɵɵelementEnd();
6619
+ } if (rf & 2) {
6620
+ const ctx_r0 = i0.ɵɵnextContext();
6621
+ i0.ɵɵadvance();
6622
+ i0.ɵɵtextInterpolate(ctx_r0.title);
6623
+ } }
6624
+ const _c0$c = ["*"];
6625
+ class CardHeaderComponent extends ComponentBase {
6626
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardHeaderComponent_BaseFactory; return function CardHeaderComponent_Factory(t) { return (ɵCardHeaderComponent_BaseFactory || (ɵCardHeaderComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardHeaderComponent)))(t || CardHeaderComponent); }; })(); }
6627
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardHeaderComponent, selectors: [["anatoly-card-header"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$c, decls: 4, vars: 4, consts: [[1, "card-title"], [4, "ngIf"]], template: function CardHeaderComponent_Template(rf, ctx) { if (rf & 1) {
6628
+ i0.ɵɵprojectionDef();
6629
+ i0.ɵɵelementStart(0, "div")(1, "div", 0);
6630
+ i0.ɵɵtemplate(2, CardHeaderComponent_h3_2_Template, 2, 1, "h3", 1);
6631
+ i0.ɵɵelementEnd();
6632
+ i0.ɵɵprojection(3);
6633
+ i0.ɵɵelementEnd();
6639
6634
  } if (rf & 2) {
6640
- i0.ɵɵclassMap(ctx.classes);
6641
- i0.ɵɵadvance();
6642
- i0.ɵɵstyleMap(ctx.style);
6643
- i0.ɵɵproperty("total", ctx.totalItems)("pageSize", ctx.pageSize)("pageSizeValues", ctx.pageSizes)("skip", ctx.skipItems);
6644
- } }, dependencies: [i1$7.PagerComponent], encapsulation: 2 }); }
6635
+ i0.ɵɵclassMapInterpolate1("card-header ", ctx.classes, "");
6636
+ i0.ɵɵadvance(2);
6637
+ i0.ɵɵproperty("ngIf", ctx.title);
6638
+ } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
6645
6639
  }
6646
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataPagerComponent, [{
6640
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardHeaderComponent, [{
6647
6641
  type: Component,
6648
- args: [{ selector: 'anatoly-datapager', template: "<div class='{{ classes }}'>\r\n <kendo-datapager [total]='totalItems'\r\n [pageSize]='pageSize'\r\n [pageSizeValues]='pageSizes'\r\n [skip]='skipItems'\r\n [style]='style'\r\n (pageChange)='onPageChange($event)'>\r\n </kendo-datapager>\r\n</div>\r\n" }]
6649
- }], null, { totalItems: [{
6650
- type: Input
6651
- }], pageSize: [{
6652
- type: Input
6653
- }], skipItems: [{
6654
- type: Input
6655
- }], pageSizeDivisor: [{
6656
- type: Input
6657
- }], pageSizeMax: [{
6658
- type: Input
6659
- }], width: [{
6660
- type: Input
6661
- }], pageChange: [{
6662
- type: Output
6663
- }] }); })();
6664
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataPagerComponent, { className: "DataPagerComponent", filePath: "lib\\ui\\components\\datapager\\datapager.component.ts", lineNumber: 27 }); })();
6642
+ args: [{ selector: 'anatoly-card-header', template: "<div class='card-header {{ classes }}'>\r\n <div class=\"card-title\">\r\n <h3 *ngIf='title'>{{ title }}</h3>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6643
+ }], null, null); })();
6644
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardHeaderComponent, { className: "CardHeaderComponent", filePath: "lib\\ui\\components\\card\\card-header.component.ts", lineNumber: 26 }); })();
6665
6645
 
6666
6646
  /*
6667
6647
  <file>
@@ -6669,96 +6649,32 @@ class DataPagerComponent extends ComponentBase {
6669
6649
  @osovitny/anatoly
6670
6650
 
6671
6651
  Authors:
6672
- Vadim Osovitny vadim.osovitny@osovitny.com
6673
6652
  Anatoly Osovitny anatoly.osovitny@osovitny.com
6674
6653
 
6675
6654
  Created:
6676
- 4 Jul 2018
6655
+ 29 July 2022
6677
6656
 
6678
6657
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6679
6658
  </file>
6680
6659
  */
6681
6660
  //Node
6682
- function SignInButtonComponent_a_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
6683
- i0.ɵɵelementContainer(0);
6684
- } }
6685
- function SignInButtonComponent_a_0_Template(rf, ctx) { if (rf & 1) {
6686
- i0.ɵɵelementStart(0, "a", 3);
6687
- i0.ɵɵtemplate(1, SignInButtonComponent_a_0_ng_container_1_Template, 1, 0, "ng-container", 4);
6688
- i0.ɵɵelementEnd();
6689
- } if (rf & 2) {
6690
- const ctx_r0 = i0.ɵɵnextContext();
6691
- const _r3 = i0.ɵɵreference(3);
6692
- i0.ɵɵclassMap(ctx_r0.classes);
6693
- i0.ɵɵproperty("href", ctx_r0.url, i0.ɵɵsanitizeUrl);
6694
- i0.ɵɵadvance();
6695
- i0.ɵɵproperty("ngTemplateOutlet", _r3);
6696
- } }
6697
- function SignInButtonComponent_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
6698
- i0.ɵɵelementContainer(0);
6699
- } }
6700
- function SignInButtonComponent_a_1_Template(rf, ctx) { if (rf & 1) {
6701
- i0.ɵɵelementStart(0, "a", 5);
6702
- i0.ɵɵtemplate(1, SignInButtonComponent_a_1_ng_container_1_Template, 1, 0, "ng-container", 4);
6703
- i0.ɵɵelementEnd();
6704
- } if (rf & 2) {
6705
- const ctx_r1 = i0.ɵɵnextContext();
6706
- const _r3 = i0.ɵɵreference(3);
6707
- i0.ɵɵclassMap(ctx_r1.classes);
6708
- i0.ɵɵproperty("routerLink", ctx_r1.url);
6709
- i0.ɵɵadvance();
6710
- i0.ɵɵproperty("ngTemplateOutlet", _r3);
6711
- } }
6712
- function SignInButtonComponent_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {
6713
- i0.ɵɵelementStart(0, "span");
6714
- i0.ɵɵtext(1, "Sign In");
6715
- i0.ɵɵelementEnd();
6716
- } }
6717
- function SignInButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
6718
- i0.ɵɵelementStart(0, "span", null, 6);
6719
- i0.ɵɵprojection(2);
6720
- i0.ɵɵelementEnd();
6721
- i0.ɵɵtemplate(3, SignInButtonComponent_ng_template_2_span_3_Template, 2, 0, "span", 7);
6722
- } if (rf & 2) {
6723
- const _r6 = i0.ɵɵreference(1);
6724
- i0.ɵɵadvance(3);
6725
- i0.ɵɵproperty("ngIf", !_r6.innerHTML.trim());
6726
- } }
6727
- const _c0$c = ["*"];
6728
- class SignInButtonComponent extends ComponentBase {
6729
- constructor() {
6730
- super();
6731
- this.external = false;
6732
- }
6733
- ngOnInit() {
6734
- let url = MSALConfig.ui.signin;
6735
- if (url) {
6736
- this.external = url.indexOf('http') > -1;
6737
- if (this.external) {
6738
- this.url = url + (this.qs ? '?' + this.qs : '');
6739
- }
6740
- else {
6741
- this.url = url;
6742
- }
6743
- }
6744
- }
6745
- static { this.ɵfac = function SignInButtonComponent_Factory(t) { return new (t || SignInButtonComponent)(); }; }
6746
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignInButtonComponent, selectors: [["anatoly-signin-button"]], inputs: { qs: "qs" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$c, decls: 4, vars: 2, consts: [[3, "href", "class", 4, "ngIf"], [3, "routerLink", "class", 4, "ngIf"], ["contentTemplate", ""], [3, "href"], [4, "ngTemplateOutlet"], [3, "routerLink"], ["ref", ""], [4, "ngIf"]], template: function SignInButtonComponent_Template(rf, ctx) { if (rf & 1) {
6661
+ const _c0$b = ["*"];
6662
+ class CardBodyComponent extends ComponentBase {
6663
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardBodyComponent_BaseFactory; return function CardBodyComponent_Factory(t) { return (ɵCardBodyComponent_BaseFactory || (ɵCardBodyComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardBodyComponent)))(t || CardBodyComponent); }; })(); }
6664
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardBodyComponent, selectors: [["anatoly-card-body"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$b, decls: 2, vars: 3, template: function CardBodyComponent_Template(rf, ctx) { if (rf & 1) {
6747
6665
  i0.ɵɵprojectionDef();
6748
- i0.ɵɵtemplate(0, SignInButtonComponent_a_0_Template, 2, 5, "a", 0)(1, SignInButtonComponent_a_1_Template, 2, 5, "a", 1)(2, SignInButtonComponent_ng_template_2_Template, 4, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
6666
+ i0.ɵɵelementStart(0, "div");
6667
+ i0.ɵɵprojection(1);
6668
+ i0.ɵɵelementEnd();
6749
6669
  } if (rf & 2) {
6750
- i0.ɵɵproperty("ngIf", ctx.external);
6751
- i0.ɵɵadvance();
6752
- i0.ɵɵproperty("ngIf", !ctx.external);
6753
- } }, dependencies: [i1$2.NgIf, i1$2.NgTemplateOutlet, i1.RouterLink], encapsulation: 2 }); }
6670
+ i0.ɵɵclassMapInterpolate1("card-body ", ctx.classes, "");
6671
+ } }, encapsulation: 2 }); }
6754
6672
  }
6755
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignInButtonComponent, [{
6673
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardBodyComponent, [{
6756
6674
  type: Component,
6757
- args: [{ selector: "anatoly-signin-button", template: "<a [href]=\"url\" class=\"{{ classes }}\" *ngIf=\"external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<a [routerLink]=\"url\" class=\"{{ classes }}\" *ngIf=\"!external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<ng-template #contentTemplate>\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign In</span>\r\n</ng-template>\r\n" }]
6758
- }], () => [], { qs: [{
6759
- type: Input
6760
- }] }); })();
6761
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SignInButtonComponent, { className: "SignInButtonComponent", filePath: "lib\\ui\\components\\identity\\signin-button.component.ts", lineNumber: 28 }); })();
6675
+ args: [{ selector: 'anatoly-card-body', template: "<div class='card-body {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6676
+ }], null, null); })();
6677
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardBodyComponent, { className: "CardBodyComponent", filePath: "lib\\ui\\components\\card\\card-body.component.ts", lineNumber: 26 }); })();
6762
6678
 
6763
6679
  /*
6764
6680
  <file>
@@ -6766,96 +6682,32 @@ class SignInButtonComponent extends ComponentBase {
6766
6682
  @osovitny/anatoly
6767
6683
 
6768
6684
  Authors:
6769
- Vadim Osovitny vadim.osovitny@osovitny.com
6770
6685
  Anatoly Osovitny anatoly.osovitny@osovitny.com
6771
6686
 
6772
6687
  Created:
6773
- 4 Jul 2018
6688
+ 29 July 2022
6774
6689
 
6775
6690
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6776
6691
  </file>
6777
6692
  */
6778
6693
  //Node
6779
- function SignOutButtonComponent_a_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
6780
- i0.ɵɵelementContainer(0);
6781
- } }
6782
- function SignOutButtonComponent_a_0_Template(rf, ctx) { if (rf & 1) {
6783
- i0.ɵɵelementStart(0, "a", 3);
6784
- i0.ɵɵtemplate(1, SignOutButtonComponent_a_0_ng_container_1_Template, 1, 0, "ng-container", 4);
6785
- i0.ɵɵelementEnd();
6786
- } if (rf & 2) {
6787
- const ctx_r0 = i0.ɵɵnextContext();
6788
- const _r3 = i0.ɵɵreference(3);
6789
- i0.ɵɵclassMap(ctx_r0.classes);
6790
- i0.ɵɵproperty("href", ctx_r0.url, i0.ɵɵsanitizeUrl);
6791
- i0.ɵɵadvance();
6792
- i0.ɵɵproperty("ngTemplateOutlet", _r3);
6793
- } }
6794
- function SignOutButtonComponent_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
6795
- i0.ɵɵelementContainer(0);
6796
- } }
6797
- function SignOutButtonComponent_a_1_Template(rf, ctx) { if (rf & 1) {
6798
- i0.ɵɵelementStart(0, "a", 5);
6799
- i0.ɵɵtemplate(1, SignOutButtonComponent_a_1_ng_container_1_Template, 1, 0, "ng-container", 4);
6800
- i0.ɵɵelementEnd();
6801
- } if (rf & 2) {
6802
- const ctx_r1 = i0.ɵɵnextContext();
6803
- const _r3 = i0.ɵɵreference(3);
6804
- i0.ɵɵclassMap(ctx_r1.classes);
6805
- i0.ɵɵproperty("routerLink", ctx_r1.url);
6806
- i0.ɵɵadvance();
6807
- i0.ɵɵproperty("ngTemplateOutlet", _r3);
6808
- } }
6809
- function SignOutButtonComponent_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {
6810
- i0.ɵɵelementStart(0, "span");
6811
- i0.ɵɵtext(1, "Sign Out");
6812
- i0.ɵɵelementEnd();
6813
- } }
6814
- function SignOutButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
6815
- i0.ɵɵelementStart(0, "span", null, 6);
6816
- i0.ɵɵprojection(2);
6817
- i0.ɵɵelementEnd();
6818
- i0.ɵɵtemplate(3, SignOutButtonComponent_ng_template_2_span_3_Template, 2, 0, "span", 7);
6819
- } if (rf & 2) {
6820
- const _r6 = i0.ɵɵreference(1);
6821
- i0.ɵɵadvance(3);
6822
- i0.ɵɵproperty("ngIf", !_r6.innerHTML.trim());
6823
- } }
6824
- const _c0$b = ["*"];
6825
- class SignOutButtonComponent extends ComponentBase {
6826
- constructor() {
6827
- super();
6828
- this.external = false;
6829
- }
6830
- ngOnInit() {
6831
- let url = MSALConfig.ui.signout;
6832
- if (url) {
6833
- this.external = url.indexOf('http') > -1;
6834
- if (this.external) {
6835
- this.url = url + (this.qs ? '?' + this.qs : '');
6836
- }
6837
- else {
6838
- this.url = url;
6839
- }
6840
- }
6841
- }
6842
- static { this.ɵfac = function SignOutButtonComponent_Factory(t) { return new (t || SignOutButtonComponent)(); }; }
6843
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutButtonComponent, selectors: [["anatoly-signout-button"]], inputs: { qs: "qs" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$b, decls: 4, vars: 2, consts: [[3, "href", "class", 4, "ngIf"], [3, "routerLink", "class", 4, "ngIf"], ["contentTemplate", ""], [3, "href"], [4, "ngTemplateOutlet"], [3, "routerLink"], ["ref", ""], [4, "ngIf"]], template: function SignOutButtonComponent_Template(rf, ctx) { if (rf & 1) {
6694
+ const _c0$a = ["*"];
6695
+ class CardFooterComponent extends ComponentBase {
6696
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardFooterComponent_BaseFactory; return function CardFooterComponent_Factory(t) { return (ɵCardFooterComponent_BaseFactory || (ɵCardFooterComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardFooterComponent)))(t || CardFooterComponent); }; })(); }
6697
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardFooterComponent, selectors: [["anatoly-card-footer"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$a, decls: 2, vars: 3, template: function CardFooterComponent_Template(rf, ctx) { if (rf & 1) {
6844
6698
  i0.ɵɵprojectionDef();
6845
- i0.ɵɵtemplate(0, SignOutButtonComponent_a_0_Template, 2, 5, "a", 0)(1, SignOutButtonComponent_a_1_Template, 2, 5, "a", 1)(2, SignOutButtonComponent_ng_template_2_Template, 4, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
6699
+ i0.ɵɵelementStart(0, "div");
6700
+ i0.ɵɵprojection(1);
6701
+ i0.ɵɵelementEnd();
6846
6702
  } if (rf & 2) {
6847
- i0.ɵɵproperty("ngIf", ctx.external);
6848
- i0.ɵɵadvance();
6849
- i0.ɵɵproperty("ngIf", !ctx.external);
6850
- } }, dependencies: [i1$2.NgIf, i1$2.NgTemplateOutlet, i1.RouterLink], encapsulation: 2 }); }
6703
+ i0.ɵɵclassMapInterpolate1("card-footer ", ctx.classes, "");
6704
+ } }, encapsulation: 2 }); }
6851
6705
  }
6852
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutButtonComponent, [{
6706
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardFooterComponent, [{
6853
6707
  type: Component,
6854
- args: [{ selector: "anatoly-signout-button", template: "<a [href]=\"url\" class=\"{{ classes }}\" *ngIf=\"external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<a [routerLink]=\"url\" class=\"{{ classes }}\" *ngIf=\"!external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<ng-template #contentTemplate>\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Out</span>\r\n</ng-template>\r\n" }]
6855
- }], () => [], { qs: [{
6856
- type: Input
6857
- }] }); })();
6858
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SignOutButtonComponent, { className: "SignOutButtonComponent", filePath: "lib\\ui\\components\\identity\\signout-button.component.ts", lineNumber: 28 }); })();
6708
+ args: [{ selector: 'anatoly-card-footer', template: "<div class='card-footer {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6709
+ }], null, null); })();
6710
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardFooterComponent, { className: "CardFooterComponent", filePath: "lib\\ui\\components\\card\\card-footer.component.ts", lineNumber: 26 }); })();
6859
6711
 
6860
6712
  /*
6861
6713
  <file>
@@ -6863,74 +6715,118 @@ class SignOutButtonComponent extends ComponentBase {
6863
6715
  @osovitny/anatoly
6864
6716
 
6865
6717
  Authors:
6866
- Vadim Osovitny vadim.osovitny@osovitny.com
6867
6718
  Anatoly Osovitny anatoly.osovitny@osovitny.com
6868
6719
 
6869
6720
  Created:
6870
- 29 Jul 2022
6721
+ 28 Jun 2020
6871
6722
 
6872
6723
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6873
6724
  </file>
6874
6725
  */
6875
6726
  //Node
6876
- function NodataComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
6877
- i0.ɵɵelementStart(0, "div");
6878
- i0.ɵɵelement(1, "fa-icon", 5);
6727
+ class NativeElementDirective {
6728
+ constructor(el, control) {
6729
+ this.el = el;
6730
+ this.control = control;
6731
+ }
6732
+ ngOnInit() {
6733
+ // sets the localization key to the control
6734
+ this.control.control.nativeElement = this.el.nativeElement;
6735
+ }
6736
+ static { this.ɵfac = function NativeElementDirective_Factory(t) { return new (t || NativeElementDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.NgControl)); }; }
6737
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: NativeElementDirective, selectors: [["", "formControl", ""], ["", "formControlName", ""]] }); }
6738
+ }
6739
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeElementDirective, [{
6740
+ type: Directive,
6741
+ args: [{
6742
+ selector: '[formControl], [formControlName]'
6743
+ }]
6744
+ }], () => [{ type: i0.ElementRef }, { type: i2.NgControl }], null); })();
6745
+
6746
+ /*
6747
+ <file>
6748
+ Project:
6749
+ @osovitny/anatoly
6750
+
6751
+ Authors:
6752
+ Vadim Osovitny vadim.osovitny@osovitny.com
6753
+
6754
+ Created:
6755
+ 2 Feb 2024
6756
+
6757
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
6758
+ </file>
6759
+ */
6760
+ //Node
6761
+ function CountryDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
6762
+ i0.ɵɵelement(0, "div");
6763
+ } }
6764
+ function CountryDropdownlist_div_1_label_1_Template(rf, ctx) { if (rf & 1) {
6765
+ i0.ɵɵelementStart(0, "label", 6);
6766
+ i0.ɵɵtext(1, "Country");
6767
+ i0.ɵɵelementEnd();
6768
+ } }
6769
+ function CountryDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
6770
+ i0.ɵɵelementStart(0, "option", 7);
6771
+ i0.ɵɵtext(1);
6879
6772
  i0.ɵɵelementEnd();
6880
6773
  } if (rf & 2) {
6881
- const ctx_r1 = i0.ɵɵnextContext(2);
6774
+ const item_r4 = ctx.$implicit;
6775
+ i0.ɵɵproperty("value", item_r4.code);
6882
6776
  i0.ɵɵadvance();
6883
- i0.ɵɵproperty("icon", ctx_r1.icon)("size", ctx_r1.iconSize);
6777
+ i0.ɵɵtextInterpolate1(" ", item_r4.name, " ");
6884
6778
  } }
6885
- function NodataComponent_div_0_Template(rf, ctx) { if (rf & 1) {
6886
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
6887
- i0.ɵɵtemplate(2, NodataComponent_div_0_div_2_Template, 2, 2, "div", 3);
6888
- i0.ɵɵelementStart(3, "h3", 4);
6889
- i0.ɵɵtext(4);
6890
- i0.ɵɵelementEnd();
6891
- i0.ɵɵprojection(5);
6779
+ function CountryDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
6780
+ i0.ɵɵelementStart(0, "div", 2);
6781
+ i0.ɵɵtemplate(1, CountryDropdownlist_div_1_label_1_Template, 2, 0, "label", 3);
6782
+ i0.ɵɵelementStart(2, "select", 4);
6783
+ i0.ɵɵtemplate(3, CountryDropdownlist_div_1_option_3_Template, 2, 2, "option", 5);
6892
6784
  i0.ɵɵelementEnd()();
6893
6785
  } if (rf & 2) {
6894
- const ctx_r0 = i0.ɵɵnextContext();
6895
- i0.ɵɵadvance(2);
6896
- i0.ɵɵproperty("ngIf", ctx_r0.icon);
6897
- i0.ɵɵadvance(2);
6898
- i0.ɵɵtextInterpolate(ctx_r0.heading);
6786
+ const ctx_r1 = i0.ɵɵnextContext();
6787
+ i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
6788
+ i0.ɵɵadvance();
6789
+ i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
6790
+ i0.ɵɵadvance();
6791
+ i0.ɵɵproperty("formControlName", ctx_r1.controlName);
6792
+ i0.ɵɵadvance();
6793
+ i0.ɵɵproperty("ngForOf", ctx_r1.items);
6899
6794
  } }
6900
- const _c0$a = ["*"];
6901
- class NodataComponent {
6902
- constructor() {
6903
- this.dataLoading = false;
6904
- this.dataLoaded = false;
6905
- this.dataFound = false;
6906
- this.iconSize = '10x';
6907
- this.heading = 'No data found';
6795
+ class CountryDropdownlist extends EditComponentBase {
6796
+ constructor(api, appContext) {
6797
+ super();
6798
+ this.api = api;
6799
+ this.appContext = appContext;
6800
+ this.title = 'Country';
6908
6801
  }
6909
- static { this.ɵfac = function NodataComponent_Factory(t) { return new (t || NodataComponent)(); }; }
6910
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodataComponent, selectors: [["anatoly-nodata"]], inputs: { dataLoading: "dataLoading", dataLoaded: "dataLoaded", dataFound: "dataFound", icon: "icon", iconSize: "iconSize", heading: "heading" }, ngContentSelectors: _c0$a, decls: 1, vars: 1, consts: [["class", "no-data", 4, "ngIf"], [1, "no-data"], [1, "loaded", "text-info"], [4, "ngIf"], [1, "no-data-heading"], [3, "icon", "size"]], template: function NodataComponent_Template(rf, ctx) { if (rf & 1) {
6911
- i0.ɵɵprojectionDef();
6912
- i0.ɵɵtemplate(0, NodataComponent_div_0_Template, 6, 2, "div", 0);
6802
+ ngOnInit() {
6803
+ this.setValues();
6804
+ }
6805
+ setValues() {
6806
+ this.api.getCountriesJsonFile().subscribe({
6807
+ next: (data) => {
6808
+ this.items = data.reverse();
6809
+ }
6810
+ });
6811
+ if (this.isNgModelBased) {
6812
+ }
6813
+ else {
6814
+ }
6815
+ }
6816
+ static { this.ɵfac = function CountryDropdownlist_Factory(t) { return new (t || CountryDropdownlist)(i0.ɵɵdirectiveInject(CoreApiService), i0.ɵɵdirectiveInject(AppContextService)); }; }
6817
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CountryDropdownlist, selectors: [["anatoly-country-dropdownlist"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "formGroup", 4, "ngIf"], [3, "formGroup"], ["class", "col-form-label", 4, "ngIf"], [1, "form-select", 3, "formControlName"], [3, "value", 4, "ngFor", "ngForOf"], [1, "col-form-label"], [3, "value"]], template: function CountryDropdownlist_Template(rf, ctx) { if (rf & 1) {
6818
+ i0.ɵɵtemplate(0, CountryDropdownlist_div_0_Template, 1, 0, "div", 0)(1, CountryDropdownlist_div_1_Template, 4, 4, "div", 1);
6913
6819
  } if (rf & 2) {
6914
- i0.ɵɵproperty("ngIf", ctx.dataLoaded && !ctx.dataFound);
6915
- } }, dependencies: [i1$2.NgIf, i1$6.FaIconComponent], encapsulation: 2 }); }
6820
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6821
+ i0.ɵɵadvance();
6822
+ i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6823
+ } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective], encapsulation: 2 }); }
6916
6824
  }
6917
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NodataComponent, [{
6825
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CountryDropdownlist, [{
6918
6826
  type: Component,
6919
- args: [{ selector: 'anatoly-nodata', template: "<div class=\"no-data\" *ngIf='dataLoaded && !dataFound'>\r\n <div class='loaded text-info'>\r\n <div *ngIf='icon'>\r\n <fa-icon [icon]=\"icon\" [size]=\"iconSize\"></fa-icon>\r\n </div>\r\n <h3 class='no-data-heading'>{{heading}}</h3>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n" }]
6920
- }], () => [], { dataLoading: [{
6921
- type: Input
6922
- }], dataLoaded: [{
6923
- type: Input
6924
- }], dataFound: [{
6925
- type: Input
6926
- }], icon: [{
6927
- type: Input
6928
- }], iconSize: [{
6929
- type: Input
6930
- }], heading: [{
6931
- type: Input
6932
- }] }); })();
6933
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NodataComponent, { className: "NodataComponent", filePath: "lib\\ui\\components\\nodata\\nodata.component.ts", lineNumber: 25 }); })();
6827
+ args: [{ selector: 'anatoly-country-dropdownlist', template: "<div *ngIf='isNgModelBased'>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <label *ngIf='isTitleVisible' class='col-form-label'>Country</label>\r\n <select [formControlName]='controlName' class='form-select'>\r\n <option *ngFor='let item of items' [value]='item.code'>\r\n {{ item.name }}\r\n </option>\r\n </select>\r\n</div>\r\n" }]
6828
+ }], () => [{ type: CoreApiService }, { type: AppContextService }], null); })();
6829
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CountryDropdownlist, { className: "CountryDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\country\\country.dropdownlist.ts", lineNumber: 28 }); })();
6934
6830
 
6935
6831
  /*
6936
6832
  <file>
@@ -6938,39 +6834,14 @@ class NodataComponent {
6938
6834
  @osovitny/anatoly
6939
6835
 
6940
6836
  Authors:
6941
- Leon Malyan leon.malyan@osovitny.com
6942
-
6837
+ Vadim Osovitny vadim.osovitny@osovitny.com
6838
+
6943
6839
  Created:
6944
- 22 Juy 2024
6840
+ 11 Nov 2024
6945
6841
 
6946
6842
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6947
6843
  </file>
6948
6844
  */
6949
- //Node
6950
- class NoMobileSupportComponent extends ComponentBase {
6951
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵNoMobileSupportComponent_BaseFactory; return function NoMobileSupportComponent_Factory(t) { return (ɵNoMobileSupportComponent_BaseFactory || (ɵNoMobileSupportComponent_BaseFactory = i0.ɵɵgetInheritedFactory(NoMobileSupportComponent)))(t || NoMobileSupportComponent); }; })(); }
6952
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NoMobileSupportComponent, selectors: [["anatoly-no-mobile-support"]], inputs: { logo: "logo" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 1, consts: [[2, "text-align", "center", "padding-top", "20px"], ["alt", "logo", 3, "src"], [2, "text-align", "center", "margin-top", "40vh"], [2, "font-size", "1.25rem"]], template: function NoMobileSupportComponent_Template(rf, ctx) { if (rf & 1) {
6953
- i0.ɵɵelementStart(0, "div", 0);
6954
- i0.ɵɵelement(1, "img", 1);
6955
- i0.ɵɵelementEnd();
6956
- i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "b");
6957
- i0.ɵɵtext(5, "Mobile Site Under Construction");
6958
- i0.ɵɵelementEnd()();
6959
- i0.ɵɵelementStart(6, "div");
6960
- i0.ɵɵtext(7, "Please Use Another Device");
6961
- i0.ɵɵelementEnd()();
6962
- } if (rf & 2) {
6963
- i0.ɵɵadvance();
6964
- i0.ɵɵproperty("src", ctx.logo, i0.ɵɵsanitizeUrl);
6965
- } }, encapsulation: 2 }); }
6966
- }
6967
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoMobileSupportComponent, [{
6968
- type: Component,
6969
- args: [{ selector: 'anatoly-no-mobile-support', template: "<div style=\"text-align:center; padding-top:20px;\">\r\n <img [src]='logo' alt='logo'>\r\n</div>\r\n<div style='text-align: center; margin-top:40vh;'>\r\n <div style='font-size:1.25rem;'>\r\n <b>Mobile Site Under Construction</b>\r\n </div>\r\n <div>Please Use Another Device</div>\r\n</div>\r\n" }]
6970
- }], null, { logo: [{
6971
- type: Input
6972
- }] }); })();
6973
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NoMobileSupportComponent, { className: "NoMobileSupportComponent", filePath: "lib\\ui\\components\\no-mobile-support\\no-mobile-support.component.ts", lineNumber: 26 }); })();
6974
6845
 
6975
6846
  /*
6976
6847
  <file>
@@ -6979,57 +6850,72 @@ class NoMobileSupportComponent extends ComponentBase {
6979
6850
 
6980
6851
  Authors:
6981
6852
  Vadim Osovitny vadim.osovitny@osovitny.com
6982
- Anatoly Osovitny anatoly.osovitny@osovitny.com
6983
6853
 
6984
6854
  Created:
6985
- 9 May 2020
6855
+ 20 Jan 2024
6986
6856
 
6987
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6857
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
6988
6858
  </file>
6989
6859
  */
6990
6860
  //Node
6991
- function LoadingComponent_div_0_Template(rf, ctx) { if (rf & 1) {
6992
- i0.ɵɵelementStart(0, "div", 1);
6993
- i0.ɵɵelement(1, "span", 2);
6994
- i0.ɵɵelementEnd();
6861
+ function ModerationStatusDropdownlist_div_0_kendo_label_2_Template(rf, ctx) { if (rf & 1) {
6862
+ i0.ɵɵelement(0, "kendo-label", 5);
6863
+ } if (rf & 2) {
6864
+ const ctx_r2 = i0.ɵɵnextContext(2);
6865
+ i0.ɵɵpropertyInterpolate("text", ctx_r2.title);
6995
6866
  } }
6996
- class LoadingComponent extends ComponentBase {
6997
- constructor(loadingService) {
6998
- super();
6999
- this.loadingService = loadingService;
7000
- this.show = false;
7001
- }
7002
- ngOnInit() {
7003
- this.subs.sink = this.loadingService.subscribe({
7004
- next: (data) => {
7005
- this.show = data;
7006
- }
7007
- });
6867
+ function ModerationStatusDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
6868
+ const _r4 = i0.ɵɵgetCurrentView();
6869
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
6870
+ i0.ɵɵtemplate(2, ModerationStatusDropdownlist_div_0_kendo_label_2_Template, 1, 1, "kendo-label", 3);
6871
+ i0.ɵɵelementStart(3, "kendo-dropdownlist", 4);
6872
+ i0.ɵɵlistener("ngModelChange", function ModerationStatusDropdownlist_div_0_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.sv = $event); })("valueChange", function ModerationStatusDropdownlist_div_0_Template_kendo_dropdownlist_valueChange_3_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onChange($event)); });
6873
+ i0.ɵɵelementEnd()()();
6874
+ } if (rf & 2) {
6875
+ const ctx_r0 = i0.ɵɵnextContext();
6876
+ i0.ɵɵadvance(2);
6877
+ i0.ɵɵproperty("ngIf", ctx_r0.isTitleVisible);
6878
+ i0.ɵɵadvance();
6879
+ i0.ɵɵproperty("data", ctx_r0.items)("valuePrimitive", true)("ngModel", ctx_r0.sv);
6880
+ } }
6881
+ function ModerationStatusDropdownlist_div_1_kendo_label_1_Template(rf, ctx) { if (rf & 1) {
6882
+ i0.ɵɵelement(0, "kendo-label", 5);
6883
+ } if (rf & 2) {
6884
+ const ctx_r6 = i0.ɵɵnextContext(2);
6885
+ i0.ɵɵpropertyInterpolate("text", ctx_r6.title);
6886
+ } }
6887
+ function ModerationStatusDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
6888
+ i0.ɵɵelementStart(0, "div", 1);
6889
+ i0.ɵɵtemplate(1, ModerationStatusDropdownlist_div_1_kendo_label_1_Template, 1, 1, "kendo-label", 3);
6890
+ i0.ɵɵelement(2, "kendo-dropdownlist", 6);
6891
+ i0.ɵɵelementEnd();
6892
+ } if (rf & 2) {
6893
+ const ctx_r1 = i0.ɵɵnextContext();
6894
+ i0.ɵɵadvance();
6895
+ i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
6896
+ i0.ɵɵadvance();
6897
+ i0.ɵɵproperty("data", ctx_r1.items)("valuePrimitive", true)("formControlName", ctx_r1.controlName);
6898
+ } }
6899
+ class ModerationStatusDropdownlist extends EnumEditComponentBase {
6900
+ constructor() {
6901
+ super();
6902
+ this.title = 'Moderation Status';
6903
+ this.enumeration = ModerationStatus;
7008
6904
  }
7009
- static { this.ɵfac = function LoadingComponent_Factory(t) { return new (t || LoadingComponent)(i0.ɵɵdirectiveInject(LoadingService)); }; }
7010
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LoadingComponent, selectors: [["anatoly-loading"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["id", "pnlLoading", 4, "ngIf"], ["id", "pnlLoading"], [1, "k-icon", "k-i-loading"]], template: function LoadingComponent_Template(rf, ctx) { if (rf & 1) {
7011
- i0.ɵɵtemplate(0, LoadingComponent_div_0_Template, 2, 0, "div", 0);
6905
+ static { this.ɵfac = function ModerationStatusDropdownlist_Factory(t) { return new (t || ModerationStatusDropdownlist)(); }; }
6906
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ModerationStatusDropdownlist, selectors: [["anatoly-moderationstatus-dropdownlist"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["class", "form-group", 4, "ngIf"], [1, "form-group"], [1, "controls"], [3, "text", 4, "ngIf"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "ngModel", "ngModelChange", "valueChange"], [3, "text"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "formControlName"]], template: function ModerationStatusDropdownlist_Template(rf, ctx) { if (rf & 1) {
6907
+ i0.ɵɵtemplate(0, ModerationStatusDropdownlist_div_0_Template, 4, 4, "div", 0)(1, ModerationStatusDropdownlist_div_1_Template, 3, 4, "div", 0);
7012
6908
  } if (rf & 2) {
7013
- i0.ɵɵproperty("ngIf", ctx.show);
7014
- } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
6909
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6910
+ i0.ɵɵadvance();
6911
+ i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6912
+ } }, dependencies: [i1$2.NgIf, i2.NgControlStatus, i2.FormControlName, i2.NgModel, i3.DropDownListComponent, i4$1.LabelComponent, NativeElementDirective], encapsulation: 2 }); }
7015
6913
  }
7016
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoadingComponent, [{
6914
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModerationStatusDropdownlist, [{
7017
6915
  type: Component,
7018
- args: [{ selector: 'anatoly-loading', template: "<div id=\"pnlLoading\" *ngIf=\"show\">\r\n <span class=\"k-icon k-i-loading\"></span>\r\n</div>\r\n" }]
7019
- }], () => [{ type: LoadingService }], null); })();
7020
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoadingComponent, { className: "LoadingComponent", filePath: "lib\\ui\\components\\spinners\\loading\\loading.component.ts", lineNumber: 28 }); })();
7021
-
7022
- const Spinkit = {
7023
- skChasingDots: 'sk-chasing-dots',
7024
- skCubeGrid: 'sk-cube-grid',
7025
- skDoubleBounce: 'sk-double-bounce',
7026
- skRotatingPlane: 'sk-rotationg-plane',
7027
- skSpinnerPulse: 'sk-spinner-pulse',
7028
- skThreeBounce: 'sk-three-bounce',
7029
- skWanderingCubes: 'sk-wandering-cubes',
7030
- skWave: 'sk-wave',
7031
- skLine: 'sk-line-material'
7032
- };
6916
+ args: [{ selector: 'anatoly-moderationstatus-dropdownlist', template: "<div class=\"form-group\" *ngIf='isNgModelBased'>\r\n <div class=\"controls\">\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [(ngModel)]=\"sv\"\r\n (valueChange)=\"onChange($event)\" />\r\n </div>\r\n</div>\r\n\r\n<div class=\"form-group\" *ngIf='!isNgModelBased'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [formControlName]='controlName' />\r\n</div>\r\n" }]
6917
+ }], () => [], null); })();
6918
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModerationStatusDropdownlist, { className: "ModerationStatusDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\moderationstatus\\moderationstatus.dropdownlist.ts", lineNumber: 27 }); })();
7033
6919
 
7034
6920
  /*
7035
6921
  <file>
@@ -7038,76 +6924,72 @@ const Spinkit = {
7038
6924
 
7039
6925
  Authors:
7040
6926
  Vadim Osovitny vadim.osovitny@osovitny.com
7041
- Anatoly Osovitny anatoly.osovitny@osovitny.com
7042
6927
 
7043
6928
  Created:
7044
- 16 May 2020
6929
+ 20 Jan 2024
7045
6930
 
7046
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6931
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7047
6932
  </file>
7048
6933
  */
7049
6934
  //Node
7050
- function PageSpinnerComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
7051
- i0.ɵɵelementStart(0, "div", 4);
7052
- i0.ɵɵelement(1, "div", 5);
7053
- i0.ɵɵelementEnd();
6935
+ function PublishStatusDropdownlist_div_0_kendo_label_2_Template(rf, ctx) { if (rf & 1) {
6936
+ i0.ɵɵelement(0, "kendo-label", 5);
7054
6937
  } if (rf & 2) {
7055
- const ctx_r1 = i0.ɵɵnextContext(2);
7056
- i0.ɵɵclassProp("colored", !ctx_r1.backgroundColor);
7057
- i0.ɵɵadvance();
7058
- i0.ɵɵstyleProp("background-color", ctx_r1.backgroundColor);
6938
+ const ctx_r2 = i0.ɵɵnextContext(2);
6939
+ i0.ɵɵpropertyInterpolate("text", ctx_r2.title);
7059
6940
  } }
7060
- function PageSpinnerComponent_div_0_Template(rf, ctx) { if (rf & 1) {
6941
+ function PublishStatusDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
6942
+ const _r4 = i0.ɵɵgetCurrentView();
7061
6943
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
7062
- i0.ɵɵtemplate(2, PageSpinnerComponent_div_0_div_2_Template, 2, 4, "div", 3);
7063
- i0.ɵɵelementEnd()();
6944
+ i0.ɵɵtemplate(2, PublishStatusDropdownlist_div_0_kendo_label_2_Template, 1, 1, "kendo-label", 3);
6945
+ i0.ɵɵelementStart(3, "kendo-dropdownlist", 4);
6946
+ i0.ɵɵlistener("ngModelChange", function PublishStatusDropdownlist_div_0_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.sv = $event); })("valueChange", function PublishStatusDropdownlist_div_0_Template_kendo_dropdownlist_valueChange_3_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onChange($event)); });
6947
+ i0.ɵɵelementEnd()()();
7064
6948
  } if (rf & 2) {
7065
6949
  const ctx_r0 = i0.ɵɵnextContext();
7066
6950
  i0.ɵɵadvance(2);
7067
- i0.ɵɵproperty("ngIf", ctx_r0.spinner === ctx_r0.Spinkit.skLine);
6951
+ i0.ɵɵproperty("ngIf", ctx_r0.isTitleVisible);
6952
+ i0.ɵɵadvance();
6953
+ i0.ɵɵproperty("data", ctx_r0.items)("valuePrimitive", true)("ngModel", ctx_r0.sv);
7068
6954
  } }
7069
- class PageSpinnerComponent {
7070
- constructor(router) {
7071
- this.router = router;
7072
- this.isSpinnerVisible = true;
7073
- this.Spinkit = Spinkit;
7074
- this.backgroundColor = '#2196f3';
7075
- this.spinner = Spinkit.skLine;
7076
- router.events.subscribe({
7077
- next: (routerEvent) => {
7078
- this.checkRouterEvent(routerEvent);
7079
- }
7080
- });
7081
- }
7082
- checkRouterEvent(routerEvent) {
7083
- if (routerEvent instanceof NavigationStart) {
7084
- this.isSpinnerVisible = true;
7085
- }
7086
- if (routerEvent instanceof NavigationEnd ||
7087
- routerEvent instanceof NavigationCancel ||
7088
- routerEvent instanceof NavigationError) {
7089
- this.isSpinnerVisible = false;
7090
- }
7091
- }
7092
- ngOnDestroy() {
7093
- this.isSpinnerVisible = false;
6955
+ function PublishStatusDropdownlist_div_1_kendo_label_1_Template(rf, ctx) { if (rf & 1) {
6956
+ i0.ɵɵelement(0, "kendo-label", 5);
6957
+ } if (rf & 2) {
6958
+ const ctx_r6 = i0.ɵɵnextContext(2);
6959
+ i0.ɵɵpropertyInterpolate("text", ctx_r6.title);
6960
+ } }
6961
+ function PublishStatusDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
6962
+ i0.ɵɵelementStart(0, "div", 1);
6963
+ i0.ɵɵtemplate(1, PublishStatusDropdownlist_div_1_kendo_label_1_Template, 1, 1, "kendo-label", 3);
6964
+ i0.ɵɵelement(2, "kendo-dropdownlist", 6);
6965
+ i0.ɵɵelementEnd();
6966
+ } if (rf & 2) {
6967
+ const ctx_r1 = i0.ɵɵnextContext();
6968
+ i0.ɵɵadvance();
6969
+ i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
6970
+ i0.ɵɵadvance();
6971
+ i0.ɵɵproperty("data", ctx_r1.items)("valuePrimitive", true)("formControlName", ctx_r1.controlName);
6972
+ } }
6973
+ class PublishStatusDropdownlist extends EnumEditComponentBase {
6974
+ constructor() {
6975
+ super();
6976
+ this.title = 'Publish Status';
6977
+ this.enumeration = PublishStatus;
7094
6978
  }
7095
- static { this.ɵfac = function PageSpinnerComponent_Factory(t) { return new (t || PageSpinnerComponent)(i0.ɵɵdirectiveInject(i1.Router)); }; }
7096
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PageSpinnerComponent, selectors: [["anatoly-pagespinner"]], inputs: { backgroundColor: "backgroundColor", spinner: "spinner" }, decls: 1, vars: 1, consts: [["id", "http-loader", 4, "ngIf"], ["id", "http-loader"], [1, "loader-bg"], ["class", "sk-line-material", 3, "colored", 4, "ngIf"], [1, "sk-line-material"], [1, "sk-child", "sk-bounce1"]], template: function PageSpinnerComponent_Template(rf, ctx) { if (rf & 1) {
7097
- i0.ɵɵtemplate(0, PageSpinnerComponent_div_0_Template, 3, 1, "div", 0);
6979
+ static { this.ɵfac = function PublishStatusDropdownlist_Factory(t) { return new (t || PublishStatusDropdownlist)(); }; }
6980
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PublishStatusDropdownlist, selectors: [["anatoly-publishstatus-dropdownlist"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["class", "form-group", 4, "ngIf"], [1, "form-group"], [1, "controls"], [3, "text", 4, "ngIf"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "ngModel", "ngModelChange", "valueChange"], [3, "text"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "formControlName"]], template: function PublishStatusDropdownlist_Template(rf, ctx) { if (rf & 1) {
6981
+ i0.ɵɵtemplate(0, PublishStatusDropdownlist_div_0_Template, 4, 4, "div", 0)(1, PublishStatusDropdownlist_div_1_Template, 3, 4, "div", 0);
7098
6982
  } if (rf & 2) {
7099
- i0.ɵɵproperty("ngIf", ctx.isSpinnerVisible);
7100
- } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
6983
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6984
+ i0.ɵɵadvance();
6985
+ i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6986
+ } }, dependencies: [i1$2.NgIf, i2.NgControlStatus, i2.FormControlName, i2.NgModel, i3.DropDownListComponent, i4$1.LabelComponent, NativeElementDirective], encapsulation: 2 }); }
7101
6987
  }
7102
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageSpinnerComponent, [{
6988
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PublishStatusDropdownlist, [{
7103
6989
  type: Component,
7104
- args: [{ selector: 'anatoly-pagespinner', encapsulation: ViewEncapsulation.None, template: "<div id=\"http-loader\" *ngIf=\"isSpinnerVisible\">\r\n <div class=\"loader-bg\">\r\n <div class=\"sk-line-material\" [class.colored]=\"!backgroundColor\" *ngIf=\"spinner === Spinkit.skLine\">\r\n <div class=\"sk-child sk-bounce1\" [style.background-color]='backgroundColor'></div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
7105
- }], () => [{ type: i1.Router }], { backgroundColor: [{
7106
- type: Input
7107
- }], spinner: [{
7108
- type: Input
7109
- }] }); })();
7110
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PageSpinnerComponent, { className: "PageSpinnerComponent", filePath: "lib\\ui\\components\\spinners\\pagespinner\\pagespinner.component.ts", lineNumber: 29 }); })();
6990
+ args: [{ selector: 'anatoly-publishstatus-dropdownlist', template: "<div class=\"form-group\" *ngIf='isNgModelBased'>\r\n <div class=\"controls\">\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [(ngModel)]=\"sv\"\r\n (valueChange)=\"onChange($event)\" />\r\n </div>\r\n</div>\r\n\r\n<div class=\"form-group\" *ngIf='!isNgModelBased'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [formControlName]='controlName' />\r\n</div>\r\n" }]
6991
+ }], () => [], null); })();
6992
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PublishStatusDropdownlist, { className: "PublishStatusDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\publishstatus\\publishstatus.dropdownlist.ts", lineNumber: 27 }); })();
7111
6993
 
7112
6994
  /*
7113
6995
  <file>
@@ -7119,45 +7001,98 @@ class PageSpinnerComponent {
7119
7001
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7120
7002
 
7121
7003
  Created:
7122
- 9 Jun 2020
7004
+ 02 Aug 2022
7123
7005
 
7124
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7006
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7125
7007
  </file>
7126
7008
  */
7127
7009
  //Node
7128
- class Copy2ClipboardComponent extends ComponentBase {
7129
- constructor() {
7130
- super(...arguments);
7131
- this.tooltip = "Copy to clipboard";
7132
- this.text = "";
7010
+ function TimezoneDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
7011
+ i0.ɵɵelement(0, "div");
7012
+ } }
7013
+ function TimezoneDropdownlist_div_1_label_1_Template(rf, ctx) { if (rf & 1) {
7014
+ i0.ɵɵelementStart(0, "label", 6);
7015
+ i0.ɵɵtext(1, "Timezone");
7016
+ i0.ɵɵelementEnd();
7017
+ } }
7018
+ function TimezoneDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
7019
+ i0.ɵɵelementStart(0, "option", 7);
7020
+ i0.ɵɵtext(1);
7021
+ i0.ɵɵelementEnd();
7022
+ } if (rf & 2) {
7023
+ const item_r4 = ctx.$implicit;
7024
+ i0.ɵɵproperty("value", item_r4.code);
7025
+ i0.ɵɵadvance();
7026
+ i0.ɵɵtextInterpolate2(" (", item_r4.offset, ") ", item_r4.name, " ");
7027
+ } }
7028
+ function TimezoneDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
7029
+ i0.ɵɵelementStart(0, "div", 2);
7030
+ i0.ɵɵtemplate(1, TimezoneDropdownlist_div_1_label_1_Template, 2, 0, "label", 3);
7031
+ i0.ɵɵelementStart(2, "select", 4);
7032
+ i0.ɵɵtemplate(3, TimezoneDropdownlist_div_1_option_3_Template, 2, 3, "option", 5);
7033
+ i0.ɵɵelementEnd()();
7034
+ } if (rf & 2) {
7035
+ const ctx_r1 = i0.ɵɵnextContext();
7036
+ i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
7037
+ i0.ɵɵadvance();
7038
+ i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
7039
+ i0.ɵɵadvance();
7040
+ i0.ɵɵproperty("formControlName", ctx_r1.controlName);
7041
+ i0.ɵɵadvance();
7042
+ i0.ɵɵproperty("ngForOf", ctx_r1.items);
7043
+ } }
7044
+ class TimezoneDropdownlist extends EditComponentBase {
7045
+ constructor(api, appContext) {
7046
+ super();
7047
+ this.api = api;
7048
+ this.appContext = appContext;
7049
+ this.title = 'Timezone';
7133
7050
  }
7134
- onCopy2Clipboard(event) {
7135
- let oldTooltip = this.tooltip;
7136
- this.tooltip = "Copied";
7137
- setTimeout(() => {
7138
- this.tooltip = oldTooltip;
7139
- }, 1000);
7140
- Utils.copyToClipBoard(event, this.text);
7051
+ ngOnInit() {
7052
+ this.setValues();
7141
7053
  }
7142
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCopy2ClipboardComponent_BaseFactory; return function Copy2ClipboardComponent_Factory(t) { return (ɵCopy2ClipboardComponent_BaseFactory || (ɵCopy2ClipboardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(Copy2ClipboardComponent)))(t || Copy2ClipboardComponent); }; })(); }
7143
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Copy2ClipboardComponent, selectors: [["anatoly-copy-2-clipboard"]], inputs: { tooltip: "tooltip", text: "text" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 3, consts: [[3, "click"], ["size", "lg", "icon", "copy"]], template: function Copy2ClipboardComponent_Template(rf, ctx) { if (rf & 1) {
7144
- i0.ɵɵelementStart(0, "a", 0);
7145
- i0.ɵɵlistener("click", function Copy2ClipboardComponent_Template_a_click_0_listener($event) { return ctx.onCopy2Clipboard($event); });
7146
- i0.ɵɵelement(1, "fa-icon", 1);
7147
- i0.ɵɵelementEnd();
7054
+ setValues() {
7055
+ this.api.getTimezonesJsonFile().subscribe({
7056
+ next: (data) => {
7057
+ this.items = data.reverse();
7058
+ }
7059
+ });
7060
+ if (this.isNgModelBased) {
7061
+ }
7062
+ else {
7063
+ let timezone = this.getFormValue(this.controlName);
7064
+ if (timezone) {
7065
+ return;
7066
+ }
7067
+ //1. Try to set client timezone
7068
+ try {
7069
+ timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
7070
+ this.setFormValue(this.controlName, timezone);
7071
+ }
7072
+ catch {
7073
+ }
7074
+ //2. Try to set context timeZone
7075
+ let context = this.appContext.current;
7076
+ timezone = context?.user?.timezone;
7077
+ if (timezone) {
7078
+ this.setFormValue(this.controlName, timezone);
7079
+ }
7080
+ }
7081
+ }
7082
+ static { this.ɵfac = function TimezoneDropdownlist_Factory(t) { return new (t || TimezoneDropdownlist)(i0.ɵɵdirectiveInject(CoreApiService), i0.ɵɵdirectiveInject(AppContextService)); }; }
7083
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimezoneDropdownlist, selectors: [["anatoly-timezone-dropdownlist"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "formGroup", 4, "ngIf"], [3, "formGroup"], ["class", "col-form-label", 4, "ngIf"], [1, "form-select", 3, "formControlName"], [3, "value", 4, "ngFor", "ngForOf"], [1, "col-form-label"], [3, "value"]], template: function TimezoneDropdownlist_Template(rf, ctx) { if (rf & 1) {
7084
+ i0.ɵɵtemplate(0, TimezoneDropdownlist_div_0_Template, 1, 0, "div", 0)(1, TimezoneDropdownlist_div_1_Template, 4, 4, "div", 1);
7148
7085
  } if (rf & 2) {
7149
- i0.ɵɵclassMapInterpolate1("btn ", ctx.classes, "");
7150
- } }, dependencies: [i1$6.FaIconComponent], encapsulation: 2 }); }
7086
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
7087
+ i0.ɵɵadvance();
7088
+ i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
7089
+ } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective], encapsulation: 2 }); }
7151
7090
  }
7152
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Copy2ClipboardComponent, [{
7091
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimezoneDropdownlist, [{
7153
7092
  type: Component,
7154
- args: [{ selector: 'anatoly-copy-2-clipboard', template: "<a class=\"btn {{ classes }}\" (click)=\"onCopy2Clipboard($event)\">\r\n <fa-icon size=\"lg\" icon=\"copy\"></fa-icon>\r\n</a>\r\n" }]
7155
- }], null, { tooltip: [{
7156
- type: Input
7157
- }], text: [{
7158
- type: Input
7159
- }] }); })();
7160
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Copy2ClipboardComponent, { className: "Copy2ClipboardComponent", filePath: "lib\\ui\\components\\copy-2-clipboard\\copy-2-clipboard.component.ts", lineNumber: 28 }); })();
7093
+ args: [{ selector: 'anatoly-timezone-dropdownlist', template: "<div *ngIf='isNgModelBased'>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <label *ngIf='isTitleVisible' class='col-form-label'>Timezone</label>\r\n <select [formControlName]='controlName' class='form-select'>\r\n <option *ngFor='let item of items' [value]='item.code'>\r\n ({{ item.offset }}) {{ item.name }}\r\n </option>\r\n </select>\r\n</div>\r\n" }]
7094
+ }], () => [{ type: CoreApiService }, { type: AppContextService }], null); })();
7095
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimezoneDropdownlist, { className: "TimezoneDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\timezone\\timezone.dropdownlist.ts", lineNumber: 29 }); })();
7161
7096
 
7162
7097
  /*
7163
7098
  <file>
@@ -7165,33 +7100,173 @@ class Copy2ClipboardComponent extends ComponentBase {
7165
7100
  @osovitny/anatoly
7166
7101
 
7167
7102
  Authors:
7103
+ Vadim Osovitny vadim.osovitny@osovitny.com
7168
7104
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7169
7105
 
7170
7106
  Created:
7171
- 28 Jun 2020
7107
+ 12 Dec 2017
7172
7108
 
7173
7109
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7174
7110
  </file>
7175
7111
  */
7176
- //Node
7177
- class NativeElementDirective {
7178
- constructor(el, control) {
7179
- this.el = el;
7180
- this.control = control;
7181
- }
7182
- ngOnInit() {
7183
- // sets the localization key to the control
7184
- this.control.control.nativeElement = this.el.nativeElement;
7185
- }
7186
- static { this.ɵfac = function NativeElementDirective_Factory(t) { return new (t || NativeElementDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.NgControl)); }; }
7187
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: NativeElementDirective, selectors: [["", "formControl", ""], ["", "formControlName", ""]] }); }
7188
- }
7189
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeElementDirective, [{
7190
- type: Directive,
7191
- args: [{
7192
- selector: '[formControl], [formControlName]'
7112
+ const DefaultEditorOptions = {
7113
+ placeholderText: "Edit Your Content Here",
7114
+ charCounterCount: true,
7115
+ heightMin: 100,
7116
+ toolbarInline: false,
7117
+ toolbarButtons: {
7118
+ moreText: {
7119
+ buttons: [
7120
+ "bold",
7121
+ "italic",
7122
+ "underline",
7123
+ "strikeThrough",
7124
+ "subscript",
7125
+ "superscript",
7126
+ "fontFamily",
7127
+ "fontSize",
7128
+ "textColor",
7129
+ "backgroundColor",
7130
+ "inlineClass",
7131
+ "inlineStyle",
7132
+ ],
7133
+ },
7134
+ moreParagraph: {
7135
+ buttons: [
7136
+ "alignLeft",
7137
+ "alignCenter",
7138
+ "formatOLSimple",
7139
+ "alignRight",
7140
+ "alignJustify",
7141
+ "formatOL",
7142
+ "formatUL",
7143
+ "paragraphFormat",
7144
+ "paragraphStyle",
7145
+ "lineHeight",
7146
+ "outdent",
7147
+ "indent",
7148
+ "quote",
7149
+ ],
7150
+ },
7151
+ moreRich: {
7152
+ buttons: [
7153
+ "insertLink",
7154
+ "insertImage",
7155
+ "insertTable",
7156
+ "emoticons",
7157
+ "fontAwesome",
7158
+ "specialCharacters",
7159
+ "embedly",
7160
+ ],
7161
+ },
7162
+ moreMisc: {
7163
+ buttons: [
7164
+ "selectAll",
7165
+ "clearFormatting",
7166
+ "html",
7167
+ "undo",
7168
+ "redo",
7169
+ "fullscreen",
7170
+ ],
7171
+ align: "right",
7172
+ },
7173
+ },
7174
+ /*
7175
+ Upload:
7176
+ https://www.froala.com/wysiwyg-editor/docs/concepts/image/upload
7177
+ */
7178
+ imageUploadURL: "/api/htmlEditor/uploadImage",
7179
+ imageAllowedTypes: ["jpeg", "jpg", "png"],
7180
+ imageUploadParams: { uploadType: "", uploadParentId: "" },
7181
+ };
7182
+
7183
+ //Node
7184
+ class HtmlEditorComponentBase extends EditComponentBase {
7185
+ constructor() {
7186
+ super();
7187
+ this.froalaEditorInitialized = false;
7188
+ this.afterInitializedActions = [];
7189
+ // Inputs
7190
+ this.editorLabelText = "Html";
7191
+ this.editorOptions = {};
7192
+ }
7193
+ ngOnInit() {
7194
+ let opt = this.editorOptions;
7195
+ if (typeof this.editorOptions == "string") {
7196
+ opt = JSON.parse(this.editorOptions);
7197
+ }
7198
+ let newOptions = $.extend({}, DefaultEditorOptions, opt);
7199
+ const key = AppCoreSettings.froalaEditorKey;
7200
+ if (key) {
7201
+ newOptions = $.extend({}, newOptions, JSON.parse('{ "key": "' + key + '" }'));
7202
+ }
7203
+ if (newOptions.events && newOptions.events.initialized) {
7204
+ newOptions.events.initialized.overridden = false;
7205
+ }
7206
+ this.options = newOptions;
7207
+ }
7208
+ ngAfterViewInit() {
7209
+ const that = this;
7210
+ setTimeout(function () {
7211
+ that.froalaEditorInitialized = true;
7212
+ that.onInitialized();
7213
+ }, 300);
7214
+ }
7215
+ onInitialized() {
7216
+ let actions = this.afterInitializedActions;
7217
+ // Clear actions
7218
+ this.afterInitializedActions = [];
7219
+ if (actions) {
7220
+ for (let i = 0; i < actions.length; i++) {
7221
+ actions[i]();
7222
+ }
7223
+ }
7224
+ }
7225
+ getEditor() {
7226
+ if (this.froalaEditor)
7227
+ return this.froalaEditor.getEditor();
7228
+ return null;
7229
+ }
7230
+ // Public Funcs
7231
+ doAfterInitialized(action) {
7232
+ const that = this;
7233
+ if (!this.froalaEditorInitialized) {
7234
+ this.afterInitializedActions.push(() => {
7235
+ action(that);
7236
+ });
7237
+ }
7238
+ else {
7239
+ action(that);
7240
+ }
7241
+ }
7242
+ initializeControl(control) {
7243
+ this.froalaEditor = control;
7244
+ this.froalaEditor.initialize();
7245
+ }
7246
+ setUploadParams(uploadType, uploadParentId) {
7247
+ this.doAfterInitialized(function (that) {
7248
+ const editor = that.getEditor();
7249
+ if (typeof editor == "undefined" || editor == null) {
7250
+ return;
7251
+ }
7252
+ editor.opts.imageUploadParams.uploadType = uploadType;
7253
+ editor.opts.imageUploadParams.uploadParentId = uploadParentId;
7254
+ });
7255
+ }
7256
+ static { this.ɵfac = function HtmlEditorComponentBase_Factory(t) { return new (t || HtmlEditorComponentBase)(); }; }
7257
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HtmlEditorComponentBase, selectors: [["ng-component"]], inputs: { editorLabelText: "editorLabelText", editorOptions: "editorOptions" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function HtmlEditorComponentBase_Template(rf, ctx) { }, encapsulation: 2 }); }
7258
+ }
7259
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponentBase, [{
7260
+ type: Component,
7261
+ args: [{
7262
+ template: "",
7193
7263
  }]
7194
- }], () => [{ type: i0.ElementRef }, { type: i2.NgControl }], null); })();
7264
+ }], () => [], { editorLabelText: [{
7265
+ type: Input
7266
+ }], editorOptions: [{
7267
+ type: Input
7268
+ }] }); })();
7269
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HtmlEditorComponentBase, { className: "HtmlEditorComponentBase", filePath: "lib\\ui\\components\\html-editor\\base-html-editor.component.ts", lineNumber: 31 }); })();
7195
7270
 
7196
7271
  /*
7197
7272
  <file>
@@ -7371,114 +7446,50 @@ class ItemValidationSummaryComponent extends ValidationSummaryComponent {
7371
7446
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7372
7447
 
7373
7448
  Created:
7374
- 02 Aug 2022
7449
+ 12 Dec 2017
7375
7450
 
7376
- Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7451
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7377
7452
  </file>
7378
7453
  */
7379
7454
  //Node
7380
- function UrlSlugComponent_label_3_Template(rf, ctx) { if (rf & 1) {
7381
- i0.ɵɵelementStart(0, "label", 7);
7382
- i0.ɵɵtext(1);
7383
- i0.ɵɵelementEnd();
7384
- } if (rf & 2) {
7385
- const ctx_r0 = i0.ɵɵnextContext();
7386
- i0.ɵɵadvance();
7387
- i0.ɵɵtextInterpolate(ctx_r0.title);
7388
- } }
7389
- function UrlSlugComponent_a_7_Template(rf, ctx) { if (rf & 1) {
7390
- i0.ɵɵelementStart(0, "a", 8);
7391
- i0.ɵɵtext(1, "Go");
7392
- i0.ɵɵelementEnd();
7393
- } if (rf & 2) {
7394
- const ctx_r1 = i0.ɵɵnextContext();
7395
- i0.ɵɵpropertyInterpolate2("href", "", ctx_r1.urlPrefix, "", ctx_r1.hrefGo, "", i0.ɵɵsanitizeUrl);
7396
- } }
7397
7455
  const _c0$9 = a0 => ({ "has-error": a0 });
7398
- class UrlSlugComponent extends EditComponentBase {
7456
+ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
7399
7457
  constructor() {
7400
7458
  super();
7401
- this.firstValue = true;
7402
- this.isGoButtonVisible = true;
7403
- //Outputs
7404
- this.generated = new EventEmitter();
7405
- this.title = 'Permalink';
7406
- }
7407
- ngOnInit() {
7408
- this.startWatching();
7409
- }
7410
- generateUrlSlug(text) {
7411
- let slugedText = Utils.slugify(text);
7412
- let event = { urlSlug: slugedText };
7413
- this.generated.emit(event);
7414
- this.setFormValue(this.controlName, event.urlSlug);
7459
+ this.editorFormKey = "html";
7415
7460
  }
7416
- startWatching() {
7417
- this.subs.sink = this.formGroup.get(this.controlName).valueChanges.subscribe({
7418
- next: (value) => {
7419
- this.hrefGo = value;
7420
- }
7461
+ setFormValueAfterInitialized(name, value) {
7462
+ this.doAfterInitialized(function (that) {
7463
+ that.setFormValue(name, value);
7421
7464
  });
7422
- if (this.watchedControlName) {
7423
- this.subs.sink = this.formGroup.get(this.watchedControlName).valueChanges.subscribe({
7424
- next: (value) => {
7425
- if (this.firstValue) {
7426
- this.firstValue = false;
7427
- return;
7428
- }
7429
- this.generateUrlSlug(value);
7430
- }
7431
- });
7432
- }
7433
7465
  }
7434
- //Events
7435
- onUrlSlugChange() {
7436
- let text = this.getFormValue(this.controlName);
7437
- this.generateUrlSlug(text);
7438
- }
7439
- static { this.ɵfac = function UrlSlugComponent_Factory(t) { return new (t || UrlSlugComponent)(); }; }
7440
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UrlSlugComponent, selectors: [["anatoly-urlslug"]], inputs: { urlPrefix: "urlPrefix", isGoButtonVisible: "isGoButtonVisible", watchedControlName: "watchedControlName" }, outputs: { generated: "generated" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 12, consts: [[1, "form-group", 3, "formGroup", "ngClass"], [3, "formGroup", "formSubmitted", "controlName"], [1, "input-group", "permalink", 3, "ngClass"], ["for", "urlPrefixId", 4, "ngIf"], [1, "urlPrefix"], ["type", "text", "id", "urlPrefixId", 1, "form-control", 3, "formControlName", "focusout"], ["class", "btn btn-primary", "target", "_blank", 3, "href", 4, "ngIf"], ["for", "urlPrefixId"], ["target", "_blank", 1, "btn", "btn-primary", 3, "href"]], template: function UrlSlugComponent_Template(rf, ctx) { if (rf & 1) {
7441
- i0.ɵɵelementStart(0, "div", 0);
7442
- i0.ɵɵelement(1, "anatoly-item-validation-summary", 1);
7443
- i0.ɵɵelementStart(2, "div", 2);
7444
- i0.ɵɵtemplate(3, UrlSlugComponent_label_3_Template, 2, 1, "label", 3);
7445
- i0.ɵɵelementStart(4, "div", 4);
7446
- i0.ɵɵtext(5);
7466
+ static { this.ɵfac = function FormsHtmlEditorComponent_Factory(t) { return new (t || FormsHtmlEditorComponent)(); }; }
7467
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormsHtmlEditorComponent, selectors: [["anatoly-forms-html-editor"]], inputs: { editorFormKey: "editorFormKey" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 10, consts: [[1, "form-group", 3, "formGroup", "ngClass"], [1, "col-form-label"], [3, "formControlName", "froalaEditor", "froalaInit"], [3, "formGroup", "formSubmitted", "controlName"]], template: function FormsHtmlEditorComponent_Template(rf, ctx) { if (rf & 1) {
7468
+ i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
7469
+ i0.ɵɵtext(2);
7447
7470
  i0.ɵɵelementEnd();
7448
- i0.ɵɵelementStart(6, "input", 5);
7449
- i0.ɵɵlistener("focusout", function UrlSlugComponent_Template_input_focusout_6_listener() { return ctx.onUrlSlugChange(); });
7471
+ i0.ɵɵelementStart(3, "textarea", 2);
7472
+ i0.ɵɵlistener("froalaInit", function FormsHtmlEditorComponent_Template_textarea_froalaInit_3_listener($event) { return ctx.initializeControl($event); });
7473
+ i0.ɵɵelementEnd();
7474
+ i0.ɵɵelement(4, "anatoly-item-validation-summary", 3);
7450
7475
  i0.ɵɵelementEnd();
7451
- i0.ɵɵtemplate(7, UrlSlugComponent_a_7_Template, 2, 2, "a", 6);
7452
- i0.ɵɵelementEnd()();
7453
7476
  } if (rf & 2) {
7454
- i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(10, _c0$9, ctx.isControlInvalid(ctx.controlName)));
7455
- i0.ɵɵadvance();
7456
- i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.controlName);
7457
- i0.ɵɵadvance();
7458
- i0.ɵɵproperty("ngClass", ctx.classes);
7459
- i0.ɵɵadvance();
7460
- i0.ɵɵproperty("ngIf", ctx.isTitleVisible);
7477
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(8, _c0$9, ctx.isControlInvalid(ctx.editorFormKey)));
7461
7478
  i0.ɵɵadvance(2);
7462
- i0.ɵɵtextInterpolate(ctx.urlPrefix);
7479
+ i0.ɵɵtextInterpolate(ctx.editorLabelText);
7463
7480
  i0.ɵɵadvance();
7464
- i0.ɵɵproperty("formControlName", ctx.controlName);
7481
+ i0.ɵɵproperty("formControlName", ctx.editorFormKey)("froalaEditor", ctx.options);
7465
7482
  i0.ɵɵadvance();
7466
- i0.ɵɵproperty("ngIf", ctx.isGoButtonVisible);
7467
- } }, dependencies: [i1$2.NgClass, i1$2.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
7483
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.editorFormKey);
7484
+ } }, dependencies: [i1$2.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3$1.FroalaEditorDirective, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
7468
7485
  }
7469
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlSlugComponent, [{
7486
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsHtmlEditorComponent, [{
7470
7487
  type: Component,
7471
- args: [{ selector: 'anatoly-urlslug', template: "<div class=\"form-group\" [formGroup]='formGroup' [ngClass]=\"{'has-error': isControlInvalid(controlName)}\" >\r\n <anatoly-item-validation-summary\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'>\r\n </anatoly-item-validation-summary>\r\n\r\n <div class=\"input-group permalink\" [ngClass]=\"classes\">\r\n <label for=\"urlPrefixId\" *ngIf='isTitleVisible'>{{ title }}</label>\r\n <div class=\"urlPrefix\">{{ urlPrefix }}</div>\r\n <input type=\"text\" class=\"form-control\" id=\"urlPrefixId\" [formControlName]='controlName' (focusout)='onUrlSlugChange()'>\r\n <a class=\"btn btn-primary\" href=\"{{urlPrefix}}{{hrefGo}}\" target=\"_blank\" *ngIf=\"isGoButtonVisible\" >Go</a>\r\n </div>\r\n</div>\r\n" }]
7472
- }], () => [], { urlPrefix: [{
7473
- type: Input
7474
- }], isGoButtonVisible: [{
7475
- type: Input
7476
- }], watchedControlName: [{
7488
+ args: [{ selector: "anatoly-forms-html-editor", template: "<div [formGroup]=\"formGroup\" [ngClass]=\"{'has-error': isControlInvalid(editorFormKey) }\" class=\"form-group\" >\r\n <label class=\"col-form-label\">{{ editorLabelText }}</label>\r\n <textarea [formControlName]=\"editorFormKey\" [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\"></textarea>\r\n <anatoly-item-validation-summary [formGroup]=\"formGroup\"\r\n [formSubmitted]=\"formSubmitted\"\r\n [controlName]=\"editorFormKey\">\r\n </anatoly-item-validation-summary>\r\n</div>\r\n" }]
7489
+ }], () => [], { editorFormKey: [{
7477
7490
  type: Input
7478
- }], generated: [{
7479
- type: Output
7480
7491
  }] }); })();
7481
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UrlSlugComponent, { className: "UrlSlugComponent", filePath: "lib\\ui\\components\\urlslug\\urlslug.component.ts", lineNumber: 28 }); })();
7492
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormsHtmlEditorComponent, { className: "FormsHtmlEditorComponent", filePath: "lib\\ui\\components\\html-editor\\forms-html-editor.component.ts", lineNumber: 27 }); })();
7482
7493
 
7483
7494
  /*
7484
7495
  <file>
@@ -7486,49 +7497,56 @@ class UrlSlugComponent extends EditComponentBase {
7486
7497
  @osovitny/anatoly
7487
7498
 
7488
7499
  Authors:
7500
+ Vadim Osovitny vadim.osovitny@osovitny.com
7489
7501
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7490
7502
 
7491
7503
  Created:
7492
- 4 Feb 2024
7504
+ 12 Dec 2017
7493
7505
 
7494
7506
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7495
7507
  </file>
7496
7508
  */
7497
7509
  //Node
7498
- function FeatureWillBeReadyComponent_h3_1_Template(rf, ctx) { if (rf & 1) {
7499
- i0.ɵɵelementStart(0, "h3");
7500
- i0.ɵɵtext(1);
7501
- i0.ɵɵelementEnd();
7502
- } if (rf & 2) {
7503
- const ctx_r0 = i0.ɵɵnextContext();
7504
- i0.ɵɵadvance();
7505
- i0.ɵɵtextInterpolate1("This feature will be ready in ", ctx_r0.readyDate, " ");
7506
- } }
7507
- function FeatureWillBeReadyComponent_h3_2_Template(rf, ctx) { if (rf & 1) {
7508
- i0.ɵɵelementStart(0, "h3");
7509
- i0.ɵɵtext(1, "This feature will be available soon");
7510
- i0.ɵɵelementEnd();
7511
- } }
7512
- class FeatureWillBeReadyComponent extends ComponentBase {
7513
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵFeatureWillBeReadyComponent_BaseFactory; return function FeatureWillBeReadyComponent_Factory(t) { return (ɵFeatureWillBeReadyComponent_BaseFactory || (ɵFeatureWillBeReadyComponent_BaseFactory = i0.ɵɵgetInheritedFactory(FeatureWillBeReadyComponent)))(t || FeatureWillBeReadyComponent); }; })(); }
7514
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureWillBeReadyComponent, selectors: [["anatoly-feature-will-be-ready"]], inputs: { readyDate: "readyDate" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [[1, "feature-will-be-ready"], [4, "ngIf"]], template: function FeatureWillBeReadyComponent_Template(rf, ctx) { if (rf & 1) {
7515
- i0.ɵɵelementStart(0, "div", 0);
7516
- i0.ɵɵtemplate(1, FeatureWillBeReadyComponent_h3_1_Template, 2, 1, "h3", 1)(2, FeatureWillBeReadyComponent_h3_2_Template, 2, 0, "h3", 1);
7510
+ class HtmlEditorComponent extends HtmlEditorComponentBase {
7511
+ constructor() {
7512
+ super();
7513
+ }
7514
+ setHtml(content) {
7515
+ this.doAfterInitialized(function (that) {
7516
+ let editor = that.getEditor();
7517
+ if (typeof editor == "undefined" || editor == null) {
7518
+ return;
7519
+ }
7520
+ editor.html.set(content);
7521
+ });
7522
+ }
7523
+ getHtml() {
7524
+ let editor = this.getEditor();
7525
+ if (typeof editor == "undefined" || editor == null) {
7526
+ return;
7527
+ }
7528
+ return editor.html.get(false);
7529
+ }
7530
+ static { this.ɵfac = function HtmlEditorComponent_Factory(t) { return new (t || HtmlEditorComponent)(); }; }
7531
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HtmlEditorComponent, selectors: [["anatoly-html-editor"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 2, consts: [[1, "form-group"], [1, "col-form-label"], [3, "froalaEditor", "froalaInit"]], template: function HtmlEditorComponent_Template(rf, ctx) { if (rf & 1) {
7532
+ i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
7533
+ i0.ɵɵtext(2);
7517
7534
  i0.ɵɵelementEnd();
7535
+ i0.ɵɵelementStart(3, "textarea", 2);
7536
+ i0.ɵɵlistener("froalaInit", function HtmlEditorComponent_Template_textarea_froalaInit_3_listener($event) { return ctx.initializeControl($event); });
7537
+ i0.ɵɵelementEnd()();
7518
7538
  } if (rf & 2) {
7539
+ i0.ɵɵadvance(2);
7540
+ i0.ɵɵtextInterpolate(ctx.editorLabelText);
7519
7541
  i0.ɵɵadvance();
7520
- i0.ɵɵproperty("ngIf", ctx.readyDate);
7521
- i0.ɵɵadvance();
7522
- i0.ɵɵproperty("ngIf", !ctx.readyDate);
7523
- } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
7542
+ i0.ɵɵproperty("froalaEditor", ctx.options);
7543
+ } }, dependencies: [i3$1.FroalaEditorDirective], encapsulation: 2 }); }
7524
7544
  }
7525
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureWillBeReadyComponent, [{
7545
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponent, [{
7526
7546
  type: Component,
7527
- args: [{ selector: 'anatoly-feature-will-be-ready', template: "<div class='feature-will-be-ready'>\r\n <h3 *ngIf='readyDate'>This feature will be ready in {{ readyDate }} </h3>\r\n <h3 *ngIf='!readyDate'>This feature will be available soon</h3>\r\n</div>\r\n" }]
7528
- }], null, { readyDate: [{
7529
- type: Input
7530
- }] }); })();
7531
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FeatureWillBeReadyComponent, { className: "FeatureWillBeReadyComponent", filePath: "lib\\ui\\components\\feature-will-be-ready\\feature-will-be-ready.component.ts", lineNumber: 26 }); })();
7547
+ args: [{ selector: "anatoly-html-editor", template: "<div class=\"form-group\">\r\n <label class=\"col-form-label\">{{ editorLabelText }}</label>\r\n <textarea [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\"></textarea>\r\n</div>\r\n" }]
7548
+ }], () => [], null); })();
7549
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HtmlEditorComponent, { className: "HtmlEditorComponent", filePath: "lib\\ui\\components\\html-editor\\html-editor.component.ts", lineNumber: 27 }); })();
7532
7550
 
7533
7551
  /*
7534
7552
  <file>
@@ -7536,57 +7554,38 @@ class FeatureWillBeReadyComponent extends ComponentBase {
7536
7554
  @osovitny/anatoly
7537
7555
 
7538
7556
  Authors:
7557
+ Vadim Osovitny vadim.osovitny@osovitny.com
7539
7558
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7540
7559
 
7541
7560
  Created:
7542
- 21 Feb 2024
7561
+ 15 Aug 2022
7543
7562
 
7544
7563
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7545
7564
  </file>
7546
7565
  */
7547
7566
  //Node
7548
- function YouAgreeToOurTermsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
7549
- i0.ɵɵelement(0, "br");
7550
- } }
7551
- class YouAgreeToOurTermsComponent extends ComponentBase {
7567
+ const _c0$8 = ["*"];
7568
+ class CheckIconComponent {
7552
7569
  constructor() {
7553
- super(...arguments);
7554
- this.oneLine = true;
7570
+ //Inputs
7571
+ this.checked = true;
7555
7572
  }
7556
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵYouAgreeToOurTermsComponent_BaseFactory; return function YouAgreeToOurTermsComponent_Factory(t) { return (ɵYouAgreeToOurTermsComponent_BaseFactory || (ɵYouAgreeToOurTermsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(YouAgreeToOurTermsComponent)))(t || YouAgreeToOurTermsComponent); }; })(); }
7557
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: YouAgreeToOurTermsComponent, selectors: [["anatoly-you-agree-to-our-terms"]], inputs: { prefix: "prefix", oneLine: "oneLine" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 4, consts: [[1, "you-agree-to-our-terms"], ["target", "_blank", "rel", "noopener", 3, "href"]], template: function YouAgreeToOurTermsComponent_Template(rf, ctx) { if (rf & 1) {
7558
- i0.ɵɵelementStart(0, "div", 0)(1, "p");
7559
- i0.ɵɵtext(2);
7560
- i0.ɵɵtemplate(3, YouAgreeToOurTermsComponent_Conditional_3_Template, 1, 0, "br");
7561
- i0.ɵɵelementStart(4, "a", 1);
7562
- i0.ɵɵtext(5, "Terms of use");
7563
- i0.ɵɵelementEnd();
7564
- i0.ɵɵtext(6, " and ");
7565
- i0.ɵɵelementStart(7, "a", 1);
7566
- i0.ɵɵtext(8, "Privacy Policy");
7567
- i0.ɵɵelementEnd();
7568
- i0.ɵɵtext(9, ". ");
7569
- i0.ɵɵelementEnd()();
7573
+ static { this.ɵfac = function CheckIconComponent_Factory(t) { return new (t || CheckIconComponent)(); }; }
7574
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CheckIconComponent, selectors: [["anatoly-check-icon"]], inputs: { checked: "checked" }, ngContentSelectors: _c0$8, decls: 2, vars: 2, consts: [[3, "icon", "ngClass"]], template: function CheckIconComponent_Template(rf, ctx) { if (rf & 1) {
7575
+ i0.ɵɵprojectionDef();
7576
+ i0.ɵɵelement(0, "fa-icon", 0);
7577
+ i0.ɵɵprojection(1);
7570
7578
  } if (rf & 2) {
7571
- i0.ɵɵadvance(2);
7572
- i0.ɵɵtextInterpolate1(" ", ctx.prefix, " you agree to our ");
7573
- i0.ɵɵadvance();
7574
- i0.ɵɵconditional(3, !ctx.oneLine ? 3 : -1);
7575
- i0.ɵɵadvance();
7576
- i0.ɵɵproperty("href", ctx.applicationOneUrl + "legal/terms", i0.ɵɵsanitizeUrl);
7577
- i0.ɵɵadvance(3);
7578
- i0.ɵɵproperty("href", ctx.applicationOneUrl + "legal/privacy", i0.ɵɵsanitizeUrl);
7579
- } }, encapsulation: 2 }); }
7579
+ i0.ɵɵproperty("icon", ctx.checked ? "check-circle" : "circle-xmark")("ngClass", ctx.checked ? "text-success" : "text-danger");
7580
+ } }, dependencies: [i1$2.NgClass, i1$6.FaIconComponent], encapsulation: 2 }); }
7580
7581
  }
7581
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(YouAgreeToOurTermsComponent, [{
7582
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckIconComponent, [{
7582
7583
  type: Component,
7583
- args: [{ selector: 'anatoly-you-agree-to-our-terms', template: "<div class=\"you-agree-to-our-terms\">\r\n <p>\r\n {{ prefix }} you agree to our\r\n @if (!oneLine) {\r\n <br />\r\n }\r\n <a [href]=\"applicationOneUrl + 'legal/terms'\" target=\"_blank\" rel=\"noopener\">Terms of use</a>\r\n and\r\n <a [href]=\"applicationOneUrl + 'legal/privacy'\" target=\"_blank\" rel=\"noopener\">Privacy Policy</a>.\r\n </p>\r\n</div>\r\n" }]
7584
- }], null, { prefix: [{
7585
- type: Input
7586
- }], oneLine: [{
7584
+ args: [{ selector: 'anatoly-check-icon', template: "<fa-icon [icon]=\"this.checked ? 'check-circle' : 'circle-xmark'\" [ngClass]=\"checked ? 'text-success' : 'text-danger'\">\r\n</fa-icon>\r\n<ng-content></ng-content>\r\n" }]
7585
+ }], null, { checked: [{
7587
7586
  type: Input
7588
7587
  }] }); })();
7589
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(YouAgreeToOurTermsComponent, { className: "YouAgreeToOurTermsComponent", filePath: "lib\\ui\\components\\you-agree-to-our-terms\\you-agree-to-our-terms.component.ts", lineNumber: 26 }); })();
7588
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckIconComponent, { className: "CheckIconComponent", filePath: "lib\\ui\\components\\check-icon\\check-icon.component.ts", lineNumber: 24 }); })();
7590
7589
 
7591
7590
  /*
7592
7591
  <file>
@@ -7598,81 +7597,85 @@ class YouAgreeToOurTermsComponent extends ComponentBase {
7598
7597
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7599
7598
 
7600
7599
  Created:
7601
- 2 Feb 2024
7600
+ 28 Aug 2022
7602
7601
 
7603
- Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7602
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7604
7603
  </file>
7605
7604
  */
7606
7605
  //Node
7607
- function CountryDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
7608
- i0.ɵɵelement(0, "div");
7609
- } }
7610
- function CountryDropdownlist_div_1_label_1_Template(rf, ctx) { if (rf & 1) {
7611
- i0.ɵɵelementStart(0, "label", 6);
7612
- i0.ɵɵtext(1, "Country");
7613
- i0.ɵɵelementEnd();
7614
- } }
7615
- function CountryDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
7616
- i0.ɵɵelementStart(0, "option", 7);
7617
- i0.ɵɵtext(1);
7618
- i0.ɵɵelementEnd();
7619
- } if (rf & 2) {
7620
- const item_r4 = ctx.$implicit;
7621
- i0.ɵɵproperty("value", item_r4.code);
7622
- i0.ɵɵadvance();
7623
- i0.ɵɵtextInterpolate1(" ", item_r4.name, " ");
7624
- } }
7625
- function CountryDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
7626
- i0.ɵɵelementStart(0, "div", 2);
7627
- i0.ɵɵtemplate(1, CountryDropdownlist_div_1_label_1_Template, 2, 0, "label", 3);
7628
- i0.ɵɵelementStart(2, "select", 4);
7629
- i0.ɵɵtemplate(3, CountryDropdownlist_div_1_option_3_Template, 2, 2, "option", 5);
7630
- i0.ɵɵelementEnd()();
7631
- } if (rf & 2) {
7632
- const ctx_r1 = i0.ɵɵnextContext();
7633
- i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
7634
- i0.ɵɵadvance();
7635
- i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
7636
- i0.ɵɵadvance();
7637
- i0.ɵɵproperty("formControlName", ctx_r1.controlName);
7638
- i0.ɵɵadvance();
7639
- i0.ɵɵproperty("ngForOf", ctx_r1.items);
7640
- } }
7641
- class CountryDropdownlist extends EditComponentBase {
7642
- constructor(api, appContext) {
7643
- super();
7644
- this.api = api;
7645
- this.appContext = appContext;
7646
- this.title = 'Country';
7606
+ class DataPagerComponent extends ComponentBase {
7607
+ constructor() {
7608
+ super(...arguments);
7609
+ //Private
7610
+ this._defaultPageSizes = [5, 10, 20, 30];
7611
+ //Public
7612
+ this.pageSizes = [];
7613
+ //Inputs
7614
+ this.totalItems = 0;
7615
+ this.pageSize = 0;
7616
+ this.skipItems = 0;
7617
+ this.pageSizeMax = 30;
7618
+ //Outputs
7619
+ this.pageChange = new EventEmitter();
7647
7620
  }
7648
- ngOnInit() {
7649
- this.setValues();
7621
+ get width() {
7622
+ return this._width;
7650
7623
  }
7651
- setValues() {
7652
- this.api.getCountriesJsonFile().subscribe({
7653
- next: (data) => {
7654
- this.items = data.reverse();
7624
+ set width(value) {
7625
+ this._width = value;
7626
+ if (value) {
7627
+ this.style = "width: " + value;
7628
+ }
7629
+ }
7630
+ ngOnInit() {
7631
+ this.pageSizes = [];
7632
+ if (this.pageSizeDivisor) {
7633
+ for (let i = 3; i < this.pageSizeMax; i++) {
7634
+ let remainder = i % this.pageSizeDivisor;
7635
+ if (remainder == 0) {
7636
+ this.pageSizes.push(i);
7637
+ }
7655
7638
  }
7656
- });
7657
- if (this.isNgModelBased) {
7658
7639
  }
7659
7640
  else {
7641
+ this.pageSizes = this._defaultPageSizes;
7660
7642
  }
7661
7643
  }
7662
- static { this.ɵfac = function CountryDropdownlist_Factory(t) { return new (t || CountryDropdownlist)(i0.ɵɵdirectiveInject(CoreApiService), i0.ɵɵdirectiveInject(AppContextService)); }; }
7663
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CountryDropdownlist, selectors: [["anatoly-country-dropdownlist"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "formGroup", 4, "ngIf"], [3, "formGroup"], ["class", "col-form-label", 4, "ngIf"], [1, "form-select", 3, "formControlName"], [3, "value", 4, "ngFor", "ngForOf"], [1, "col-form-label"], [3, "value"]], template: function CountryDropdownlist_Template(rf, ctx) { if (rf & 1) {
7664
- i0.ɵɵtemplate(0, CountryDropdownlist_div_0_Template, 1, 0, "div", 0)(1, CountryDropdownlist_div_1_Template, 4, 4, "div", 1);
7644
+ //Events
7645
+ onPageChange(e) {
7646
+ this.pageChange.emit(e);
7647
+ }
7648
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵDataPagerComponent_BaseFactory; return function DataPagerComponent_Factory(t) { return (ɵDataPagerComponent_BaseFactory || (ɵDataPagerComponent_BaseFactory = i0.ɵɵgetInheritedFactory(DataPagerComponent)))(t || DataPagerComponent); }; })(); }
7649
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataPagerComponent, selectors: [["anatoly-datapager"]], inputs: { totalItems: "totalItems", pageSize: "pageSize", skipItems: "skipItems", pageSizeDivisor: "pageSizeDivisor", pageSizeMax: "pageSizeMax", width: "width" }, outputs: { pageChange: "pageChange" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 9, consts: [[3, "total", "pageSize", "pageSizeValues", "skip", "pageChange"]], template: function DataPagerComponent_Template(rf, ctx) { if (rf & 1) {
7650
+ i0.ɵɵelementStart(0, "div")(1, "kendo-datapager", 0);
7651
+ i0.ɵɵlistener("pageChange", function DataPagerComponent_Template_kendo_datapager_pageChange_1_listener($event) { return ctx.onPageChange($event); });
7652
+ i0.ɵɵelementEnd()();
7665
7653
  } if (rf & 2) {
7666
- i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
7654
+ i0.ɵɵclassMap(ctx.classes);
7667
7655
  i0.ɵɵadvance();
7668
- i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
7669
- } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective], encapsulation: 2 }); }
7656
+ i0.ɵɵstyleMap(ctx.style);
7657
+ i0.ɵɵproperty("total", ctx.totalItems)("pageSize", ctx.pageSize)("pageSizeValues", ctx.pageSizes)("skip", ctx.skipItems);
7658
+ } }, dependencies: [i1$7.PagerComponent], encapsulation: 2 }); }
7670
7659
  }
7671
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CountryDropdownlist, [{
7660
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataPagerComponent, [{
7672
7661
  type: Component,
7673
- args: [{ selector: 'anatoly-country-dropdownlist', template: "<div *ngIf='isNgModelBased'>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <label *ngIf='isTitleVisible' class='col-form-label'>Country</label>\r\n <select [formControlName]='controlName' class='form-select'>\r\n <option *ngFor='let item of items' [value]='item.code'>\r\n {{ item.name }}\r\n </option>\r\n </select>\r\n</div>\r\n" }]
7674
- }], () => [{ type: CoreApiService }, { type: AppContextService }], null); })();
7675
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CountryDropdownlist, { className: "CountryDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\country\\country.dropdownlist.ts", lineNumber: 29 }); })();
7662
+ args: [{ selector: 'anatoly-datapager', template: "<div class='{{ classes }}'>\r\n <kendo-datapager [total]='totalItems'\r\n [pageSize]='pageSize'\r\n [pageSizeValues]='pageSizes'\r\n [skip]='skipItems'\r\n [style]='style'\r\n (pageChange)='onPageChange($event)'>\r\n </kendo-datapager>\r\n</div>\r\n" }]
7663
+ }], null, { totalItems: [{
7664
+ type: Input
7665
+ }], pageSize: [{
7666
+ type: Input
7667
+ }], skipItems: [{
7668
+ type: Input
7669
+ }], pageSizeDivisor: [{
7670
+ type: Input
7671
+ }], pageSizeMax: [{
7672
+ type: Input
7673
+ }], width: [{
7674
+ type: Input
7675
+ }], pageChange: [{
7676
+ type: Output
7677
+ }] }); })();
7678
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataPagerComponent, { className: "DataPagerComponent", filePath: "lib\\ui\\components\\datapager\\datapager.component.ts", lineNumber: 27 }); })();
7676
7679
 
7677
7680
  /*
7678
7681
  <file>
@@ -7684,135 +7687,92 @@ class CountryDropdownlist extends EditComponentBase {
7684
7687
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7685
7688
 
7686
7689
  Created:
7687
- 02 Aug 2022
7690
+ 4 Jul 2018
7688
7691
 
7689
- Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7692
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7690
7693
  </file>
7691
7694
  */
7692
7695
  //Node
7693
- function TimezoneDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
7694
- i0.ɵɵelement(0, "div");
7695
- } }
7696
- function TimezoneDropdownlist_div_1_label_1_Template(rf, ctx) { if (rf & 1) {
7697
- i0.ɵɵelementStart(0, "label", 6);
7698
- i0.ɵɵtext(1, "Timezone");
7699
- i0.ɵɵelementEnd();
7696
+ function SignInButtonComponent_a_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7697
+ i0.ɵɵelementContainer(0);
7700
7698
  } }
7701
- function TimezoneDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
7702
- i0.ɵɵelementStart(0, "option", 7);
7703
- i0.ɵɵtext(1);
7699
+ function SignInButtonComponent_a_0_Template(rf, ctx) { if (rf & 1) {
7700
+ i0.ɵɵelementStart(0, "a", 3);
7701
+ i0.ɵɵtemplate(1, SignInButtonComponent_a_0_ng_container_1_Template, 1, 0, "ng-container", 4);
7704
7702
  i0.ɵɵelementEnd();
7705
7703
  } if (rf & 2) {
7706
- const item_r4 = ctx.$implicit;
7707
- i0.ɵɵproperty("value", item_r4.code);
7704
+ const ctx_r0 = i0.ɵɵnextContext();
7705
+ const _r3 = i0.ɵɵreference(3);
7706
+ i0.ɵɵclassMap(ctx_r0.classes);
7707
+ i0.ɵɵproperty("href", ctx_r0.url, i0.ɵɵsanitizeUrl);
7708
7708
  i0.ɵɵadvance();
7709
- i0.ɵɵtextInterpolate2(" (", item_r4.offset, ") ", item_r4.name, " ");
7709
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7710
7710
  } }
7711
- function TimezoneDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
7712
- i0.ɵɵelementStart(0, "div", 2);
7713
- i0.ɵɵtemplate(1, TimezoneDropdownlist_div_1_label_1_Template, 2, 0, "label", 3);
7714
- i0.ɵɵelementStart(2, "select", 4);
7715
- i0.ɵɵtemplate(3, TimezoneDropdownlist_div_1_option_3_Template, 2, 3, "option", 5);
7716
- i0.ɵɵelementEnd()();
7711
+ function SignInButtonComponent_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7712
+ i0.ɵɵelementContainer(0);
7713
+ } }
7714
+ function SignInButtonComponent_a_1_Template(rf, ctx) { if (rf & 1) {
7715
+ i0.ɵɵelementStart(0, "a", 5);
7716
+ i0.ɵɵtemplate(1, SignInButtonComponent_a_1_ng_container_1_Template, 1, 0, "ng-container", 4);
7717
+ i0.ɵɵelementEnd();
7717
7718
  } if (rf & 2) {
7718
7719
  const ctx_r1 = i0.ɵɵnextContext();
7719
- i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
7720
- i0.ɵɵadvance();
7721
- i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
7722
- i0.ɵɵadvance();
7723
- i0.ɵɵproperty("formControlName", ctx_r1.controlName);
7720
+ const _r3 = i0.ɵɵreference(3);
7721
+ i0.ɵɵclassMap(ctx_r1.classes);
7722
+ i0.ɵɵproperty("routerLink", ctx_r1.url);
7724
7723
  i0.ɵɵadvance();
7725
- i0.ɵɵproperty("ngForOf", ctx_r1.items);
7724
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7726
7725
  } }
7727
- class TimezoneDropdownlist extends EditComponentBase {
7728
- constructor(api, appContext) {
7726
+ function SignInButtonComponent_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {
7727
+ i0.ɵɵelementStart(0, "span");
7728
+ i0.ɵɵtext(1, "Sign In");
7729
+ i0.ɵɵelementEnd();
7730
+ } }
7731
+ function SignInButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
7732
+ i0.ɵɵelementStart(0, "span", null, 6);
7733
+ i0.ɵɵprojection(2);
7734
+ i0.ɵɵelementEnd();
7735
+ i0.ɵɵtemplate(3, SignInButtonComponent_ng_template_2_span_3_Template, 2, 0, "span", 7);
7736
+ } if (rf & 2) {
7737
+ const _r6 = i0.ɵɵreference(1);
7738
+ i0.ɵɵadvance(3);
7739
+ i0.ɵɵproperty("ngIf", !_r6.innerHTML.trim());
7740
+ } }
7741
+ const _c0$7 = ["*"];
7742
+ class SignInButtonComponent extends ComponentBase {
7743
+ constructor() {
7729
7744
  super();
7730
- this.api = api;
7731
- this.appContext = appContext;
7732
- this.title = 'Timezone';
7745
+ this.external = false;
7733
7746
  }
7734
7747
  ngOnInit() {
7735
- this.setValues();
7736
- }
7737
- setValues() {
7738
- this.api.getTimezonesJsonFile().subscribe({
7739
- next: (data) => {
7740
- this.items = data.reverse();
7741
- }
7742
- });
7743
- if (this.isNgModelBased) {
7744
- }
7745
- else {
7746
- let timezone = this.getFormValue(this.controlName);
7747
- if (timezone) {
7748
- return;
7749
- }
7750
- //1. Try to set client timezone
7751
- try {
7752
- timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
7753
- this.setFormValue(this.controlName, timezone);
7754
- }
7755
- catch {
7748
+ let url = MSALConfig.ui.signin;
7749
+ if (url) {
7750
+ this.external = url.indexOf('http') > -1;
7751
+ if (this.external) {
7752
+ this.url = url + (this.qs ? '?' + this.qs : '');
7756
7753
  }
7757
- //2. Try to set context timeZone
7758
- let context = this.appContext.current;
7759
- timezone = context?.user?.timezone;
7760
- if (timezone) {
7761
- this.setFormValue(this.controlName, timezone);
7754
+ else {
7755
+ this.url = url;
7762
7756
  }
7763
7757
  }
7764
7758
  }
7765
- static { this.ɵfac = function TimezoneDropdownlist_Factory(t) { return new (t || TimezoneDropdownlist)(i0.ɵɵdirectiveInject(CoreApiService), i0.ɵɵdirectiveInject(AppContextService)); }; }
7766
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimezoneDropdownlist, selectors: [["anatoly-timezone-dropdownlist"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "formGroup", 4, "ngIf"], [3, "formGroup"], ["class", "col-form-label", 4, "ngIf"], [1, "form-select", 3, "formControlName"], [3, "value", 4, "ngFor", "ngForOf"], [1, "col-form-label"], [3, "value"]], template: function TimezoneDropdownlist_Template(rf, ctx) { if (rf & 1) {
7767
- i0.ɵɵtemplate(0, TimezoneDropdownlist_div_0_Template, 1, 0, "div", 0)(1, TimezoneDropdownlist_div_1_Template, 4, 4, "div", 1);
7759
+ static { this.ɵfac = function SignInButtonComponent_Factory(t) { return new (t || SignInButtonComponent)(); }; }
7760
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignInButtonComponent, selectors: [["anatoly-signin-button"]], inputs: { qs: "qs" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$7, decls: 4, vars: 2, consts: [[3, "href", "class", 4, "ngIf"], [3, "routerLink", "class", 4, "ngIf"], ["contentTemplate", ""], [3, "href"], [4, "ngTemplateOutlet"], [3, "routerLink"], ["ref", ""], [4, "ngIf"]], template: function SignInButtonComponent_Template(rf, ctx) { if (rf & 1) {
7761
+ i0.ɵɵprojectionDef();
7762
+ i0.ɵɵtemplate(0, SignInButtonComponent_a_0_Template, 2, 5, "a", 0)(1, SignInButtonComponent_a_1_Template, 2, 5, "a", 1)(2, SignInButtonComponent_ng_template_2_Template, 4, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
7768
7763
  } if (rf & 2) {
7769
- i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
7764
+ i0.ɵɵproperty("ngIf", ctx.external);
7770
7765
  i0.ɵɵadvance();
7771
- i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
7772
- } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective], encapsulation: 2 }); }
7773
- }
7774
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimezoneDropdownlist, [{
7775
- type: Component,
7776
- args: [{ selector: 'anatoly-timezone-dropdownlist', template: "<div *ngIf='isNgModelBased'>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <label *ngIf='isTitleVisible' class='col-form-label'>Timezone</label>\r\n <select [formControlName]='controlName' class='form-select'>\r\n <option *ngFor='let item of items' [value]='item.code'>\r\n ({{ item.offset }}) {{ item.name }}\r\n </option>\r\n </select>\r\n</div>\r\n" }]
7777
- }], () => [{ type: CoreApiService }, { type: AppContextService }], null); })();
7778
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimezoneDropdownlist, { className: "TimezoneDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\timezone\\timezone.dropdownlist.ts", lineNumber: 29 }); })();
7779
-
7780
- /*
7781
- <file>
7782
- Project:
7783
- @osovitny/anatoly
7784
-
7785
- Authors:
7786
- Anatoly Osovitny anatoly.osovitny@osovitny.com
7787
-
7788
- Created:
7789
- 29 July 2022
7790
-
7791
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7792
- </file>
7793
- */
7794
- //Node
7795
- const _c0$8 = [[["mex-card-header"]], [["mex-card-body"]], "*", [["mex-card-footer"]]];
7796
- const _c1 = ["mex-card-header", "mex-card-body", "*", "mex-card-footer"];
7797
- class CardComponent extends ComponentBase {
7798
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardComponent_BaseFactory; return function CardComponent_Factory(t) { return (ɵCardComponent_BaseFactory || (ɵCardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardComponent)))(t || CardComponent); }; })(); }
7799
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardComponent, selectors: [["anatoly-card"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 5, vars: 3, template: function CardComponent_Template(rf, ctx) { if (rf & 1) {
7800
- i0.ɵɵprojectionDef(_c0$8);
7801
- i0.ɵɵelementStart(0, "div");
7802
- i0.ɵɵprojection(1);
7803
- i0.ɵɵprojection(2, 1);
7804
- i0.ɵɵprojection(3, 2);
7805
- i0.ɵɵprojection(4, 3);
7806
- i0.ɵɵelementEnd();
7807
- } if (rf & 2) {
7808
- i0.ɵɵclassMapInterpolate1("card ", ctx.classes, "");
7809
- } }, encapsulation: 2 }); }
7766
+ i0.ɵɵproperty("ngIf", !ctx.external);
7767
+ } }, dependencies: [i1$2.NgIf, i1$2.NgTemplateOutlet, i1.RouterLink], encapsulation: 2 }); }
7810
7768
  }
7811
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardComponent, [{
7769
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignInButtonComponent, [{
7812
7770
  type: Component,
7813
- args: [{ selector: 'anatoly-card', template: "<div class='card {{ classes }}'>\r\n <ng-content select='mex-card-header'></ng-content>\r\n <ng-content select='mex-card-body'></ng-content>\r\n <ng-content></ng-content>\r\n <ng-content select='mex-card-footer'></ng-content>\r\n</div>\r\n" }]
7814
- }], null, null); })();
7815
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardComponent, { className: "CardComponent", filePath: "lib\\ui\\components\\card\\card.component.ts", lineNumber: 26 }); })();
7771
+ args: [{ selector: "anatoly-signin-button", template: "<a [href]=\"url\" class=\"{{ classes }}\" *ngIf=\"external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<a [routerLink]=\"url\" class=\"{{ classes }}\" *ngIf=\"!external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<ng-template #contentTemplate>\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign In</span>\r\n</ng-template>\r\n" }]
7772
+ }], () => [], { qs: [{
7773
+ type: Input
7774
+ }] }); })();
7775
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SignInButtonComponent, { className: "SignInButtonComponent", filePath: "lib\\ui\\components\\identity\\signin-button.component.ts", lineNumber: 28 }); })();
7816
7776
 
7817
7777
  /*
7818
7778
  <file>
@@ -7820,45 +7780,96 @@ class CardComponent extends ComponentBase {
7820
7780
  @osovitny/anatoly
7821
7781
 
7822
7782
  Authors:
7783
+ Vadim Osovitny vadim.osovitny@osovitny.com
7823
7784
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7824
7785
 
7825
7786
  Created:
7826
- 29 July 2022
7787
+ 4 Jul 2018
7827
7788
 
7828
7789
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7829
7790
  </file>
7830
7791
  */
7831
7792
  //Node
7832
- function CardHeaderComponent_h3_2_Template(rf, ctx) { if (rf & 1) {
7833
- i0.ɵɵelementStart(0, "h3");
7834
- i0.ɵɵtext(1);
7793
+ function SignOutButtonComponent_a_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7794
+ i0.ɵɵelementContainer(0);
7795
+ } }
7796
+ function SignOutButtonComponent_a_0_Template(rf, ctx) { if (rf & 1) {
7797
+ i0.ɵɵelementStart(0, "a", 3);
7798
+ i0.ɵɵtemplate(1, SignOutButtonComponent_a_0_ng_container_1_Template, 1, 0, "ng-container", 4);
7835
7799
  i0.ɵɵelementEnd();
7836
7800
  } if (rf & 2) {
7837
7801
  const ctx_r0 = i0.ɵɵnextContext();
7802
+ const _r3 = i0.ɵɵreference(3);
7803
+ i0.ɵɵclassMap(ctx_r0.classes);
7804
+ i0.ɵɵproperty("href", ctx_r0.url, i0.ɵɵsanitizeUrl);
7838
7805
  i0.ɵɵadvance();
7839
- i0.ɵɵtextInterpolate(ctx_r0.title);
7806
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7840
7807
  } }
7841
- const _c0$7 = ["*"];
7842
- class CardHeaderComponent extends ComponentBase {
7843
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardHeaderComponent_BaseFactory; return function CardHeaderComponent_Factory(t) { return (ɵCardHeaderComponent_BaseFactory || (ɵCardHeaderComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardHeaderComponent)))(t || CardHeaderComponent); }; })(); }
7844
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardHeaderComponent, selectors: [["anatoly-card-header"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$7, decls: 4, vars: 4, consts: [[1, "card-title"], [4, "ngIf"]], template: function CardHeaderComponent_Template(rf, ctx) { if (rf & 1) {
7808
+ function SignOutButtonComponent_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7809
+ i0.ɵɵelementContainer(0);
7810
+ } }
7811
+ function SignOutButtonComponent_a_1_Template(rf, ctx) { if (rf & 1) {
7812
+ i0.ɵɵelementStart(0, "a", 5);
7813
+ i0.ɵɵtemplate(1, SignOutButtonComponent_a_1_ng_container_1_Template, 1, 0, "ng-container", 4);
7814
+ i0.ɵɵelementEnd();
7815
+ } if (rf & 2) {
7816
+ const ctx_r1 = i0.ɵɵnextContext();
7817
+ const _r3 = i0.ɵɵreference(3);
7818
+ i0.ɵɵclassMap(ctx_r1.classes);
7819
+ i0.ɵɵproperty("routerLink", ctx_r1.url);
7820
+ i0.ɵɵadvance();
7821
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7822
+ } }
7823
+ function SignOutButtonComponent_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {
7824
+ i0.ɵɵelementStart(0, "span");
7825
+ i0.ɵɵtext(1, "Sign Out");
7826
+ i0.ɵɵelementEnd();
7827
+ } }
7828
+ function SignOutButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
7829
+ i0.ɵɵelementStart(0, "span", null, 6);
7830
+ i0.ɵɵprojection(2);
7831
+ i0.ɵɵelementEnd();
7832
+ i0.ɵɵtemplate(3, SignOutButtonComponent_ng_template_2_span_3_Template, 2, 0, "span", 7);
7833
+ } if (rf & 2) {
7834
+ const _r6 = i0.ɵɵreference(1);
7835
+ i0.ɵɵadvance(3);
7836
+ i0.ɵɵproperty("ngIf", !_r6.innerHTML.trim());
7837
+ } }
7838
+ const _c0$6 = ["*"];
7839
+ class SignOutButtonComponent extends ComponentBase {
7840
+ constructor() {
7841
+ super();
7842
+ this.external = false;
7843
+ }
7844
+ ngOnInit() {
7845
+ let url = MSALConfig.ui.signout;
7846
+ if (url) {
7847
+ this.external = url.indexOf('http') > -1;
7848
+ if (this.external) {
7849
+ this.url = url + (this.qs ? '?' + this.qs : '');
7850
+ }
7851
+ else {
7852
+ this.url = url;
7853
+ }
7854
+ }
7855
+ }
7856
+ static { this.ɵfac = function SignOutButtonComponent_Factory(t) { return new (t || SignOutButtonComponent)(); }; }
7857
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutButtonComponent, selectors: [["anatoly-signout-button"]], inputs: { qs: "qs" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$6, decls: 4, vars: 2, consts: [[3, "href", "class", 4, "ngIf"], [3, "routerLink", "class", 4, "ngIf"], ["contentTemplate", ""], [3, "href"], [4, "ngTemplateOutlet"], [3, "routerLink"], ["ref", ""], [4, "ngIf"]], template: function SignOutButtonComponent_Template(rf, ctx) { if (rf & 1) {
7845
7858
  i0.ɵɵprojectionDef();
7846
- i0.ɵɵelementStart(0, "div")(1, "div", 0);
7847
- i0.ɵɵtemplate(2, CardHeaderComponent_h3_2_Template, 2, 1, "h3", 1);
7848
- i0.ɵɵelementEnd();
7849
- i0.ɵɵprojection(3);
7850
- i0.ɵɵelementEnd();
7859
+ i0.ɵɵtemplate(0, SignOutButtonComponent_a_0_Template, 2, 5, "a", 0)(1, SignOutButtonComponent_a_1_Template, 2, 5, "a", 1)(2, SignOutButtonComponent_ng_template_2_Template, 4, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
7851
7860
  } if (rf & 2) {
7852
- i0.ɵɵclassMapInterpolate1("card-header ", ctx.classes, "");
7853
- i0.ɵɵadvance(2);
7854
- i0.ɵɵproperty("ngIf", ctx.title);
7855
- } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
7861
+ i0.ɵɵproperty("ngIf", ctx.external);
7862
+ i0.ɵɵadvance();
7863
+ i0.ɵɵproperty("ngIf", !ctx.external);
7864
+ } }, dependencies: [i1$2.NgIf, i1$2.NgTemplateOutlet, i1.RouterLink], encapsulation: 2 }); }
7856
7865
  }
7857
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardHeaderComponent, [{
7866
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutButtonComponent, [{
7858
7867
  type: Component,
7859
- args: [{ selector: 'anatoly-card-header', template: "<div class='card-header {{ classes }}'>\r\n <div class=\"card-title\">\r\n <h3 *ngIf='title'>{{ title }}</h3>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
7860
- }], null, null); })();
7861
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardHeaderComponent, { className: "CardHeaderComponent", filePath: "lib\\ui\\components\\card\\card-header.component.ts", lineNumber: 26 }); })();
7868
+ args: [{ selector: "anatoly-signout-button", template: "<a [href]=\"url\" class=\"{{ classes }}\" *ngIf=\"external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<a [routerLink]=\"url\" class=\"{{ classes }}\" *ngIf=\"!external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<ng-template #contentTemplate>\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Out</span>\r\n</ng-template>\r\n" }]
7869
+ }], () => [], { qs: [{
7870
+ type: Input
7871
+ }] }); })();
7872
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SignOutButtonComponent, { className: "SignOutButtonComponent", filePath: "lib\\ui\\components\\identity\\signout-button.component.ts", lineNumber: 28 }); })();
7862
7873
 
7863
7874
  /*
7864
7875
  <file>
@@ -7866,32 +7877,74 @@ class CardHeaderComponent extends ComponentBase {
7866
7877
  @osovitny/anatoly
7867
7878
 
7868
7879
  Authors:
7880
+ Vadim Osovitny vadim.osovitny@osovitny.com
7869
7881
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7870
7882
 
7871
7883
  Created:
7872
- 29 July 2022
7884
+ 29 Jul 2022
7873
7885
 
7874
7886
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7875
7887
  </file>
7876
7888
  */
7877
7889
  //Node
7878
- const _c0$6 = ["*"];
7879
- class CardBodyComponent extends ComponentBase {
7880
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardBodyComponent_BaseFactory; return function CardBodyComponent_Factory(t) { return (ɵCardBodyComponent_BaseFactory || (ɵCardBodyComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardBodyComponent)))(t || CardBodyComponent); }; })(); }
7881
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardBodyComponent, selectors: [["anatoly-card-body"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$6, decls: 2, vars: 3, template: function CardBodyComponent_Template(rf, ctx) { if (rf & 1) {
7890
+ function NodataComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
7891
+ i0.ɵɵelementStart(0, "div");
7892
+ i0.ɵɵelement(1, "fa-icon", 5);
7893
+ i0.ɵɵelementEnd();
7894
+ } if (rf & 2) {
7895
+ const ctx_r1 = i0.ɵɵnextContext(2);
7896
+ i0.ɵɵadvance();
7897
+ i0.ɵɵproperty("icon", ctx_r1.icon)("size", ctx_r1.iconSize);
7898
+ } }
7899
+ function NodataComponent_div_0_Template(rf, ctx) { if (rf & 1) {
7900
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
7901
+ i0.ɵɵtemplate(2, NodataComponent_div_0_div_2_Template, 2, 2, "div", 3);
7902
+ i0.ɵɵelementStart(3, "h3", 4);
7903
+ i0.ɵɵtext(4);
7904
+ i0.ɵɵelementEnd();
7905
+ i0.ɵɵprojection(5);
7906
+ i0.ɵɵelementEnd()();
7907
+ } if (rf & 2) {
7908
+ const ctx_r0 = i0.ɵɵnextContext();
7909
+ i0.ɵɵadvance(2);
7910
+ i0.ɵɵproperty("ngIf", ctx_r0.icon);
7911
+ i0.ɵɵadvance(2);
7912
+ i0.ɵɵtextInterpolate(ctx_r0.heading);
7913
+ } }
7914
+ const _c0$5 = ["*"];
7915
+ class NodataComponent {
7916
+ constructor() {
7917
+ this.dataLoading = false;
7918
+ this.dataLoaded = false;
7919
+ this.dataFound = false;
7920
+ this.iconSize = '10x';
7921
+ this.heading = 'No data found';
7922
+ }
7923
+ static { this.ɵfac = function NodataComponent_Factory(t) { return new (t || NodataComponent)(); }; }
7924
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NodataComponent, selectors: [["anatoly-nodata"]], inputs: { dataLoading: "dataLoading", dataLoaded: "dataLoaded", dataFound: "dataFound", icon: "icon", iconSize: "iconSize", heading: "heading" }, ngContentSelectors: _c0$5, decls: 1, vars: 1, consts: [["class", "no-data", 4, "ngIf"], [1, "no-data"], [1, "loaded", "text-info"], [4, "ngIf"], [1, "no-data-heading"], [3, "icon", "size"]], template: function NodataComponent_Template(rf, ctx) { if (rf & 1) {
7882
7925
  i0.ɵɵprojectionDef();
7883
- i0.ɵɵelementStart(0, "div");
7884
- i0.ɵɵprojection(1);
7885
- i0.ɵɵelementEnd();
7926
+ i0.ɵɵtemplate(0, NodataComponent_div_0_Template, 6, 2, "div", 0);
7886
7927
  } if (rf & 2) {
7887
- i0.ɵɵclassMapInterpolate1("card-body ", ctx.classes, "");
7888
- } }, encapsulation: 2 }); }
7928
+ i0.ɵɵproperty("ngIf", ctx.dataLoaded && !ctx.dataFound);
7929
+ } }, dependencies: [i1$2.NgIf, i1$6.FaIconComponent], encapsulation: 2 }); }
7889
7930
  }
7890
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardBodyComponent, [{
7931
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NodataComponent, [{
7891
7932
  type: Component,
7892
- args: [{ selector: 'anatoly-card-body', template: "<div class='card-body {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
7893
- }], null, null); })();
7894
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardBodyComponent, { className: "CardBodyComponent", filePath: "lib\\ui\\components\\card\\card-body.component.ts", lineNumber: 26 }); })();
7933
+ args: [{ selector: 'anatoly-nodata', template: "<div class=\"no-data\" *ngIf='dataLoaded && !dataFound'>\r\n <div class='loaded text-info'>\r\n <div *ngIf='icon'>\r\n <fa-icon [icon]=\"icon\" [size]=\"iconSize\"></fa-icon>\r\n </div>\r\n <h3 class='no-data-heading'>{{heading}}</h3>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n" }]
7934
+ }], () => [], { dataLoading: [{
7935
+ type: Input
7936
+ }], dataLoaded: [{
7937
+ type: Input
7938
+ }], dataFound: [{
7939
+ type: Input
7940
+ }], icon: [{
7941
+ type: Input
7942
+ }], iconSize: [{
7943
+ type: Input
7944
+ }], heading: [{
7945
+ type: Input
7946
+ }] }); })();
7947
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NodataComponent, { className: "NodataComponent", filePath: "lib\\ui\\components\\nodata\\nodata.component.ts", lineNumber: 25 }); })();
7895
7948
 
7896
7949
  /*
7897
7950
  <file>
@@ -7899,32 +7952,39 @@ class CardBodyComponent extends ComponentBase {
7899
7952
  @osovitny/anatoly
7900
7953
 
7901
7954
  Authors:
7902
- Anatoly Osovitny anatoly.osovitny@osovitny.com
7955
+ Leon Malyan leon.malyan@osovitny.com
7903
7956
 
7904
7957
  Created:
7905
- 29 July 2022
7958
+ 22 Juy 2024
7906
7959
 
7907
7960
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7908
7961
  </file>
7909
7962
  */
7910
7963
  //Node
7911
- const _c0$5 = ["*"];
7912
- class CardFooterComponent extends ComponentBase {
7913
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCardFooterComponent_BaseFactory; return function CardFooterComponent_Factory(t) { return (ɵCardFooterComponent_BaseFactory || (ɵCardFooterComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CardFooterComponent)))(t || CardFooterComponent); }; })(); }
7914
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CardFooterComponent, selectors: [["anatoly-card-footer"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$5, decls: 2, vars: 3, template: function CardFooterComponent_Template(rf, ctx) { if (rf & 1) {
7915
- i0.ɵɵprojectionDef();
7916
- i0.ɵɵelementStart(0, "div");
7917
- i0.ɵɵprojection(1);
7964
+ class NoMobileSupportComponent extends ComponentBase {
7965
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵNoMobileSupportComponent_BaseFactory; return function NoMobileSupportComponent_Factory(t) { return (ɵNoMobileSupportComponent_BaseFactory || (ɵNoMobileSupportComponent_BaseFactory = i0.ɵɵgetInheritedFactory(NoMobileSupportComponent)))(t || NoMobileSupportComponent); }; })(); }
7966
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NoMobileSupportComponent, selectors: [["anatoly-no-mobile-support"]], inputs: { logo: "logo" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 1, consts: [[2, "text-align", "center", "padding-top", "20px"], ["alt", "logo", 3, "src"], [2, "text-align", "center", "margin-top", "40vh"], [2, "font-size", "1.25rem"]], template: function NoMobileSupportComponent_Template(rf, ctx) { if (rf & 1) {
7967
+ i0.ɵɵelementStart(0, "div", 0);
7968
+ i0.ɵɵelement(1, "img", 1);
7918
7969
  i0.ɵɵelementEnd();
7970
+ i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "b");
7971
+ i0.ɵɵtext(5, "Mobile Site Under Construction");
7972
+ i0.ɵɵelementEnd()();
7973
+ i0.ɵɵelementStart(6, "div");
7974
+ i0.ɵɵtext(7, "Please Use Another Device");
7975
+ i0.ɵɵelementEnd()();
7919
7976
  } if (rf & 2) {
7920
- i0.ɵɵclassMapInterpolate1("card-footer ", ctx.classes, "");
7977
+ i0.ɵɵadvance();
7978
+ i0.ɵɵproperty("src", ctx.logo, i0.ɵɵsanitizeUrl);
7921
7979
  } }, encapsulation: 2 }); }
7922
7980
  }
7923
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardFooterComponent, [{
7981
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoMobileSupportComponent, [{
7924
7982
  type: Component,
7925
- args: [{ selector: 'anatoly-card-footer', template: "<div class='card-footer {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
7926
- }], null, null); })();
7927
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardFooterComponent, { className: "CardFooterComponent", filePath: "lib\\ui\\components\\card\\card-footer.component.ts", lineNumber: 26 }); })();
7983
+ args: [{ selector: 'anatoly-no-mobile-support', template: "<div style=\"text-align:center; padding-top:20px;\">\r\n <img [src]='logo' alt='logo'>\r\n</div>\r\n<div style='text-align: center; margin-top:40vh;'>\r\n <div style='font-size:1.25rem;'>\r\n <b>Mobile Site Under Construction</b>\r\n </div>\r\n <div>Please Use Another Device</div>\r\n</div>\r\n" }]
7984
+ }], null, { logo: [{
7985
+ type: Input
7986
+ }] }); })();
7987
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NoMobileSupportComponent, { className: "NoMobileSupportComponent", filePath: "lib\\ui\\components\\no-mobile-support\\no-mobile-support.component.ts", lineNumber: 26 }); })();
7928
7988
 
7929
7989
  /*
7930
7990
  <file>
@@ -7936,169 +7996,182 @@ class CardFooterComponent extends ComponentBase {
7936
7996
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7937
7997
 
7938
7998
  Created:
7939
- 12 Dec 2017
7999
+ 9 May 2020
7940
8000
 
7941
8001
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7942
8002
  </file>
7943
8003
  */
7944
- const DefaultEditorOptions = {
7945
- placeholderText: "Edit Your Content Here",
7946
- charCounterCount: true,
7947
- heightMin: 100,
7948
- toolbarInline: false,
7949
- toolbarButtons: {
7950
- moreText: {
7951
- buttons: [
7952
- "bold",
7953
- "italic",
7954
- "underline",
7955
- "strikeThrough",
7956
- "subscript",
7957
- "superscript",
7958
- "fontFamily",
7959
- "fontSize",
7960
- "textColor",
7961
- "backgroundColor",
7962
- "inlineClass",
7963
- "inlineStyle",
7964
- ],
7965
- },
7966
- moreParagraph: {
7967
- buttons: [
7968
- "alignLeft",
7969
- "alignCenter",
7970
- "formatOLSimple",
7971
- "alignRight",
7972
- "alignJustify",
7973
- "formatOL",
7974
- "formatUL",
7975
- "paragraphFormat",
7976
- "paragraphStyle",
7977
- "lineHeight",
7978
- "outdent",
7979
- "indent",
7980
- "quote",
7981
- ],
7982
- },
7983
- moreRich: {
7984
- buttons: [
7985
- "insertLink",
7986
- "insertImage",
7987
- "insertTable",
7988
- "emoticons",
7989
- "fontAwesome",
7990
- "specialCharacters",
7991
- "embedly",
7992
- ],
7993
- },
7994
- moreMisc: {
7995
- buttons: [
7996
- "selectAll",
7997
- "clearFormatting",
7998
- "html",
7999
- "undo",
8000
- "redo",
8001
- "fullscreen",
8002
- ],
8003
- align: "right",
8004
- },
8005
- },
8006
- /*
8007
- Upload:
8008
- https://www.froala.com/wysiwyg-editor/docs/concepts/image/upload
8009
- */
8010
- imageUploadURL: "/api/htmlEditor/uploadImage",
8011
- imageAllowedTypes: ["jpeg", "jpg", "png"],
8012
- imageUploadParams: { uploadType: "", uploadParentId: "" },
8013
- };
8014
-
8015
8004
  //Node
8016
- class HtmlEditorComponentBase extends EditComponentBase {
8017
- constructor() {
8005
+ function LoadingComponent_div_0_Template(rf, ctx) { if (rf & 1) {
8006
+ i0.ɵɵelementStart(0, "div", 1);
8007
+ i0.ɵɵelement(1, "span", 2);
8008
+ i0.ɵɵelementEnd();
8009
+ } }
8010
+ class LoadingComponent extends ComponentBase {
8011
+ constructor(loadingService) {
8018
8012
  super();
8019
- this.froalaEditorInitialized = false;
8020
- this.afterInitializedActions = [];
8021
- // Inputs
8022
- this.editorLabelText = "Html";
8023
- this.editorOptions = {};
8013
+ this.loadingService = loadingService;
8014
+ this.show = false;
8024
8015
  }
8025
8016
  ngOnInit() {
8026
- let opt = this.editorOptions;
8027
- if (typeof this.editorOptions == "string") {
8028
- opt = JSON.parse(this.editorOptions);
8029
- }
8030
- let newOptions = $.extend({}, DefaultEditorOptions, opt);
8031
- const key = AppCoreSettings.froalaEditorKey;
8032
- if (key) {
8033
- newOptions = $.extend({}, newOptions, JSON.parse('{ "key": "' + key + '" }'));
8034
- }
8035
- if (newOptions.events && newOptions.events.initialized) {
8036
- newOptions.events.initialized.overridden = false;
8037
- }
8038
- this.options = newOptions;
8039
- }
8040
- ngAfterViewInit() {
8041
- const that = this;
8042
- setTimeout(function () {
8043
- that.froalaEditorInitialized = true;
8044
- that.onInitialized();
8045
- }, 300);
8046
- }
8047
- onInitialized() {
8048
- let actions = this.afterInitializedActions;
8049
- // Clear actions
8050
- this.afterInitializedActions = [];
8051
- if (actions) {
8052
- for (let i = 0; i < actions.length; i++) {
8053
- actions[i]();
8017
+ this.subs.sink = this.loadingService.subscribe({
8018
+ next: (data) => {
8019
+ this.show = data;
8054
8020
  }
8055
- }
8021
+ });
8056
8022
  }
8057
- getEditor() {
8058
- if (this.froalaEditor)
8059
- return this.froalaEditor.getEditor();
8060
- return null;
8023
+ static { this.ɵfac = function LoadingComponent_Factory(t) { return new (t || LoadingComponent)(i0.ɵɵdirectiveInject(LoadingService)); }; }
8024
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LoadingComponent, selectors: [["anatoly-loading"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["id", "pnlLoading", 4, "ngIf"], ["id", "pnlLoading"], [1, "k-icon", "k-i-loading"]], template: function LoadingComponent_Template(rf, ctx) { if (rf & 1) {
8025
+ i0.ɵɵtemplate(0, LoadingComponent_div_0_Template, 2, 0, "div", 0);
8026
+ } if (rf & 2) {
8027
+ i0.ɵɵproperty("ngIf", ctx.show);
8028
+ } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
8029
+ }
8030
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoadingComponent, [{
8031
+ type: Component,
8032
+ args: [{ selector: 'anatoly-loading', template: "<div id=\"pnlLoading\" *ngIf=\"show\">\r\n <span class=\"k-icon k-i-loading\"></span>\r\n</div>\r\n" }]
8033
+ }], () => [{ type: LoadingService }], null); })();
8034
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoadingComponent, { className: "LoadingComponent", filePath: "lib\\ui\\components\\spinners\\loading\\loading.component.ts", lineNumber: 28 }); })();
8035
+
8036
+ const Spinkit = {
8037
+ skChasingDots: 'sk-chasing-dots',
8038
+ skCubeGrid: 'sk-cube-grid',
8039
+ skDoubleBounce: 'sk-double-bounce',
8040
+ skRotatingPlane: 'sk-rotationg-plane',
8041
+ skSpinnerPulse: 'sk-spinner-pulse',
8042
+ skThreeBounce: 'sk-three-bounce',
8043
+ skWanderingCubes: 'sk-wandering-cubes',
8044
+ skWave: 'sk-wave',
8045
+ skLine: 'sk-line-material'
8046
+ };
8047
+
8048
+ /*
8049
+ <file>
8050
+ Project:
8051
+ @osovitny/anatoly
8052
+
8053
+ Authors:
8054
+ Vadim Osovitny vadim.osovitny@osovitny.com
8055
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8056
+
8057
+ Created:
8058
+ 16 May 2020
8059
+
8060
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8061
+ </file>
8062
+ */
8063
+ //Node
8064
+ function PageSpinnerComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
8065
+ i0.ɵɵelementStart(0, "div", 4);
8066
+ i0.ɵɵelement(1, "div", 5);
8067
+ i0.ɵɵelementEnd();
8068
+ } if (rf & 2) {
8069
+ const ctx_r1 = i0.ɵɵnextContext(2);
8070
+ i0.ɵɵclassProp("colored", !ctx_r1.backgroundColor);
8071
+ i0.ɵɵadvance();
8072
+ i0.ɵɵstyleProp("background-color", ctx_r1.backgroundColor);
8073
+ } }
8074
+ function PageSpinnerComponent_div_0_Template(rf, ctx) { if (rf & 1) {
8075
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
8076
+ i0.ɵɵtemplate(2, PageSpinnerComponent_div_0_div_2_Template, 2, 4, "div", 3);
8077
+ i0.ɵɵelementEnd()();
8078
+ } if (rf & 2) {
8079
+ const ctx_r0 = i0.ɵɵnextContext();
8080
+ i0.ɵɵadvance(2);
8081
+ i0.ɵɵproperty("ngIf", ctx_r0.spinner === ctx_r0.Spinkit.skLine);
8082
+ } }
8083
+ class PageSpinnerComponent {
8084
+ constructor(router) {
8085
+ this.router = router;
8086
+ this.isSpinnerVisible = true;
8087
+ this.Spinkit = Spinkit;
8088
+ this.backgroundColor = '#2196f3';
8089
+ this.spinner = Spinkit.skLine;
8090
+ router.events.subscribe({
8091
+ next: (routerEvent) => {
8092
+ this.checkRouterEvent(routerEvent);
8093
+ }
8094
+ });
8061
8095
  }
8062
- // Public Funcs
8063
- doAfterInitialized(action) {
8064
- const that = this;
8065
- if (!this.froalaEditorInitialized) {
8066
- this.afterInitializedActions.push(() => {
8067
- action(that);
8068
- });
8096
+ checkRouterEvent(routerEvent) {
8097
+ if (routerEvent instanceof NavigationStart) {
8098
+ this.isSpinnerVisible = true;
8069
8099
  }
8070
- else {
8071
- action(that);
8100
+ if (routerEvent instanceof NavigationEnd ||
8101
+ routerEvent instanceof NavigationCancel ||
8102
+ routerEvent instanceof NavigationError) {
8103
+ this.isSpinnerVisible = false;
8072
8104
  }
8073
8105
  }
8074
- initializeControl(control) {
8075
- this.froalaEditor = control;
8076
- this.froalaEditor.initialize();
8106
+ ngOnDestroy() {
8107
+ this.isSpinnerVisible = false;
8077
8108
  }
8078
- setUploadParams(uploadType, uploadParentId) {
8079
- this.doAfterInitialized(function (that) {
8080
- const editor = that.getEditor();
8081
- if (typeof editor == "undefined" || editor == null) {
8082
- return;
8083
- }
8084
- editor.opts.imageUploadParams.uploadType = uploadType;
8085
- editor.opts.imageUploadParams.uploadParentId = uploadParentId;
8086
- });
8109
+ static { this.ɵfac = function PageSpinnerComponent_Factory(t) { return new (t || PageSpinnerComponent)(i0.ɵɵdirectiveInject(i1.Router)); }; }
8110
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PageSpinnerComponent, selectors: [["anatoly-pagespinner"]], inputs: { backgroundColor: "backgroundColor", spinner: "spinner" }, decls: 1, vars: 1, consts: [["id", "http-loader", 4, "ngIf"], ["id", "http-loader"], [1, "loader-bg"], ["class", "sk-line-material", 3, "colored", 4, "ngIf"], [1, "sk-line-material"], [1, "sk-child", "sk-bounce1"]], template: function PageSpinnerComponent_Template(rf, ctx) { if (rf & 1) {
8111
+ i0.ɵɵtemplate(0, PageSpinnerComponent_div_0_Template, 3, 1, "div", 0);
8112
+ } if (rf & 2) {
8113
+ i0.ɵɵproperty("ngIf", ctx.isSpinnerVisible);
8114
+ } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
8115
+ }
8116
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageSpinnerComponent, [{
8117
+ type: Component,
8118
+ args: [{ selector: 'anatoly-pagespinner', encapsulation: ViewEncapsulation.None, template: "<div id=\"http-loader\" *ngIf=\"isSpinnerVisible\">\r\n <div class=\"loader-bg\">\r\n <div class=\"sk-line-material\" [class.colored]=\"!backgroundColor\" *ngIf=\"spinner === Spinkit.skLine\">\r\n <div class=\"sk-child sk-bounce1\" [style.background-color]='backgroundColor'></div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
8119
+ }], () => [{ type: i1.Router }], { backgroundColor: [{
8120
+ type: Input
8121
+ }], spinner: [{
8122
+ type: Input
8123
+ }] }); })();
8124
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PageSpinnerComponent, { className: "PageSpinnerComponent", filePath: "lib\\ui\\components\\spinners\\pagespinner\\pagespinner.component.ts", lineNumber: 29 }); })();
8125
+
8126
+ /*
8127
+ <file>
8128
+ Project:
8129
+ @osovitny/anatoly
8130
+
8131
+ Authors:
8132
+ Vadim Osovitny vadim.osovitny@osovitny.com
8133
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8134
+
8135
+ Created:
8136
+ 9 Jun 2020
8137
+
8138
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8139
+ </file>
8140
+ */
8141
+ //Node
8142
+ class Copy2ClipboardComponent extends ComponentBase {
8143
+ constructor() {
8144
+ super(...arguments);
8145
+ this.tooltip = "Copy to clipboard";
8146
+ this.text = "";
8087
8147
  }
8088
- static { this.ɵfac = function HtmlEditorComponentBase_Factory(t) { return new (t || HtmlEditorComponentBase)(); }; }
8089
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HtmlEditorComponentBase, selectors: [["ng-component"]], inputs: { editorLabelText: "editorLabelText", editorOptions: "editorOptions" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function HtmlEditorComponentBase_Template(rf, ctx) { }, encapsulation: 2 }); }
8148
+ onCopy2Clipboard(event) {
8149
+ let oldTooltip = this.tooltip;
8150
+ this.tooltip = "Copied";
8151
+ setTimeout(() => {
8152
+ this.tooltip = oldTooltip;
8153
+ }, 1000);
8154
+ Utils.copyToClipBoard(event, this.text);
8155
+ }
8156
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCopy2ClipboardComponent_BaseFactory; return function Copy2ClipboardComponent_Factory(t) { return (ɵCopy2ClipboardComponent_BaseFactory || (ɵCopy2ClipboardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(Copy2ClipboardComponent)))(t || Copy2ClipboardComponent); }; })(); }
8157
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Copy2ClipboardComponent, selectors: [["anatoly-copy-2-clipboard"]], inputs: { tooltip: "tooltip", text: "text" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 3, consts: [[3, "click"], ["size", "lg", "icon", "copy"]], template: function Copy2ClipboardComponent_Template(rf, ctx) { if (rf & 1) {
8158
+ i0.ɵɵelementStart(0, "a", 0);
8159
+ i0.ɵɵlistener("click", function Copy2ClipboardComponent_Template_a_click_0_listener($event) { return ctx.onCopy2Clipboard($event); });
8160
+ i0.ɵɵelement(1, "fa-icon", 1);
8161
+ i0.ɵɵelementEnd();
8162
+ } if (rf & 2) {
8163
+ i0.ɵɵclassMapInterpolate1("btn ", ctx.classes, "");
8164
+ } }, dependencies: [i1$6.FaIconComponent], encapsulation: 2 }); }
8090
8165
  }
8091
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponentBase, [{
8166
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Copy2ClipboardComponent, [{
8092
8167
  type: Component,
8093
- args: [{
8094
- template: "",
8095
- }]
8096
- }], () => [], { editorLabelText: [{
8168
+ args: [{ selector: 'anatoly-copy-2-clipboard', template: "<a class=\"btn {{ classes }}\" (click)=\"onCopy2Clipboard($event)\">\r\n <fa-icon size=\"lg\" icon=\"copy\"></fa-icon>\r\n</a>\r\n" }]
8169
+ }], null, { tooltip: [{
8097
8170
  type: Input
8098
- }], editorOptions: [{
8171
+ }], text: [{
8099
8172
  type: Input
8100
8173
  }] }); })();
8101
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HtmlEditorComponentBase, { className: "HtmlEditorComponentBase", filePath: "lib\\ui\\components\\html-editor\\base-html-editor.component.ts", lineNumber: 31 }); })();
8174
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Copy2ClipboardComponent, { className: "Copy2ClipboardComponent", filePath: "lib\\ui\\components\\copy-2-clipboard\\copy-2-clipboard.component.ts", lineNumber: 28 }); })();
8102
8175
 
8103
8176
  /*
8104
8177
  <file>
@@ -8110,50 +8183,114 @@ class HtmlEditorComponentBase extends EditComponentBase {
8110
8183
  Anatoly Osovitny anatoly.osovitny@osovitny.com
8111
8184
 
8112
8185
  Created:
8113
- 12 Dec 2017
8186
+ 02 Aug 2022
8114
8187
 
8115
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8188
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
8116
8189
  </file>
8117
8190
  */
8118
8191
  //Node
8192
+ function UrlSlugComponent_label_3_Template(rf, ctx) { if (rf & 1) {
8193
+ i0.ɵɵelementStart(0, "label", 7);
8194
+ i0.ɵɵtext(1);
8195
+ i0.ɵɵelementEnd();
8196
+ } if (rf & 2) {
8197
+ const ctx_r0 = i0.ɵɵnextContext();
8198
+ i0.ɵɵadvance();
8199
+ i0.ɵɵtextInterpolate(ctx_r0.title);
8200
+ } }
8201
+ function UrlSlugComponent_a_7_Template(rf, ctx) { if (rf & 1) {
8202
+ i0.ɵɵelementStart(0, "a", 8);
8203
+ i0.ɵɵtext(1, "Go");
8204
+ i0.ɵɵelementEnd();
8205
+ } if (rf & 2) {
8206
+ const ctx_r1 = i0.ɵɵnextContext();
8207
+ i0.ɵɵpropertyInterpolate2("href", "", ctx_r1.urlPrefix, "", ctx_r1.hrefGo, "", i0.ɵɵsanitizeUrl);
8208
+ } }
8119
8209
  const _c0$4 = a0 => ({ "has-error": a0 });
8120
- class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
8210
+ class UrlSlugComponent extends EditComponentBase {
8121
8211
  constructor() {
8122
8212
  super();
8123
- this.editorFormKey = "html";
8213
+ this.firstValue = true;
8214
+ this.isGoButtonVisible = true;
8215
+ //Outputs
8216
+ this.generated = new EventEmitter();
8217
+ this.title = 'Permalink';
8124
8218
  }
8125
- setFormValueAfterInitialized(name, value) {
8126
- this.doAfterInitialized(function (that) {
8127
- that.setFormValue(name, value);
8219
+ ngOnInit() {
8220
+ this.startWatching();
8221
+ }
8222
+ generateUrlSlug(text) {
8223
+ let slugedText = Utils.slugify(text);
8224
+ let event = { urlSlug: slugedText };
8225
+ this.generated.emit(event);
8226
+ this.setFormValue(this.controlName, event.urlSlug);
8227
+ }
8228
+ startWatching() {
8229
+ this.subs.sink = this.formGroup.get(this.controlName).valueChanges.subscribe({
8230
+ next: (value) => {
8231
+ this.hrefGo = value;
8232
+ }
8128
8233
  });
8234
+ if (this.watchedControlName) {
8235
+ this.subs.sink = this.formGroup.get(this.watchedControlName).valueChanges.subscribe({
8236
+ next: (value) => {
8237
+ if (this.firstValue) {
8238
+ this.firstValue = false;
8239
+ return;
8240
+ }
8241
+ this.generateUrlSlug(value);
8242
+ }
8243
+ });
8244
+ }
8129
8245
  }
8130
- static { this.ɵfac = function FormsHtmlEditorComponent_Factory(t) { return new (t || FormsHtmlEditorComponent)(); }; }
8131
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormsHtmlEditorComponent, selectors: [["anatoly-forms-html-editor"]], inputs: { editorFormKey: "editorFormKey" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 10, consts: [[1, "form-group", 3, "formGroup", "ngClass"], [1, "col-form-label"], [3, "formControlName", "froalaEditor", "froalaInit"], [3, "formGroup", "formSubmitted", "controlName"]], template: function FormsHtmlEditorComponent_Template(rf, ctx) { if (rf & 1) {
8132
- i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
8133
- i0.ɵɵtext(2);
8134
- i0.ɵɵelementEnd();
8135
- i0.ɵɵelementStart(3, "textarea", 2);
8136
- i0.ɵɵlistener("froalaInit", function FormsHtmlEditorComponent_Template_textarea_froalaInit_3_listener($event) { return ctx.initializeControl($event); });
8246
+ //Events
8247
+ onUrlSlugChange() {
8248
+ let text = this.getFormValue(this.controlName);
8249
+ this.generateUrlSlug(text);
8250
+ }
8251
+ static { this.ɵfac = function UrlSlugComponent_Factory(t) { return new (t || UrlSlugComponent)(); }; }
8252
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UrlSlugComponent, selectors: [["anatoly-urlslug"]], inputs: { urlPrefix: "urlPrefix", isGoButtonVisible: "isGoButtonVisible", watchedControlName: "watchedControlName" }, outputs: { generated: "generated" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 12, consts: [[1, "form-group", 3, "formGroup", "ngClass"], [3, "formGroup", "formSubmitted", "controlName"], [1, "input-group", "permalink", 3, "ngClass"], ["for", "urlPrefixId", 4, "ngIf"], [1, "urlPrefix"], ["type", "text", "id", "urlPrefixId", 1, "form-control", 3, "formControlName", "focusout"], ["class", "btn btn-primary", "target", "_blank", 3, "href", 4, "ngIf"], ["for", "urlPrefixId"], ["target", "_blank", 1, "btn", "btn-primary", 3, "href"]], template: function UrlSlugComponent_Template(rf, ctx) { if (rf & 1) {
8253
+ i0.ɵɵelementStart(0, "div", 0);
8254
+ i0.ɵɵelement(1, "anatoly-item-validation-summary", 1);
8255
+ i0.ɵɵelementStart(2, "div", 2);
8256
+ i0.ɵɵtemplate(3, UrlSlugComponent_label_3_Template, 2, 1, "label", 3);
8257
+ i0.ɵɵelementStart(4, "div", 4);
8258
+ i0.ɵɵtext(5);
8137
8259
  i0.ɵɵelementEnd();
8138
- i0.ɵɵelement(4, "anatoly-item-validation-summary", 3);
8260
+ i0.ɵɵelementStart(6, "input", 5);
8261
+ i0.ɵɵlistener("focusout", function UrlSlugComponent_Template_input_focusout_6_listener() { return ctx.onUrlSlugChange(); });
8139
8262
  i0.ɵɵelementEnd();
8263
+ i0.ɵɵtemplate(7, UrlSlugComponent_a_7_Template, 2, 2, "a", 6);
8264
+ i0.ɵɵelementEnd()();
8140
8265
  } if (rf & 2) {
8141
- i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(8, _c0$4, ctx.isControlInvalid(ctx.editorFormKey)));
8266
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(10, _c0$4, ctx.isControlInvalid(ctx.controlName)));
8267
+ i0.ɵɵadvance();
8268
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.controlName);
8269
+ i0.ɵɵadvance();
8270
+ i0.ɵɵproperty("ngClass", ctx.classes);
8271
+ i0.ɵɵadvance();
8272
+ i0.ɵɵproperty("ngIf", ctx.isTitleVisible);
8142
8273
  i0.ɵɵadvance(2);
8143
- i0.ɵɵtextInterpolate(ctx.editorLabelText);
8274
+ i0.ɵɵtextInterpolate(ctx.urlPrefix);
8144
8275
  i0.ɵɵadvance();
8145
- i0.ɵɵproperty("formControlName", ctx.editorFormKey)("froalaEditor", ctx.options);
8276
+ i0.ɵɵproperty("formControlName", ctx.controlName);
8146
8277
  i0.ɵɵadvance();
8147
- i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.editorFormKey);
8148
- } }, dependencies: [i1$2.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.FroalaEditorDirective, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
8278
+ i0.ɵɵproperty("ngIf", ctx.isGoButtonVisible);
8279
+ } }, dependencies: [i1$2.NgClass, i1$2.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i4$1.LabelDirective, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
8149
8280
  }
8150
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsHtmlEditorComponent, [{
8281
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlSlugComponent, [{
8151
8282
  type: Component,
8152
- args: [{ selector: "anatoly-forms-html-editor", template: "<div [formGroup]=\"formGroup\" [ngClass]=\"{'has-error': isControlInvalid(editorFormKey) }\" class=\"form-group\" >\r\n <label class=\"col-form-label\">{{ editorLabelText }}</label>\r\n <textarea [formControlName]=\"editorFormKey\" [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\"></textarea>\r\n <anatoly-item-validation-summary [formGroup]=\"formGroup\"\r\n [formSubmitted]=\"formSubmitted\"\r\n [controlName]=\"editorFormKey\">\r\n </anatoly-item-validation-summary>\r\n</div>\r\n" }]
8153
- }], () => [], { editorFormKey: [{
8283
+ args: [{ selector: 'anatoly-urlslug', template: "<div class=\"form-group\" [formGroup]='formGroup' [ngClass]=\"{'has-error': isControlInvalid(controlName)}\" >\r\n <anatoly-item-validation-summary\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'>\r\n </anatoly-item-validation-summary>\r\n\r\n <div class=\"input-group permalink\" [ngClass]=\"classes\">\r\n <label for=\"urlPrefixId\" *ngIf='isTitleVisible'>{{ title }}</label>\r\n <div class=\"urlPrefix\">{{ urlPrefix }}</div>\r\n <input type=\"text\" class=\"form-control\" id=\"urlPrefixId\" [formControlName]='controlName' (focusout)='onUrlSlugChange()'>\r\n <a class=\"btn btn-primary\" href=\"{{urlPrefix}}{{hrefGo}}\" target=\"_blank\" *ngIf=\"isGoButtonVisible\" >Go</a>\r\n </div>\r\n</div>\r\n" }]
8284
+ }], () => [], { urlPrefix: [{
8285
+ type: Input
8286
+ }], isGoButtonVisible: [{
8287
+ type: Input
8288
+ }], watchedControlName: [{
8154
8289
  type: Input
8290
+ }], generated: [{
8291
+ type: Output
8155
8292
  }] }); })();
8156
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormsHtmlEditorComponent, { className: "FormsHtmlEditorComponent", filePath: "lib\\ui\\components\\html-editor\\forms-html-editor.component.ts", lineNumber: 27 }); })();
8293
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UrlSlugComponent, { className: "UrlSlugComponent", filePath: "lib\\ui\\components\\urlslug\\urlslug.component.ts", lineNumber: 28 }); })();
8157
8294
 
8158
8295
  /*
8159
8296
  <file>
@@ -8161,56 +8298,107 @@ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
8161
8298
  @osovitny/anatoly
8162
8299
 
8163
8300
  Authors:
8164
- Vadim Osovitny vadim.osovitny@osovitny.com
8165
8301
  Anatoly Osovitny anatoly.osovitny@osovitny.com
8166
8302
 
8167
8303
  Created:
8168
- 12 Dec 2017
8304
+ 4 Feb 2024
8169
8305
 
8170
8306
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8171
8307
  </file>
8172
8308
  */
8173
8309
  //Node
8174
- class HtmlEditorComponent extends HtmlEditorComponentBase {
8310
+ function FeatureWillBeReadyComponent_h3_1_Template(rf, ctx) { if (rf & 1) {
8311
+ i0.ɵɵelementStart(0, "h3");
8312
+ i0.ɵɵtext(1);
8313
+ i0.ɵɵelementEnd();
8314
+ } if (rf & 2) {
8315
+ const ctx_r0 = i0.ɵɵnextContext();
8316
+ i0.ɵɵadvance();
8317
+ i0.ɵɵtextInterpolate1("This feature will be ready in ", ctx_r0.readyDate, " ");
8318
+ } }
8319
+ function FeatureWillBeReadyComponent_h3_2_Template(rf, ctx) { if (rf & 1) {
8320
+ i0.ɵɵelementStart(0, "h3");
8321
+ i0.ɵɵtext(1, "This feature will be available soon");
8322
+ i0.ɵɵelementEnd();
8323
+ } }
8324
+ class FeatureWillBeReadyComponent extends ComponentBase {
8325
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵFeatureWillBeReadyComponent_BaseFactory; return function FeatureWillBeReadyComponent_Factory(t) { return (ɵFeatureWillBeReadyComponent_BaseFactory || (ɵFeatureWillBeReadyComponent_BaseFactory = i0.ɵɵgetInheritedFactory(FeatureWillBeReadyComponent)))(t || FeatureWillBeReadyComponent); }; })(); }
8326
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureWillBeReadyComponent, selectors: [["anatoly-feature-will-be-ready"]], inputs: { readyDate: "readyDate" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [[1, "feature-will-be-ready"], [4, "ngIf"]], template: function FeatureWillBeReadyComponent_Template(rf, ctx) { if (rf & 1) {
8327
+ i0.ɵɵelementStart(0, "div", 0);
8328
+ i0.ɵɵtemplate(1, FeatureWillBeReadyComponent_h3_1_Template, 2, 1, "h3", 1)(2, FeatureWillBeReadyComponent_h3_2_Template, 2, 0, "h3", 1);
8329
+ i0.ɵɵelementEnd();
8330
+ } if (rf & 2) {
8331
+ i0.ɵɵadvance();
8332
+ i0.ɵɵproperty("ngIf", ctx.readyDate);
8333
+ i0.ɵɵadvance();
8334
+ i0.ɵɵproperty("ngIf", !ctx.readyDate);
8335
+ } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
8336
+ }
8337
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureWillBeReadyComponent, [{
8338
+ type: Component,
8339
+ args: [{ selector: 'anatoly-feature-will-be-ready', template: "<div class='feature-will-be-ready'>\r\n <h3 *ngIf='readyDate'>This feature will be ready in {{ readyDate }} </h3>\r\n <h3 *ngIf='!readyDate'>This feature will be available soon</h3>\r\n</div>\r\n" }]
8340
+ }], null, { readyDate: [{
8341
+ type: Input
8342
+ }] }); })();
8343
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FeatureWillBeReadyComponent, { className: "FeatureWillBeReadyComponent", filePath: "lib\\ui\\components\\feature-will-be-ready\\feature-will-be-ready.component.ts", lineNumber: 26 }); })();
8344
+
8345
+ /*
8346
+ <file>
8347
+ Project:
8348
+ @osovitny/anatoly
8349
+
8350
+ Authors:
8351
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8352
+
8353
+ Created:
8354
+ 21 Feb 2024
8355
+
8356
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8357
+ </file>
8358
+ */
8359
+ //Node
8360
+ function YouAgreeToOurTermsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
8361
+ i0.ɵɵelement(0, "br");
8362
+ } }
8363
+ class YouAgreeToOurTermsComponent extends ComponentBase {
8175
8364
  constructor() {
8176
- super();
8177
- }
8178
- setHtml(content) {
8179
- this.doAfterInitialized(function (that) {
8180
- let editor = that.getEditor();
8181
- if (typeof editor == "undefined" || editor == null) {
8182
- return;
8183
- }
8184
- editor.html.set(content);
8185
- });
8186
- }
8187
- getHtml() {
8188
- let editor = this.getEditor();
8189
- if (typeof editor == "undefined" || editor == null) {
8190
- return;
8191
- }
8192
- return editor.html.get(false);
8365
+ super(...arguments);
8366
+ this.oneLine = true;
8193
8367
  }
8194
- static { this.ɵfac = function HtmlEditorComponent_Factory(t) { return new (t || HtmlEditorComponent)(); }; }
8195
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HtmlEditorComponent, selectors: [["anatoly-html-editor"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 2, consts: [[1, "form-group"], [1, "col-form-label"], [3, "froalaEditor", "froalaInit"]], template: function HtmlEditorComponent_Template(rf, ctx) { if (rf & 1) {
8196
- i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
8368
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵYouAgreeToOurTermsComponent_BaseFactory; return function YouAgreeToOurTermsComponent_Factory(t) { return (ɵYouAgreeToOurTermsComponent_BaseFactory || (ɵYouAgreeToOurTermsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(YouAgreeToOurTermsComponent)))(t || YouAgreeToOurTermsComponent); }; })(); }
8369
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: YouAgreeToOurTermsComponent, selectors: [["anatoly-you-agree-to-our-terms"]], inputs: { prefix: "prefix", oneLine: "oneLine" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 4, consts: [[1, "you-agree-to-our-terms"], ["target", "_blank", "rel", "noopener", 3, "href"]], template: function YouAgreeToOurTermsComponent_Template(rf, ctx) { if (rf & 1) {
8370
+ i0.ɵɵelementStart(0, "div", 0)(1, "p");
8197
8371
  i0.ɵɵtext(2);
8372
+ i0.ɵɵtemplate(3, YouAgreeToOurTermsComponent_Conditional_3_Template, 1, 0, "br");
8373
+ i0.ɵɵelementStart(4, "a", 1);
8374
+ i0.ɵɵtext(5, "Terms of use");
8198
8375
  i0.ɵɵelementEnd();
8199
- i0.ɵɵelementStart(3, "textarea", 2);
8200
- i0.ɵɵlistener("froalaInit", function HtmlEditorComponent_Template_textarea_froalaInit_3_listener($event) { return ctx.initializeControl($event); });
8376
+ i0.ɵɵtext(6, " and ");
8377
+ i0.ɵɵelementStart(7, "a", 1);
8378
+ i0.ɵɵtext(8, "Privacy Policy");
8379
+ i0.ɵɵelementEnd();
8380
+ i0.ɵɵtext(9, ". ");
8201
8381
  i0.ɵɵelementEnd()();
8202
8382
  } if (rf & 2) {
8203
8383
  i0.ɵɵadvance(2);
8204
- i0.ɵɵtextInterpolate(ctx.editorLabelText);
8384
+ i0.ɵɵtextInterpolate1(" ", ctx.prefix, " you agree to our ");
8205
8385
  i0.ɵɵadvance();
8206
- i0.ɵɵproperty("froalaEditor", ctx.options);
8207
- } }, dependencies: [i3.FroalaEditorDirective], encapsulation: 2 }); }
8386
+ i0.ɵɵconditional(3, !ctx.oneLine ? 3 : -1);
8387
+ i0.ɵɵadvance();
8388
+ i0.ɵɵproperty("href", ctx.applicationOneUrl + "legal/terms", i0.ɵɵsanitizeUrl);
8389
+ i0.ɵɵadvance(3);
8390
+ i0.ɵɵproperty("href", ctx.applicationOneUrl + "legal/privacy", i0.ɵɵsanitizeUrl);
8391
+ } }, encapsulation: 2 }); }
8208
8392
  }
8209
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponent, [{
8393
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(YouAgreeToOurTermsComponent, [{
8210
8394
  type: Component,
8211
- args: [{ selector: "anatoly-html-editor", template: "<div class=\"form-group\">\r\n <label class=\"col-form-label\">{{ editorLabelText }}</label>\r\n <textarea [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\"></textarea>\r\n</div>\r\n" }]
8212
- }], () => [], null); })();
8213
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HtmlEditorComponent, { className: "HtmlEditorComponent", filePath: "lib\\ui\\components\\html-editor\\html-editor.component.ts", lineNumber: 27 }); })();
8395
+ args: [{ selector: 'anatoly-you-agree-to-our-terms', template: "<div class=\"you-agree-to-our-terms\">\r\n <p>\r\n {{ prefix }} you agree to our\r\n @if (!oneLine) {\r\n <br />\r\n }\r\n <a [href]=\"applicationOneUrl + 'legal/terms'\" target=\"_blank\" rel=\"noopener\">Terms of use</a>\r\n and\r\n <a [href]=\"applicationOneUrl + 'legal/privacy'\" target=\"_blank\" rel=\"noopener\">Privacy Policy</a>.\r\n </p>\r\n</div>\r\n" }]
8396
+ }], null, { prefix: [{
8397
+ type: Input
8398
+ }], oneLine: [{
8399
+ type: Input
8400
+ }] }); })();
8401
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(YouAgreeToOurTermsComponent, { className: "YouAgreeToOurTermsComponent", filePath: "lib\\ui\\components\\you-agree-to-our-terms\\you-agree-to-our-terms.component.ts", lineNumber: 26 }); })();
8214
8402
 
8215
8403
  /*
8216
8404
  <file>
@@ -9757,64 +9945,142 @@ class KendoModule {
9757
9945
  static { this.ɵfac = function KendoModule_Factory(t) { return new (t || KendoModule)(); }; }
9758
9946
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: KendoModule }); }
9759
9947
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
9948
+ LayoutModule,
9760
9949
  ButtonsModule,
9761
- DialogsModule,
9762
9950
  DropDownsModule,
9763
9951
  InputsModule,
9952
+ LabelModule,
9953
+ ScrollViewModule,
9954
+ IntlModule,
9955
+ DateInputsModule,
9956
+ FormFieldModule,
9957
+ IconsModule,
9958
+ DialogsModule,
9959
+ UploadsModule,
9960
+ SchedulerModule,
9961
+ ChartsModule,
9962
+ GridModule,
9963
+ LabelModule,
9764
9964
  PagerModule,
9965
+ RippleModule,
9966
+ PopupModule,
9765
9967
  TreeViewModule,
9766
- TooltipsModule,
9767
- IconsModule, ButtonsModule,
9768
- DialogsModule,
9968
+ TooltipsModule, LayoutModule,
9969
+ ButtonsModule,
9769
9970
  DropDownsModule,
9770
9971
  InputsModule,
9972
+ LabelModule,
9973
+ ScrollViewModule,
9974
+ IntlModule,
9975
+ DateInputsModule,
9976
+ FormFieldModule,
9977
+ IconsModule,
9978
+ DialogsModule,
9979
+ UploadsModule,
9980
+ SchedulerModule,
9981
+ ChartsModule,
9982
+ GridModule,
9983
+ LabelModule,
9771
9984
  PagerModule,
9985
+ RippleModule,
9986
+ PopupModule,
9772
9987
  TreeViewModule,
9773
- TooltipsModule,
9774
- IconsModule] }); }
9988
+ TooltipsModule] }); }
9775
9989
  }
9776
9990
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KendoModule, [{
9777
9991
  type: NgModule,
9778
9992
  args: [{
9779
9993
  imports: [
9780
9994
  CommonModule,
9995
+ LayoutModule,
9781
9996
  ButtonsModule,
9782
- DialogsModule,
9783
9997
  DropDownsModule,
9784
9998
  InputsModule,
9999
+ LabelModule,
10000
+ ScrollViewModule,
10001
+ IntlModule,
10002
+ DateInputsModule,
10003
+ FormFieldModule,
10004
+ IconsModule,
10005
+ DialogsModule,
10006
+ UploadsModule,
10007
+ SchedulerModule,
10008
+ ChartsModule,
10009
+ GridModule,
10010
+ LabelModule,
9785
10011
  PagerModule,
10012
+ RippleModule,
10013
+ PopupModule,
9786
10014
  TreeViewModule,
9787
- TooltipsModule,
9788
- IconsModule,
10015
+ TooltipsModule
9789
10016
  ],
9790
10017
  exports: [
10018
+ LayoutModule,
9791
10019
  ButtonsModule,
9792
- DialogsModule,
9793
10020
  DropDownsModule,
9794
10021
  InputsModule,
10022
+ LabelModule,
10023
+ ScrollViewModule,
10024
+ IntlModule,
10025
+ DateInputsModule,
10026
+ FormFieldModule,
10027
+ IconsModule,
10028
+ DialogsModule,
10029
+ UploadsModule,
10030
+ SchedulerModule,
10031
+ ChartsModule,
10032
+ GridModule,
10033
+ LabelModule,
9795
10034
  PagerModule,
10035
+ RippleModule,
10036
+ PopupModule,
9796
10037
  TreeViewModule,
9797
- TooltipsModule,
9798
- IconsModule
10038
+ TooltipsModule
9799
10039
  ]
9800
10040
  }]
9801
10041
  }], null, null); })();
9802
10042
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(KendoModule, { imports: [CommonModule,
10043
+ LayoutModule,
9803
10044
  ButtonsModule,
9804
- DialogsModule,
9805
10045
  DropDownsModule,
9806
10046
  InputsModule,
10047
+ LabelModule,
10048
+ ScrollViewModule,
10049
+ IntlModule,
10050
+ DateInputsModule,
10051
+ FormFieldModule,
10052
+ IconsModule,
10053
+ DialogsModule,
10054
+ UploadsModule,
10055
+ SchedulerModule,
10056
+ ChartsModule,
10057
+ GridModule,
10058
+ LabelModule,
9807
10059
  PagerModule,
10060
+ RippleModule,
10061
+ PopupModule,
9808
10062
  TreeViewModule,
9809
- TooltipsModule,
9810
- IconsModule], exports: [ButtonsModule,
9811
- DialogsModule,
10063
+ TooltipsModule], exports: [LayoutModule,
10064
+ ButtonsModule,
9812
10065
  DropDownsModule,
9813
10066
  InputsModule,
10067
+ LabelModule,
10068
+ ScrollViewModule,
10069
+ IntlModule,
10070
+ DateInputsModule,
10071
+ FormFieldModule,
10072
+ IconsModule,
10073
+ DialogsModule,
10074
+ UploadsModule,
10075
+ SchedulerModule,
10076
+ ChartsModule,
10077
+ GridModule,
10078
+ LabelModule,
9814
10079
  PagerModule,
10080
+ RippleModule,
10081
+ PopupModule,
9815
10082
  TreeViewModule,
9816
- TooltipsModule,
9817
- IconsModule] }); })();
10083
+ TooltipsModule] }); })();
9818
10084
 
9819
10085
  /*
9820
10086
  <file>
@@ -9928,6 +10194,8 @@ const MAIN_COMPONENTS = [
9928
10194
  DataPagerComponent,
9929
10195
  //Dropdownlists
9930
10196
  CountryDropdownlist,
10197
+ ModerationStatusDropdownlist,
10198
+ PublishStatusDropdownlist,
9931
10199
  TimezoneDropdownlist,
9932
10200
  //EhmlEditor
9933
10201
  HtmlEditorComponent,
@@ -10077,6 +10345,7 @@ class AnatolyUIModule {
10077
10345
  FormsModule,
10078
10346
  NgxCaptchaModule,
10079
10347
  FERootModule,
10348
+ //External Modules
10080
10349
  FaModule,
10081
10350
  KendoModule] }); }
10082
10351
  }
@@ -10090,6 +10359,7 @@ class AnatolyUIModule {
10090
10359
  FormsModule,
10091
10360
  NgxCaptchaModule,
10092
10361
  FERootModule,
10362
+ //External Modules
10093
10363
  FaModule,
10094
10364
  KendoModule
10095
10365
  ],
@@ -10101,14 +10371,15 @@ class AnatolyUIModule {
10101
10371
  ]
10102
10372
  }]
10103
10373
  }], null, null); })();
10104
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyUIModule, { declarations: [BuyAccessButtonComponent, SubscribePlanButtonComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CheckIconComponent, Copy2ClipboardComponent, DataPagerComponent, CountryDropdownlist, TimezoneDropdownlist, HtmlEditorComponent, FormsHtmlEditorComponent, SignInButtonComponent, SignUpButtonComponent, SignOutButtonComponent, NodataComponent, NoMobileSupportComponent, PageSpinnerComponent, LoadingComponent, UrlSlugComponent, FeatureWillBeReadyComponent, YouAgreeToOurTermsComponent, ContactUsDialog, NativeElementDirective, HoveringDirective, AddressComponent, CompanyComponent, ContactUsForm, SafeHtmlPipe, ReplaceTextPipe, FileSizePipe, FormValidationSummaryComponent, ItemValidationSummaryComponent], imports: [CommonModule,
10374
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyUIModule, { declarations: [BuyAccessButtonComponent, SubscribePlanButtonComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CheckIconComponent, Copy2ClipboardComponent, DataPagerComponent, CountryDropdownlist, ModerationStatusDropdownlist, PublishStatusDropdownlist, TimezoneDropdownlist, HtmlEditorComponent, FormsHtmlEditorComponent, SignInButtonComponent, SignUpButtonComponent, SignOutButtonComponent, NodataComponent, NoMobileSupportComponent, PageSpinnerComponent, LoadingComponent, UrlSlugComponent, FeatureWillBeReadyComponent, YouAgreeToOurTermsComponent, ContactUsDialog, NativeElementDirective, HoveringDirective, AddressComponent, CompanyComponent, ContactUsForm, SafeHtmlPipe, ReplaceTextPipe, FileSizePipe, FormValidationSummaryComponent, ItemValidationSummaryComponent], imports: [CommonModule,
10105
10375
  RouterModule,
10106
10376
  ReactiveFormsModule,
10107
10377
  FormsModule,
10108
10378
  NgxCaptchaModule,
10109
10379
  FERootModule,
10380
+ //External Modules
10110
10381
  FaModule,
10111
- KendoModule], exports: [BuyAccessButtonComponent, SubscribePlanButtonComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CheckIconComponent, Copy2ClipboardComponent, DataPagerComponent, CountryDropdownlist, TimezoneDropdownlist, HtmlEditorComponent, FormsHtmlEditorComponent, SignInButtonComponent, SignUpButtonComponent, SignOutButtonComponent, NodataComponent, NoMobileSupportComponent, PageSpinnerComponent, LoadingComponent, UrlSlugComponent, FeatureWillBeReadyComponent, YouAgreeToOurTermsComponent, ContactUsDialog, NativeElementDirective, HoveringDirective, AddressComponent, CompanyComponent, ContactUsForm, SafeHtmlPipe, ReplaceTextPipe, FileSizePipe, FormValidationSummaryComponent, ItemValidationSummaryComponent] }); })();
10382
+ KendoModule], exports: [BuyAccessButtonComponent, SubscribePlanButtonComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CheckIconComponent, Copy2ClipboardComponent, DataPagerComponent, CountryDropdownlist, ModerationStatusDropdownlist, PublishStatusDropdownlist, TimezoneDropdownlist, HtmlEditorComponent, FormsHtmlEditorComponent, SignInButtonComponent, SignUpButtonComponent, SignOutButtonComponent, NodataComponent, NoMobileSupportComponent, PageSpinnerComponent, LoadingComponent, UrlSlugComponent, FeatureWillBeReadyComponent, YouAgreeToOurTermsComponent, ContactUsDialog, NativeElementDirective, HoveringDirective, AddressComponent, CompanyComponent, ContactUsForm, SafeHtmlPipe, ReplaceTextPipe, FileSizePipe, FormValidationSummaryComponent, ItemValidationSummaryComponent] }); })();
10112
10383
 
10113
10384
  /*
10114
10385
  <file>
@@ -10173,5 +10444,5 @@ class AnatolyModule {
10173
10444
  * Generated bundle index. Do not edit.
10174
10445
  */
10175
10446
 
10176
- export { AddressComponent, AdminGuard, Alerts, AnatolyBillingModule, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyIAMModule, AnatolyIAMPagesModule, AnatolyModule, AnatolyUIModule, ApiServiceBase, ApiUrl, AppContextService, AppCoreSettings, AppName, AppSettings, AppVersion, AppsGoServiceBase, AuthService, AuthenticationGuard, BillingUtils, BraintreeDialog, Browser, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CheckIconComponent, ClientApps, CompanyComponent, ComponentBase, ContactUsDialog, ContactUsForm, Convert, Copy2ClipboardComponent, CoreApiService, CountryDropdownlist, CurrenciesApiService, CurrenciesStorageService, DOM, DataPagerComponent, DataViewType, DateConvert, DefaultEditorOptions, DialogBase, DigitalMarketingService, DiscountCodeStatus, DiscountCodeType, DiscountCodesApiService, EditComponentBase, EditPageBase, EmailsApiService, EnumEditComponentBase, FeatureWillBeReadyComponent, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, GABillingEvents, GAEvents, GlobalErrorHandler, GoServiceBase, GoogleAnalyticsService, GridEditServiceBase, GridReadServiceBase, Guid, HoveringDirective, HtmlEditorComponent, HtmlEditorComponentBase, IdleService, InjectorInstance, IsDevMode, IsProdMode, ItemValidationSummaryComponent, L10NUrl, L10nUtils, ListBase, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, MSALUtils, NativeElementDirective, NoMobileSupportComponent, NodataComponent, NotificationService, OrderSummaryComponent, PageBase, PageSpinnerComponent, PagedPageBase, PayPalComponent, PayPalScriptService, PaymentMethod, PaymentMethodsComponent, PaymentOptionsComponent, PaymentStage, PaymentType, PaymentsApiService, PaymentsService, PaypalButtonComponent, QSUtils, ReplaceTextPipe, SafeHtmlPipe, ScriptService, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, StarterGuard, StarterService, Stopwatch, StripeDialog, Subs, SubscribePlanButtonComponent, TimezoneDropdownlist, TransactionsApiService, UrlSlugComponent, Utils, ValidationSummaryComponent, XmlFormatter, YouAgreeToOurTermsComponent, dateFormats, dateTimeFormats, getAppSettingsById, getAppSettingsByName, is, localizationInitializerFactory, throwIfAlreadyLoaded, timeFormats, translateLoaderFactory };
10447
+ export { AddressComponent, AdminGuard, Alerts, AnatolyBillingModule, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyIAMModule, AnatolyIAMPagesModule, AnatolyModule, AnatolyUIModule, ApiServiceBase, ApiUrl, AppContextService, AppCoreSettings, AppName, AppSettings, AppVersion, AppsGoServiceBase, AuthService, AuthenticationGuard, BillingUtils, BraintreeDialog, Browser, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CheckIconComponent, ClientApps, CompanyComponent, ComponentBase, ContactUsDialog, ContactUsForm, Convert, Copy2ClipboardComponent, CoreApiService, CountryDropdownlist, CurrenciesApiService, CurrenciesStorageService, DOM, DataPagerComponent, DataViewType, DateConvert, DefaultEditorOptions, DialogBase, DigitalMarketingService, DiscountCodeStatus, DiscountCodeType, DiscountCodesApiService, EditComponentBase, EditPageBase, EmailsApiService, EnumEditComponentBase, FeatureWillBeReadyComponent, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, GABillingEvents, GAEvents, GlobalErrorHandler, GoServiceBase, GoogleAnalyticsService, GridEditServiceBase, GridReadServiceBase, Guid, HoveringDirective, HtmlEditorComponent, HtmlEditorComponentBase, IdleService, InjectorInstance, IsDevMode, IsProdMode, ItemValidationSummaryComponent, L10NUrl, L10nUtils, ListBase, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, MSALUtils, ModerationStatus, ModerationStatusDropdownlist, NativeElementDirective, NoMobileSupportComponent, NodataComponent, NotificationService, OrderSummaryComponent, PageBase, PageSpinnerComponent, PagedPageBase, PayPalComponent, PayPalScriptService, PaymentMethod, PaymentMethodsComponent, PaymentOptionsComponent, PaymentStage, PaymentType, PaymentsApiService, PaymentsService, PaypalButtonComponent, PublishStatus, PublishStatusDropdownlist, QSUtils, ReplaceTextPipe, SafeHtmlPipe, ScriptService, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, StarterGuard, StarterService, Stopwatch, StripeDialog, Subs, SubscribePlanButtonComponent, TimezoneDropdownlist, TransactionsApiService, UrlSlugComponent, Utils, ValidationSummaryComponent, XmlFormatter, YouAgreeToOurTermsComponent, dateFormats, dateTimeFormats, getAppSettingsById, getAppSettingsByName, is, localizationInitializerFactory, throwIfAlreadyLoaded, timeFormats, translateLoaderFactory };
10177
10448
  //# sourceMappingURL=osovitny-anatoly.mjs.map