@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
  */
@@ -972,9 +974,6 @@ class Guid {
972
974
  Created:
973
975
  2 Jun 2020
974
976
 
975
- Version:
976
- 1.0
977
-
978
977
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
979
978
  </file>
980
979
  */
@@ -1191,9 +1190,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1191
1190
  Created:
1192
1191
  13 Nov 2017
1193
1192
 
1194
- Version:
1195
- 1.0
1196
-
1197
1193
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1198
1194
  </file>
1199
1195
  */
@@ -1237,9 +1233,6 @@ class BaseApiService {
1237
1233
  getExternalTextFile(url) {
1238
1234
  return this.http.get(url);
1239
1235
  }
1240
- getExternalJsonFile(url) {
1241
- return this.http.get(url);
1242
- }
1243
1236
  getJsonFile(fileName) {
1244
1237
  const jsonsUrl = AppCoreSettings.jsonsUrl;
1245
1238
  const jsonVersion = AppCoreSettings.jsonVersion;
@@ -1254,6 +1247,20 @@ class BaseApiService {
1254
1247
  }
1255
1248
  return this.http.get(url).pipe(map(res => res));
1256
1249
  }
1250
+ getExternalJsonFile(libname, fileName) {
1251
+ const externalUrl = AppCoreSettings.externalUrl;
1252
+ const jsonVersion = AppCoreSettings.jsonVersion;
1253
+ const isCDNEnabled = AppCoreSettings.isCDNEnabled;
1254
+ const cdnSasToken = AppCoreSettings.cdnSasToken;
1255
+ let url = "";
1256
+ if (isCDNEnabled) {
1257
+ url = externalUrl + "/" + libname + "/jsons/" + fileName + cdnSasToken;
1258
+ }
1259
+ else {
1260
+ url = externalUrl + "/" + libname + "/jsons/" + fileName + '?' + jsonVersion;
1261
+ }
1262
+ return this.http.get(url).pipe(map(res => res));
1263
+ }
1257
1264
  }
1258
1265
  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 });
1259
1266
  BaseApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BaseApiService });
@@ -1272,10 +1279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1272
1279
 
1273
1280
  Created:
1274
1281
  26 Jun 2020
1275
-
1276
- Version:
1277
- 1.0
1278
-
1282
+
1279
1283
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1280
1284
  </file>
1281
1285
  */
@@ -1455,9 +1459,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1455
1459
  Created:
1456
1460
  26 Jun 2020
1457
1461
 
1458
- Version:
1459
- 1.0
1460
-
1461
1462
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1462
1463
  </file>
1463
1464
  */
@@ -1524,11 +1525,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1524
1525
  Anatoly Osovitny
1525
1526
 
1526
1527
  Created:
1527
- 29 Щсе 2020
1528
-
1529
- Version:
1530
- 1.0
1531
-
1528
+ 29 Nov 2020
1529
+
1532
1530
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1533
1531
  </file>
1534
1532
  */
@@ -1595,9 +1593,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1595
1593
  Created:
1596
1594
  29 Nov 2020
1597
1595
 
1598
- Version:
1599
- 1.0
1600
-
1601
1596
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1602
1597
  </file>
1603
1598
  */
@@ -1755,11 +1750,24 @@ class Utils {
1755
1750
  Anatoly Osovitny
1756
1751
 
1757
1752
  Created:
1758
- 29 Apr 2018
1753
+ 2 Aug 2022
1754
+
1755
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1756
+ </file>
1757
+ */
1758
+
1759
+ /*
1760
+ <file>
1761
+ Project:
1762
+ @osovitny/anatoly
1759
1763
 
1760
- Version:
1761
- 1.0
1764
+ Authors:
1765
+ Vadim Osovitny
1766
+ Anatoly Osovitny
1762
1767
 
1768
+ Created:
1769
+ 29 Apr 2018
1770
+
1763
1771
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1764
1772
  </file>
1765
1773
  */
@@ -1811,10 +1819,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1811
1819
 
1812
1820
  Created:
1813
1821
  29 Apr 2018
1814
-
1815
- Version:
1816
- 1.0
1817
-
1822
+
1818
1823
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1819
1824
  </file>
1820
1825
  */
@@ -1882,18 +1887,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1882
1887
  Created:
1883
1888
  30 April 2020
1884
1889
 
1885
- Version:
1886
- 1.0
1887
-
1888
1890
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1889
1891
  </file>
1890
1892
  */
1891
- const consts = {
1893
+ const Consts = {
1894
+ //core
1895
+ coreApiPath: 'api/core',
1892
1896
  //billing
1893
1897
  billingApiPath: 'api/billing',
1894
1898
  //emails
1895
1899
  emailsApiPath: 'api/emails',
1896
- //notifications
1900
+ //notifications
1897
1901
  notificationsApiPath: 'api/notifications'
1898
1902
  };
1899
1903
 
@@ -1909,9 +1913,6 @@ const consts = {
1909
1913
  Created:
1910
1914
  30 April 2020
1911
1915
 
1912
- Version:
1913
- 1.0
1914
-
1915
1916
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1916
1917
  </file>
1917
1918
  */
@@ -1919,7 +1920,7 @@ class NotificationsApiService extends BaseApiService {
1919
1920
  constructor(http) {
1920
1921
  super(http);
1921
1922
  this.http = http;
1922
- this.baseUrl = consts.notificationsApiPath;
1923
+ this.baseUrl = Consts.notificationsApiPath;
1923
1924
  }
1924
1925
  retrieveNotifications() {
1925
1926
  return this.get('retrieveNotifications');
@@ -1946,9 +1947,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
1946
1947
  Created:
1947
1948
  12 Nov 2017
1948
1949
 
1949
- Version:
1950
- 1.0
1951
-
1952
1950
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1953
1951
  </file>
1954
1952
  */
@@ -1956,7 +1954,7 @@ class BillingApiService extends BaseApiService {
1956
1954
  constructor(http) {
1957
1955
  super(http);
1958
1956
  this.http = http;
1959
- this.baseUrl = consts.billingApiPath;
1957
+ this.baseUrl = Consts.billingApiPath;
1960
1958
  }
1961
1959
  requestNewSubscription(requestedPlan, success, error) {
1962
1960
  this.postQS("requestNewSubscription", { requestedPlan: requestedPlan }).subscribe((data) => {
@@ -2002,13 +2000,100 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2002
2000
  Anatoly Osovitny
2003
2001
 
2004
2002
  Created:
2005
- 28 Aug 2018
2003
+ 16 Jun 2022
2006
2004
 
2007
- Version:
2008
- 1.0
2005
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2006
+ </file>
2007
+ */
2008
+ class EmailsApiService extends BaseApiService {
2009
+ constructor(http) {
2010
+ super(http);
2011
+ this.http = http;
2012
+ this.baseUrl = Consts.emailsApiPath;
2013
+ }
2014
+ sendContactUs(captcha, name, email, topic, subject, message, success, error) {
2015
+ return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe(data => {
2016
+ if (success)
2017
+ success(data);
2018
+ }, e => {
2019
+ if (error)
2020
+ error(e);
2021
+ });
2022
+ }
2023
+ }
2024
+ 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 });
2025
+ EmailsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService });
2026
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService, decorators: [{
2027
+ type: Injectable
2028
+ }], ctorParameters: function () { return [{ type: i1$3.HttpClient }]; } });
2029
+
2030
+ /*
2031
+ <file>
2032
+ Project:
2033
+ @osovitny/anatoly
2034
+
2035
+ Authors:
2036
+ Vadim Osovitny
2037
+ Anatoly Osovitny
2038
+
2039
+ Created:
2040
+ 02 Aug 2022
2041
+
2042
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
2043
+ </file>
2044
+ */
2045
+ class CoreApiService extends BaseApiService {
2046
+ constructor(http) {
2047
+ super(http);
2048
+ this.http = http;
2049
+ this.baseUrl = Consts.coreApiPath;
2050
+ }
2051
+ getTimezonesJsonFile(done) {
2052
+ this.getExternalJsonFile('anatoly', 'timezones.json').subscribe(data => done(data));
2053
+ }
2054
+ getUSStatesJsonFile(done) {
2055
+ this.getExternalJsonFile('anatoly', 'usStates.json').subscribe(data => done(data));
2056
+ }
2057
+ getCountriesJsonFile(done) {
2058
+ this.getExternalJsonFile('anatoly', 'countries.json').subscribe(data => done(data));
2059
+ }
2060
+ }
2061
+ 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 });
2062
+ CoreApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CoreApiService });
2063
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CoreApiService, decorators: [{
2064
+ type: Injectable
2065
+ }], ctorParameters: function () { return [{ type: i1$3.HttpClient }]; } });
2066
+
2067
+ /*
2068
+ <file>
2069
+ Project:
2070
+ @osovitny/anatoly
2071
+
2072
+ Authors:
2073
+ Vadim Osovitny
2074
+ Anatoly Osovitny
2075
+
2076
+ Created:
2077
+ 2 Aug 2022
2009
2078
 
2010
2079
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2011
2080
  </file>
2081
+ */
2082
+
2083
+ /*
2084
+ <file>
2085
+ Project:
2086
+ @osovitny/anatoly
2087
+
2088
+ Authors:
2089
+ Vadim Osovitny
2090
+ Anatoly Osovitny
2091
+
2092
+ Created:
2093
+ 28 Aug 2018
2094
+
2095
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2096
+ </file>
2012
2097
  */
2013
2098
  class BaseComponent {
2014
2099
  constructor() {
@@ -2045,9 +2130,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2045
2130
  Created:
2046
2131
  20 Nov 2017
2047
2132
 
2048
- Version:
2049
- 1.0
2050
-
2051
2133
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2052
2134
  </file>
2053
2135
  */
@@ -2182,10 +2264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2182
2264
 
2183
2265
  Created:
2184
2266
  24 Jan 2022
2185
-
2186
- Version:
2187
- 1.0
2188
-
2267
+
2189
2268
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2190
2269
  </file>
2191
2270
  */
@@ -2227,9 +2306,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2227
2306
  Created:
2228
2307
  4 Jul 2018
2229
2308
 
2230
- Version:
2231
- 1.0
2232
-
2233
2309
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2234
2310
  </file>
2235
2311
  */
@@ -2317,9 +2393,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2317
2393
  Created:
2318
2394
  12 Nov 2017
2319
2395
 
2320
- Version:
2321
- 1.0
2322
-
2323
2396
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2324
2397
  </file>
2325
2398
  */
@@ -2363,10 +2436,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2363
2436
 
2364
2437
  Created:
2365
2438
  1 Jun 2018
2366
-
2367
- Version:
2368
- 1.0
2369
-
2439
+
2370
2440
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2371
2441
  </file>
2372
2442
  */
@@ -2420,9 +2490,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2420
2490
  Created:
2421
2491
  12 Dec 2017
2422
2492
 
2423
- Version:
2424
- 1.0
2425
-
2426
2493
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2427
2494
  </file>
2428
2495
  */
@@ -2509,9 +2576,6 @@ const DefaultEditorOptions = {
2509
2576
  Created:
2510
2577
  12 Dec 2017
2511
2578
 
2512
- Version:
2513
- 1.0
2514
-
2515
2579
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2516
2580
  </file>
2517
2581
  */
@@ -2613,9 +2677,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2613
2677
  Created:
2614
2678
  28 Jun 2020
2615
2679
 
2616
- Version:
2617
- 1.0
2618
-
2619
2680
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2620
2681
  </file>
2621
2682
  */
@@ -2650,9 +2711,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2650
2711
  Created:
2651
2712
  8 Dec 2017
2652
2713
 
2653
- Version:
2654
- 1.0
2655
-
2656
2714
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2657
2715
  </file>
2658
2716
  */
@@ -2773,10 +2831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2773
2831
 
2774
2832
  Created:
2775
2833
  6 Dec 2017
2776
-
2777
- Version:
2778
- 1.0
2779
-
2834
+
2780
2835
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2781
2836
  </file>
2782
2837
  */
@@ -2807,10 +2862,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2807
2862
 
2808
2863
  Created:
2809
2864
  12 Dec 2017
2810
-
2811
- Version:
2812
- 1.0
2813
-
2865
+
2814
2866
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2815
2867
  </file>
2816
2868
  */
@@ -2846,9 +2898,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2846
2898
  Created:
2847
2899
  12 Dec 2017
2848
2900
 
2849
- Version:
2850
- 1.0
2851
-
2852
2901
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2853
2902
  </file>
2854
2903
  */
@@ -2892,9 +2941,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2892
2941
  Created:
2893
2942
  4 Jul 2018
2894
2943
 
2895
- Version:
2896
- 1.0
2897
-
2898
2944
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2899
2945
  </file>
2900
2946
  */
@@ -2922,9 +2968,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2922
2968
  Created:
2923
2969
  4 Jul 2018
2924
2970
 
2925
- Version:
2926
- 1.0
2927
-
2928
2971
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2929
2972
  </file>
2930
2973
  */
@@ -2987,9 +3030,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
2987
3030
  Created:
2988
3031
  9 May 2020
2989
3032
 
2990
- Version:
2991
- 1.0
2992
-
2993
3033
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
2994
3034
  </file>
2995
3035
  */
@@ -3214,32 +3254,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3214
3254
  Anatoly Osovitny
3215
3255
 
3216
3256
  Created:
3217
- 16 Jun 2022
3257
+ 2 Aug 2022
3218
3258
 
3219
3259
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3220
3260
  </file>
3221
- */
3222
- class EmailsApiService extends BaseApiService {
3223
- constructor(http) {
3224
- super(http);
3225
- this.http = http;
3226
- this.baseUrl = consts.emailsApiPath;
3227
- }
3228
- sendContactUs(captcha, name, email, topic, subject, message, success, error) {
3229
- return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe(data => {
3230
- if (success)
3231
- success(data);
3232
- }, e => {
3233
- if (error)
3234
- error(e);
3235
- });
3236
- }
3237
- }
3238
- 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 });
3239
- EmailsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService });
3240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmailsApiService, decorators: [{
3241
- type: Injectable
3242
- }], ctorParameters: function () { return [{ type: i1$3.HttpClient }]; } });
3261
+ */
3243
3262
 
3244
3263
  /*
3245
3264
  <file>
@@ -3253,9 +3272,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3253
3272
  Created:
3254
3273
  7 Dec 2017
3255
3274
 
3256
- Version:
3257
- 1.0
3258
-
3259
3275
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3260
3276
  </file>
3261
3277
  */
@@ -3312,9 +3328,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3312
3328
  Anatoly Osovitny
3313
3329
 
3314
3330
  Created:
3315
- 29 June 2020
3331
+ 02 Aug 2022
3316
3332
 
3317
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3333
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3318
3334
  </file>
3319
3335
  */
3320
3336
  class ContactUsForm extends BaseEditComponent {
@@ -3459,32 +3475,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3459
3475
  Anatoly Osovitny
3460
3476
 
3461
3477
  Created:
3462
- 26 Jun 2020
3478
+ 2 Aug 2022
3479
+
3480
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3481
+ </file>
3482
+ */
3483
+
3484
+ /*
3485
+ <file>
3486
+ Project:
3487
+ @osovitny/anatoly
3488
+
3489
+ Authors:
3490
+ Vadim Osovitny
3491
+ Anatoly Osovitny
3463
3492
 
3464
- Version:
3465
- 1.0
3493
+ Created:
3494
+ 2 Aug 2022
3466
3495
 
3467
3496
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3468
3497
  </file>
3498
+ */
3499
+
3500
+ /*
3501
+ <file>
3502
+ Project:
3503
+ @osovitny/anatoly
3504
+
3505
+ Authors:
3506
+ Vadim Osovitny
3507
+ Anatoly Osovitny
3508
+
3509
+ Created:
3510
+ 02 Aug 2022
3511
+
3512
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3513
+ </file>
3469
3514
  */
3470
- class ReplaceTextPipe {
3471
- transform(inputData, search, replacement) {
3472
- if (inputData) {
3473
- return inputData.replace(new RegExp(search, "g"), replacement);
3515
+ class AddressComponent extends BaseEditComponent {
3516
+ constructor(fb, api) {
3517
+ super();
3518
+ this.fb = fb;
3519
+ this.api = api;
3520
+ this.formGroupGenerated = false;
3521
+ this.countryData = [];
3522
+ this.usStateData = [];
3523
+ this.currentCountry = 'US';
3524
+ this.currentUSState = 'NY';
3525
+ //Inputs
3526
+ this.title = 'Address';
3527
+ this.isTitleVisible = true;
3528
+ //Outputs
3529
+ this.change = new EventEmitter();
3530
+ }
3531
+ get address() {
3532
+ return this._address;
3533
+ }
3534
+ set address(value) {
3535
+ this._address = value;
3536
+ if (value) {
3537
+ this.init();
3538
+ }
3539
+ }
3540
+ ngOnInit() {
3541
+ this.api.getCountriesJsonFile(data => {
3542
+ this.countryData = data;
3543
+ });
3544
+ this.api.getUSStatesJsonFile(data => {
3545
+ this.usStateData = data;
3546
+ });
3547
+ this.createFormGroup();
3548
+ this.init();
3549
+ }
3550
+ createFormGroup() {
3551
+ let isRequired = Convert.stringToBoolean(this.isRequired);
3552
+ if (isRequired) {
3553
+ this.formGroup.addControl('street', this.fb.control('', [Validators.required])),
3554
+ this.formGroup.addControl('street2', this.fb.control('', [])),
3555
+ this.formGroup.addControl('city', this.fb.control('', [Validators.required])),
3556
+ this.formGroup.addControl('stateOrRegion', this.fb.control(this.currentUSState, [Validators.required])),
3557
+ this.formGroup.addControl('country', this.fb.control(this.currentCountry, [Validators.required])),
3558
+ this.formGroup.addControl('zipcode', this.fb.control('', [Validators.required]));
3474
3559
  }
3475
3560
  else {
3476
- return inputData;
3561
+ this.formGroup.addControl('street', this.fb.control('', [])),
3562
+ this.formGroup.addControl('street2', this.fb.control('', [])),
3563
+ this.formGroup.addControl('city', this.fb.control('', [])),
3564
+ this.formGroup.addControl('stateOrRegion', this.fb.control(this.currentUSState, [])),
3565
+ this.formGroup.addControl('country', this.fb.control(this.currentCountry, [])),
3566
+ this.formGroup.addControl('zipcode', this.fb.control('', []));
3477
3567
  }
3568
+ this.formGroupGenerated = true;
3569
+ }
3570
+ init() {
3571
+ if (!this.formGroupGenerated) {
3572
+ return;
3573
+ }
3574
+ if (this._address !== undefined) {
3575
+ let address = JSON.parse(this._address);
3576
+ this.setFormValue('street', address.street);
3577
+ this.setFormValue('street2', address.street2);
3578
+ this.setFormValue('city', address.city);
3579
+ this.setFormValue('stateOrRegion', address.stateOrRegion);
3580
+ this.setFormValue('zipcode', address.zipcode);
3581
+ this.setFormValue('country', address.country);
3582
+ }
3583
+ }
3584
+ getAddress() {
3585
+ const data = {
3586
+ street: this.getFormValue('street') || null,
3587
+ street2: this.getFormValue('street2') || null,
3588
+ city: this.getFormValue('city') || null,
3589
+ stateOrRegion: this.getFormValue('stateOrRegion') || null,
3590
+ zipcode: this.getFormValue('zipcode') || null,
3591
+ country: this.getFormValue('country') || null
3592
+ };
3593
+ return JSON.stringify(data);
3594
+ }
3595
+ //Events
3596
+ onCountryChange(event) {
3597
+ let country = event.target.value;
3598
+ this.change.emit(country);
3599
+ }
3600
+ onUSStateChange(event) {
3601
+ let usState = event.target.value;
3602
+ this.change.emit(usState);
3478
3603
  }
3479
3604
  }
3480
- ReplaceTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3481
- ReplaceTextPipepipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, name: "replaceText" });
3482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, decorators: [{
3483
- type: Pipe,
3484
- args: [{
3485
- name: "replaceText",
3486
- }]
3487
- }] });
3605
+ 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 });
3606
+ 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"] }] });
3607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AddressComponent, decorators: [{
3608
+ type: Component,
3609
+ 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" }]
3610
+ }], ctorParameters: function () { return [{ type: i1$6.FormBuilder }, { type: CoreApiService }]; }, propDecorators: { title: [{
3611
+ type: Input
3612
+ }], isTitleVisible: [{
3613
+ type: Input
3614
+ }], isRequired: [{
3615
+ type: Input
3616
+ }], address: [{
3617
+ type: Input
3618
+ }], change: [{
3619
+ type: Output
3620
+ }] } });
3488
3621
 
3489
3622
  /*
3490
3623
  <file>
@@ -3496,10 +3629,220 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3496
3629
  Anatoly Osovitny
3497
3630
 
3498
3631
  Created:
3499
- 26 Jun 2020
3632
+ 02 Aug 2022
3633
+
3634
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3635
+ </file>
3636
+ */
3637
+ class CompanyComponent extends BaseEditComponent {
3638
+ constructor(fb) {
3639
+ super();
3640
+ this.fb = fb;
3641
+ this.formGroupGenerated = false;
3642
+ //Inputs
3643
+ this.title = 'Company / Organization';
3644
+ this.isTitleVisible = true;
3645
+ }
3646
+ get company() {
3647
+ return this._company;
3648
+ }
3649
+ set company(value) {
3650
+ this._company = value;
3651
+ if (value) {
3652
+ this.init();
3653
+ }
3654
+ }
3655
+ ngOnInit() {
3656
+ this.createFormGroup();
3657
+ this.init();
3658
+ }
3659
+ createFormGroup() {
3660
+ this.formGroup.addControl('company_name', this.fb.control('', []));
3661
+ this.formGroup.addControl('company_phone', this.fb.control('', []));
3662
+ this.formGroup.addControl('company_email', this.fb.control('', []));
3663
+ this.formGroup.addControl('company_websiteUrl', this.fb.control('', []));
3664
+ this.formGroupGenerated = true;
3665
+ }
3666
+ init() {
3667
+ if (!this.formGroupGenerated) {
3668
+ return;
3669
+ }
3670
+ if (this._company !== undefined) {
3671
+ let company = JSON.parse(this._company);
3672
+ this.setFormValue('company_name', company.name);
3673
+ this.setFormValue('company_phone', company.phone);
3674
+ this.setFormValue('company_email', company.email);
3675
+ this.setFormValue('company_websiteUrl', company.websiteUrl);
3676
+ }
3677
+ }
3678
+ getCompany() {
3679
+ const data = {
3680
+ name: this.getFormValue('company_name') || null,
3681
+ phone: this.getFormValue('company_phone') || null,
3682
+ email: this.getFormValue('company_email') || null,
3683
+ websiteUrl: this.getFormValue('company_websiteUrl') || null
3684
+ };
3685
+ return JSON.stringify(data);
3686
+ }
3687
+ }
3688
+ 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 });
3689
+ 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"] }] });
3690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CompanyComponent, decorators: [{
3691
+ type: Component,
3692
+ 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" }]
3693
+ }], ctorParameters: function () { return [{ type: i1$6.FormBuilder }]; }, propDecorators: { title: [{
3694
+ type: Input
3695
+ }], isTitleVisible: [{
3696
+ type: Input
3697
+ }], company: [{
3698
+ type: Input
3699
+ }] } });
3700
+
3701
+ /*
3702
+ <file>
3703
+ Project:
3704
+ @osovitny/anatoly
3705
+
3706
+ Authors:
3707
+ Vadim Osovitny
3708
+ Anatoly Osovitny
3709
+
3710
+ Created:
3711
+ 02 Aug 2022
3712
+
3713
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3714
+ </file>
3715
+ */
3716
+ class UrlSlugComponent extends BaseEditComponent {
3717
+ constructor() {
3718
+ super();
3719
+ //Inputs
3720
+ this.title = 'Permalink';
3721
+ this.isTitleVisible = true;
3722
+ }
3723
+ ngOnInit() {
3724
+ this.setWatchers();
3725
+ }
3726
+ setWatchers() {
3727
+ this.formGroup.get(this.watchedControlName).valueChanges.subscribe(val => {
3728
+ this.generateUrlSlug();
3729
+ });
3730
+ }
3731
+ generateUrlSlug() {
3732
+ let name = this.getFormValue(this.watchedControlName);
3733
+ let slugedText = Utils.slugify(name);
3734
+ this.setFormValue(this.controlName, slugedText);
3735
+ }
3736
+ }
3737
+ UrlSlugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3738
+ 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"] }] });
3739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UrlSlugComponent, decorators: [{
3740
+ type: Component,
3741
+ 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" }]
3742
+ }], ctorParameters: function () { return []; }, propDecorators: { title: [{
3743
+ type: Input
3744
+ }], isTitleVisible: [{
3745
+ type: Input
3746
+ }], controlName: [{
3747
+ type: Input
3748
+ }], controlTitle: [{
3749
+ type: Input
3750
+ }], class: [{
3751
+ type: Input
3752
+ }], watchedControlName: [{
3753
+ type: Input
3754
+ }], urlPrefix: [{
3755
+ type: Input
3756
+ }] } });
3757
+
3758
+ /*
3759
+ <file>
3760
+ Project:
3761
+ @osovitny/anatoly
3762
+
3763
+ Authors:
3764
+ Vadim Osovitny
3765
+ Anatoly Osovitny
3766
+
3767
+ Created:
3768
+ 02 Aug 2022
3769
+
3770
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3771
+ </file>
3772
+ */
3773
+ class TimezoneDropdownlist extends BaseEditComponent {
3774
+ constructor(api, appContext) {
3775
+ super();
3776
+ this.api = api;
3777
+ this.appContext = appContext;
3778
+ //Inputs
3779
+ this.title = 'Timezone';
3780
+ this.isTitleVisible = true;
3781
+ this.controlName = 'timezone';
3782
+ }
3783
+ ngOnInit() {
3784
+ this.setValues();
3785
+ }
3786
+ setValues() {
3787
+ var _a;
3788
+ this.api.getTimezonesJsonFile(data => {
3789
+ this.timezoneListItems = data.reverse();
3790
+ });
3791
+ try {
3792
+ let timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
3793
+ this.setFormValue(this.controlName, timeZone);
3794
+ }
3795
+ catch (_b) {
3796
+ }
3797
+ let context = this.appContext.current;
3798
+ let timeZone = (_a = context === null || context === void 0 ? void 0 : context.account) === null || _a === void 0 ? void 0 : _a.timezone;
3799
+ if (timeZone) {
3800
+ this.setFormValue(this.controlName, timeZone);
3801
+ }
3802
+ }
3803
+ }
3804
+ 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 });
3805
+ 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]" }] });
3806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TimezoneDropdownlist, decorators: [{
3807
+ type: Component,
3808
+ 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" }]
3809
+ }], ctorParameters: function () { return [{ type: CoreApiService }, { type: AppContextService }]; }, propDecorators: { title: [{
3810
+ type: Input
3811
+ }], isTitleVisible: [{
3812
+ type: Input
3813
+ }], controlName: [{
3814
+ type: Input
3815
+ }], controlTitle: [{
3816
+ type: Input
3817
+ }] } });
3818
+
3819
+ /*
3820
+ <file>
3821
+ Project:
3822
+ @osovitny/anatoly
3823
+
3824
+ Authors:
3825
+ Vadim Osovitny
3826
+ Anatoly Osovitny
3827
+
3828
+ Created:
3829
+ 2 Aug 2022
3830
+
3831
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3832
+ </file>
3833
+ */
3834
+
3835
+ /*
3836
+ <file>
3837
+ Project:
3838
+ @osovitny/anatoly
3500
3839
 
3501
- Version:
3502
- 1.0
3840
+ Authors:
3841
+ Vadim Osovitny
3842
+ Anatoly Osovitny
3843
+
3844
+ Created:
3845
+ 26 Jun 2020
3503
3846
 
3504
3847
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3505
3848
  </file>
@@ -3538,10 +3881,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3538
3881
  Anatoly Osovitny
3539
3882
 
3540
3883
  Created:
3541
- 27 Oct 2019
3884
+ 26 Jun 2020
3542
3885
 
3543
- Version:
3544
- 1.0
3886
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3887
+ </file>
3888
+ */
3889
+ class ReplaceTextPipe {
3890
+ transform(inputData, search, replacement) {
3891
+ if (inputData) {
3892
+ return inputData.replace(new RegExp(search, "g"), replacement);
3893
+ }
3894
+ else {
3895
+ return inputData;
3896
+ }
3897
+ }
3898
+ }
3899
+ ReplaceTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3900
+ ReplaceTextPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, name: "replaceText" });
3901
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, decorators: [{
3902
+ type: Pipe,
3903
+ args: [{
3904
+ name: "replaceText",
3905
+ }]
3906
+ }] });
3907
+
3908
+ /*
3909
+ <file>
3910
+ Project:
3911
+ @osovitny/anatoly
3912
+
3913
+ Authors:
3914
+ Vadim Osovitny
3915
+ Anatoly Osovitny
3916
+
3917
+ Created:
3918
+ 27 Oct 2019
3545
3919
 
3546
3920
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3547
3921
  </file>
@@ -3561,6 +3935,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3561
3935
  args: [{ name: 'safeHtml' }]
3562
3936
  }], ctorParameters: function () { return [{ type: i1$4.DomSanitizer }]; } });
3563
3937
 
3938
+ /*
3939
+ <file>
3940
+ Project:
3941
+ @osovitny/anatoly
3942
+
3943
+ Authors:
3944
+ Vadim Osovitny
3945
+ Anatoly Osovitny
3946
+
3947
+ Created:
3948
+ 2 Aug 2022
3949
+
3950
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3951
+ </file>
3952
+ */
3953
+
3954
+ /*
3955
+ <file>
3956
+ Project:
3957
+ @osovitny/anatoly
3958
+
3959
+ Authors:
3960
+ Vadim Osovitny
3961
+ Anatoly Osovitny
3962
+
3963
+ Created:
3964
+ 2 Aug 2022
3965
+
3966
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3967
+ </file>
3968
+ */
3969
+
3564
3970
  /*
3565
3971
  <file>
3566
3972
  Project:
@@ -3643,6 +4049,7 @@ class AnatolyDataModule {
3643
4049
  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 });
3644
4050
  AnatolyDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: AnatolyDataModule, imports: [CommonModule] });
3645
4051
  AnatolyDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyDataModule, providers: [
4052
+ CoreApiService,
3646
4053
  BillingApiService,
3647
4054
  EmailsApiService
3648
4055
  ], imports: [CommonModule] });
@@ -3653,6 +4060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3653
4060
  CommonModule
3654
4061
  ],
3655
4062
  providers: [
4063
+ CoreApiService,
3656
4064
  BillingApiService,
3657
4065
  EmailsApiService
3658
4066
  ]
@@ -3706,6 +4114,10 @@ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
3706
4114
  //Directives
3707
4115
  NativeElementDirective,
3708
4116
  //Forms
4117
+ AddressComponent,
4118
+ CompanyComponent,
4119
+ UrlSlugComponent,
4120
+ TimezoneDropdownlist,
3709
4121
  ContactUsForm,
3710
4122
  //Dialogs
3711
4123
  ContactUsDialog,
@@ -3741,6 +4153,10 @@ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
3741
4153
  //Directives
3742
4154
  NativeElementDirective,
3743
4155
  //Forms
4156
+ AddressComponent,
4157
+ CompanyComponent,
4158
+ UrlSlugComponent,
4159
+ TimezoneDropdownlist,
3744
4160
  ContactUsForm,
3745
4161
  //Dialogs
3746
4162
  ContactUsDialog,
@@ -3794,6 +4210,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3794
4210
  //Directives
3795
4211
  NativeElementDirective,
3796
4212
  //Forms
4213
+ AddressComponent,
4214
+ CompanyComponent,
4215
+ UrlSlugComponent,
4216
+ TimezoneDropdownlist,
3797
4217
  ContactUsForm,
3798
4218
  //Dialogs
3799
4219
  ContactUsDialog,
@@ -3827,6 +4247,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3827
4247
  //Directives
3828
4248
  NativeElementDirective,
3829
4249
  //Forms
4250
+ AddressComponent,
4251
+ CompanyComponent,
4252
+ UrlSlugComponent,
4253
+ TimezoneDropdownlist,
3830
4254
  ContactUsForm,
3831
4255
  //Dialogs
3832
4256
  ContactUsDialog,
@@ -3849,5 +4273,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
3849
4273
  * Generated bundle index. Do not edit.
3850
4274
  */
3851
4275
 
3852
- 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 };
4276
+ 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 };
3853
4277
  //# sourceMappingURL=osovitny-anatoly.mjs.map