@osovitny/anatoly 2.14.13 → 2.14.14

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 +93 -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 +618 -192
  69. package/fesm2015/osovitny-anatoly.mjs.map +1 -1
  70. package/fesm2020/osovitny-anatoly.mjs +617 -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
2048
+
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
2023
2085
 
2024
- Version:
2025
- 1.0
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
3496
+
3497
+ Authors:
3498
+ Vadim Osovitny
3499
+ Anatoly Osovitny
3474
3500
 
3475
- Version:
3476
- 1.0
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('', []));
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);
3488
3590
  }
3489
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);
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,221 @@ 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 = this.fb.group({
3669
+ name: new FormControl('', []),
3670
+ phone: new FormControl('', []),
3671
+ email: new FormControl('', []),
3672
+ websiteUrl: new FormControl('', []),
3673
+ });
3674
+ this.formGroupGenerated = true;
3675
+ }
3676
+ init() {
3677
+ if (!this.formGroupGenerated) {
3678
+ return;
3679
+ }
3680
+ if (this._company !== undefined) {
3681
+ let company = JSON.parse(this._company);
3682
+ this.setFormValue('name', company.name);
3683
+ this.setFormValue('phone', company.phone);
3684
+ this.setFormValue('email', company.email);
3685
+ this.setFormValue('websiteUrl', company.websiteUrl);
3686
+ }
3687
+ }
3688
+ getCompany() {
3689
+ const data = {
3690
+ name: this.getFormValue('name') || null,
3691
+ phone: this.getFormValue('phone') || null,
3692
+ email: this.getFormValue('email') || null,
3693
+ websiteUrl: this.getFormValue('websiteUrl') || null
3694
+ };
3695
+ return JSON.stringify(data);
3696
+ }
3697
+ }
3698
+ 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 });
3699
+ 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('name') }\">\r\n <label class='col-form-label'>Name</label>\r\n <input type='text' class='form-control' formControlName='name' placeholder='Company Name'>\r\n <anatoly-item-validation-summary controlName='name'\r\n controlTitle='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('phone') }\">\r\n <label class='col-form-label'>Phone</label>\r\n <input type='tel' class='form-control' formControlName='phone' placeholder='Office Phone'>\r\n <anatoly-item-validation-summary controlName='phone'\r\n controlTitle='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('email') }\">\r\n <label class='col-form-label'>Email</label>\r\n <input type='email' class='form-control' formControlName='email' placeholder='email'>\r\n <anatoly-item-validation-summary controlName='email'\r\n controlTitle='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('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='websiteUrl'\r\n controlTitle='websiteUrl'\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"] }] });
3700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CompanyComponent, decorators: [{
3701
+ type: Component,
3702
+ 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('name') }\">\r\n <label class='col-form-label'>Name</label>\r\n <input type='text' class='form-control' formControlName='name' placeholder='Company Name'>\r\n <anatoly-item-validation-summary controlName='name'\r\n controlTitle='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('phone') }\">\r\n <label class='col-form-label'>Phone</label>\r\n <input type='tel' class='form-control' formControlName='phone' placeholder='Office Phone'>\r\n <anatoly-item-validation-summary controlName='phone'\r\n controlTitle='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('email') }\">\r\n <label class='col-form-label'>Email</label>\r\n <input type='email' class='form-control' formControlName='email' placeholder='email'>\r\n <anatoly-item-validation-summary controlName='email'\r\n controlTitle='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('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='websiteUrl'\r\n controlTitle='websiteUrl'\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" }]
3703
+ }], ctorParameters: function () { return [{ type: i1$6.FormBuilder }]; }, propDecorators: { title: [{
3704
+ type: Input
3705
+ }], isTitleVisible: [{
3706
+ type: Input
3707
+ }], company: [{
3708
+ type: Input
3709
+ }] } });
3710
+
3711
+ /*
3712
+ <file>
3713
+ Project:
3714
+ @osovitny/anatoly
3715
+
3716
+ Authors:
3717
+ Vadim Osovitny
3718
+ Anatoly Osovitny
3719
+
3720
+ Created:
3721
+ 02 Aug 2022
3722
+
3723
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3724
+ </file>
3725
+ */
3726
+ class UrlSlugComponent extends BaseEditComponent {
3727
+ constructor() {
3728
+ super();
3729
+ //Inputs
3730
+ this.title = 'Permalink';
3731
+ this.isTitleVisible = true;
3732
+ }
3733
+ ngOnInit() {
3734
+ this.setWatchers();
3735
+ }
3736
+ setWatchers() {
3737
+ this.formGroup.get(this.watchedControlName).valueChanges.subscribe(val => {
3738
+ this.generateUrlSlug();
3739
+ });
3740
+ }
3741
+ generateUrlSlug() {
3742
+ let name = this.getFormValue(this.watchedControlName);
3743
+ let slugedText = Utils.slugify(name);
3744
+ this.setFormValue(this.controlName, slugedText);
3745
+ }
3746
+ }
3747
+ UrlSlugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3748
+ 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"] }] });
3749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, decorators: [{
3750
+ type: Component,
3751
+ 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" }]
3752
+ }], ctorParameters: function () { return []; }, propDecorators: { title: [{
3753
+ type: Input
3754
+ }], isTitleVisible: [{
3755
+ type: Input
3756
+ }], controlName: [{
3757
+ type: Input
3758
+ }], controlTitle: [{
3759
+ type: Input
3760
+ }], class: [{
3761
+ type: Input
3762
+ }], watchedControlName: [{
3763
+ type: Input
3764
+ }], urlPrefix: [{
3765
+ type: Input
3766
+ }] } });
3767
+
3768
+ /*
3769
+ <file>
3770
+ Project:
3771
+ @osovitny/anatoly
3772
+
3773
+ Authors:
3774
+ Vadim Osovitny
3775
+ Anatoly Osovitny
3776
+
3777
+ Created:
3778
+ 02 Aug 2022
3779
+
3780
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3781
+ </file>
3782
+ */
3783
+ class TimezoneDropdownlist extends BaseEditComponent {
3784
+ constructor(api, appContext) {
3785
+ super();
3786
+ this.api = api;
3787
+ this.appContext = appContext;
3788
+ //Inputs
3789
+ this.title = 'Timezone';
3790
+ this.isTitleVisible = true;
3791
+ this.controlName = 'timezone';
3792
+ }
3793
+ ngOnInit() {
3794
+ this.setValues();
3795
+ }
3796
+ setValues() {
3797
+ this.api.getTimezonesJsonFile(data => {
3798
+ this.timezoneListItems = data.reverse();
3799
+ });
3800
+ try {
3801
+ let timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
3802
+ this.setFormValue(this.controlName, timeZone);
3803
+ }
3804
+ catch {
3805
+ }
3806
+ let context = this.appContext.current;
3807
+ let timeZone = context?.account?.timezone;
3808
+ if (timeZone) {
3809
+ this.setFormValue(this.controlName, timeZone);
3810
+ }
3811
+ }
3812
+ }
3813
+ 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 });
3814
+ 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]" }] });
3815
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TimezoneDropdownlist, decorators: [{
3816
+ type: Component,
3817
+ 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" }]
3818
+ }], ctorParameters: function () { return [{ type: CoreApiService }, { type: AppContextService }]; }, propDecorators: { title: [{
3819
+ type: Input
3820
+ }], isTitleVisible: [{
3821
+ type: Input
3822
+ }], controlName: [{
3823
+ type: Input
3824
+ }], controlTitle: [{
3825
+ type: Input
3826
+ }] } });
3827
+
3828
+ /*
3829
+ <file>
3830
+ Project:
3831
+ @osovitny/anatoly
3832
+
3833
+ Authors:
3834
+ Vadim Osovitny
3835
+ Anatoly Osovitny
3511
3836
 
3512
- Version:
3513
- 1.0
3837
+ Created:
3838
+ 2 Aug 2022
3839
+
3840
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3841
+ </file>
3842
+ */
3843
+
3844
+ /*
3845
+ <file>
3846
+ Project:
3847
+ @osovitny/anatoly
3848
+
3849
+ Authors:
3850
+ Vadim Osovitny
3851
+ Anatoly Osovitny
3852
+
3853
+ Created:
3854
+ 26 Jun 2020
3514
3855
 
3515
3856
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3516
3857
  </file>
@@ -3549,10 +3890,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3549
3890
  Anatoly Osovitny
3550
3891
 
3551
3892
  Created:
3552
- 27 Oct 2019
3893
+ 26 Jun 2020
3894
+
3895
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3896
+ </file>
3897
+ */
3898
+ class ReplaceTextPipe {
3899
+ transform(inputData, search, replacement) {
3900
+ if (inputData) {
3901
+ return inputData.replace(new RegExp(search, "g"), replacement);
3902
+ }
3903
+ else {
3904
+ return inputData;
3905
+ }
3906
+ }
3907
+ }
3908
+ ReplaceTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3909
+ ReplaceTextPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, name: "replaceText" });
3910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, decorators: [{
3911
+ type: Pipe,
3912
+ args: [{
3913
+ name: "replaceText",
3914
+ }]
3915
+ }] });
3916
+
3917
+ /*
3918
+ <file>
3919
+ Project:
3920
+ @osovitny/anatoly
3553
3921
 
3554
- Version:
3555
- 1.0
3922
+ Authors:
3923
+ Vadim Osovitny
3924
+ Anatoly Osovitny
3925
+
3926
+ Created:
3927
+ 27 Oct 2019
3556
3928
 
3557
3929
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3558
3930
  </file>
@@ -3572,6 +3944,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3572
3944
  args: [{ name: 'safeHtml' }]
3573
3945
  }], ctorParameters: function () { return [{ type: i1$4.DomSanitizer }]; } });
3574
3946
 
3947
+ /*
3948
+ <file>
3949
+ Project:
3950
+ @osovitny/anatoly
3951
+
3952
+ Authors:
3953
+ Vadim Osovitny
3954
+ Anatoly Osovitny
3955
+
3956
+ Created:
3957
+ 2 Aug 2022
3958
+
3959
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3960
+ </file>
3961
+ */
3962
+
3963
+ /*
3964
+ <file>
3965
+ Project:
3966
+ @osovitny/anatoly
3967
+
3968
+ Authors:
3969
+ Vadim Osovitny
3970
+ Anatoly Osovitny
3971
+
3972
+ Created:
3973
+ 2 Aug 2022
3974
+
3975
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3976
+ </file>
3977
+ */
3978
+
3575
3979
  /*
3576
3980
  <file>
3577
3981
  Project:
@@ -3652,6 +4056,7 @@ class AnatolyDataModule {
3652
4056
  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
4057
  AnatolyDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: AnatolyDataModule, imports: [CommonModule] });
3654
4058
  AnatolyDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyDataModule, providers: [
4059
+ CoreApiService,
3655
4060
  BillingApiService,
3656
4061
  EmailsApiService
3657
4062
  ], imports: [CommonModule] });
@@ -3662,6 +4067,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3662
4067
  CommonModule
3663
4068
  ],
3664
4069
  providers: [
4070
+ CoreApiService,
3665
4071
  BillingApiService,
3666
4072
  EmailsApiService
3667
4073
  ]
@@ -3713,6 +4119,10 @@ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
3713
4119
  //Directives
3714
4120
  NativeElementDirective,
3715
4121
  //Forms
4122
+ AddressComponent,
4123
+ CompanyComponent,
4124
+ UrlSlugComponent,
4125
+ TimezoneDropdownlist,
3716
4126
  ContactUsForm,
3717
4127
  //Dialogs
3718
4128
  ContactUsDialog,
@@ -3748,6 +4158,10 @@ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
3748
4158
  //Directives
3749
4159
  NativeElementDirective,
3750
4160
  //Forms
4161
+ AddressComponent,
4162
+ CompanyComponent,
4163
+ UrlSlugComponent,
4164
+ TimezoneDropdownlist,
3751
4165
  ContactUsForm,
3752
4166
  //Dialogs
3753
4167
  ContactUsDialog,
@@ -3801,6 +4215,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3801
4215
  //Directives
3802
4216
  NativeElementDirective,
3803
4217
  //Forms
4218
+ AddressComponent,
4219
+ CompanyComponent,
4220
+ UrlSlugComponent,
4221
+ TimezoneDropdownlist,
3804
4222
  ContactUsForm,
3805
4223
  //Dialogs
3806
4224
  ContactUsDialog,
@@ -3834,6 +4252,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3834
4252
  //Directives
3835
4253
  NativeElementDirective,
3836
4254
  //Forms
4255
+ AddressComponent,
4256
+ CompanyComponent,
4257
+ UrlSlugComponent,
4258
+ TimezoneDropdownlist,
3837
4259
  ContactUsForm,
3838
4260
  //Dialogs
3839
4261
  ContactUsDialog,
@@ -3856,5 +4278,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3856
4278
  * Generated bundle index. Do not edit.
3857
4279
  */
3858
4280
 
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 };
4281
+ 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
4282
  //# sourceMappingURL=osovitny-anatoly.mjs.map