@osovitny/anatoly 3.17.97 → 3.17.98

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,151 @@ 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);
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) {
6698
+ i0.ɵɵprojectionDef();
6699
+ i0.ɵɵelementStart(0, "div");
6700
+ i0.ɵɵprojection(1);
6701
+ i0.ɵɵelementEnd();
6702
+ } if (rf & 2) {
6703
+ i0.ɵɵclassMapInterpolate1("card-footer ", ctx.classes, "");
6704
+ } }, encapsulation: 2 }); }
6705
+ }
6706
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardFooterComponent, [{
6707
+ type: Component,
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 }); })();
6711
+
6712
+ /*
6713
+ <file>
6714
+ Project:
6715
+ @osovitny/anatoly
6716
+
6717
+ Authors:
6718
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6719
+
6720
+ Created:
6721
+ 28 Jun 2020
6722
+
6723
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6724
+ </file>
6725
+ */
6726
+ //Node
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");
6808
6763
  } }
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");
6764
+ function CountryDropdownlist_div_1_label_1_Template(rf, ctx) { if (rf & 1) {
6765
+ i0.ɵɵelementStart(0, "label", 6);
6766
+ i0.ɵɵtext(1, "Country");
6812
6767
  i0.ɵɵelementEnd();
6813
6768
  } }
6814
- function SignOutButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
6815
- i0.ɵɵelementStart(0, "span", null, 6);
6816
- i0.ɵɵprojection(2);
6769
+ function CountryDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
6770
+ i0.ɵɵelementStart(0, "option", 7);
6771
+ i0.ɵɵtext(1);
6817
6772
  i0.ɵɵelementEnd();
6818
- i0.ɵɵtemplate(3, SignOutButtonComponent_ng_template_2_span_3_Template, 2, 0, "span", 7);
6819
6773
  } if (rf & 2) {
6820
- const _r6 = i0.ɵɵreference(1);
6821
- i0.ɵɵadvance(3);
6822
- i0.ɵɵproperty("ngIf", !_r6.innerHTML.trim());
6774
+ const item_r4 = ctx.$implicit;
6775
+ i0.ɵɵproperty("value", item_r4.code);
6776
+ i0.ɵɵadvance();
6777
+ i0.ɵɵtextInterpolate1(" ", item_r4.name, " ");
6823
6778
  } }
6824
- const _c0$b = ["*"];
6825
- class SignOutButtonComponent extends ComponentBase {
6826
- constructor() {
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);
6784
+ i0.ɵɵelementEnd()();
6785
+ } if (rf & 2) {
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);
6794
+ } }
6795
+ class CountryDropdownlist extends EditComponentBase {
6796
+ constructor(api, appContext) {
6827
6797
  super();
6828
- this.external = false;
6798
+ this.api = api;
6799
+ this.appContext = appContext;
6800
+ this.title = 'Country';
6829
6801
  }
6830
6802
  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;
6803
+ this.setValues();
6804
+ }
6805
+ setValues() {
6806
+ this.api.getCountriesJsonFile().subscribe({
6807
+ next: (data) => {
6808
+ this.items = data.reverse();
6839
6809
  }
6810
+ });
6811
+ if (this.isNgModelBased) {
6812
+ }
6813
+ else {
6840
6814
  }
6841
6815
  }
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) {
6844
- 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);
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);
6846
6819
  } if (rf & 2) {
6847
- i0.ɵɵproperty("ngIf", ctx.external);
6820
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6848
6821
  i0.ɵɵadvance();
6849
- i0.ɵɵproperty("ngIf", !ctx.external);
6850
- } }, dependencies: [i1$2.NgIf, i1$2.NgTemplateOutlet, i1.RouterLink], encapsulation: 2 }); }
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 }); }
6851
6824
  }
6852
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutButtonComponent, [{
6825
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CountryDropdownlist, [{
6853
6826
  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 }); })();
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 }); })();
6859
6830
 
6860
6831
  /*
6861
6832
  <file>
@@ -6864,73 +6835,84 @@ class SignOutButtonComponent extends ComponentBase {
6864
6835
 
6865
6836
  Authors:
6866
6837
  Vadim Osovitny vadim.osovitny@osovitny.com
6867
- Anatoly Osovitny anatoly.osovitny@osovitny.com
6868
-
6838
+
6869
6839
  Created:
6870
- 29 Jul 2022
6840
+ 11 Nov 2024
6871
6841
 
6872
6842
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6873
6843
  </file>
6874
6844
  */
6845
+
6846
+ /*
6847
+ <file>
6848
+ Project:
6849
+ @osovitny/anatoly
6850
+
6851
+ Authors:
6852
+ Vadim Osovitny vadim.osovitny@osovitny.com
6853
+
6854
+ Created:
6855
+ 20 Jan 2024
6856
+
6857
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
6858
+ </file>
6859
+ */
6875
6860
  //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);
6879
- i0.ɵɵelementEnd();
6861
+ function ModerationStatusDropdownlist_div_0_kendo_label_2_Template(rf, ctx) { if (rf & 1) {
6862
+ const _r4 = i0.ɵɵgetCurrentView();
6863
+ i0.ɵɵelementStart(0, "kendo-label", 4)(1, "kendo-dropdownlist", 5);
6864
+ i0.ɵɵlistener("ngModelChange", function ModerationStatusDropdownlist_div_0_kendo_label_2_Template_kendo_dropdownlist_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.sv = $event); })("valueChange", function ModerationStatusDropdownlist_div_0_kendo_label_2_Template_kendo_dropdownlist_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r5.onChange($event)); });
6865
+ i0.ɵɵelementEnd()();
6880
6866
  } if (rf & 2) {
6881
- const ctx_r1 = i0.ɵɵnextContext(2);
6867
+ const ctx_r2 = i0.ɵɵnextContext(2);
6868
+ i0.ɵɵpropertyInterpolate("text", ctx_r2.title);
6882
6869
  i0.ɵɵadvance();
6883
- i0.ɵɵproperty("icon", ctx_r1.icon)("size", ctx_r1.iconSize);
6870
+ i0.ɵɵproperty("data", ctx_r2.items)("valuePrimitive", true)("ngModel", ctx_r2.sv);
6884
6871
  } }
6885
- function NodataComponent_div_0_Template(rf, ctx) { if (rf & 1) {
6872
+ function ModerationStatusDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
6886
6873
  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);
6874
+ i0.ɵɵtemplate(2, ModerationStatusDropdownlist_div_0_kendo_label_2_Template, 2, 4, "kendo-label", 3);
6892
6875
  i0.ɵɵelementEnd()();
6893
6876
  } if (rf & 2) {
6894
6877
  const ctx_r0 = i0.ɵɵnextContext();
6895
6878
  i0.ɵɵadvance(2);
6896
- i0.ɵɵproperty("ngIf", ctx_r0.icon);
6879
+ i0.ɵɵproperty("ngIf", ctx_r0.isTitleVisible);
6880
+ } }
6881
+ function ModerationStatusDropdownlist_div_1_kendo_label_2_Template(rf, ctx) { if (rf & 1) {
6882
+ i0.ɵɵelement(0, "kendo-label", 4);
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)(1, "div", 2);
6889
+ i0.ɵɵtemplate(2, ModerationStatusDropdownlist_div_1_kendo_label_2_Template, 1, 1, "kendo-label", 3);
6890
+ i0.ɵɵelementEnd()();
6891
+ } if (rf & 2) {
6892
+ const ctx_r1 = i0.ɵɵnextContext();
6897
6893
  i0.ɵɵadvance(2);
6898
- i0.ɵɵtextInterpolate(ctx_r0.heading);
6894
+ i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
6899
6895
  } }
6900
- const _c0$a = ["*"];
6901
- class NodataComponent {
6896
+ class ModerationStatusDropdownlist extends EnumEditComponentBase {
6902
6897
  constructor() {
6903
- this.dataLoading = false;
6904
- this.dataLoaded = false;
6905
- this.dataFound = false;
6906
- this.iconSize = '10x';
6907
- this.heading = 'No data found';
6898
+ super();
6899
+ this.title = 'Moderation Status';
6900
+ this.enumeration = ModerationStatus;
6908
6901
  }
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);
6902
+ static { this.ɵfac = function ModerationStatusDropdownlist_Factory(t) { return new (t || ModerationStatusDropdownlist)(); }; }
6903
+ 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"], [3, "text"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "ngModel", "ngModelChange", "valueChange"]], template: function ModerationStatusDropdownlist_Template(rf, ctx) { if (rf & 1) {
6904
+ i0.ɵɵtemplate(0, ModerationStatusDropdownlist_div_0_Template, 3, 1, "div", 0)(1, ModerationStatusDropdownlist_div_1_Template, 3, 1, "div", 0);
6913
6905
  } if (rf & 2) {
6914
- i0.ɵɵproperty("ngIf", ctx.dataLoaded && !ctx.dataFound);
6915
- } }, dependencies: [i1$2.NgIf, i1$6.FaIconComponent], encapsulation: 2 }); }
6906
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6907
+ i0.ɵɵadvance();
6908
+ i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6909
+ } }, dependencies: [i1$2.NgIf, i2.NgControlStatus, i2.NgModel, i3.DropDownListComponent, i4$1.LabelComponent], encapsulation: 2 }); }
6916
6910
  }
6917
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NodataComponent, [{
6911
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModerationStatusDropdownlist, [{
6918
6912
  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 }); })();
6913
+ 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'>\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 </kendo-label>\r\n </div>\r\n</div>\r\n\r\n<div class=\"form-group\" *ngIf='!isNgModelBased'>\r\n <div class=\"controls\">\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n </div>\r\n</div>\r\n" }]
6914
+ }], () => [], null); })();
6915
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModerationStatusDropdownlist, { className: "ModerationStatusDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\moderationstatus\\moderationstatus.dropdownlist.ts", lineNumber: 27 }); })();
6934
6916
 
6935
6917
  /*
6936
6918
  <file>
@@ -6938,98 +6920,70 @@ class NodataComponent {
6938
6920
  @osovitny/anatoly
6939
6921
 
6940
6922
  Authors:
6941
- Leon Malyan leon.malyan@osovitny.com
6923
+ Vadim Osovitny vadim.osovitny@osovitny.com
6942
6924
 
6943
6925
  Created:
6944
- 22 Juy 2024
6926
+ 20 Jan 2024
6945
6927
 
6946
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6928
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
6947
6929
  </file>
6948
6930
  */
6949
6931
  //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
-
6975
- /*
6976
- <file>
6977
- Project:
6978
- @osovitny/anatoly
6979
-
6980
- Authors:
6981
- Vadim Osovitny vadim.osovitny@osovitny.com
6982
- Anatoly Osovitny anatoly.osovitny@osovitny.com
6983
-
6984
- Created:
6985
- 9 May 2020
6986
-
6987
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
6988
- </file>
6989
- */
6990
- //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();
6932
+ function PublishStatusDropdownlist_div_0_kendo_label_2_Template(rf, ctx) { if (rf & 1) {
6933
+ const _r4 = i0.ɵɵgetCurrentView();
6934
+ i0.ɵɵelementStart(0, "kendo-label", 4)(1, "kendo-dropdownlist", 5);
6935
+ i0.ɵɵlistener("ngModelChange", function PublishStatusDropdownlist_div_0_kendo_label_2_Template_kendo_dropdownlist_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.sv = $event); })("valueChange", function PublishStatusDropdownlist_div_0_kendo_label_2_Template_kendo_dropdownlist_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r5.onChange($event)); });
6936
+ i0.ɵɵelementEnd()();
6937
+ } if (rf & 2) {
6938
+ const ctx_r2 = i0.ɵɵnextContext(2);
6939
+ i0.ɵɵpropertyInterpolate("text", ctx_r2.title);
6940
+ i0.ɵɵadvance();
6941
+ i0.ɵɵproperty("data", ctx_r2.items)("valuePrimitive", true)("ngModel", ctx_r2.sv);
6995
6942
  } }
6996
- class LoadingComponent extends ComponentBase {
6997
- constructor(loadingService) {
6943
+ function PublishStatusDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
6944
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
6945
+ i0.ɵɵtemplate(2, PublishStatusDropdownlist_div_0_kendo_label_2_Template, 2, 4, "kendo-label", 3);
6946
+ i0.ɵɵelementEnd()();
6947
+ } if (rf & 2) {
6948
+ const ctx_r0 = i0.ɵɵnextContext();
6949
+ i0.ɵɵadvance(2);
6950
+ i0.ɵɵproperty("ngIf", ctx_r0.isTitleVisible);
6951
+ } }
6952
+ function PublishStatusDropdownlist_div_1_kendo_label_2_Template(rf, ctx) { if (rf & 1) {
6953
+ i0.ɵɵelement(0, "kendo-label", 4);
6954
+ } if (rf & 2) {
6955
+ const ctx_r6 = i0.ɵɵnextContext(2);
6956
+ i0.ɵɵpropertyInterpolate("text", ctx_r6.title);
6957
+ } }
6958
+ function PublishStatusDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
6959
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
6960
+ i0.ɵɵtemplate(2, PublishStatusDropdownlist_div_1_kendo_label_2_Template, 1, 1, "kendo-label", 3);
6961
+ i0.ɵɵelementEnd()();
6962
+ } if (rf & 2) {
6963
+ const ctx_r1 = i0.ɵɵnextContext();
6964
+ i0.ɵɵadvance(2);
6965
+ i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
6966
+ } }
6967
+ class PublishStatusDropdownlist extends EnumEditComponentBase {
6968
+ constructor() {
6998
6969
  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
- });
6970
+ this.title = 'Publish Status';
6971
+ this.enumeration = PublishStatus;
7008
6972
  }
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);
6973
+ static { this.ɵfac = function PublishStatusDropdownlist_Factory(t) { return new (t || PublishStatusDropdownlist)(); }; }
6974
+ 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"], [3, "text"], ["valueField", "value", "textField", "text", 3, "data", "valuePrimitive", "ngModel", "ngModelChange", "valueChange"]], template: function PublishStatusDropdownlist_Template(rf, ctx) { if (rf & 1) {
6975
+ i0.ɵɵtemplate(0, PublishStatusDropdownlist_div_0_Template, 3, 1, "div", 0)(1, PublishStatusDropdownlist_div_1_Template, 3, 1, "div", 0);
7012
6976
  } if (rf & 2) {
7013
- i0.ɵɵproperty("ngIf", ctx.show);
7014
- } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
6977
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6978
+ i0.ɵɵadvance();
6979
+ i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6980
+ } }, dependencies: [i1$2.NgIf, i2.NgControlStatus, i2.NgModel, i3.DropDownListComponent, i4$1.LabelComponent], encapsulation: 2 }); }
7015
6981
  }
7016
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoadingComponent, [{
6982
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PublishStatusDropdownlist, [{
7017
6983
  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
- };
6984
+ 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'>\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 </kendo-label>\r\n </div>\r\n</div>\r\n\r\n<div class=\"form-group\" *ngIf='!isNgModelBased'>\r\n <div class=\"controls\">\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n </div>\r\n</div>\r\n" }]
6985
+ }], () => [], null); })();
6986
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PublishStatusDropdownlist, { className: "PublishStatusDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\publishstatus\\publishstatus.dropdownlist.ts", lineNumber: 27 }); })();
7033
6987
 
7034
6988
  /*
7035
6989
  <file>
@@ -7041,73 +6995,98 @@ const Spinkit = {
7041
6995
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7042
6996
 
7043
6997
  Created:
7044
- 16 May 2020
6998
+ 02 Aug 2022
7045
6999
 
7046
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7000
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7047
7001
  </file>
7048
7002
  */
7049
7003
  //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);
7004
+ function TimezoneDropdownlist_div_0_Template(rf, ctx) { if (rf & 1) {
7005
+ i0.ɵɵelement(0, "div");
7006
+ } }
7007
+ function TimezoneDropdownlist_div_1_label_1_Template(rf, ctx) { if (rf & 1) {
7008
+ i0.ɵɵelementStart(0, "label", 6);
7009
+ i0.ɵɵtext(1, "Timezone");
7010
+ i0.ɵɵelementEnd();
7011
+ } }
7012
+ function TimezoneDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
7013
+ i0.ɵɵelementStart(0, "option", 7);
7014
+ i0.ɵɵtext(1);
7053
7015
  i0.ɵɵelementEnd();
7054
7016
  } if (rf & 2) {
7055
- const ctx_r1 = i0.ɵɵnextContext(2);
7056
- i0.ɵɵclassProp("colored", !ctx_r1.backgroundColor);
7017
+ const item_r4 = ctx.$implicit;
7018
+ i0.ɵɵproperty("value", item_r4.code);
7057
7019
  i0.ɵɵadvance();
7058
- i0.ɵɵstyleProp("background-color", ctx_r1.backgroundColor);
7020
+ i0.ɵɵtextInterpolate2(" (", item_r4.offset, ") ", item_r4.name, " ");
7059
7021
  } }
7060
- function PageSpinnerComponent_div_0_Template(rf, ctx) { if (rf & 1) {
7061
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
7062
- i0.ɵɵtemplate(2, PageSpinnerComponent_div_0_div_2_Template, 2, 4, "div", 3);
7022
+ function TimezoneDropdownlist_div_1_Template(rf, ctx) { if (rf & 1) {
7023
+ i0.ɵɵelementStart(0, "div", 2);
7024
+ i0.ɵɵtemplate(1, TimezoneDropdownlist_div_1_label_1_Template, 2, 0, "label", 3);
7025
+ i0.ɵɵelementStart(2, "select", 4);
7026
+ i0.ɵɵtemplate(3, TimezoneDropdownlist_div_1_option_3_Template, 2, 3, "option", 5);
7063
7027
  i0.ɵɵelementEnd()();
7064
7028
  } if (rf & 2) {
7065
- const ctx_r0 = i0.ɵɵnextContext();
7066
- i0.ɵɵadvance(2);
7067
- i0.ɵɵproperty("ngIf", ctx_r0.spinner === ctx_r0.Spinkit.skLine);
7029
+ const ctx_r1 = i0.ɵɵnextContext();
7030
+ i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
7031
+ i0.ɵɵadvance();
7032
+ i0.ɵɵproperty("ngIf", ctx_r1.isTitleVisible);
7033
+ i0.ɵɵadvance();
7034
+ i0.ɵɵproperty("formControlName", ctx_r1.controlName);
7035
+ i0.ɵɵadvance();
7036
+ i0.ɵɵproperty("ngForOf", ctx_r1.items);
7068
7037
  } }
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);
7038
+ class TimezoneDropdownlist extends EditComponentBase {
7039
+ constructor(api, appContext) {
7040
+ super();
7041
+ this.api = api;
7042
+ this.appContext = appContext;
7043
+ this.title = 'Timezone';
7044
+ }
7045
+ ngOnInit() {
7046
+ this.setValues();
7047
+ }
7048
+ setValues() {
7049
+ this.api.getTimezonesJsonFile().subscribe({
7050
+ next: (data) => {
7051
+ this.items = data.reverse();
7079
7052
  }
7080
7053
  });
7081
- }
7082
- checkRouterEvent(routerEvent) {
7083
- if (routerEvent instanceof NavigationStart) {
7084
- this.isSpinnerVisible = true;
7054
+ if (this.isNgModelBased) {
7085
7055
  }
7086
- if (routerEvent instanceof NavigationEnd ||
7087
- routerEvent instanceof NavigationCancel ||
7088
- routerEvent instanceof NavigationError) {
7089
- this.isSpinnerVisible = false;
7056
+ else {
7057
+ let timezone = this.getFormValue(this.controlName);
7058
+ if (timezone) {
7059
+ return;
7060
+ }
7061
+ //1. Try to set client timezone
7062
+ try {
7063
+ timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
7064
+ this.setFormValue(this.controlName, timezone);
7065
+ }
7066
+ catch {
7067
+ }
7068
+ //2. Try to set context timeZone
7069
+ let context = this.appContext.current;
7070
+ timezone = context?.user?.timezone;
7071
+ if (timezone) {
7072
+ this.setFormValue(this.controlName, timezone);
7073
+ }
7090
7074
  }
7091
7075
  }
7092
- ngOnDestroy() {
7093
- this.isSpinnerVisible = false;
7094
- }
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);
7076
+ static { this.ɵfac = function TimezoneDropdownlist_Factory(t) { return new (t || TimezoneDropdownlist)(i0.ɵɵdirectiveInject(CoreApiService), i0.ɵɵdirectiveInject(AppContextService)); }; }
7077
+ 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) {
7078
+ i0.ɵɵtemplate(0, TimezoneDropdownlist_div_0_Template, 1, 0, "div", 0)(1, TimezoneDropdownlist_div_1_Template, 4, 4, "div", 1);
7098
7079
  } if (rf & 2) {
7099
- i0.ɵɵproperty("ngIf", ctx.isSpinnerVisible);
7100
- } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
7080
+ i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
7081
+ i0.ɵɵadvance();
7082
+ i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
7083
+ } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective], encapsulation: 2 }); }
7101
7084
  }
7102
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageSpinnerComponent, [{
7085
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimezoneDropdownlist, [{
7103
7086
  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 }); })();
7087
+ 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" }]
7088
+ }], () => [{ type: CoreApiService }, { type: AppContextService }], null); })();
7089
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimezoneDropdownlist, { className: "TimezoneDropdownlist", filePath: "lib\\ui\\components\\dropdownlists\\timezone\\timezone.dropdownlist.ts", lineNumber: 29 }); })();
7111
7090
 
7112
7091
  /*
7113
7092
  <file>
@@ -7119,79 +7098,169 @@ class PageSpinnerComponent {
7119
7098
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7120
7099
 
7121
7100
  Created:
7122
- 9 Jun 2020
7101
+ 12 Dec 2017
7123
7102
 
7124
7103
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7125
7104
  </file>
7126
7105
  */
7127
- //Node
7128
- class Copy2ClipboardComponent extends ComponentBase {
7129
- constructor() {
7130
- super(...arguments);
7131
- this.tooltip = "Copy to clipboard";
7132
- this.text = "";
7133
- }
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);
7141
- }
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();
7148
- } if (rf & 2) {
7149
- i0.ɵɵclassMapInterpolate1("btn ", ctx.classes, "");
7150
- } }, dependencies: [i1$6.FaIconComponent], encapsulation: 2 }); }
7151
- }
7152
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Copy2ClipboardComponent, [{
7153
- 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 }); })();
7161
-
7162
- /*
7163
- <file>
7164
- Project:
7165
- @osovitny/anatoly
7166
-
7167
- Authors:
7168
- Anatoly Osovitny anatoly.osovitny@osovitny.com
7169
-
7170
- Created:
7171
- 28 Jun 2020
7106
+ const DefaultEditorOptions = {
7107
+ placeholderText: "Edit Your Content Here",
7108
+ charCounterCount: true,
7109
+ heightMin: 100,
7110
+ toolbarInline: false,
7111
+ toolbarButtons: {
7112
+ moreText: {
7113
+ buttons: [
7114
+ "bold",
7115
+ "italic",
7116
+ "underline",
7117
+ "strikeThrough",
7118
+ "subscript",
7119
+ "superscript",
7120
+ "fontFamily",
7121
+ "fontSize",
7122
+ "textColor",
7123
+ "backgroundColor",
7124
+ "inlineClass",
7125
+ "inlineStyle",
7126
+ ],
7127
+ },
7128
+ moreParagraph: {
7129
+ buttons: [
7130
+ "alignLeft",
7131
+ "alignCenter",
7132
+ "formatOLSimple",
7133
+ "alignRight",
7134
+ "alignJustify",
7135
+ "formatOL",
7136
+ "formatUL",
7137
+ "paragraphFormat",
7138
+ "paragraphStyle",
7139
+ "lineHeight",
7140
+ "outdent",
7141
+ "indent",
7142
+ "quote",
7143
+ ],
7144
+ },
7145
+ moreRich: {
7146
+ buttons: [
7147
+ "insertLink",
7148
+ "insertImage",
7149
+ "insertTable",
7150
+ "emoticons",
7151
+ "fontAwesome",
7152
+ "specialCharacters",
7153
+ "embedly",
7154
+ ],
7155
+ },
7156
+ moreMisc: {
7157
+ buttons: [
7158
+ "selectAll",
7159
+ "clearFormatting",
7160
+ "html",
7161
+ "undo",
7162
+ "redo",
7163
+ "fullscreen",
7164
+ ],
7165
+ align: "right",
7166
+ },
7167
+ },
7168
+ /*
7169
+ Upload:
7170
+ https://www.froala.com/wysiwyg-editor/docs/concepts/image/upload
7171
+ */
7172
+ imageUploadURL: "/api/htmlEditor/uploadImage",
7173
+ imageAllowedTypes: ["jpeg", "jpg", "png"],
7174
+ imageUploadParams: { uploadType: "", uploadParentId: "" },
7175
+ };
7172
7176
 
7173
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7174
- </file>
7175
- */
7176
7177
  //Node
7177
- class NativeElementDirective {
7178
- constructor(el, control) {
7179
- this.el = el;
7180
- this.control = control;
7178
+ class HtmlEditorComponentBase extends EditComponentBase {
7179
+ constructor() {
7180
+ super();
7181
+ this.froalaEditorInitialized = false;
7182
+ this.afterInitializedActions = [];
7183
+ // Inputs
7184
+ this.editorLabelText = "Html";
7185
+ this.editorOptions = {};
7181
7186
  }
7182
7187
  ngOnInit() {
7183
- // sets the localization key to the control
7184
- this.control.control.nativeElement = this.el.nativeElement;
7188
+ let opt = this.editorOptions;
7189
+ if (typeof this.editorOptions == "string") {
7190
+ opt = JSON.parse(this.editorOptions);
7191
+ }
7192
+ let newOptions = $.extend({}, DefaultEditorOptions, opt);
7193
+ const key = AppCoreSettings.froalaEditorKey;
7194
+ if (key) {
7195
+ newOptions = $.extend({}, newOptions, JSON.parse('{ "key": "' + key + '" }'));
7196
+ }
7197
+ if (newOptions.events && newOptions.events.initialized) {
7198
+ newOptions.events.initialized.overridden = false;
7199
+ }
7200
+ this.options = newOptions;
7185
7201
  }
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", ""]] }); }
7202
+ ngAfterViewInit() {
7203
+ const that = this;
7204
+ setTimeout(function () {
7205
+ that.froalaEditorInitialized = true;
7206
+ that.onInitialized();
7207
+ }, 300);
7208
+ }
7209
+ onInitialized() {
7210
+ let actions = this.afterInitializedActions;
7211
+ // Clear actions
7212
+ this.afterInitializedActions = [];
7213
+ if (actions) {
7214
+ for (let i = 0; i < actions.length; i++) {
7215
+ actions[i]();
7216
+ }
7217
+ }
7218
+ }
7219
+ getEditor() {
7220
+ if (this.froalaEditor)
7221
+ return this.froalaEditor.getEditor();
7222
+ return null;
7223
+ }
7224
+ // Public Funcs
7225
+ doAfterInitialized(action) {
7226
+ const that = this;
7227
+ if (!this.froalaEditorInitialized) {
7228
+ this.afterInitializedActions.push(() => {
7229
+ action(that);
7230
+ });
7231
+ }
7232
+ else {
7233
+ action(that);
7234
+ }
7235
+ }
7236
+ initializeControl(control) {
7237
+ this.froalaEditor = control;
7238
+ this.froalaEditor.initialize();
7239
+ }
7240
+ setUploadParams(uploadType, uploadParentId) {
7241
+ this.doAfterInitialized(function (that) {
7242
+ const editor = that.getEditor();
7243
+ if (typeof editor == "undefined" || editor == null) {
7244
+ return;
7245
+ }
7246
+ editor.opts.imageUploadParams.uploadType = uploadType;
7247
+ editor.opts.imageUploadParams.uploadParentId = uploadParentId;
7248
+ });
7249
+ }
7250
+ static { this.ɵfac = function HtmlEditorComponentBase_Factory(t) { return new (t || HtmlEditorComponentBase)(); }; }
7251
+ 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 }); }
7188
7252
  }
7189
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeElementDirective, [{
7190
- type: Directive,
7253
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponentBase, [{
7254
+ type: Component,
7191
7255
  args: [{
7192
- selector: '[formControl], [formControlName]'
7256
+ template: "",
7193
7257
  }]
7194
- }], () => [{ type: i0.ElementRef }, { type: i2.NgControl }], null); })();
7258
+ }], () => [], { editorLabelText: [{
7259
+ type: Input
7260
+ }], editorOptions: [{
7261
+ type: Input
7262
+ }] }); })();
7263
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HtmlEditorComponentBase, { className: "HtmlEditorComponentBase", filePath: "lib\\ui\\components\\html-editor\\base-html-editor.component.ts", lineNumber: 31 }); })();
7195
7264
 
7196
7265
  /*
7197
7266
  <file>
@@ -7371,114 +7440,50 @@ class ItemValidationSummaryComponent extends ValidationSummaryComponent {
7371
7440
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7372
7441
 
7373
7442
  Created:
7374
- 02 Aug 2022
7443
+ 12 Dec 2017
7375
7444
 
7376
- Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7445
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7377
7446
  </file>
7378
7447
  */
7379
7448
  //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
7449
  const _c0$9 = a0 => ({ "has-error": a0 });
7398
- class UrlSlugComponent extends EditComponentBase {
7450
+ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
7399
7451
  constructor() {
7400
7452
  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);
7453
+ this.editorFormKey = "html";
7415
7454
  }
7416
- startWatching() {
7417
- this.subs.sink = this.formGroup.get(this.controlName).valueChanges.subscribe({
7418
- next: (value) => {
7419
- this.hrefGo = value;
7420
- }
7455
+ setFormValueAfterInitialized(name, value) {
7456
+ this.doAfterInitialized(function (that) {
7457
+ that.setFormValue(name, value);
7421
7458
  });
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
7459
  }
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);
7460
+ static { this.ɵfac = function FormsHtmlEditorComponent_Factory(t) { return new (t || FormsHtmlEditorComponent)(); }; }
7461
+ 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) {
7462
+ i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
7463
+ i0.ɵɵtext(2);
7447
7464
  i0.ɵɵelementEnd();
7448
- i0.ɵɵelementStart(6, "input", 5);
7449
- i0.ɵɵlistener("focusout", function UrlSlugComponent_Template_input_focusout_6_listener() { return ctx.onUrlSlugChange(); });
7465
+ i0.ɵɵelementStart(3, "textarea", 2);
7466
+ i0.ɵɵlistener("froalaInit", function FormsHtmlEditorComponent_Template_textarea_froalaInit_3_listener($event) { return ctx.initializeControl($event); });
7467
+ i0.ɵɵelementEnd();
7468
+ i0.ɵɵelement(4, "anatoly-item-validation-summary", 3);
7450
7469
  i0.ɵɵelementEnd();
7451
- i0.ɵɵtemplate(7, UrlSlugComponent_a_7_Template, 2, 2, "a", 6);
7452
- i0.ɵɵelementEnd()();
7453
7470
  } 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);
7471
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(8, _c0$9, ctx.isControlInvalid(ctx.editorFormKey)));
7472
+ i0.ɵɵadvance(2);
7473
+ i0.ɵɵtextInterpolate(ctx.editorLabelText);
7457
7474
  i0.ɵɵadvance();
7458
- i0.ɵɵproperty("ngClass", ctx.classes);
7475
+ i0.ɵɵproperty("formControlName", ctx.editorFormKey)("froalaEditor", ctx.options);
7459
7476
  i0.ɵɵadvance();
7460
- i0.ɵɵproperty("ngIf", ctx.isTitleVisible);
7461
- i0.ɵɵadvance(2);
7462
- i0.ɵɵtextInterpolate(ctx.urlPrefix);
7463
- i0.ɵɵadvance();
7464
- i0.ɵɵproperty("formControlName", ctx.controlName);
7465
- 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 }); }
7477
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.editorFormKey);
7478
+ } }, dependencies: [i1$2.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3$1.FroalaEditorDirective, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
7468
7479
  }
7469
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlSlugComponent, [{
7480
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsHtmlEditorComponent, [{
7470
7481
  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: [{
7482
+ 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" }]
7483
+ }], () => [], { editorFormKey: [{
7477
7484
  type: Input
7478
- }], generated: [{
7479
- type: Output
7480
7485
  }] }); })();
7481
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UrlSlugComponent, { className: "UrlSlugComponent", filePath: "lib\\ui\\components\\urlslug\\urlslug.component.ts", lineNumber: 28 }); })();
7486
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormsHtmlEditorComponent, { className: "FormsHtmlEditorComponent", filePath: "lib\\ui\\components\\html-editor\\forms-html-editor.component.ts", lineNumber: 27 }); })();
7482
7487
 
7483
7488
  /*
7484
7489
  <file>
@@ -7486,49 +7491,95 @@ class UrlSlugComponent extends EditComponentBase {
7486
7491
  @osovitny/anatoly
7487
7492
 
7488
7493
  Authors:
7494
+ Vadim Osovitny vadim.osovitny@osovitny.com
7489
7495
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7490
7496
 
7491
7497
  Created:
7492
- 4 Feb 2024
7498
+ 12 Dec 2017
7493
7499
 
7494
7500
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7495
7501
  </file>
7496
7502
  */
7497
7503
  //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);
7504
+ class HtmlEditorComponent extends HtmlEditorComponentBase {
7505
+ constructor() {
7506
+ super();
7507
+ }
7508
+ setHtml(content) {
7509
+ this.doAfterInitialized(function (that) {
7510
+ let editor = that.getEditor();
7511
+ if (typeof editor == "undefined" || editor == null) {
7512
+ return;
7513
+ }
7514
+ editor.html.set(content);
7515
+ });
7516
+ }
7517
+ getHtml() {
7518
+ let editor = this.getEditor();
7519
+ if (typeof editor == "undefined" || editor == null) {
7520
+ return;
7521
+ }
7522
+ return editor.html.get(false);
7523
+ }
7524
+ static { this.ɵfac = function HtmlEditorComponent_Factory(t) { return new (t || HtmlEditorComponent)(); }; }
7525
+ 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) {
7526
+ i0.ɵɵelementStart(0, "div", 0)(1, "label", 1);
7527
+ i0.ɵɵtext(2);
7517
7528
  i0.ɵɵelementEnd();
7529
+ i0.ɵɵelementStart(3, "textarea", 2);
7530
+ i0.ɵɵlistener("froalaInit", function HtmlEditorComponent_Template_textarea_froalaInit_3_listener($event) { return ctx.initializeControl($event); });
7531
+ i0.ɵɵelementEnd()();
7518
7532
  } if (rf & 2) {
7533
+ i0.ɵɵadvance(2);
7534
+ i0.ɵɵtextInterpolate(ctx.editorLabelText);
7519
7535
  i0.ɵɵadvance();
7520
- i0.ɵɵproperty("ngIf", ctx.readyDate);
7521
- i0.ɵɵadvance();
7522
- i0.ɵɵproperty("ngIf", !ctx.readyDate);
7523
- } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
7536
+ i0.ɵɵproperty("froalaEditor", ctx.options);
7537
+ } }, dependencies: [i3$1.FroalaEditorDirective], encapsulation: 2 }); }
7524
7538
  }
7525
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureWillBeReadyComponent, [{
7539
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponent, [{
7526
7540
  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: [{
7541
+ 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" }]
7542
+ }], () => [], null); })();
7543
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HtmlEditorComponent, { className: "HtmlEditorComponent", filePath: "lib\\ui\\components\\html-editor\\html-editor.component.ts", lineNumber: 27 }); })();
7544
+
7545
+ /*
7546
+ <file>
7547
+ Project:
7548
+ @osovitny/anatoly
7549
+
7550
+ Authors:
7551
+ Vadim Osovitny vadim.osovitny@osovitny.com
7552
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7553
+
7554
+ Created:
7555
+ 15 Aug 2022
7556
+
7557
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7558
+ </file>
7559
+ */
7560
+ //Node
7561
+ const _c0$8 = ["*"];
7562
+ class CheckIconComponent {
7563
+ constructor() {
7564
+ //Inputs
7565
+ this.checked = true;
7566
+ }
7567
+ static { this.ɵfac = function CheckIconComponent_Factory(t) { return new (t || CheckIconComponent)(); }; }
7568
+ 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) {
7569
+ i0.ɵɵprojectionDef();
7570
+ i0.ɵɵelement(0, "fa-icon", 0);
7571
+ i0.ɵɵprojection(1);
7572
+ } if (rf & 2) {
7573
+ i0.ɵɵproperty("icon", ctx.checked ? "check-circle" : "circle-xmark")("ngClass", ctx.checked ? "text-success" : "text-danger");
7574
+ } }, dependencies: [i1$2.NgClass, i1$6.FaIconComponent], encapsulation: 2 }); }
7575
+ }
7576
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckIconComponent, [{
7577
+ type: Component,
7578
+ 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" }]
7579
+ }], null, { checked: [{
7529
7580
  type: Input
7530
7581
  }] }); })();
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 }); })();
7582
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckIconComponent, { className: "CheckIconComponent", filePath: "lib\\ui\\components\\check-icon\\check-icon.component.ts", lineNumber: 24 }); })();
7532
7583
 
7533
7584
  /*
7534
7585
  <file>
@@ -7536,57 +7587,89 @@ class FeatureWillBeReadyComponent extends ComponentBase {
7536
7587
  @osovitny/anatoly
7537
7588
 
7538
7589
  Authors:
7590
+ Vadim Osovitny vadim.osovitny@osovitny.com
7539
7591
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7540
7592
 
7541
7593
  Created:
7542
- 21 Feb 2024
7594
+ 28 Aug 2022
7543
7595
 
7544
7596
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7545
7597
  </file>
7546
7598
  */
7547
7599
  //Node
7548
- function YouAgreeToOurTermsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
7549
- i0.ɵɵelement(0, "br");
7550
- } }
7551
- class YouAgreeToOurTermsComponent extends ComponentBase {
7600
+ class DataPagerComponent extends ComponentBase {
7552
7601
  constructor() {
7553
7602
  super(...arguments);
7554
- this.oneLine = true;
7603
+ //Private
7604
+ this._defaultPageSizes = [5, 10, 20, 30];
7605
+ //Public
7606
+ this.pageSizes = [];
7607
+ //Inputs
7608
+ this.totalItems = 0;
7609
+ this.pageSize = 0;
7610
+ this.skipItems = 0;
7611
+ this.pageSizeMax = 30;
7612
+ //Outputs
7613
+ this.pageChange = new EventEmitter();
7555
7614
  }
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, ". ");
7615
+ get width() {
7616
+ return this._width;
7617
+ }
7618
+ set width(value) {
7619
+ this._width = value;
7620
+ if (value) {
7621
+ this.style = "width: " + value;
7622
+ }
7623
+ }
7624
+ ngOnInit() {
7625
+ this.pageSizes = [];
7626
+ if (this.pageSizeDivisor) {
7627
+ for (let i = 3; i < this.pageSizeMax; i++) {
7628
+ let remainder = i % this.pageSizeDivisor;
7629
+ if (remainder == 0) {
7630
+ this.pageSizes.push(i);
7631
+ }
7632
+ }
7633
+ }
7634
+ else {
7635
+ this.pageSizes = this._defaultPageSizes;
7636
+ }
7637
+ }
7638
+ //Events
7639
+ onPageChange(e) {
7640
+ this.pageChange.emit(e);
7641
+ }
7642
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵDataPagerComponent_BaseFactory; return function DataPagerComponent_Factory(t) { return (ɵDataPagerComponent_BaseFactory || (ɵDataPagerComponent_BaseFactory = i0.ɵɵgetInheritedFactory(DataPagerComponent)))(t || DataPagerComponent); }; })(); }
7643
+ 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) {
7644
+ i0.ɵɵelementStart(0, "div")(1, "kendo-datapager", 0);
7645
+ i0.ɵɵlistener("pageChange", function DataPagerComponent_Template_kendo_datapager_pageChange_1_listener($event) { return ctx.onPageChange($event); });
7569
7646
  i0.ɵɵelementEnd()();
7570
7647
  } 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);
7648
+ i0.ɵɵclassMap(ctx.classes);
7575
7649
  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 }); }
7650
+ i0.ɵɵstyleMap(ctx.style);
7651
+ i0.ɵɵproperty("total", ctx.totalItems)("pageSize", ctx.pageSize)("pageSizeValues", ctx.pageSizes)("skip", ctx.skipItems);
7652
+ } }, dependencies: [i1$7.PagerComponent], encapsulation: 2 }); }
7580
7653
  }
7581
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(YouAgreeToOurTermsComponent, [{
7654
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataPagerComponent, [{
7582
7655
  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: [{
7656
+ 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" }]
7657
+ }], null, { totalItems: [{
7585
7658
  type: Input
7586
- }], oneLine: [{
7659
+ }], pageSize: [{
7660
+ type: Input
7661
+ }], skipItems: [{
7662
+ type: Input
7663
+ }], pageSizeDivisor: [{
7587
7664
  type: Input
7665
+ }], pageSizeMax: [{
7666
+ type: Input
7667
+ }], width: [{
7668
+ type: Input
7669
+ }], pageChange: [{
7670
+ type: Output
7588
7671
  }] }); })();
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 }); })();
7672
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataPagerComponent, { className: "DataPagerComponent", filePath: "lib\\ui\\components\\datapager\\datapager.component.ts", lineNumber: 27 }); })();
7590
7673
 
7591
7674
  /*
7592
7675
  <file>
@@ -7598,81 +7681,92 @@ class YouAgreeToOurTermsComponent extends ComponentBase {
7598
7681
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7599
7682
 
7600
7683
  Created:
7601
- 2 Feb 2024
7684
+ 4 Jul 2018
7602
7685
 
7603
- Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7686
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7604
7687
  </file>
7605
7688
  */
7606
7689
  //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();
7690
+ function SignInButtonComponent_a_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7691
+ i0.ɵɵelementContainer(0);
7614
7692
  } }
7615
- function CountryDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
7616
- i0.ɵɵelementStart(0, "option", 7);
7617
- i0.ɵɵtext(1);
7693
+ function SignInButtonComponent_a_0_Template(rf, ctx) { if (rf & 1) {
7694
+ i0.ɵɵelementStart(0, "a", 3);
7695
+ i0.ɵɵtemplate(1, SignInButtonComponent_a_0_ng_container_1_Template, 1, 0, "ng-container", 4);
7618
7696
  i0.ɵɵelementEnd();
7619
7697
  } if (rf & 2) {
7620
- const item_r4 = ctx.$implicit;
7621
- i0.ɵɵproperty("value", item_r4.code);
7698
+ const ctx_r0 = i0.ɵɵnextContext();
7699
+ const _r3 = i0.ɵɵreference(3);
7700
+ i0.ɵɵclassMap(ctx_r0.classes);
7701
+ i0.ɵɵproperty("href", ctx_r0.url, i0.ɵɵsanitizeUrl);
7622
7702
  i0.ɵɵadvance();
7623
- i0.ɵɵtextInterpolate1(" ", item_r4.name, " ");
7703
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7624
7704
  } }
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()();
7705
+ function SignInButtonComponent_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7706
+ i0.ɵɵelementContainer(0);
7707
+ } }
7708
+ function SignInButtonComponent_a_1_Template(rf, ctx) { if (rf & 1) {
7709
+ i0.ɵɵelementStart(0, "a", 5);
7710
+ i0.ɵɵtemplate(1, SignInButtonComponent_a_1_ng_container_1_Template, 1, 0, "ng-container", 4);
7711
+ i0.ɵɵelementEnd();
7631
7712
  } if (rf & 2) {
7632
7713
  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);
7714
+ const _r3 = i0.ɵɵreference(3);
7715
+ i0.ɵɵclassMap(ctx_r1.classes);
7716
+ i0.ɵɵproperty("routerLink", ctx_r1.url);
7638
7717
  i0.ɵɵadvance();
7639
- i0.ɵɵproperty("ngForOf", ctx_r1.items);
7718
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7640
7719
  } }
7641
- class CountryDropdownlist extends EditComponentBase {
7642
- constructor(api, appContext) {
7720
+ function SignInButtonComponent_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {
7721
+ i0.ɵɵelementStart(0, "span");
7722
+ i0.ɵɵtext(1, "Sign In");
7723
+ i0.ɵɵelementEnd();
7724
+ } }
7725
+ function SignInButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
7726
+ i0.ɵɵelementStart(0, "span", null, 6);
7727
+ i0.ɵɵprojection(2);
7728
+ i0.ɵɵelementEnd();
7729
+ i0.ɵɵtemplate(3, SignInButtonComponent_ng_template_2_span_3_Template, 2, 0, "span", 7);
7730
+ } if (rf & 2) {
7731
+ const _r6 = i0.ɵɵreference(1);
7732
+ i0.ɵɵadvance(3);
7733
+ i0.ɵɵproperty("ngIf", !_r6.innerHTML.trim());
7734
+ } }
7735
+ const _c0$7 = ["*"];
7736
+ class SignInButtonComponent extends ComponentBase {
7737
+ constructor() {
7643
7738
  super();
7644
- this.api = api;
7645
- this.appContext = appContext;
7646
- this.title = 'Country';
7739
+ this.external = false;
7647
7740
  }
7648
7741
  ngOnInit() {
7649
- this.setValues();
7650
- }
7651
- setValues() {
7652
- this.api.getCountriesJsonFile().subscribe({
7653
- next: (data) => {
7654
- this.items = data.reverse();
7742
+ let url = MSALConfig.ui.signin;
7743
+ if (url) {
7744
+ this.external = url.indexOf('http') > -1;
7745
+ if (this.external) {
7746
+ this.url = url + (this.qs ? '?' + this.qs : '');
7747
+ }
7748
+ else {
7749
+ this.url = url;
7655
7750
  }
7656
- });
7657
- if (this.isNgModelBased) {
7658
- }
7659
- else {
7660
7751
  }
7661
7752
  }
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);
7753
+ static { this.ɵfac = function SignInButtonComponent_Factory(t) { return new (t || SignInButtonComponent)(); }; }
7754
+ 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) {
7755
+ i0.ɵɵprojectionDef();
7756
+ 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);
7665
7757
  } if (rf & 2) {
7666
- i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
7758
+ i0.ɵɵproperty("ngIf", ctx.external);
7667
7759
  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 }); }
7760
+ i0.ɵɵproperty("ngIf", !ctx.external);
7761
+ } }, dependencies: [i1$2.NgIf, i1$2.NgTemplateOutlet, i1.RouterLink], encapsulation: 2 }); }
7670
7762
  }
7671
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CountryDropdownlist, [{
7763
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignInButtonComponent, [{
7672
7764
  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 }); })();
7765
+ 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" }]
7766
+ }], () => [], { qs: [{
7767
+ type: Input
7768
+ }] }); })();
7769
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SignInButtonComponent, { className: "SignInButtonComponent", filePath: "lib\\ui\\components\\identity\\signin-button.component.ts", lineNumber: 28 }); })();
7676
7770
 
7677
7771
  /*
7678
7772
  <file>
@@ -7684,135 +7778,92 @@ class CountryDropdownlist extends EditComponentBase {
7684
7778
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7685
7779
 
7686
7780
  Created:
7687
- 02 Aug 2022
7781
+ 4 Jul 2018
7688
7782
 
7689
- Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
7783
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7690
7784
  </file>
7691
7785
  */
7692
7786
  //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();
7787
+ function SignOutButtonComponent_a_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7788
+ i0.ɵɵelementContainer(0);
7700
7789
  } }
7701
- function TimezoneDropdownlist_div_1_option_3_Template(rf, ctx) { if (rf & 1) {
7702
- i0.ɵɵelementStart(0, "option", 7);
7703
- i0.ɵɵtext(1);
7790
+ function SignOutButtonComponent_a_0_Template(rf, ctx) { if (rf & 1) {
7791
+ i0.ɵɵelementStart(0, "a", 3);
7792
+ i0.ɵɵtemplate(1, SignOutButtonComponent_a_0_ng_container_1_Template, 1, 0, "ng-container", 4);
7704
7793
  i0.ɵɵelementEnd();
7705
7794
  } if (rf & 2) {
7706
- const item_r4 = ctx.$implicit;
7707
- i0.ɵɵproperty("value", item_r4.code);
7795
+ const ctx_r0 = i0.ɵɵnextContext();
7796
+ const _r3 = i0.ɵɵreference(3);
7797
+ i0.ɵɵclassMap(ctx_r0.classes);
7798
+ i0.ɵɵproperty("href", ctx_r0.url, i0.ɵɵsanitizeUrl);
7708
7799
  i0.ɵɵadvance();
7709
- i0.ɵɵtextInterpolate2(" (", item_r4.offset, ") ", item_r4.name, " ");
7800
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7710
7801
  } }
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()();
7802
+ function SignOutButtonComponent_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
7803
+ i0.ɵɵelementContainer(0);
7804
+ } }
7805
+ function SignOutButtonComponent_a_1_Template(rf, ctx) { if (rf & 1) {
7806
+ i0.ɵɵelementStart(0, "a", 5);
7807
+ i0.ɵɵtemplate(1, SignOutButtonComponent_a_1_ng_container_1_Template, 1, 0, "ng-container", 4);
7808
+ i0.ɵɵelementEnd();
7717
7809
  } if (rf & 2) {
7718
7810
  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);
7811
+ const _r3 = i0.ɵɵreference(3);
7812
+ i0.ɵɵclassMap(ctx_r1.classes);
7813
+ i0.ɵɵproperty("routerLink", ctx_r1.url);
7724
7814
  i0.ɵɵadvance();
7725
- i0.ɵɵproperty("ngForOf", ctx_r1.items);
7815
+ i0.ɵɵproperty("ngTemplateOutlet", _r3);
7726
7816
  } }
7727
- class TimezoneDropdownlist extends EditComponentBase {
7728
- constructor(api, appContext) {
7817
+ function SignOutButtonComponent_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {
7818
+ i0.ɵɵelementStart(0, "span");
7819
+ i0.ɵɵtext(1, "Sign Out");
7820
+ i0.ɵɵelementEnd();
7821
+ } }
7822
+ function SignOutButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
7823
+ i0.ɵɵelementStart(0, "span", null, 6);
7824
+ i0.ɵɵprojection(2);
7825
+ i0.ɵɵelementEnd();
7826
+ i0.ɵɵtemplate(3, SignOutButtonComponent_ng_template_2_span_3_Template, 2, 0, "span", 7);
7827
+ } if (rf & 2) {
7828
+ const _r6 = i0.ɵɵreference(1);
7829
+ i0.ɵɵadvance(3);
7830
+ i0.ɵɵproperty("ngIf", !_r6.innerHTML.trim());
7831
+ } }
7832
+ const _c0$6 = ["*"];
7833
+ class SignOutButtonComponent extends ComponentBase {
7834
+ constructor() {
7729
7835
  super();
7730
- this.api = api;
7731
- this.appContext = appContext;
7732
- this.title = 'Timezone';
7836
+ this.external = false;
7733
7837
  }
7734
7838
  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 {
7839
+ let url = MSALConfig.ui.signout;
7840
+ if (url) {
7841
+ this.external = url.indexOf('http') > -1;
7842
+ if (this.external) {
7843
+ this.url = url + (this.qs ? '?' + this.qs : '');
7756
7844
  }
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);
7845
+ else {
7846
+ this.url = url;
7762
7847
  }
7763
7848
  }
7764
7849
  }
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);
7850
+ static { this.ɵfac = function SignOutButtonComponent_Factory(t) { return new (t || SignOutButtonComponent)(); }; }
7851
+ 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) {
7852
+ i0.ɵɵprojectionDef();
7853
+ 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);
7768
7854
  } if (rf & 2) {
7769
- i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
7855
+ i0.ɵɵproperty("ngIf", ctx.external);
7770
7856
  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 }); }
7857
+ i0.ɵɵproperty("ngIf", !ctx.external);
7858
+ } }, dependencies: [i1$2.NgIf, i1$2.NgTemplateOutlet, i1.RouterLink], encapsulation: 2 }); }
7810
7859
  }
7811
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardComponent, [{
7860
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutButtonComponent, [{
7812
7861
  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 }); })();
7862
+ 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" }]
7863
+ }], () => [], { qs: [{
7864
+ type: Input
7865
+ }] }); })();
7866
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SignOutButtonComponent, { className: "SignOutButtonComponent", filePath: "lib\\ui\\components\\identity\\signout-button.component.ts", lineNumber: 28 }); })();
7816
7867
 
7817
7868
  /*
7818
7869
  <file>
@@ -7820,45 +7871,74 @@ class CardComponent extends ComponentBase {
7820
7871
  @osovitny/anatoly
7821
7872
 
7822
7873
  Authors:
7874
+ Vadim Osovitny vadim.osovitny@osovitny.com
7823
7875
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7824
7876
 
7825
7877
  Created:
7826
- 29 July 2022
7878
+ 29 Jul 2022
7827
7879
 
7828
7880
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7829
7881
  </file>
7830
7882
  */
7831
7883
  //Node
7832
- function CardHeaderComponent_h3_2_Template(rf, ctx) { if (rf & 1) {
7833
- i0.ɵɵelementStart(0, "h3");
7834
- i0.ɵɵtext(1);
7884
+ function NodataComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
7885
+ i0.ɵɵelementStart(0, "div");
7886
+ i0.ɵɵelement(1, "fa-icon", 5);
7835
7887
  i0.ɵɵelementEnd();
7836
7888
  } if (rf & 2) {
7837
- const ctx_r0 = i0.ɵɵnextContext();
7889
+ const ctx_r1 = i0.ɵɵnextContext(2);
7838
7890
  i0.ɵɵadvance();
7839
- i0.ɵɵtextInterpolate(ctx_r0.title);
7891
+ i0.ɵɵproperty("icon", ctx_r1.icon)("size", ctx_r1.iconSize);
7840
7892
  } }
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) {
7845
- 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();
7893
+ function NodataComponent_div_0_Template(rf, ctx) { if (rf & 1) {
7894
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
7895
+ i0.ɵɵtemplate(2, NodataComponent_div_0_div_2_Template, 2, 2, "div", 3);
7896
+ i0.ɵɵelementStart(3, "h3", 4);
7897
+ i0.ɵɵtext(4);
7898
+ i0.ɵɵelementEnd();
7899
+ i0.ɵɵprojection(5);
7900
+ i0.ɵɵelementEnd()();
7901
+ } if (rf & 2) {
7902
+ const ctx_r0 = i0.ɵɵnextContext();
7903
+ i0.ɵɵadvance(2);
7904
+ i0.ɵɵproperty("ngIf", ctx_r0.icon);
7905
+ i0.ɵɵadvance(2);
7906
+ i0.ɵɵtextInterpolate(ctx_r0.heading);
7907
+ } }
7908
+ const _c0$5 = ["*"];
7909
+ class NodataComponent {
7910
+ constructor() {
7911
+ this.dataLoading = false;
7912
+ this.dataLoaded = false;
7913
+ this.dataFound = false;
7914
+ this.iconSize = '10x';
7915
+ this.heading = 'No data found';
7916
+ }
7917
+ static { this.ɵfac = function NodataComponent_Factory(t) { return new (t || NodataComponent)(); }; }
7918
+ 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) {
7919
+ i0.ɵɵprojectionDef();
7920
+ i0.ɵɵtemplate(0, NodataComponent_div_0_Template, 6, 2, "div", 0);
7851
7921
  } 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 }); }
7922
+ i0.ɵɵproperty("ngIf", ctx.dataLoaded && !ctx.dataFound);
7923
+ } }, dependencies: [i1$2.NgIf, i1$6.FaIconComponent], encapsulation: 2 }); }
7856
7924
  }
7857
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardHeaderComponent, [{
7925
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NodataComponent, [{
7858
7926
  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 }); })();
7927
+ 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" }]
7928
+ }], () => [], { dataLoading: [{
7929
+ type: Input
7930
+ }], dataLoaded: [{
7931
+ type: Input
7932
+ }], dataFound: [{
7933
+ type: Input
7934
+ }], icon: [{
7935
+ type: Input
7936
+ }], iconSize: [{
7937
+ type: Input
7938
+ }], heading: [{
7939
+ type: Input
7940
+ }] }); })();
7941
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NodataComponent, { className: "NodataComponent", filePath: "lib\\ui\\components\\nodata\\nodata.component.ts", lineNumber: 25 }); })();
7862
7942
 
7863
7943
  /*
7864
7944
  <file>
@@ -7866,32 +7946,39 @@ class CardHeaderComponent extends ComponentBase {
7866
7946
  @osovitny/anatoly
7867
7947
 
7868
7948
  Authors:
7869
- Anatoly Osovitny anatoly.osovitny@osovitny.com
7949
+ Leon Malyan leon.malyan@osovitny.com
7870
7950
 
7871
7951
  Created:
7872
- 29 July 2022
7952
+ 22 Juy 2024
7873
7953
 
7874
7954
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7875
7955
  </file>
7876
7956
  */
7877
7957
  //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) {
7882
- i0.ɵɵprojectionDef();
7883
- i0.ɵɵelementStart(0, "div");
7884
- i0.ɵɵprojection(1);
7958
+ class NoMobileSupportComponent extends ComponentBase {
7959
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵNoMobileSupportComponent_BaseFactory; return function NoMobileSupportComponent_Factory(t) { return (ɵNoMobileSupportComponent_BaseFactory || (ɵNoMobileSupportComponent_BaseFactory = i0.ɵɵgetInheritedFactory(NoMobileSupportComponent)))(t || NoMobileSupportComponent); }; })(); }
7960
+ 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) {
7961
+ i0.ɵɵelementStart(0, "div", 0);
7962
+ i0.ɵɵelement(1, "img", 1);
7885
7963
  i0.ɵɵelementEnd();
7964
+ i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "b");
7965
+ i0.ɵɵtext(5, "Mobile Site Under Construction");
7966
+ i0.ɵɵelementEnd()();
7967
+ i0.ɵɵelementStart(6, "div");
7968
+ i0.ɵɵtext(7, "Please Use Another Device");
7969
+ i0.ɵɵelementEnd()();
7886
7970
  } if (rf & 2) {
7887
- i0.ɵɵclassMapInterpolate1("card-body ", ctx.classes, "");
7971
+ i0.ɵɵadvance();
7972
+ i0.ɵɵproperty("src", ctx.logo, i0.ɵɵsanitizeUrl);
7888
7973
  } }, encapsulation: 2 }); }
7889
7974
  }
7890
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardBodyComponent, [{
7975
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoMobileSupportComponent, [{
7891
7976
  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 }); })();
7977
+ 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" }]
7978
+ }], null, { logo: [{
7979
+ type: Input
7980
+ }] }); })();
7981
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NoMobileSupportComponent, { className: "NoMobileSupportComponent", filePath: "lib\\ui\\components\\no-mobile-support\\no-mobile-support.component.ts", lineNumber: 26 }); })();
7895
7982
 
7896
7983
  /*
7897
7984
  <file>
@@ -7899,32 +7986,58 @@ class CardBodyComponent extends ComponentBase {
7899
7986
  @osovitny/anatoly
7900
7987
 
7901
7988
  Authors:
7989
+ Vadim Osovitny vadim.osovitny@osovitny.com
7902
7990
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7903
7991
 
7904
7992
  Created:
7905
- 29 July 2022
7993
+ 9 May 2020
7906
7994
 
7907
7995
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7908
7996
  </file>
7909
7997
  */
7910
7998
  //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);
7918
- i0.ɵɵelementEnd();
7999
+ function LoadingComponent_div_0_Template(rf, ctx) { if (rf & 1) {
8000
+ i0.ɵɵelementStart(0, "div", 1);
8001
+ i0.ɵɵelement(1, "span", 2);
8002
+ i0.ɵɵelementEnd();
8003
+ } }
8004
+ class LoadingComponent extends ComponentBase {
8005
+ constructor(loadingService) {
8006
+ super();
8007
+ this.loadingService = loadingService;
8008
+ this.show = false;
8009
+ }
8010
+ ngOnInit() {
8011
+ this.subs.sink = this.loadingService.subscribe({
8012
+ next: (data) => {
8013
+ this.show = data;
8014
+ }
8015
+ });
8016
+ }
8017
+ static { this.ɵfac = function LoadingComponent_Factory(t) { return new (t || LoadingComponent)(i0.ɵɵdirectiveInject(LoadingService)); }; }
8018
+ 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) {
8019
+ i0.ɵɵtemplate(0, LoadingComponent_div_0_Template, 2, 0, "div", 0);
7919
8020
  } if (rf & 2) {
7920
- i0.ɵɵclassMapInterpolate1("card-footer ", ctx.classes, "");
7921
- } }, encapsulation: 2 }); }
8021
+ i0.ɵɵproperty("ngIf", ctx.show);
8022
+ } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
7922
8023
  }
7923
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CardFooterComponent, [{
8024
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoadingComponent, [{
7924
8025
  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 }); })();
8026
+ 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" }]
8027
+ }], () => [{ type: LoadingService }], null); })();
8028
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoadingComponent, { className: "LoadingComponent", filePath: "lib\\ui\\components\\spinners\\loading\\loading.component.ts", lineNumber: 28 }); })();
8029
+
8030
+ const Spinkit = {
8031
+ skChasingDots: 'sk-chasing-dots',
8032
+ skCubeGrid: 'sk-cube-grid',
8033
+ skDoubleBounce: 'sk-double-bounce',
8034
+ skRotatingPlane: 'sk-rotationg-plane',
8035
+ skSpinnerPulse: 'sk-spinner-pulse',
8036
+ skThreeBounce: 'sk-three-bounce',
8037
+ skWanderingCubes: 'sk-wandering-cubes',
8038
+ skWave: 'sk-wave',
8039
+ skLine: 'sk-line-material'
8040
+ };
7928
8041
 
7929
8042
  /*
7930
8043
  <file>
@@ -7936,169 +8049,123 @@ class CardFooterComponent extends ComponentBase {
7936
8049
  Anatoly Osovitny anatoly.osovitny@osovitny.com
7937
8050
 
7938
8051
  Created:
7939
- 12 Dec 2017
8052
+ 16 May 2020
7940
8053
 
7941
8054
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
7942
8055
  </file>
7943
8056
  */
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
8057
  //Node
8016
- class HtmlEditorComponentBase extends EditComponentBase {
8017
- constructor() {
8018
- super();
8019
- this.froalaEditorInitialized = false;
8020
- this.afterInitializedActions = [];
8021
- // Inputs
8022
- this.editorLabelText = "Html";
8023
- this.editorOptions = {};
8024
- }
8025
- 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]();
8058
+ function PageSpinnerComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
8059
+ i0.ɵɵelementStart(0, "div", 4);
8060
+ i0.ɵɵelement(1, "div", 5);
8061
+ i0.ɵɵelementEnd();
8062
+ } if (rf & 2) {
8063
+ const ctx_r1 = i0.ɵɵnextContext(2);
8064
+ i0.ɵɵclassProp("colored", !ctx_r1.backgroundColor);
8065
+ i0.ɵɵadvance();
8066
+ i0.ɵɵstyleProp("background-color", ctx_r1.backgroundColor);
8067
+ } }
8068
+ function PageSpinnerComponent_div_0_Template(rf, ctx) { if (rf & 1) {
8069
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
8070
+ i0.ɵɵtemplate(2, PageSpinnerComponent_div_0_div_2_Template, 2, 4, "div", 3);
8071
+ i0.ɵɵelementEnd()();
8072
+ } if (rf & 2) {
8073
+ const ctx_r0 = i0.ɵɵnextContext();
8074
+ i0.ɵɵadvance(2);
8075
+ i0.ɵɵproperty("ngIf", ctx_r0.spinner === ctx_r0.Spinkit.skLine);
8076
+ } }
8077
+ class PageSpinnerComponent {
8078
+ constructor(router) {
8079
+ this.router = router;
8080
+ this.isSpinnerVisible = true;
8081
+ this.Spinkit = Spinkit;
8082
+ this.backgroundColor = '#2196f3';
8083
+ this.spinner = Spinkit.skLine;
8084
+ router.events.subscribe({
8085
+ next: (routerEvent) => {
8086
+ this.checkRouterEvent(routerEvent);
8054
8087
  }
8055
- }
8056
- }
8057
- getEditor() {
8058
- if (this.froalaEditor)
8059
- return this.froalaEditor.getEditor();
8060
- return null;
8088
+ });
8061
8089
  }
8062
- // Public Funcs
8063
- doAfterInitialized(action) {
8064
- const that = this;
8065
- if (!this.froalaEditorInitialized) {
8066
- this.afterInitializedActions.push(() => {
8067
- action(that);
8068
- });
8090
+ checkRouterEvent(routerEvent) {
8091
+ if (routerEvent instanceof NavigationStart) {
8092
+ this.isSpinnerVisible = true;
8069
8093
  }
8070
- else {
8071
- action(that);
8094
+ if (routerEvent instanceof NavigationEnd ||
8095
+ routerEvent instanceof NavigationCancel ||
8096
+ routerEvent instanceof NavigationError) {
8097
+ this.isSpinnerVisible = false;
8072
8098
  }
8073
8099
  }
8074
- initializeControl(control) {
8075
- this.froalaEditor = control;
8076
- this.froalaEditor.initialize();
8100
+ ngOnDestroy() {
8101
+ this.isSpinnerVisible = false;
8077
8102
  }
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
- });
8103
+ static { this.ɵfac = function PageSpinnerComponent_Factory(t) { return new (t || PageSpinnerComponent)(i0.ɵɵdirectiveInject(i1.Router)); }; }
8104
+ 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) {
8105
+ i0.ɵɵtemplate(0, PageSpinnerComponent_div_0_Template, 3, 1, "div", 0);
8106
+ } if (rf & 2) {
8107
+ i0.ɵɵproperty("ngIf", ctx.isSpinnerVisible);
8108
+ } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
8109
+ }
8110
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageSpinnerComponent, [{
8111
+ type: Component,
8112
+ 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" }]
8113
+ }], () => [{ type: i1.Router }], { backgroundColor: [{
8114
+ type: Input
8115
+ }], spinner: [{
8116
+ type: Input
8117
+ }] }); })();
8118
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PageSpinnerComponent, { className: "PageSpinnerComponent", filePath: "lib\\ui\\components\\spinners\\pagespinner\\pagespinner.component.ts", lineNumber: 29 }); })();
8119
+
8120
+ /*
8121
+ <file>
8122
+ Project:
8123
+ @osovitny/anatoly
8124
+
8125
+ Authors:
8126
+ Vadim Osovitny vadim.osovitny@osovitny.com
8127
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8128
+
8129
+ Created:
8130
+ 9 Jun 2020
8131
+
8132
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8133
+ </file>
8134
+ */
8135
+ //Node
8136
+ class Copy2ClipboardComponent extends ComponentBase {
8137
+ constructor() {
8138
+ super(...arguments);
8139
+ this.tooltip = "Copy to clipboard";
8140
+ this.text = "";
8087
8141
  }
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 }); }
8142
+ onCopy2Clipboard(event) {
8143
+ let oldTooltip = this.tooltip;
8144
+ this.tooltip = "Copied";
8145
+ setTimeout(() => {
8146
+ this.tooltip = oldTooltip;
8147
+ }, 1000);
8148
+ Utils.copyToClipBoard(event, this.text);
8149
+ }
8150
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCopy2ClipboardComponent_BaseFactory; return function Copy2ClipboardComponent_Factory(t) { return (ɵCopy2ClipboardComponent_BaseFactory || (ɵCopy2ClipboardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(Copy2ClipboardComponent)))(t || Copy2ClipboardComponent); }; })(); }
8151
+ 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) {
8152
+ i0.ɵɵelementStart(0, "a", 0);
8153
+ i0.ɵɵlistener("click", function Copy2ClipboardComponent_Template_a_click_0_listener($event) { return ctx.onCopy2Clipboard($event); });
8154
+ i0.ɵɵelement(1, "fa-icon", 1);
8155
+ i0.ɵɵelementEnd();
8156
+ } if (rf & 2) {
8157
+ i0.ɵɵclassMapInterpolate1("btn ", ctx.classes, "");
8158
+ } }, dependencies: [i1$6.FaIconComponent], encapsulation: 2 }); }
8090
8159
  }
8091
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponentBase, [{
8160
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Copy2ClipboardComponent, [{
8092
8161
  type: Component,
8093
- args: [{
8094
- template: "",
8095
- }]
8096
- }], () => [], { editorLabelText: [{
8162
+ 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" }]
8163
+ }], null, { tooltip: [{
8097
8164
  type: Input
8098
- }], editorOptions: [{
8165
+ }], text: [{
8099
8166
  type: Input
8100
8167
  }] }); })();
8101
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HtmlEditorComponentBase, { className: "HtmlEditorComponentBase", filePath: "lib\\ui\\components\\html-editor\\base-html-editor.component.ts", lineNumber: 31 }); })();
8168
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Copy2ClipboardComponent, { className: "Copy2ClipboardComponent", filePath: "lib\\ui\\components\\copy-2-clipboard\\copy-2-clipboard.component.ts", lineNumber: 28 }); })();
8102
8169
 
8103
8170
  /*
8104
8171
  <file>
@@ -8110,50 +8177,114 @@ class HtmlEditorComponentBase extends EditComponentBase {
8110
8177
  Anatoly Osovitny anatoly.osovitny@osovitny.com
8111
8178
 
8112
8179
  Created:
8113
- 12 Dec 2017
8180
+ 02 Aug 2022
8114
8181
 
8115
- Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8182
+ Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
8116
8183
  </file>
8117
8184
  */
8118
8185
  //Node
8186
+ function UrlSlugComponent_label_3_Template(rf, ctx) { if (rf & 1) {
8187
+ i0.ɵɵelementStart(0, "label", 7);
8188
+ i0.ɵɵtext(1);
8189
+ i0.ɵɵelementEnd();
8190
+ } if (rf & 2) {
8191
+ const ctx_r0 = i0.ɵɵnextContext();
8192
+ i0.ɵɵadvance();
8193
+ i0.ɵɵtextInterpolate(ctx_r0.title);
8194
+ } }
8195
+ function UrlSlugComponent_a_7_Template(rf, ctx) { if (rf & 1) {
8196
+ i0.ɵɵelementStart(0, "a", 8);
8197
+ i0.ɵɵtext(1, "Go");
8198
+ i0.ɵɵelementEnd();
8199
+ } if (rf & 2) {
8200
+ const ctx_r1 = i0.ɵɵnextContext();
8201
+ i0.ɵɵpropertyInterpolate2("href", "", ctx_r1.urlPrefix, "", ctx_r1.hrefGo, "", i0.ɵɵsanitizeUrl);
8202
+ } }
8119
8203
  const _c0$4 = a0 => ({ "has-error": a0 });
8120
- class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
8204
+ class UrlSlugComponent extends EditComponentBase {
8121
8205
  constructor() {
8122
8206
  super();
8123
- this.editorFormKey = "html";
8207
+ this.firstValue = true;
8208
+ this.isGoButtonVisible = true;
8209
+ //Outputs
8210
+ this.generated = new EventEmitter();
8211
+ this.title = 'Permalink';
8124
8212
  }
8125
- setFormValueAfterInitialized(name, value) {
8126
- this.doAfterInitialized(function (that) {
8127
- that.setFormValue(name, value);
8213
+ ngOnInit() {
8214
+ this.startWatching();
8215
+ }
8216
+ generateUrlSlug(text) {
8217
+ let slugedText = Utils.slugify(text);
8218
+ let event = { urlSlug: slugedText };
8219
+ this.generated.emit(event);
8220
+ this.setFormValue(this.controlName, event.urlSlug);
8221
+ }
8222
+ startWatching() {
8223
+ this.subs.sink = this.formGroup.get(this.controlName).valueChanges.subscribe({
8224
+ next: (value) => {
8225
+ this.hrefGo = value;
8226
+ }
8128
8227
  });
8228
+ if (this.watchedControlName) {
8229
+ this.subs.sink = this.formGroup.get(this.watchedControlName).valueChanges.subscribe({
8230
+ next: (value) => {
8231
+ if (this.firstValue) {
8232
+ this.firstValue = false;
8233
+ return;
8234
+ }
8235
+ this.generateUrlSlug(value);
8236
+ }
8237
+ });
8238
+ }
8129
8239
  }
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); });
8240
+ //Events
8241
+ onUrlSlugChange() {
8242
+ let text = this.getFormValue(this.controlName);
8243
+ this.generateUrlSlug(text);
8244
+ }
8245
+ static { this.ɵfac = function UrlSlugComponent_Factory(t) { return new (t || UrlSlugComponent)(); }; }
8246
+ 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) {
8247
+ i0.ɵɵelementStart(0, "div", 0);
8248
+ i0.ɵɵelement(1, "anatoly-item-validation-summary", 1);
8249
+ i0.ɵɵelementStart(2, "div", 2);
8250
+ i0.ɵɵtemplate(3, UrlSlugComponent_label_3_Template, 2, 1, "label", 3);
8251
+ i0.ɵɵelementStart(4, "div", 4);
8252
+ i0.ɵɵtext(5);
8137
8253
  i0.ɵɵelementEnd();
8138
- i0.ɵɵelement(4, "anatoly-item-validation-summary", 3);
8254
+ i0.ɵɵelementStart(6, "input", 5);
8255
+ i0.ɵɵlistener("focusout", function UrlSlugComponent_Template_input_focusout_6_listener() { return ctx.onUrlSlugChange(); });
8139
8256
  i0.ɵɵelementEnd();
8257
+ i0.ɵɵtemplate(7, UrlSlugComponent_a_7_Template, 2, 2, "a", 6);
8258
+ i0.ɵɵelementEnd()();
8140
8259
  } if (rf & 2) {
8141
- i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(8, _c0$4, ctx.isControlInvalid(ctx.editorFormKey)));
8260
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("ngClass", i0.ɵɵpureFunction1(10, _c0$4, ctx.isControlInvalid(ctx.controlName)));
8261
+ i0.ɵɵadvance();
8262
+ i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.controlName);
8263
+ i0.ɵɵadvance();
8264
+ i0.ɵɵproperty("ngClass", ctx.classes);
8265
+ i0.ɵɵadvance();
8266
+ i0.ɵɵproperty("ngIf", ctx.isTitleVisible);
8142
8267
  i0.ɵɵadvance(2);
8143
- i0.ɵɵtextInterpolate(ctx.editorLabelText);
8268
+ i0.ɵɵtextInterpolate(ctx.urlPrefix);
8144
8269
  i0.ɵɵadvance();
8145
- i0.ɵɵproperty("formControlName", ctx.editorFormKey)("froalaEditor", ctx.options);
8270
+ i0.ɵɵproperty("formControlName", ctx.controlName);
8146
8271
  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 }); }
8272
+ i0.ɵɵproperty("ngIf", ctx.isGoButtonVisible);
8273
+ } }, 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
8274
  }
8150
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsHtmlEditorComponent, [{
8275
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlSlugComponent, [{
8151
8276
  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: [{
8277
+ 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" }]
8278
+ }], () => [], { urlPrefix: [{
8279
+ type: Input
8280
+ }], isGoButtonVisible: [{
8281
+ type: Input
8282
+ }], watchedControlName: [{
8154
8283
  type: Input
8284
+ }], generated: [{
8285
+ type: Output
8155
8286
  }] }); })();
8156
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormsHtmlEditorComponent, { className: "FormsHtmlEditorComponent", filePath: "lib\\ui\\components\\html-editor\\forms-html-editor.component.ts", lineNumber: 27 }); })();
8287
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UrlSlugComponent, { className: "UrlSlugComponent", filePath: "lib\\ui\\components\\urlslug\\urlslug.component.ts", lineNumber: 28 }); })();
8157
8288
 
8158
8289
  /*
8159
8290
  <file>
@@ -8161,56 +8292,107 @@ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
8161
8292
  @osovitny/anatoly
8162
8293
 
8163
8294
  Authors:
8164
- Vadim Osovitny vadim.osovitny@osovitny.com
8165
8295
  Anatoly Osovitny anatoly.osovitny@osovitny.com
8166
8296
 
8167
8297
  Created:
8168
- 12 Dec 2017
8298
+ 4 Feb 2024
8169
8299
 
8170
8300
  Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8171
8301
  </file>
8172
8302
  */
8173
8303
  //Node
8174
- class HtmlEditorComponent extends HtmlEditorComponentBase {
8304
+ function FeatureWillBeReadyComponent_h3_1_Template(rf, ctx) { if (rf & 1) {
8305
+ i0.ɵɵelementStart(0, "h3");
8306
+ i0.ɵɵtext(1);
8307
+ i0.ɵɵelementEnd();
8308
+ } if (rf & 2) {
8309
+ const ctx_r0 = i0.ɵɵnextContext();
8310
+ i0.ɵɵadvance();
8311
+ i0.ɵɵtextInterpolate1("This feature will be ready in ", ctx_r0.readyDate, " ");
8312
+ } }
8313
+ function FeatureWillBeReadyComponent_h3_2_Template(rf, ctx) { if (rf & 1) {
8314
+ i0.ɵɵelementStart(0, "h3");
8315
+ i0.ɵɵtext(1, "This feature will be available soon");
8316
+ i0.ɵɵelementEnd();
8317
+ } }
8318
+ class FeatureWillBeReadyComponent extends ComponentBase {
8319
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵFeatureWillBeReadyComponent_BaseFactory; return function FeatureWillBeReadyComponent_Factory(t) { return (ɵFeatureWillBeReadyComponent_BaseFactory || (ɵFeatureWillBeReadyComponent_BaseFactory = i0.ɵɵgetInheritedFactory(FeatureWillBeReadyComponent)))(t || FeatureWillBeReadyComponent); }; })(); }
8320
+ 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) {
8321
+ i0.ɵɵelementStart(0, "div", 0);
8322
+ i0.ɵɵtemplate(1, FeatureWillBeReadyComponent_h3_1_Template, 2, 1, "h3", 1)(2, FeatureWillBeReadyComponent_h3_2_Template, 2, 0, "h3", 1);
8323
+ i0.ɵɵelementEnd();
8324
+ } if (rf & 2) {
8325
+ i0.ɵɵadvance();
8326
+ i0.ɵɵproperty("ngIf", ctx.readyDate);
8327
+ i0.ɵɵadvance();
8328
+ i0.ɵɵproperty("ngIf", !ctx.readyDate);
8329
+ } }, dependencies: [i1$2.NgIf], encapsulation: 2 }); }
8330
+ }
8331
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureWillBeReadyComponent, [{
8332
+ type: Component,
8333
+ 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" }]
8334
+ }], null, { readyDate: [{
8335
+ type: Input
8336
+ }] }); })();
8337
+ (() => { (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 }); })();
8338
+
8339
+ /*
8340
+ <file>
8341
+ Project:
8342
+ @osovitny/anatoly
8343
+
8344
+ Authors:
8345
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8346
+
8347
+ Created:
8348
+ 21 Feb 2024
8349
+
8350
+ Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
8351
+ </file>
8352
+ */
8353
+ //Node
8354
+ function YouAgreeToOurTermsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
8355
+ i0.ɵɵelement(0, "br");
8356
+ } }
8357
+ class YouAgreeToOurTermsComponent extends ComponentBase {
8175
8358
  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);
8359
+ super(...arguments);
8360
+ this.oneLine = true;
8193
8361
  }
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);
8362
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵYouAgreeToOurTermsComponent_BaseFactory; return function YouAgreeToOurTermsComponent_Factory(t) { return (ɵYouAgreeToOurTermsComponent_BaseFactory || (ɵYouAgreeToOurTermsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(YouAgreeToOurTermsComponent)))(t || YouAgreeToOurTermsComponent); }; })(); }
8363
+ 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) {
8364
+ i0.ɵɵelementStart(0, "div", 0)(1, "p");
8197
8365
  i0.ɵɵtext(2);
8366
+ i0.ɵɵtemplate(3, YouAgreeToOurTermsComponent_Conditional_3_Template, 1, 0, "br");
8367
+ i0.ɵɵelementStart(4, "a", 1);
8368
+ i0.ɵɵtext(5, "Terms of use");
8198
8369
  i0.ɵɵelementEnd();
8199
- i0.ɵɵelementStart(3, "textarea", 2);
8200
- i0.ɵɵlistener("froalaInit", function HtmlEditorComponent_Template_textarea_froalaInit_3_listener($event) { return ctx.initializeControl($event); });
8370
+ i0.ɵɵtext(6, " and ");
8371
+ i0.ɵɵelementStart(7, "a", 1);
8372
+ i0.ɵɵtext(8, "Privacy Policy");
8373
+ i0.ɵɵelementEnd();
8374
+ i0.ɵɵtext(9, ". ");
8201
8375
  i0.ɵɵelementEnd()();
8202
8376
  } if (rf & 2) {
8203
8377
  i0.ɵɵadvance(2);
8204
- i0.ɵɵtextInterpolate(ctx.editorLabelText);
8378
+ i0.ɵɵtextInterpolate1(" ", ctx.prefix, " you agree to our ");
8205
8379
  i0.ɵɵadvance();
8206
- i0.ɵɵproperty("froalaEditor", ctx.options);
8207
- } }, dependencies: [i3.FroalaEditorDirective], encapsulation: 2 }); }
8380
+ i0.ɵɵconditional(3, !ctx.oneLine ? 3 : -1);
8381
+ i0.ɵɵadvance();
8382
+ i0.ɵɵproperty("href", ctx.applicationOneUrl + "legal/terms", i0.ɵɵsanitizeUrl);
8383
+ i0.ɵɵadvance(3);
8384
+ i0.ɵɵproperty("href", ctx.applicationOneUrl + "legal/privacy", i0.ɵɵsanitizeUrl);
8385
+ } }, encapsulation: 2 }); }
8208
8386
  }
8209
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HtmlEditorComponent, [{
8387
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(YouAgreeToOurTermsComponent, [{
8210
8388
  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 }); })();
8389
+ 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" }]
8390
+ }], null, { prefix: [{
8391
+ type: Input
8392
+ }], oneLine: [{
8393
+ type: Input
8394
+ }] }); })();
8395
+ (() => { (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
8396
 
8215
8397
  /*
8216
8398
  <file>
@@ -9757,64 +9939,142 @@ class KendoModule {
9757
9939
  static { this.ɵfac = function KendoModule_Factory(t) { return new (t || KendoModule)(); }; }
9758
9940
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: KendoModule }); }
9759
9941
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
9942
+ LayoutModule,
9760
9943
  ButtonsModule,
9761
- DialogsModule,
9762
9944
  DropDownsModule,
9763
9945
  InputsModule,
9946
+ LabelModule,
9947
+ ScrollViewModule,
9948
+ IntlModule,
9949
+ DateInputsModule,
9950
+ FormFieldModule,
9951
+ IconsModule,
9952
+ DialogsModule,
9953
+ UploadsModule,
9954
+ SchedulerModule,
9955
+ ChartsModule,
9956
+ GridModule,
9957
+ LabelModule,
9764
9958
  PagerModule,
9959
+ RippleModule,
9960
+ PopupModule,
9765
9961
  TreeViewModule,
9766
- TooltipsModule,
9767
- IconsModule, ButtonsModule,
9768
- DialogsModule,
9962
+ TooltipsModule, LayoutModule,
9963
+ ButtonsModule,
9769
9964
  DropDownsModule,
9770
9965
  InputsModule,
9966
+ LabelModule,
9967
+ ScrollViewModule,
9968
+ IntlModule,
9969
+ DateInputsModule,
9970
+ FormFieldModule,
9971
+ IconsModule,
9972
+ DialogsModule,
9973
+ UploadsModule,
9974
+ SchedulerModule,
9975
+ ChartsModule,
9976
+ GridModule,
9977
+ LabelModule,
9771
9978
  PagerModule,
9979
+ RippleModule,
9980
+ PopupModule,
9772
9981
  TreeViewModule,
9773
- TooltipsModule,
9774
- IconsModule] }); }
9982
+ TooltipsModule] }); }
9775
9983
  }
9776
9984
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KendoModule, [{
9777
9985
  type: NgModule,
9778
9986
  args: [{
9779
9987
  imports: [
9780
9988
  CommonModule,
9989
+ LayoutModule,
9781
9990
  ButtonsModule,
9782
- DialogsModule,
9783
9991
  DropDownsModule,
9784
9992
  InputsModule,
9993
+ LabelModule,
9994
+ ScrollViewModule,
9995
+ IntlModule,
9996
+ DateInputsModule,
9997
+ FormFieldModule,
9998
+ IconsModule,
9999
+ DialogsModule,
10000
+ UploadsModule,
10001
+ SchedulerModule,
10002
+ ChartsModule,
10003
+ GridModule,
10004
+ LabelModule,
9785
10005
  PagerModule,
10006
+ RippleModule,
10007
+ PopupModule,
9786
10008
  TreeViewModule,
9787
- TooltipsModule,
9788
- IconsModule,
10009
+ TooltipsModule
9789
10010
  ],
9790
10011
  exports: [
10012
+ LayoutModule,
9791
10013
  ButtonsModule,
9792
- DialogsModule,
9793
10014
  DropDownsModule,
9794
10015
  InputsModule,
10016
+ LabelModule,
10017
+ ScrollViewModule,
10018
+ IntlModule,
10019
+ DateInputsModule,
10020
+ FormFieldModule,
10021
+ IconsModule,
10022
+ DialogsModule,
10023
+ UploadsModule,
10024
+ SchedulerModule,
10025
+ ChartsModule,
10026
+ GridModule,
10027
+ LabelModule,
9795
10028
  PagerModule,
10029
+ RippleModule,
10030
+ PopupModule,
9796
10031
  TreeViewModule,
9797
- TooltipsModule,
9798
- IconsModule
10032
+ TooltipsModule
9799
10033
  ]
9800
10034
  }]
9801
10035
  }], null, null); })();
9802
10036
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(KendoModule, { imports: [CommonModule,
10037
+ LayoutModule,
9803
10038
  ButtonsModule,
9804
- DialogsModule,
9805
10039
  DropDownsModule,
9806
10040
  InputsModule,
10041
+ LabelModule,
10042
+ ScrollViewModule,
10043
+ IntlModule,
10044
+ DateInputsModule,
10045
+ FormFieldModule,
10046
+ IconsModule,
10047
+ DialogsModule,
10048
+ UploadsModule,
10049
+ SchedulerModule,
10050
+ ChartsModule,
10051
+ GridModule,
10052
+ LabelModule,
9807
10053
  PagerModule,
10054
+ RippleModule,
10055
+ PopupModule,
9808
10056
  TreeViewModule,
9809
- TooltipsModule,
9810
- IconsModule], exports: [ButtonsModule,
9811
- DialogsModule,
10057
+ TooltipsModule], exports: [LayoutModule,
10058
+ ButtonsModule,
9812
10059
  DropDownsModule,
9813
10060
  InputsModule,
10061
+ LabelModule,
10062
+ ScrollViewModule,
10063
+ IntlModule,
10064
+ DateInputsModule,
10065
+ FormFieldModule,
10066
+ IconsModule,
10067
+ DialogsModule,
10068
+ UploadsModule,
10069
+ SchedulerModule,
10070
+ ChartsModule,
10071
+ GridModule,
10072
+ LabelModule,
9814
10073
  PagerModule,
10074
+ RippleModule,
10075
+ PopupModule,
9815
10076
  TreeViewModule,
9816
- TooltipsModule,
9817
- IconsModule] }); })();
10077
+ TooltipsModule] }); })();
9818
10078
 
9819
10079
  /*
9820
10080
  <file>
@@ -9928,6 +10188,8 @@ const MAIN_COMPONENTS = [
9928
10188
  DataPagerComponent,
9929
10189
  //Dropdownlists
9930
10190
  CountryDropdownlist,
10191
+ ModerationStatusDropdownlist,
10192
+ PublishStatusDropdownlist,
9931
10193
  TimezoneDropdownlist,
9932
10194
  //EhmlEditor
9933
10195
  HtmlEditorComponent,
@@ -10077,6 +10339,7 @@ class AnatolyUIModule {
10077
10339
  FormsModule,
10078
10340
  NgxCaptchaModule,
10079
10341
  FERootModule,
10342
+ //External Modules
10080
10343
  FaModule,
10081
10344
  KendoModule] }); }
10082
10345
  }
@@ -10090,6 +10353,7 @@ class AnatolyUIModule {
10090
10353
  FormsModule,
10091
10354
  NgxCaptchaModule,
10092
10355
  FERootModule,
10356
+ //External Modules
10093
10357
  FaModule,
10094
10358
  KendoModule
10095
10359
  ],
@@ -10101,14 +10365,15 @@ class AnatolyUIModule {
10101
10365
  ]
10102
10366
  }]
10103
10367
  }], 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,
10368
+ (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
10369
  RouterModule,
10106
10370
  ReactiveFormsModule,
10107
10371
  FormsModule,
10108
10372
  NgxCaptchaModule,
10109
10373
  FERootModule,
10374
+ //External Modules
10110
10375
  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] }); })();
10376
+ 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
10377
 
10113
10378
  /*
10114
10379
  <file>
@@ -10173,5 +10438,5 @@ class AnatolyModule {
10173
10438
  * Generated bundle index. Do not edit.
10174
10439
  */
10175
10440
 
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 };
10441
+ 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
10442
  //# sourceMappingURL=osovitny-anatoly.mjs.map