@osovitny/anatoly 2.14.13 → 2.14.15

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.
Files changed (90) hide show
  1. package/assets/jsons/countries.json +994 -0
  2. package/assets/jsons/timezones.json +554 -0
  3. package/assets/jsons/usStates.json +202 -0
  4. package/esm2020/lib/core/convert.mjs +39 -1
  5. package/esm2020/lib/core/go/base-go.service.mjs +2 -5
  6. package/esm2020/lib/core/guards/once-import.guard.mjs +2 -5
  7. package/esm2020/lib/core/index.mjs +40 -0
  8. package/esm2020/lib/core/interceptors/httpInterceptor.mjs +2 -5
  9. package/esm2020/lib/core/localization/localization.module.mjs +2 -5
  10. package/esm2020/lib/core/localization/localization.service.mjs +2 -5
  11. package/esm2020/lib/core/localization/localizationSettings.module.mjs +1 -4
  12. package/esm2020/lib/core/localization/localize.pipe.mjs +2 -5
  13. package/esm2020/lib/core/localization/utils.mjs +2 -5
  14. package/esm2020/lib/core/logging/globalErrorHandler.mjs +1 -4
  15. package/esm2020/lib/core/logging/logging.service.mjs +1 -4
  16. package/esm2020/lib/core/notifications/alerts.mjs +2 -5
  17. package/esm2020/lib/core/notifications/interfaces/notification.mjs +1 -4
  18. package/esm2020/lib/core/notifications/services/notification-service.mjs +1 -4
  19. package/esm2020/lib/core/services/dm.service.mjs +3 -6
  20. package/esm2020/lib/core/services/google-analytics.service.mjs +1 -4
  21. package/esm2020/lib/core/services/idle.service.mjs +1 -4
  22. package/esm2020/lib/core/services/loading.service.mjs +2 -5
  23. package/esm2020/lib/core/services/web-storage.service.mjs +2 -5
  24. package/esm2020/lib/data/base/base-api.service.mjs +15 -7
  25. package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +2 -5
  26. package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +2 -5
  27. package/esm2020/lib/data/consts.mjs +5 -6
  28. package/esm2020/lib/data/data.module.mjs +4 -1
  29. package/esm2020/lib/data/index.mjs +23 -0
  30. package/esm2020/lib/data/services/billing-api.service.mjs +3 -6
  31. package/esm2020/lib/data/services/core-api.service.mjs +44 -0
  32. package/esm2020/lib/data/services/emails-api.service.mjs +3 -3
  33. package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +3 -6
  34. package/esm2020/lib/ui/components/base-edit.component.mjs +1 -4
  35. package/esm2020/lib/ui/components/base.component.mjs +2 -5
  36. package/esm2020/lib/ui/components/base.dialog.mjs +2 -5
  37. package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +2 -5
  38. package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +1 -4
  39. package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +1 -4
  40. package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +2 -5
  41. package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +1 -4
  42. package/esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs +1 -4
  43. package/esm2020/lib/ui/components/identity/signin-button.component.mjs +1 -4
  44. package/esm2020/lib/ui/components/identity/signout-button.component.mjs +1 -4
  45. package/esm2020/lib/ui/components/identity/signup-button.component.mjs +1 -4
  46. package/esm2020/lib/ui/components/index.mjs +38 -0
  47. package/esm2020/lib/ui/components/spinners/loading/loading.component.mjs +1 -4
  48. package/esm2020/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +1 -1
  49. package/esm2020/lib/ui/dialogs/index.mjs +17 -0
  50. package/esm2020/lib/ui/directives/index.mjs +17 -0
  51. package/esm2020/lib/ui/directives/native-element.directive.mjs +1 -4
  52. package/esm2020/lib/ui/forms/components/address/address.component.mjs +136 -0
  53. package/esm2020/lib/ui/forms/components/company/company.component.mjs +91 -0
  54. package/esm2020/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +70 -0
  55. package/esm2020/lib/ui/forms/components/urlslug/urlslug.component.mjs +67 -0
  56. package/esm2020/lib/ui/forms/contact-us/contact-us.mjs +3 -3
  57. package/esm2020/lib/ui/forms/index.mjs +24 -0
  58. package/esm2020/lib/ui/pipes/filesize.pipe.mjs +1 -4
  59. package/esm2020/lib/ui/pipes/index.mjs +19 -0
  60. package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +1 -4
  61. package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +1 -4
  62. package/esm2020/lib/ui/ui.module.mjs +18 -2
  63. package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +1 -4
  64. package/esm2020/lib/ui/validation/index.mjs +19 -0
  65. package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +2 -5
  66. package/esm2020/lib/ui/validation/validation-summary.component.mjs +1 -4
  67. package/esm2020/public-api.mjs +9 -61
  68. package/fesm2015/osovitny-anatoly.mjs +616 -192
  69. package/fesm2015/osovitny-anatoly.mjs.map +1 -1
  70. package/fesm2020/osovitny-anatoly.mjs +615 -195
  71. package/fesm2020/osovitny-anatoly.mjs.map +1 -1
  72. package/lib/core/convert.d.ts +5 -0
  73. package/lib/core/index.d.ts +24 -0
  74. package/lib/data/base/base-api.service.d.ts +1 -1
  75. package/lib/data/consts.d.ts +2 -1
  76. package/lib/data/index.d.ts +7 -0
  77. package/lib/data/services/core-api.service.d.ts +12 -0
  78. package/lib/ui/components/index.d.ts +20 -0
  79. package/lib/ui/dialogs/index.d.ts +1 -0
  80. package/lib/ui/directives/index.d.ts +1 -0
  81. package/lib/ui/forms/components/address/address.component.d.ts +35 -0
  82. package/lib/ui/forms/components/company/company.component.d.ts +20 -0
  83. package/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.d.ts +26 -0
  84. package/lib/ui/forms/components/urlslug/urlslug.component.d.ts +18 -0
  85. package/lib/ui/forms/index.d.ts +5 -0
  86. package/lib/ui/pipes/index.d.ts +3 -0
  87. package/lib/ui/ui.module.d.ts +18 -14
  88. package/lib/ui/validation/index.d.ts +3 -0
  89. package/package.json +1 -1
  90. package/public-api.d.ts +8 -58
@@ -76,10 +76,7 @@ const Urls = {
76
76
 
77
77
  Created:
78
78
  17 Jun 2018
79
-
80
- Version:
81
- 1.0
82
-
79
+
83
80
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
84
81
  </file>
85
82
  */
@@ -114,10 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
114
111
 
115
112
  Created:
116
113
  26 Jun 2020
117
-
118
- Version:
119
- 1.0
120
-
114
+
121
115
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
122
116
  </file>
123
117
  */
@@ -138,10 +132,7 @@ function throwIfAlreadyLoaded(parentModule, moduleName) {
138
132
 
139
133
  Created:
140
134
  26 Jun 2020
141
-
142
- Version:
143
- 1.0
144
-
135
+
145
136
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
146
137
  </file>
147
138
  */
@@ -205,9 +196,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
205
196
  Created:
206
197
  26 Jun 2020
207
198
 
208
- Version:
209
- 1.0
210
-
211
199
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
212
200
  </file>
213
201
  */
@@ -240,10 +228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
240
228
 
241
229
  Created:
242
230
  25 March 2020
243
-
244
- Version:
245
- 1.0
246
-
231
+
247
232
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
248
233
  </file>
249
234
  */
@@ -343,6 +328,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
343
328
  </file>
344
329
  */
345
330
  class Convert {
331
+ static pad(number) {
332
+ if (number < 10) {
333
+ return '0' + number;
334
+ }
335
+ return number;
336
+ }
346
337
  static toLocalizedDateTime(value) {
347
338
  if (value) {
348
339
  return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds()));
@@ -387,6 +378,38 @@ class Convert {
387
378
  }
388
379
  return [];
389
380
  }
381
+ static address2String(adr) {
382
+ let address = JSON.parse(adr);
383
+ let addressAsString = `${address.street} ${address.street2} ${address.city} ${address.stateOrRegion} ${address.zipcode} ${address.country}`;
384
+ return addressAsString;
385
+ }
386
+ static dateToString(date) {
387
+ return date.getFullYear() +
388
+ '-' + this.pad(date.getMonth() + 1) +
389
+ '-' + this.pad(date.getDate()) +
390
+ ' ' + this.pad(date.getHours()) +
391
+ ':' + this.pad(date.getMinutes()) +
392
+ ':' + this.pad(date.getSeconds());
393
+ }
394
+ static utcDateToLocalDate(d) {
395
+ let date = new Date(d);
396
+ return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
397
+ }
398
+ static stringToBoolean(value) {
399
+ switch (value.toLowerCase().trim()) {
400
+ case "true":
401
+ case "yes":
402
+ case "1":
403
+ return true;
404
+ case "false":
405
+ case "no":
406
+ case "0":
407
+ case null:
408
+ return false;
409
+ default:
410
+ return Boolean(value);
411
+ }
412
+ }
390
413
  }
391
414
 
392
415
  /*
@@ -400,10 +423,7 @@ class Convert {
400
423
 
401
424
  Created:
402
425
  05 May 2020
403
-
404
- Version:
405
- 1.0
406
-
426
+
407
427
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
408
428
  </file>
409
429
  */
@@ -574,10 +594,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
574
594
 
575
595
  Created:
576
596
  10 May 2020
577
-
578
- Version:
579
- 1.0
580
-
597
+
581
598
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
582
599
  </file>
583
600
  */
@@ -649,9 +666,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
649
666
  Created:
650
667
  05 May 2020
651
668
 
652
- Version:
653
- 1.0
654
-
655
669
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
656
670
  </file>
657
671
  */
@@ -725,10 +739,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
725
739
 
726
740
  Created:
727
741
  12 May 2020
728
-
729
- Version:
730
- 1.0
731
-
742
+
732
743
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
733
744
  </file>
734
745
  */
@@ -767,9 +778,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
767
778
  Created:
768
779
  26 Jun 2020
769
780
 
770
- Version:
771
- 1.0
772
-
773
781
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
774
782
  </file>
775
783
  */
@@ -801,10 +809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
801
809
 
802
810
  Created:
803
811
  2 July 2020
804
-
805
- Version:
806
- 1.0
807
-
812
+
808
813
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
809
814
  </file>
810
815
  */
@@ -843,10 +848,7 @@ class L10nUtils {
843
848
 
844
849
  Created:
845
850
  3 March 2020
846
-
847
- Version:
848
- 1.0
849
-
851
+
850
852
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
851
853
  </file>
852
854
  */
@@ -951,9 +953,6 @@ class Alerts {
951
953
  Created:
952
954
  2 Jun 2020
953
955
 
954
- Version:
955
- 1.0
956
-
957
956
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
958
957
  </file>
959
958
  */
@@ -991,9 +990,6 @@ class Guid {
991
990
  Created:
992
991
  2 Jun 2020
993
992
 
994
- Version:
995
- 1.0
996
-
997
993
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
998
994
  </file>
999
995
  */
@@ -1210,9 +1206,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1210
1206
  Created:
1211
1207
  13 Nov 2017
1212
1208
 
1213
- Version:
1214
- 1.0
1215
-
1216
1209
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1217
1210
  </file>
1218
1211
  */
@@ -1256,9 +1249,6 @@ class BaseApiService {
1256
1249
  getExternalTextFile(url) {
1257
1250
  return this.http.get(url);
1258
1251
  }
1259
- getExternalJsonFile(url) {
1260
- return this.http.get(url);
1261
- }
1262
1252
  getJsonFile(fileName) {
1263
1253
  const jsonsUrl = AppCoreSettings.jsonsUrl;
1264
1254
  const jsonVersion = AppCoreSettings.jsonVersion;
@@ -1273,6 +1263,20 @@ class BaseApiService {
1273
1263
  }
1274
1264
  return this.http.get(url).pipe(map(res => res));
1275
1265
  }
1266
+ getExternalJsonFile(libname, fileName) {
1267
+ const externalUrl = AppCoreSettings.externalUrl;
1268
+ const jsonVersion = AppCoreSettings.jsonVersion;
1269
+ const isCDNEnabled = AppCoreSettings.isCDNEnabled;
1270
+ const cdnSasToken = AppCoreSettings.cdnSasToken;
1271
+ let url = "";
1272
+ if (isCDNEnabled) {
1273
+ url = externalUrl + "/" + libname + "/jsons/" + fileName + cdnSasToken;
1274
+ }
1275
+ else {
1276
+ url = externalUrl + "/" + libname + "/jsons/" + fileName + '?' + jsonVersion;
1277
+ }
1278
+ return this.http.get(url).pipe(map(res => res));
1279
+ }
1276
1280
  }
1277
1281
  BaseApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BaseApiService, deps: [{ token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1278
1282
  BaseApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BaseApiService });
@@ -1291,10 +1295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1291
1295
 
1292
1296
  Created:
1293
1297
  26 Jun 2020
1294
-
1295
- Version:
1296
- 1.0
1297
-
1298
+
1298
1299
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1299
1300
  </file>
1300
1301
  */
@@ -1474,9 +1475,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1474
1475
  Created:
1475
1476
  26 Jun 2020
1476
1477
 
1477
- Version:
1478
- 1.0
1479
-
1480
1478
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1481
1479
  </file>
1482
1480
  */
@@ -1543,11 +1541,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1543
1541
  Anatoly Osovitny
1544
1542
 
1545
1543
  Created:
1546
- 29 Щсе 2020
1547
-
1548
- Version:
1549
- 1.0
1550
-
1544
+ 29 Nov 2020
1545
+
1551
1546
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1552
1547
  </file>
1553
1548
  */
@@ -1612,9 +1607,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1612
1607
  Created:
1613
1608
  29 Nov 2020
1614
1609
 
1615
- Version:
1616
- 1.0
1617
-
1618
1610
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1619
1611
  </file>
1620
1612
  */
@@ -1772,11 +1764,24 @@ class Utils {
1772
1764
  Anatoly Osovitny
1773
1765
 
1774
1766
  Created:
1775
- 29 Apr 2018
1767
+ 2 Aug 2022
1768
+
1769
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1770
+ </file>
1771
+ */
1772
+
1773
+ /*
1774
+ <file>
1775
+ Project:
1776
+ @osovitny/anatoly
1776
1777
 
1777
- Version:
1778
- 1.0
1778
+ Authors:
1779
+ Vadim Osovitny
1780
+ Anatoly Osovitny
1779
1781
 
1782
+ Created:
1783
+ 29 Apr 2018
1784
+
1780
1785
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1781
1786
  </file>
1782
1787
  */
@@ -1828,10 +1833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1828
1833
 
1829
1834
  Created:
1830
1835
  29 Apr 2018
1831
-
1832
- Version:
1833
- 1.0
1834
-
1836
+
1835
1837
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1836
1838
  </file>
1837
1839
  */
@@ -1899,18 +1901,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1899
1901
  Created:
1900
1902
  30 April 2020
1901
1903
 
1902
- Version:
1903
- 1.0
1904
-
1905
1904
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1906
1905
  </file>
1907
1906
  */
1908
- const consts = {
1907
+ const Consts = {
1908
+ //core
1909
+ coreApiPath: 'api/core',
1909
1910
  //billing
1910
1911
  billingApiPath: 'api/billing',
1911
1912
  //emails
1912
1913
  emailsApiPath: 'api/emails',
1913
- //notifications
1914
+ //notifications
1914
1915
  notificationsApiPath: 'api/notifications'
1915
1916
  };
1916
1917
 
@@ -1926,9 +1927,6 @@ const consts = {
1926
1927
  Created:
1927
1928
  30 April 2020
1928
1929
 
1929
- Version:
1930
- 1.0
1931
-
1932
1930
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1933
1931
  </file>
1934
1932
  */
@@ -1936,7 +1934,7 @@ class NotificationsApiService extends BaseApiService {
1936
1934
  constructor(http) {
1937
1935
  super(http);
1938
1936
  this.http = http;
1939
- this.baseUrl = consts.notificationsApiPath;
1937
+ this.baseUrl = Consts.notificationsApiPath;
1940
1938
  }
1941
1939
  retrieveNotifications() {
1942
1940
  return this.get('retrieveNotifications');
@@ -1963,9 +1961,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1963
1961
  Created:
1964
1962
  12 Nov 2017
1965
1963
 
1966
- Version:
1967
- 1.0
1968
-
1969
1964
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1970
1965
  </file>
1971
1966
  */
@@ -1973,7 +1968,7 @@ class BillingApiService extends BaseApiService {
1973
1968
  constructor(http) {
1974
1969
  super(http);
1975
1970
  this.http = http;
1976
- this.baseUrl = consts.billingApiPath;
1971
+ this.baseUrl = Consts.billingApiPath;
1977
1972
  }
1978
1973
  requestNewSubscription(requestedPlan, success, error) {
1979
1974
  this.postQS("requestNewSubscription", { requestedPlan: requestedPlan }).subscribe((data) => {
@@ -2019,13 +2014,100 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2019
2014
  Anatoly Osovitny
2020
2015
 
2021
2016
  Created:
2022
- 28 Aug 2018
2017
+ 16 Jun 2022
2018
+
2019
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2020
+ </file>
2021
+ */
2022
+ class EmailsApiService extends BaseApiService {
2023
+ constructor(http) {
2024
+ super(http);
2025
+ this.http = http;
2026
+ this.baseUrl = Consts.emailsApiPath;
2027
+ }
2028
+ sendContactUs(captcha, name, email, topic, subject, message, success, error) {
2029
+ return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe(data => {
2030
+ if (success)
2031
+ success(data);
2032
+ }, e => {
2033
+ if (error)
2034
+ error(e);
2035
+ });
2036
+ }
2037
+ }
2038
+ EmailsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService, deps: [{ token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2039
+ EmailsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService });
2040
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService, decorators: [{
2041
+ type: Injectable
2042
+ }], ctorParameters: function () { return [{ type: i1$3.HttpClient }]; } });
2043
+
2044
+ /*
2045
+ <file>
2046
+ Project:
2047
+ @osovitny/anatoly
2023
2048
 
2024
- Version:
2025
- 1.0
2049
+ Authors:
2050
+ Vadim Osovitny
2051
+ Anatoly Osovitny
2052
+
2053
+ Created:
2054
+ 02 Aug 2022
2055
+
2056
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
2057
+ </file>
2058
+ */
2059
+ class CoreApiService extends BaseApiService {
2060
+ constructor(http) {
2061
+ super(http);
2062
+ this.http = http;
2063
+ this.baseUrl = Consts.coreApiPath;
2064
+ }
2065
+ getTimezonesJsonFile(done) {
2066
+ this.getExternalJsonFile('anatoly', 'timezones.json').subscribe(data => done(data));
2067
+ }
2068
+ getUSStatesJsonFile(done) {
2069
+ this.getExternalJsonFile('anatoly', 'usStates.json').subscribe(data => done(data));
2070
+ }
2071
+ getCountriesJsonFile(done) {
2072
+ this.getExternalJsonFile('anatoly', 'countries.json').subscribe(data => done(data));
2073
+ }
2074
+ }
2075
+ CoreApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CoreApiService, deps: [{ token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2076
+ CoreApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CoreApiService });
2077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CoreApiService, decorators: [{
2078
+ type: Injectable
2079
+ }], ctorParameters: function () { return [{ type: i1$3.HttpClient }]; } });
2080
+
2081
+ /*
2082
+ <file>
2083
+ Project:
2084
+ @osovitny/anatoly
2085
+
2086
+ Authors:
2087
+ Vadim Osovitny
2088
+ Anatoly Osovitny
2089
+
2090
+ Created:
2091
+ 2 Aug 2022
2026
2092
 
2027
2093
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2028
2094
  </file>
2095
+ */
2096
+
2097
+ /*
2098
+ <file>
2099
+ Project:
2100
+ @osovitny/anatoly
2101
+
2102
+ Authors:
2103
+ Vadim Osovitny
2104
+ Anatoly Osovitny
2105
+
2106
+ Created:
2107
+ 28 Aug 2018
2108
+
2109
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2110
+ </file>
2029
2111
  */
2030
2112
  class BaseComponent {
2031
2113
  constructor() {
@@ -2062,9 +2144,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2062
2144
  Created:
2063
2145
  20 Nov 2017
2064
2146
 
2065
- Version:
2066
- 1.0
2067
-
2068
2147
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2069
2148
  </file>
2070
2149
  */
@@ -2197,10 +2276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2197
2276
 
2198
2277
  Created:
2199
2278
  24 Jan 2022
2200
-
2201
- Version:
2202
- 1.0
2203
-
2279
+
2204
2280
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2205
2281
  </file>
2206
2282
  */
@@ -2242,9 +2318,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2242
2318
  Created:
2243
2319
  4 Jul 2018
2244
2320
 
2245
- Version:
2246
- 1.0
2247
-
2248
2321
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2249
2322
  </file>
2250
2323
  */
@@ -2332,9 +2405,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2332
2405
  Created:
2333
2406
  12 Nov 2017
2334
2407
 
2335
- Version:
2336
- 1.0
2337
-
2338
2408
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2339
2409
  </file>
2340
2410
  */
@@ -2378,10 +2448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2378
2448
 
2379
2449
  Created:
2380
2450
  1 Jun 2018
2381
-
2382
- Version:
2383
- 1.0
2384
-
2451
+
2385
2452
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2386
2453
  </file>
2387
2454
  */
@@ -2435,9 +2502,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2435
2502
  Created:
2436
2503
  12 Dec 2017
2437
2504
 
2438
- Version:
2439
- 1.0
2440
-
2441
2505
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2442
2506
  </file>
2443
2507
  */
@@ -2524,9 +2588,6 @@ const DefaultEditorOptions = {
2524
2588
  Created:
2525
2589
  12 Dec 2017
2526
2590
 
2527
- Version:
2528
- 1.0
2529
-
2530
2591
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2531
2592
  </file>
2532
2593
  */
@@ -2628,9 +2689,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2628
2689
  Created:
2629
2690
  28 Jun 2020
2630
2691
 
2631
- Version:
2632
- 1.0
2633
-
2634
2692
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2635
2693
  </file>
2636
2694
  */
@@ -2665,9 +2723,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2665
2723
  Created:
2666
2724
  8 Dec 2017
2667
2725
 
2668
- Version:
2669
- 1.0
2670
-
2671
2726
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2672
2727
  </file>
2673
2728
  */
@@ -2787,10 +2842,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2787
2842
 
2788
2843
  Created:
2789
2844
  6 Dec 2017
2790
-
2791
- Version:
2792
- 1.0
2793
-
2845
+
2794
2846
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2795
2847
  </file>
2796
2848
  */
@@ -2821,10 +2873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2821
2873
 
2822
2874
  Created:
2823
2875
  12 Dec 2017
2824
-
2825
- Version:
2826
- 1.0
2827
-
2876
+
2828
2877
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2829
2878
  </file>
2830
2879
  */
@@ -2860,9 +2909,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2860
2909
  Created:
2861
2910
  12 Dec 2017
2862
2911
 
2863
- Version:
2864
- 1.0
2865
-
2866
2912
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2867
2913
  </file>
2868
2914
  */
@@ -2906,9 +2952,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2906
2952
  Created:
2907
2953
  4 Jul 2018
2908
2954
 
2909
- Version:
2910
- 1.0
2911
-
2912
2955
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2913
2956
  </file>
2914
2957
  */
@@ -2936,9 +2979,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2936
2979
  Created:
2937
2980
  4 Jul 2018
2938
2981
 
2939
- Version:
2940
- 1.0
2941
-
2942
2982
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2943
2983
  </file>
2944
2984
  */
@@ -3001,9 +3041,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3001
3041
  Created:
3002
3042
  9 May 2020
3003
3043
 
3004
- Version:
3005
- 1.0
3006
-
3007
3044
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3008
3045
  </file>
3009
3046
  */
@@ -3226,32 +3263,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3226
3263
  Anatoly Osovitny
3227
3264
 
3228
3265
  Created:
3229
- 16 Jun 2022
3266
+ 2 Aug 2022
3230
3267
 
3231
3268
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3232
3269
  </file>
3233
- */
3234
- class EmailsApiService extends BaseApiService {
3235
- constructor(http) {
3236
- super(http);
3237
- this.http = http;
3238
- this.baseUrl = consts.emailsApiPath;
3239
- }
3240
- sendContactUs(captcha, name, email, topic, subject, message, success, error) {
3241
- return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe(data => {
3242
- if (success)
3243
- success(data);
3244
- }, e => {
3245
- if (error)
3246
- error(e);
3247
- });
3248
- }
3249
- }
3250
- EmailsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService, deps: [{ token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
3251
- EmailsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService });
3252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService, decorators: [{
3253
- type: Injectable
3254
- }], ctorParameters: function () { return [{ type: i1$3.HttpClient }]; } });
3270
+ */
3255
3271
 
3256
3272
  /*
3257
3273
  <file>
@@ -3265,9 +3281,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3265
3281
  Created:
3266
3282
  7 Dec 2017
3267
3283
 
3268
- Version:
3269
- 1.0
3270
-
3271
3284
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3272
3285
  </file>
3273
3286
  */
@@ -3324,9 +3337,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3324
3337
  Anatoly Osovitny
3325
3338
 
3326
3339
  Created:
3327
- 29 June 2020
3340
+ 02 Aug 2022
3328
3341
 
3329
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3342
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3330
3343
  </file>
3331
3344
  */
3332
3345
  class ContactUsForm extends BaseEditComponent {
@@ -3470,32 +3483,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3470
3483
  Anatoly Osovitny
3471
3484
 
3472
3485
  Created:
3473
- 26 Jun 2020
3486
+ 2 Aug 2022
3487
+
3488
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3489
+ </file>
3490
+ */
3491
+
3492
+ /*
3493
+ <file>
3494
+ Project:
3495
+ @osovitny/anatoly
3474
3496
 
3475
- Version:
3476
- 1.0
3497
+ Authors:
3498
+ Vadim Osovitny
3499
+ Anatoly Osovitny
3500
+
3501
+ Created:
3502
+ 2 Aug 2022
3477
3503
 
3478
3504
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3479
3505
  </file>
3506
+ */
3507
+
3508
+ /*
3509
+ <file>
3510
+ Project:
3511
+ @osovitny/anatoly
3512
+
3513
+ Authors:
3514
+ Vadim Osovitny
3515
+ Anatoly Osovitny
3516
+
3517
+ Created:
3518
+ 02 Aug 2022
3519
+
3520
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3521
+ </file>
3480
3522
  */
3481
- class ReplaceTextPipe {
3482
- transform(inputData, search, replacement) {
3483
- if (inputData) {
3484
- return inputData.replace(new RegExp(search, "g"), replacement);
3523
+ class AddressComponent extends BaseEditComponent {
3524
+ constructor(fb, api) {
3525
+ super();
3526
+ this.fb = fb;
3527
+ this.api = api;
3528
+ this.formGroupGenerated = false;
3529
+ this.countryData = [];
3530
+ this.usStateData = [];
3531
+ this.currentCountry = 'US';
3532
+ this.currentUSState = 'NY';
3533
+ //Inputs
3534
+ this.title = 'Address';
3535
+ this.isTitleVisible = true;
3536
+ //Outputs
3537
+ this.change = new EventEmitter();
3538
+ }
3539
+ get address() {
3540
+ return this._address;
3541
+ }
3542
+ set address(value) {
3543
+ this._address = value;
3544
+ if (value) {
3545
+ this.init();
3546
+ }
3547
+ }
3548
+ ngOnInit() {
3549
+ this.api.getCountriesJsonFile(data => {
3550
+ this.countryData = data;
3551
+ });
3552
+ this.api.getUSStatesJsonFile(data => {
3553
+ this.usStateData = data;
3554
+ });
3555
+ this.createFormGroup();
3556
+ this.init();
3557
+ }
3558
+ createFormGroup() {
3559
+ let isRequired = Convert.stringToBoolean(this.isRequired);
3560
+ if (isRequired) {
3561
+ this.formGroup.addControl('street', this.fb.control('', [Validators.required])),
3562
+ this.formGroup.addControl('street2', this.fb.control('', [])),
3563
+ this.formGroup.addControl('city', this.fb.control('', [Validators.required])),
3564
+ this.formGroup.addControl('stateOrRegion', this.fb.control(this.currentUSState, [Validators.required])),
3565
+ this.formGroup.addControl('country', this.fb.control(this.currentCountry, [Validators.required])),
3566
+ this.formGroup.addControl('zipcode', this.fb.control('', [Validators.required]));
3485
3567
  }
3486
3568
  else {
3487
- return inputData;
3569
+ this.formGroup.addControl('street', this.fb.control('', [])),
3570
+ this.formGroup.addControl('street2', this.fb.control('', [])),
3571
+ this.formGroup.addControl('city', this.fb.control('', [])),
3572
+ this.formGroup.addControl('stateOrRegion', this.fb.control(this.currentUSState, [])),
3573
+ this.formGroup.addControl('country', this.fb.control(this.currentCountry, [])),
3574
+ this.formGroup.addControl('zipcode', this.fb.control('', []));
3488
3575
  }
3576
+ this.formGroupGenerated = true;
3577
+ }
3578
+ init() {
3579
+ if (!this.formGroupGenerated) {
3580
+ return;
3581
+ }
3582
+ if (this._address !== undefined) {
3583
+ let address = JSON.parse(this._address);
3584
+ this.setFormValue('street', address.street);
3585
+ this.setFormValue('street2', address.street2);
3586
+ this.setFormValue('city', address.city);
3587
+ this.setFormValue('stateOrRegion', address.stateOrRegion);
3588
+ this.setFormValue('zipcode', address.zipcode);
3589
+ this.setFormValue('country', address.country);
3590
+ }
3591
+ }
3592
+ getAddress() {
3593
+ const data = {
3594
+ street: this.getFormValue('street') || null,
3595
+ street2: this.getFormValue('street2') || null,
3596
+ city: this.getFormValue('city') || null,
3597
+ stateOrRegion: this.getFormValue('stateOrRegion') || null,
3598
+ zipcode: this.getFormValue('zipcode') || null,
3599
+ country: this.getFormValue('country') || null
3600
+ };
3601
+ return JSON.stringify(data);
3602
+ }
3603
+ //Events
3604
+ onCountryChange(event) {
3605
+ let country = event.target.value;
3606
+ this.change.emit(country);
3607
+ }
3608
+ onUSStateChange(event) {
3609
+ let usState = event.target.value;
3610
+ this.change.emit(usState);
3489
3611
  }
3490
3612
  }
3491
- ReplaceTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3492
- ReplaceTextPipepipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, name: "replaceText" });
3493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, decorators: [{
3494
- type: Pipe,
3495
- args: [{
3496
- name: "replaceText",
3497
- }]
3498
- }] });
3613
+ AddressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AddressComponent, deps: [{ token: i1$6.FormBuilder }, { token: CoreApiService }], target: i0.ɵɵFactoryTarget.Component });
3614
+ AddressComponentcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AddressComponent, selector: "anatoly-forms-address", inputs: { title: "title", isTitleVisible: "isTitleVisible", isRequired: "isRequired", address: "address" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: "<anatoly-card [class]=\"'card-primary card-outline'\">\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title'></anatoly-card-header>\r\n <anatoly-card-body>\r\n <div [formGroup]='formGroup' class='row'>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('street')}\" class='form-group col-12'>\r\n <label class='col-form-label required'>Street Address</label>\r\n <input class='form-control '\r\n formControlName='street'\r\n placeholder='Street Address'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='street'\r\n controlTitle='street'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('street2')}\" class='form-group col-12'>\r\n <input class='form-control'\r\n formControlName='street2'\r\n placeholder='Apartment, suite, unit, building, floor, etc.'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='street2'\r\n controlTitle='street2'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('city')}\" class='form-group col-3'>\r\n <label class='col-form-label required'>City</label>\r\n <input class='form-control'\r\n formControlName='city'\r\n placeholder=' City'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='city'\r\n controlTitle='City'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div *ngIf=\"formGroup.value.country == 'US'\" [ngClass]=\"{'has-error': isControlInvalid('stateOrRegion')}\"\r\n class='form-group col-3'>\r\n <label class='col-form-label required'>State</label>\r\n <select (change)='onUSStateChange($event)' class='form-control' formControlName='stateOrRegion'>\r\n <option *ngFor='let state of usStateData' [value]='state.code'>{{state.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='stateOrRegion'\r\n controlTitle='State'>\r\n </anatoly-item-validation-summary>\r\n </div> \r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('zipcode')}\" class='form-group col-3'>\r\n <label class='col-form-label required'>zipcode</label>\r\n <input class='form-control'\r\n formControlName='zipcode'\r\n placeholder='zipcode'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='zipcode'\r\n controlTitle='zipcode'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('country')}\" class='form-group col-3'>\r\n <label class='col-form-label required'>Country</label>\r\n <select (change)='onCountryChange($event)' class='form-control'\r\n data-placeholder='Select a Country'\r\n formControlName='country'>\r\n <option *ngFor='let country of countryData' [value]='country.code'>{{country.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='country'\r\n controlTitle='Country'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n", dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CardComponent, selector: "anatoly-card", inputs: ["class"] }, { kind: "component", type: CardHeaderComponent, selector: "anatoly-card-header", inputs: ["class", "title"] }, { kind: "component", type: CardBodyComponent, selector: "anatoly-card-body", inputs: ["class", "styles"] }, { kind: "directive", type: NativeElementDirective, selector: "[formControl], [formControlName]" }, { kind: "component", type: ItemValidationSummaryComponent, selector: "anatoly-item-validation-summary", inputs: ["controlName", "controlTitle"] }] });
3615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AddressComponent, decorators: [{
3616
+ type: Component,
3617
+ args: [{ selector: 'anatoly-forms-address', template: "<anatoly-card [class]=\"'card-primary card-outline'\">\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title'></anatoly-card-header>\r\n <anatoly-card-body>\r\n <div [formGroup]='formGroup' class='row'>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('street')}\" class='form-group col-12'>\r\n <label class='col-form-label required'>Street Address</label>\r\n <input class='form-control '\r\n formControlName='street'\r\n placeholder='Street Address'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='street'\r\n controlTitle='street'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('street2')}\" class='form-group col-12'>\r\n <input class='form-control'\r\n formControlName='street2'\r\n placeholder='Apartment, suite, unit, building, floor, etc.'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='street2'\r\n controlTitle='street2'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('city')}\" class='form-group col-3'>\r\n <label class='col-form-label required'>City</label>\r\n <input class='form-control'\r\n formControlName='city'\r\n placeholder=' City'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='city'\r\n controlTitle='City'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div *ngIf=\"formGroup.value.country == 'US'\" [ngClass]=\"{'has-error': isControlInvalid('stateOrRegion')}\"\r\n class='form-group col-3'>\r\n <label class='col-form-label required'>State</label>\r\n <select (change)='onUSStateChange($event)' class='form-control' formControlName='stateOrRegion'>\r\n <option *ngFor='let state of usStateData' [value]='state.code'>{{state.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='stateOrRegion'\r\n controlTitle='State'>\r\n </anatoly-item-validation-summary>\r\n </div> \r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('zipcode')}\" class='form-group col-3'>\r\n <label class='col-form-label required'>zipcode</label>\r\n <input class='form-control'\r\n formControlName='zipcode'\r\n placeholder='zipcode'\r\n type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='zipcode'\r\n controlTitle='zipcode'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div [ngClass]=\"{'has-error': isControlInvalid('country')}\" class='form-group col-3'>\r\n <label class='col-form-label required'>Country</label>\r\n <select (change)='onCountryChange($event)' class='form-control'\r\n data-placeholder='Select a Country'\r\n formControlName='country'>\r\n <option *ngFor='let country of countryData' [value]='country.code'>{{country.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='country'\r\n controlTitle='Country'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n" }]
3618
+ }], ctorParameters: function () { return [{ type: i1$6.FormBuilder }, { type: CoreApiService }]; }, propDecorators: { title: [{
3619
+ type: Input
3620
+ }], isTitleVisible: [{
3621
+ type: Input
3622
+ }], isRequired: [{
3623
+ type: Input
3624
+ }], address: [{
3625
+ type: Input
3626
+ }], change: [{
3627
+ type: Output
3628
+ }] } });
3499
3629
 
3500
3630
  /*
3501
3631
  <file>
@@ -3507,10 +3637,219 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3507
3637
  Anatoly Osovitny
3508
3638
 
3509
3639
  Created:
3510
- 26 Jun 2020
3640
+ 02 Aug 2022
3641
+
3642
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3643
+ </file>
3644
+ */
3645
+ class CompanyComponent extends BaseEditComponent {
3646
+ constructor(fb) {
3647
+ super();
3648
+ this.fb = fb;
3649
+ this.formGroupGenerated = false;
3650
+ //Inputs
3651
+ this.title = 'Company / Organization';
3652
+ this.isTitleVisible = true;
3653
+ }
3654
+ get company() {
3655
+ return this._company;
3656
+ }
3657
+ set company(value) {
3658
+ this._company = value;
3659
+ if (value) {
3660
+ this.init();
3661
+ }
3662
+ }
3663
+ ngOnInit() {
3664
+ this.createFormGroup();
3665
+ this.init();
3666
+ }
3667
+ createFormGroup() {
3668
+ this.formGroup.addControl('company_name', this.fb.control('', []));
3669
+ this.formGroup.addControl('company_phone', this.fb.control('', []));
3670
+ this.formGroup.addControl('company_email', this.fb.control('', []));
3671
+ this.formGroup.addControl('company_websiteUrl', this.fb.control('', []));
3672
+ this.formGroupGenerated = true;
3673
+ }
3674
+ init() {
3675
+ if (!this.formGroupGenerated) {
3676
+ return;
3677
+ }
3678
+ if (this._company !== undefined) {
3679
+ let company = JSON.parse(this._company);
3680
+ this.setFormValue('company_name', company.name);
3681
+ this.setFormValue('company_phone', company.phone);
3682
+ this.setFormValue('company_email', company.email);
3683
+ this.setFormValue('company_websiteUrl', company.websiteUrl);
3684
+ }
3685
+ }
3686
+ getCompany() {
3687
+ const data = {
3688
+ name: this.getFormValue('company_name') || null,
3689
+ phone: this.getFormValue('company_phone') || null,
3690
+ email: this.getFormValue('company_email') || null,
3691
+ websiteUrl: this.getFormValue('company_websiteUrl') || null
3692
+ };
3693
+ return JSON.stringify(data);
3694
+ }
3695
+ }
3696
+ CompanyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CompanyComponent, deps: [{ token: i1$6.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
3697
+ CompanyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CompanyComponent, selector: "anatoly-forms-company", inputs: { title: "title", isTitleVisible: "isTitleVisible", company: "company" }, usesInheritance: true, ngImport: i0, template: "<anatoly-card [class]=\"'card-primary card-outline'\">\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title'></anatoly-card-header>\r\n <anatoly-card-body>\r\n <div [formGroup]='formGroup' class='row'>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_name') }\">\r\n <label class='col-form-label'>Name</label>\r\n <input type='text' class='form-control' formControlName='company_name' placeholder='Company Name'>\r\n <anatoly-item-validation-summary controlName='company_name'\r\n controlTitle='Company Name'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_phone') }\">\r\n <label class='col-form-label'>Phone</label>\r\n <input type='tel' class='form-control' formControlName='company_phone' placeholder='Company Phone'>\r\n <anatoly-item-validation-summary controlName='company_phone'\r\n controlTitle='Company Phone'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_email') }\">\r\n <label class='col-form-label'>Email</label>\r\n <input type='email' class='form-control' formControlName='company_email' placeholder='Company Email'>\r\n <anatoly-item-validation-summary controlName='company_email'\r\n controlTitle='Company Email'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_websiteUrl') }\">\r\n <label class='col-form-label'>Website Url</label>\r\n <input type='url' placeholder='https://example.com' pattern='https://.*' size='30'\r\n class='form-control' formControlName='websiteUrl'>\r\n <anatoly-item-validation-summary controlName='company_websiteUrl'\r\n controlTitle='Company website url'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n", dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CardComponent, selector: "anatoly-card", inputs: ["class"] }, { kind: "component", type: CardHeaderComponent, selector: "anatoly-card-header", inputs: ["class", "title"] }, { kind: "component", type: CardBodyComponent, selector: "anatoly-card-body", inputs: ["class", "styles"] }, { kind: "directive", type: NativeElementDirective, selector: "[formControl], [formControlName]" }, { kind: "component", type: ItemValidationSummaryComponent, selector: "anatoly-item-validation-summary", inputs: ["controlName", "controlTitle"] }] });
3698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CompanyComponent, decorators: [{
3699
+ type: Component,
3700
+ args: [{ selector: 'anatoly-forms-company', template: "<anatoly-card [class]=\"'card-primary card-outline'\">\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title'></anatoly-card-header>\r\n <anatoly-card-body>\r\n <div [formGroup]='formGroup' class='row'>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_name') }\">\r\n <label class='col-form-label'>Name</label>\r\n <input type='text' class='form-control' formControlName='company_name' placeholder='Company Name'>\r\n <anatoly-item-validation-summary controlName='company_name'\r\n controlTitle='Company Name'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_phone') }\">\r\n <label class='col-form-label'>Phone</label>\r\n <input type='tel' class='form-control' formControlName='company_phone' placeholder='Company Phone'>\r\n <anatoly-item-validation-summary controlName='company_phone'\r\n controlTitle='Company Phone'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_email') }\">\r\n <label class='col-form-label'>Email</label>\r\n <input type='email' class='form-control' formControlName='company_email' placeholder='Company Email'>\r\n <anatoly-item-validation-summary controlName='company_email'\r\n controlTitle='Company Email'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_websiteUrl') }\">\r\n <label class='col-form-label'>Website Url</label>\r\n <input type='url' placeholder='https://example.com' pattern='https://.*' size='30'\r\n class='form-control' formControlName='websiteUrl'>\r\n <anatoly-item-validation-summary controlName='company_websiteUrl'\r\n controlTitle='Company website url'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n" }]
3701
+ }], ctorParameters: function () { return [{ type: i1$6.FormBuilder }]; }, propDecorators: { title: [{
3702
+ type: Input
3703
+ }], isTitleVisible: [{
3704
+ type: Input
3705
+ }], company: [{
3706
+ type: Input
3707
+ }] } });
3708
+
3709
+ /*
3710
+ <file>
3711
+ Project:
3712
+ @osovitny/anatoly
3713
+
3714
+ Authors:
3715
+ Vadim Osovitny
3716
+ Anatoly Osovitny
3717
+
3718
+ Created:
3719
+ 02 Aug 2022
3720
+
3721
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3722
+ </file>
3723
+ */
3724
+ class UrlSlugComponent extends BaseEditComponent {
3725
+ constructor() {
3726
+ super();
3727
+ //Inputs
3728
+ this.title = 'Permalink';
3729
+ this.isTitleVisible = true;
3730
+ }
3731
+ ngOnInit() {
3732
+ this.setWatchers();
3733
+ }
3734
+ setWatchers() {
3735
+ this.formGroup.get(this.watchedControlName).valueChanges.subscribe(val => {
3736
+ this.generateUrlSlug();
3737
+ });
3738
+ }
3739
+ generateUrlSlug() {
3740
+ let name = this.getFormValue(this.watchedControlName);
3741
+ let slugedText = Utils.slugify(name);
3742
+ this.setFormValue(this.controlName, slugedText);
3743
+ }
3744
+ }
3745
+ UrlSlugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3746
+ UrlSlugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UrlSlugComponent, selector: "anatoly-forms-urlslug", inputs: { title: "title", isTitleVisible: "isTitleVisible", controlName: "controlName", controlTitle: "controlTitle", class: "class", watchedControlName: "watchedControlName", urlPrefix: "urlPrefix" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]='formGroup' class=\"{'has-error': isControlInvalid(controlName)} form-group {{class}}\">\r\n <label *ngIf='isTitleVisible' class='col-form-label'>{{ title }} <strong>{{ urlPrefix }} </strong></label>\r\n <input [formControlName]='controlName' type='text' placeholder='Type url slug here' class='form-control' />\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle'>\r\n </anatoly-item-validation-summary>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NativeElementDirective, selector: "[formControl], [formControlName]" }, { kind: "component", type: ItemValidationSummaryComponent, selector: "anatoly-item-validation-summary", inputs: ["controlName", "controlTitle"] }] });
3747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, decorators: [{
3748
+ type: Component,
3749
+ args: [{ selector: 'anatoly-forms-urlslug', template: "<div [formGroup]='formGroup' class=\"{'has-error': isControlInvalid(controlName)} form-group {{class}}\">\r\n <label *ngIf='isTitleVisible' class='col-form-label'>{{ title }} <strong>{{ urlPrefix }} </strong></label>\r\n <input [formControlName]='controlName' type='text' placeholder='Type url slug here' class='form-control' />\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle'>\r\n </anatoly-item-validation-summary>\r\n</div>\r\n" }]
3750
+ }], ctorParameters: function () { return []; }, propDecorators: { title: [{
3751
+ type: Input
3752
+ }], isTitleVisible: [{
3753
+ type: Input
3754
+ }], controlName: [{
3755
+ type: Input
3756
+ }], controlTitle: [{
3757
+ type: Input
3758
+ }], class: [{
3759
+ type: Input
3760
+ }], watchedControlName: [{
3761
+ type: Input
3762
+ }], urlPrefix: [{
3763
+ type: Input
3764
+ }] } });
3765
+
3766
+ /*
3767
+ <file>
3768
+ Project:
3769
+ @osovitny/anatoly
3770
+
3771
+ Authors:
3772
+ Vadim Osovitny
3773
+ Anatoly Osovitny
3511
3774
 
3512
- Version:
3513
- 1.0
3775
+ Created:
3776
+ 02 Aug 2022
3777
+
3778
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3779
+ </file>
3780
+ */
3781
+ class TimezoneDropdownlist extends BaseEditComponent {
3782
+ constructor(api, appContext) {
3783
+ super();
3784
+ this.api = api;
3785
+ this.appContext = appContext;
3786
+ //Inputs
3787
+ this.title = 'Timezone';
3788
+ this.isTitleVisible = true;
3789
+ this.controlName = 'timezone';
3790
+ }
3791
+ ngOnInit() {
3792
+ this.setValues();
3793
+ }
3794
+ setValues() {
3795
+ this.api.getTimezonesJsonFile(data => {
3796
+ this.timezoneListItems = data.reverse();
3797
+ });
3798
+ try {
3799
+ let timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
3800
+ this.setFormValue(this.controlName, timeZone);
3801
+ }
3802
+ catch {
3803
+ }
3804
+ let context = this.appContext.current;
3805
+ let timeZone = context?.account?.timezone;
3806
+ if (timeZone) {
3807
+ this.setFormValue(this.controlName, timeZone);
3808
+ }
3809
+ }
3810
+ }
3811
+ TimezoneDropdownlist.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TimezoneDropdownlist, deps: [{ token: CoreApiService }, { token: AppContextService }], target: i0.ɵɵFactoryTarget.Component });
3812
+ TimezoneDropdownlist.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TimezoneDropdownlist, selector: "anatoly-forms-timezone-dropdownlist", inputs: { title: "title", isTitleVisible: "isTitleVisible", controlName: "controlName", controlTitle: "controlTitle" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]='formGroup' class='form-group'>\r\n <label *ngIf='isTitleVisible' class='col-form-label'>Timezone</label>\r\n <select [formControlName]='controlName' class='form-control'>\r\n <option *ngFor='let timezone of timezoneListItems'\r\n [value]='timezone.code'>\r\n ({{timezone.offset}}) {{timezone.name}}\r\n </option>\r\n </select>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NativeElementDirective, selector: "[formControl], [formControlName]" }] });
3813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TimezoneDropdownlist, decorators: [{
3814
+ type: Component,
3815
+ args: [{ selector: 'anatoly-forms-timezone-dropdownlist', template: "<div [formGroup]='formGroup' class='form-group'>\r\n <label *ngIf='isTitleVisible' class='col-form-label'>Timezone</label>\r\n <select [formControlName]='controlName' class='form-control'>\r\n <option *ngFor='let timezone of timezoneListItems'\r\n [value]='timezone.code'>\r\n ({{timezone.offset}}) {{timezone.name}}\r\n </option>\r\n </select>\r\n</div>\r\n" }]
3816
+ }], ctorParameters: function () { return [{ type: CoreApiService }, { type: AppContextService }]; }, propDecorators: { title: [{
3817
+ type: Input
3818
+ }], isTitleVisible: [{
3819
+ type: Input
3820
+ }], controlName: [{
3821
+ type: Input
3822
+ }], controlTitle: [{
3823
+ type: Input
3824
+ }] } });
3825
+
3826
+ /*
3827
+ <file>
3828
+ Project:
3829
+ @osovitny/anatoly
3830
+
3831
+ Authors:
3832
+ Vadim Osovitny
3833
+ Anatoly Osovitny
3834
+
3835
+ Created:
3836
+ 2 Aug 2022
3837
+
3838
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3839
+ </file>
3840
+ */
3841
+
3842
+ /*
3843
+ <file>
3844
+ Project:
3845
+ @osovitny/anatoly
3846
+
3847
+ Authors:
3848
+ Vadim Osovitny
3849
+ Anatoly Osovitny
3850
+
3851
+ Created:
3852
+ 26 Jun 2020
3514
3853
 
3515
3854
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3516
3855
  </file>
@@ -3549,10 +3888,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3549
3888
  Anatoly Osovitny
3550
3889
 
3551
3890
  Created:
3552
- 27 Oct 2019
3891
+ 26 Jun 2020
3553
3892
 
3554
- Version:
3555
- 1.0
3893
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3894
+ </file>
3895
+ */
3896
+ class ReplaceTextPipe {
3897
+ transform(inputData, search, replacement) {
3898
+ if (inputData) {
3899
+ return inputData.replace(new RegExp(search, "g"), replacement);
3900
+ }
3901
+ else {
3902
+ return inputData;
3903
+ }
3904
+ }
3905
+ }
3906
+ ReplaceTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3907
+ ReplaceTextPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, name: "replaceText" });
3908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, decorators: [{
3909
+ type: Pipe,
3910
+ args: [{
3911
+ name: "replaceText",
3912
+ }]
3913
+ }] });
3914
+
3915
+ /*
3916
+ <file>
3917
+ Project:
3918
+ @osovitny/anatoly
3919
+
3920
+ Authors:
3921
+ Vadim Osovitny
3922
+ Anatoly Osovitny
3923
+
3924
+ Created:
3925
+ 27 Oct 2019
3556
3926
 
3557
3927
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3558
3928
  </file>
@@ -3572,6 +3942,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3572
3942
  args: [{ name: 'safeHtml' }]
3573
3943
  }], ctorParameters: function () { return [{ type: i1$4.DomSanitizer }]; } });
3574
3944
 
3945
+ /*
3946
+ <file>
3947
+ Project:
3948
+ @osovitny/anatoly
3949
+
3950
+ Authors:
3951
+ Vadim Osovitny
3952
+ Anatoly Osovitny
3953
+
3954
+ Created:
3955
+ 2 Aug 2022
3956
+
3957
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3958
+ </file>
3959
+ */
3960
+
3961
+ /*
3962
+ <file>
3963
+ Project:
3964
+ @osovitny/anatoly
3965
+
3966
+ Authors:
3967
+ Vadim Osovitny
3968
+ Anatoly Osovitny
3969
+
3970
+ Created:
3971
+ 2 Aug 2022
3972
+
3973
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3974
+ </file>
3975
+ */
3976
+
3575
3977
  /*
3576
3978
  <file>
3577
3979
  Project:
@@ -3652,6 +4054,7 @@ class AnatolyDataModule {
3652
4054
  AnatolyDataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyDataModule, deps: [{ token: AnatolyDataModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
3653
4055
  AnatolyDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: AnatolyDataModule, imports: [CommonModule] });
3654
4056
  AnatolyDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyDataModule, providers: [
4057
+ CoreApiService,
3655
4058
  BillingApiService,
3656
4059
  EmailsApiService
3657
4060
  ], imports: [CommonModule] });
@@ -3662,6 +4065,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3662
4065
  CommonModule
3663
4066
  ],
3664
4067
  providers: [
4068
+ CoreApiService,
3665
4069
  BillingApiService,
3666
4070
  EmailsApiService
3667
4071
  ]
@@ -3713,6 +4117,10 @@ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
3713
4117
  //Directives
3714
4118
  NativeElementDirective,
3715
4119
  //Forms
4120
+ AddressComponent,
4121
+ CompanyComponent,
4122
+ UrlSlugComponent,
4123
+ TimezoneDropdownlist,
3716
4124
  ContactUsForm,
3717
4125
  //Dialogs
3718
4126
  ContactUsDialog,
@@ -3748,6 +4156,10 @@ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
3748
4156
  //Directives
3749
4157
  NativeElementDirective,
3750
4158
  //Forms
4159
+ AddressComponent,
4160
+ CompanyComponent,
4161
+ UrlSlugComponent,
4162
+ TimezoneDropdownlist,
3751
4163
  ContactUsForm,
3752
4164
  //Dialogs
3753
4165
  ContactUsDialog,
@@ -3801,6 +4213,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3801
4213
  //Directives
3802
4214
  NativeElementDirective,
3803
4215
  //Forms
4216
+ AddressComponent,
4217
+ CompanyComponent,
4218
+ UrlSlugComponent,
4219
+ TimezoneDropdownlist,
3804
4220
  ContactUsForm,
3805
4221
  //Dialogs
3806
4222
  ContactUsDialog,
@@ -3834,6 +4250,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3834
4250
  //Directives
3835
4251
  NativeElementDirective,
3836
4252
  //Forms
4253
+ AddressComponent,
4254
+ CompanyComponent,
4255
+ UrlSlugComponent,
4256
+ TimezoneDropdownlist,
3837
4257
  ContactUsForm,
3838
4258
  //Dialogs
3839
4259
  ContactUsDialog,
@@ -3856,5 +4276,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3856
4276
  * Generated bundle index. Do not edit.
3857
4277
  */
3858
4278
 
3859
- export { Alerts, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyUIModule, AppContextService, AppCoreSettings, BaseApiService, BaseComponent, BaseDialog, BaseEditComponent, BaseGoService, BaseGridEditService, BaseGridReadService, BaseHtmlEditorComponent, BillingApiService, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, ContactUsDialog, ContactUsForm, ContextInitState, Convert, DefaultEditorOptions, DigitalMarketingService, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, FroalaEditorModuleWithProviders, FroalaViewModuleWithProviders, GlobalErrorHandler, GoogleAnalyticsService, Guid, HtmlEditorComponent, IdleService, InjectorInstance, ItemValidationSummaryComponent, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, NativeElementDirective, NodataComponent, NotificationService, NotificationsApiService, PageSpinnerComponent, ReplaceTextPipe, SafeHtmlPipe, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, Subs, SubscribePlanButtonComponent, TranslateModuleAtRoot, UpgradePlanButtonComponent, Urls, Utils, ValidationSummaryComponent, customTranslateLoaderFactory, localizationInitializerFactory, throwIfAlreadyLoaded };
4279
+ export { AddressComponent, Alerts, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyUIModule, AppContextService, AppCoreSettings, BaseApiService, BaseComponent, BaseDialog, BaseEditComponent, BaseGoService, BaseGridEditService, BaseGridReadService, BaseHtmlEditorComponent, BillingApiService, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CompanyComponent, ContactUsDialog, ContactUsForm, ContextInitState, Convert, CoreApiService, DefaultEditorOptions, DigitalMarketingService, EmailsApiService, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, FroalaEditorModuleWithProviders, FroalaViewModuleWithProviders, GlobalErrorHandler, GoogleAnalyticsService, Guid, HtmlEditorComponent, IdleService, InjectorInstance, ItemValidationSummaryComponent, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, NativeElementDirective, NodataComponent, NotificationService, NotificationsApiService, PageSpinnerComponent, ReplaceTextPipe, SafeHtmlPipe, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, Subs, SubscribePlanButtonComponent, TimezoneDropdownlist, TranslateModuleAtRoot, UpgradePlanButtonComponent, UrlSlugComponent, Urls, Utils, ValidationSummaryComponent, customTranslateLoaderFactory, localizationInitializerFactory, throwIfAlreadyLoaded };
3860
4280
  //# sourceMappingURL=osovitny-anatoly.mjs.map