@eqproject/eqp-dynamic-module 0.0.12 → 1.0.0

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 (162) hide show
  1. package/esm2020/eqproject-eqp-dynamic-module.mjs +5 -0
  2. package/esm2020/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.mjs +249 -0
  3. package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +659 -0
  4. package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +585 -0
  5. package/esm2020/lib/components/private/dynamic-module-field/dynamic-module-field.component.mjs +130 -0
  6. package/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +127 -0
  7. package/esm2020/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.mjs +163 -0
  8. package/esm2020/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.mjs +57 -0
  9. package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +67 -0
  10. package/esm2020/lib/components/private/field-templates/image-field-template/image-field-template.component.mjs +188 -0
  11. package/esm2020/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.mjs +117 -0
  12. package/esm2020/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.mjs +70 -0
  13. package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +65 -0
  14. package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +49 -0
  15. package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +126 -0
  16. package/esm2020/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +212 -0
  17. package/esm2020/lib/components/private/spinner/spinner.component.mjs +19 -0
  18. package/esm2020/lib/eqp-dynamic-module.module.mjs +110 -0
  19. package/esm2020/lib/interfaces/iBaseFieldComponent.interface.mjs +2 -0
  20. package/esm2020/lib/interfaces/iRootObject.interface.mjs +2 -0
  21. package/esm2020/lib/models/baseField.model.mjs +36 -0
  22. package/esm2020/lib/models/baseObj.model.mjs +9 -0
  23. package/esm2020/lib/models/context.model.mjs +8 -0
  24. package/esm2020/lib/models/endPointConfiguration.model.mjs +23 -0
  25. package/esm2020/lib/models/entity.model.mjs +7 -0
  26. package/esm2020/lib/models/fields/attachmentField.model.mjs +22 -0
  27. package/esm2020/lib/models/fields/booleanField.model.mjs +12 -0
  28. package/esm2020/lib/models/fields/dateField.model.mjs +11 -0
  29. package/esm2020/lib/models/fields/imageField.model.mjs +8 -0
  30. package/esm2020/lib/models/fields/listValueField.model.mjs +14 -0
  31. package/esm2020/lib/models/fields/lookupField.model.mjs +5 -0
  32. package/esm2020/lib/models/fields/numericField.model.mjs +5 -0
  33. package/esm2020/lib/models/fields/textField.model.mjs +14 -0
  34. package/esm2020/lib/models/fields/textareaField.model.mjs +4 -0
  35. package/esm2020/lib/models/form.model.mjs +24 -0
  36. package/esm2020/lib/models/record.model.mjs +8 -0
  37. package/esm2020/lib/modules/material.module.mjs +231 -0
  38. package/esm2020/lib/services/custom-form-validators.service.mjs +19 -0
  39. package/esm2020/lib/services/eqp-dynamic-module-dialog.service.mjs +112 -0
  40. package/esm2020/lib/services/spinner.service.mjs +43 -0
  41. package/esm2020/lib/services/utilityHelper.services.mjs +379 -0
  42. package/esm2020/public-api.mjs +41 -0
  43. package/fesm2015/eqproject-eqp-dynamic-module.mjs +3783 -0
  44. package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -0
  45. package/fesm2020/eqproject-eqp-dynamic-module.mjs +3779 -0
  46. package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -0
  47. package/index.d.ts +5 -0
  48. package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +3 -0
  49. package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +12 -4
  50. package/lib/components/private/add-form-field/add-form-field.component.d.ts +8 -3
  51. package/lib/components/private/dynamic-module-field/dynamic-module-field.component.d.ts +3 -0
  52. package/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.d.ts +58 -0
  53. package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +5 -2
  54. package/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.d.ts +3 -0
  55. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +3 -0
  56. package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +5 -2
  57. package/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.d.ts +3 -0
  58. package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +3 -0
  59. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +4 -1
  60. package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +3 -0
  61. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +7 -4
  62. package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +3 -0
  63. package/lib/components/private/spinner/spinner.component.d.ts +3 -0
  64. package/lib/eqp-dynamic-module.module.d.ts +30 -0
  65. package/lib/models/baseField.model.d.ts +2 -2
  66. package/lib/modules/material.module.d.ts +35 -0
  67. package/lib/services/eqp-dynamic-module-dialog.service.d.ts +3 -0
  68. package/lib/services/spinner.service.d.ts +3 -0
  69. package/lib/services/utilityHelper.services.d.ts +6 -3
  70. package/package.json +37 -26
  71. package/bundles/eqproject-eqp-dynamic-module.umd.js +0 -3997
  72. package/bundles/eqproject-eqp-dynamic-module.umd.js.map +0 -1
  73. package/bundles/eqproject-eqp-dynamic-module.umd.min.js +0 -17
  74. package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +0 -1
  75. package/eqproject-eqp-dynamic-module.d.ts +0 -6
  76. package/eqproject-eqp-dynamic-module.metadata.json +0 -1
  77. package/esm2015/eqproject-eqp-dynamic-module.js +0 -7
  78. package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +0 -265
  79. package/esm2015/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +0 -652
  80. package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +0 -577
  81. package/esm2015/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +0 -127
  82. package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +0 -170
  83. package/esm2015/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +0 -56
  84. package/esm2015/lib/components/private/field-templates/date-field-template/date-field-template.component.js +0 -71
  85. package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +0 -196
  86. package/esm2015/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +0 -115
  87. package/esm2015/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +0 -71
  88. package/esm2015/lib/components/private/field-templates/text-field-template/text-field-template.component.js +0 -67
  89. package/esm2015/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +0 -51
  90. package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +0 -130
  91. package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +0 -216
  92. package/esm2015/lib/components/private/spinner/spinner.component.js +0 -23
  93. package/esm2015/lib/eqp-dynamic-module.module.js +0 -69
  94. package/esm2015/lib/interfaces/iBaseFieldComponent.interface.js +0 -1
  95. package/esm2015/lib/interfaces/iRootObject.interface.js +0 -1
  96. package/esm2015/lib/models/baseField.model.js +0 -36
  97. package/esm2015/lib/models/baseObj.model.js +0 -9
  98. package/esm2015/lib/models/context.model.js +0 -8
  99. package/esm2015/lib/models/endPointConfiguration.model.js +0 -23
  100. package/esm2015/lib/models/entity.model.js +0 -7
  101. package/esm2015/lib/models/fields/attachmentField.model.js +0 -22
  102. package/esm2015/lib/models/fields/booleanField.model.js +0 -12
  103. package/esm2015/lib/models/fields/dateField.model.js +0 -11
  104. package/esm2015/lib/models/fields/imageField.model.js +0 -8
  105. package/esm2015/lib/models/fields/listValueField.model.js +0 -14
  106. package/esm2015/lib/models/fields/lookupField.model.js +0 -5
  107. package/esm2015/lib/models/fields/numericField.model.js +0 -5
  108. package/esm2015/lib/models/fields/textField.model.js +0 -14
  109. package/esm2015/lib/models/fields/textareaField.model.js +0 -4
  110. package/esm2015/lib/models/form.model.js +0 -24
  111. package/esm2015/lib/models/record.model.js +0 -8
  112. package/esm2015/lib/modules/material.module.js +0 -108
  113. package/esm2015/lib/services/custom-form-validators.service.js +0 -19
  114. package/esm2015/lib/services/eqp-dynamic-module-dialog.service.js +0 -113
  115. package/esm2015/lib/services/spinner.service.js +0 -43
  116. package/esm2015/lib/services/utilityHelper.services.js +0 -387
  117. package/esm2015/public-api.js +0 -39
  118. package/esm5/eqproject-eqp-dynamic-module.js +0 -7
  119. package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +0 -272
  120. package/esm5/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +0 -667
  121. package/esm5/lib/components/private/add-form-field/add-form-field.component.js +0 -588
  122. package/esm5/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +0 -128
  123. package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +0 -173
  124. package/esm5/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +0 -57
  125. package/esm5/lib/components/private/field-templates/date-field-template/date-field-template.component.js +0 -72
  126. package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +0 -206
  127. package/esm5/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +0 -119
  128. package/esm5/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +0 -72
  129. package/esm5/lib/components/private/field-templates/text-field-template/text-field-template.component.js +0 -68
  130. package/esm5/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +0 -52
  131. package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +0 -133
  132. package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +0 -220
  133. package/esm5/lib/components/private/spinner/spinner.component.js +0 -24
  134. package/esm5/lib/eqp-dynamic-module.module.js +0 -72
  135. package/esm5/lib/interfaces/iBaseFieldComponent.interface.js +0 -1
  136. package/esm5/lib/interfaces/iRootObject.interface.js +0 -1
  137. package/esm5/lib/models/baseField.model.js +0 -43
  138. package/esm5/lib/models/baseObj.model.js +0 -13
  139. package/esm5/lib/models/context.model.js +0 -14
  140. package/esm5/lib/models/endPointConfiguration.model.js +0 -33
  141. package/esm5/lib/models/entity.model.js +0 -14
  142. package/esm5/lib/models/fields/attachmentField.model.js +0 -29
  143. package/esm5/lib/models/fields/booleanField.model.js +0 -19
  144. package/esm5/lib/models/fields/dateField.model.js +0 -18
  145. package/esm5/lib/models/fields/imageField.model.js +0 -19
  146. package/esm5/lib/models/fields/listValueField.model.js +0 -25
  147. package/esm5/lib/models/fields/lookupField.model.js +0 -12
  148. package/esm5/lib/models/fields/numericField.model.js +0 -12
  149. package/esm5/lib/models/fields/textField.model.js +0 -21
  150. package/esm5/lib/models/fields/textareaField.model.js +0 -11
  151. package/esm5/lib/models/form.model.js +0 -39
  152. package/esm5/lib/models/record.model.js +0 -14
  153. package/esm5/lib/modules/material.module.js +0 -111
  154. package/esm5/lib/services/custom-form-validators.service.js +0 -23
  155. package/esm5/lib/services/eqp-dynamic-module-dialog.service.js +0 -123
  156. package/esm5/lib/services/spinner.service.js +0 -46
  157. package/esm5/lib/services/utilityHelper.services.js +0 -396
  158. package/esm5/public-api.js +0 -39
  159. package/fesm2015/eqproject-eqp-dynamic-module.js +0 -3586
  160. package/fesm2015/eqproject-eqp-dynamic-module.js.map +0 -1
  161. package/fesm5/eqproject-eqp-dynamic-module.js +0 -3772
  162. package/fesm5/eqproject-eqp-dynamic-module.js.map +0 -1
@@ -1,123 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from "@angular/core";
3
- import Swal from 'sweetalert2';
4
- import * as i0 from "@angular/core";
5
- var EqpDynamicModuleDialogService = /** @class */ (function () {
6
- function EqpDynamicModuleDialogService() {
7
- }
8
- /**
9
- * Mostra uno sweet alert di tipo SUCCESS con il messaggio passato come parametro.
10
- * @param message Messaggio da mostrare nello sweetalert
11
- * @param title Titolo dello sweetalert (di default mostra 'Operazione completata')
12
- */
13
- EqpDynamicModuleDialogService.Success = function (message, title) {
14
- if (title === void 0) { title = null; }
15
- var currentTitle = title != null ? title : 'Operazione completata con successo.';
16
- Swal.fire(currentTitle, message, 'success');
17
- };
18
- /**
19
- * Mostra uno sweet alert di tipo ERROR con il messaggio passato come parametro.
20
- * @param message Messaggio d'errore da mostrare nello sweetalert
21
- * @param title Titolo dello sweetalert (di default mostra 'Errore')
22
- */
23
- EqpDynamicModuleDialogService.Error = function (message, title) {
24
- if (title === void 0) { title = null; }
25
- var currentTitle = title != null ? title : 'Errore';
26
- if (Array.isArray(message)) {
27
- currentTitle = title != null ? title : 'Errore';
28
- var htmlErrors = message.join("<br>");
29
- Swal.fire({
30
- title: currentTitle,
31
- html: htmlErrors,
32
- icon: 'error'
33
- });
34
- }
35
- else {
36
- Swal.fire(currentTitle, message, 'error');
37
- }
38
- };
39
- /**
40
- * Mostra uno sweetalert di tipo CONFIRM con il messaggio passato come parametro e se viene premuto
41
- * CONFERMA lancia la funzione di callback passata come parametro
42
- * @param message Messaggio da mostrare nello sweetalert
43
- * @param title Titolo dello sweetalert (di default mostra 'Info')
44
- */
45
- EqpDynamicModuleDialogService.Confirm = function (message, confirmCallback, isWarning, title, customWidth) {
46
- if (isWarning === void 0) { isWarning = false; }
47
- if (title === void 0) { title = null; }
48
- if (customWidth === void 0) { customWidth = null; }
49
- var currentTitle = title != null ? title : 'Sei sicuro di voler procedere?';
50
- if (Array.isArray(message)) {
51
- var htmlErrors = message.join("<br>");
52
- Swal.fire({
53
- title: currentTitle,
54
- html: htmlErrors,
55
- width: customWidth ? customWidth : '32rem',
56
- icon: !isWarning ? 'question' : 'warning',
57
- showCancelButton: true,
58
- allowOutsideClick: false,
59
- allowEscapeKey: false
60
- }).then(function (result) {
61
- if (result.value && confirmCallback) {
62
- confirmCallback();
63
- }
64
- });
65
- }
66
- else {
67
- Swal.fire({
68
- title: currentTitle,
69
- text: message,
70
- width: customWidth ? customWidth : '32rem',
71
- icon: !isWarning ? 'question' : 'warning',
72
- showCancelButton: true,
73
- allowOutsideClick: false,
74
- allowEscapeKey: false
75
- }).then(function (result) {
76
- if (result.value && confirmCallback) {
77
- confirmCallback();
78
- }
79
- });
80
- }
81
- };
82
- /**
83
- * Mostra uno sweetalert di tipo INFO con il messaggio passato come parametro
84
- * @param message Messaggio da mostrare nello sweetalert
85
- * @param title Titolo dello sweetalert (di default mostra 'Info')
86
- */
87
- EqpDynamicModuleDialogService.Info = function (message, title, isToast) {
88
- if (title === void 0) { title = null; }
89
- if (isToast === void 0) { isToast = null; }
90
- var currentTitle = title != null ? title : "Informazione:";
91
- Swal.fire(currentTitle, message, 'info');
92
- };
93
- /**
94
- * Mostra uno sweetalert di tipo WARNING con il messaggio passato come parametro
95
- * @param message Messaggio da mostrare nello sweetalert
96
- * @param title Titolo dello sweetalert (di default mostra 'Attenzione!')
97
- */
98
- EqpDynamicModuleDialogService.Warning = function (message, title, isToast) {
99
- if (title === void 0) { title = null; }
100
- if (isToast === void 0) { isToast = null; }
101
- var currentTitle = title != null ? title : "Attenzione!";
102
- if (Array.isArray(message)) {
103
- var htmlWarnings = message.join("<br>");
104
- Swal.fire({
105
- title: currentTitle,
106
- html: htmlWarnings,
107
- icon: 'warning'
108
- });
109
- }
110
- else {
111
- Swal.fire(currentTitle, message, 'warning');
112
- }
113
- };
114
- EqpDynamicModuleDialogService.ɵprov = i0.ɵɵdefineInjectable({ factory: function EqpDynamicModuleDialogService_Factory() { return new EqpDynamicModuleDialogService(); }, token: EqpDynamicModuleDialogService, providedIn: "root" });
115
- EqpDynamicModuleDialogService = __decorate([
116
- Injectable({
117
- providedIn: 'root'
118
- })
119
- ], EqpDynamicModuleDialogService);
120
- return EqpDynamicModuleDialogService;
121
- }());
122
- export { EqpDynamicModuleDialogService };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGVxcHJvamVjdC9lcXAtZHluYW1pYy1tb2R1bGUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZXFwLWR5bmFtaWMtbW9kdWxlLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7QUFLL0I7SUFFSTtJQUFnQixDQUFDO0lBRWpCOzs7O09BSUc7SUFDSSxxQ0FBTyxHQUFkLFVBQWUsT0FBZSxFQUFFLEtBQW9CO1FBQXBCLHNCQUFBLEVBQUEsWUFBb0I7UUFDaEQsSUFBSSxZQUFZLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsQ0FBQztRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxtQ0FBSyxHQUFaLFVBQWEsT0FBMEIsRUFBRSxLQUFvQjtRQUFwQixzQkFBQSxFQUFBLFlBQW9CO1FBQ3pELElBQUksWUFBWSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3BELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN4QixZQUFZLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDaEQsSUFBSSxVQUFVLEdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNOLEtBQUssRUFBRSxZQUFZ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LFlBQVksR0FBVyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ04sS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLElBQUksRUFBRSxZQUFZO2dCQUNsQixJQUFJLEVBQUUsU0FBUzthQUNsQixDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQy9DO0lBQ0wsQ0FBQzs7SUExR1EsNkJBQTZCO1FBSHpDLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7T0FDVyw2QkFBNkIsQ0EyR3pDO3dDQWpIRDtDQWlIQyxBQTNHRCxJQTJHQztTQTNHWSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFcXBEeW5hbWljTW9kdWxlRGlhbG9nU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBNb3N0cmEgdW5vIHN3ZWV0IGFsZXJ0IGRpIHRpcG8gU1VDQ0VTUyBjb24gaWwgbWVzc2FnZ2lvIHBhc3NhdG8gY29tZSBwYXJhbWV0cm8uXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBNZXNzYWdnaW8gZGEgbW9zdHJhcmUgbmVsbG8gc3dlZXRhbGVydFxyXG4gICAgICogQHBhcmFtIHRpdGxlIFRpdG9sbyBkZWxsbyBzd2VldGFsZXJ0IChkaSBkZWZhdWx0IG1vc3RyYSAnT3BlcmF6aW9uZSBjb21wbGV0YXRhJylcclxuICAgICAqL1xyXG4gICAgc3RhdGljIFN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgICAgIGxldCBjdXJyZW50VGl0bGUgPSB0aXRsZSAhPSBudWxsID8gdGl0bGUgOiAnT3BlcmF6aW9uZSBjb21wbGV0YXRhIGNvbiBzdWNjZXNzby4nO1xyXG4gICAgICAgIFN3YWwuZmlyZShjdXJyZW50VGl0bGUsIG1lc3NhZ2UsICdzdWNjZXNzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb3N0cmEgdW5vIHN3ZWV0IGFsZXJ0IGRpIHRpcG8gRVJST1IgY29uIGlsIG1lc3NhZ2dpbyBwYXNzYXRvIGNvbWUgcGFyYW1ldHJvLlxyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgTWVzc2FnZ2lvIGQnZXJyb3JlIGRhIG1vc3RyYXJlIG5lbGxvIHN3ZWV0YWxlcnRcclxuICAgICAqIEBwYXJhbSB0aXRsZSBUaXRvbG8gZGVsbG8gc3dlZXRhbGVydCAoZGkgZGVmYXVsdCBtb3N0cmEgJ0Vycm9yZScpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBFcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSwgdGl0bGU6IHN0cmluZyA9IG51bGwpIHtcclxuICAgICAgICBsZXQgY3VycmVudFRpdGxlID0gdGl0bGUgIT0gbnVsbCA/IHRpdGxlIDogJ0Vycm9yZSc7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWVzc2FnZSkpIHtcclxuICAgICAgICAgICAgY3VycmVudFRpdGxlID0gdGl0bGUgIT0gbnVsbCA/IHRpdGxlIDogJ0Vycm9yZSc7XHJcbiAgICAgICAgICAgIGxldCBodG1sRXJyb3JzOiBzdHJpbmcgPSBtZXNzYWdlLmpvaW4oXCI8YnI+XCIpO1xyXG4gICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGN1cnJlbnRUaXRsZSxcclxuICAgICAgICAgICAgICAgIGh0bWw6IGh0bWxFcnJvcnMsXHJcbiAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgU3dhbC5maXJlKGN1cnJlbnRUaXRsZSwgbWVzc2FnZSwgJ2Vycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vc3RyYSB1bm8gc3dlZXRhbGVydCBkaSB0aXBvIENPTkZJUk0gY29uIGlsIG1lc3NhZ2dpbyBwYXNzYXRvIGNvbWUgcGFyYW1ldHJvIGUgc2UgdmllbmUgcHJlbXV0b1xyXG4gICAgICogQ09ORkVSTUEgbGFuY2lhIGxhIGZ1bnppb25lIGRpIGNhbGxiYWNrIHBhc3NhdGEgY29tZSBwYXJhbWV0cm9cclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIE1lc3NhZ2dpbyBkYSBtb3N0cmFyZSBuZWxsbyBzd2VldGFsZXJ0XHJcbiAgICAgKiBAcGFyYW0gdGl0bGUgVGl0b2xvIGRlbGxvIHN3ZWV0YWxlcnQgKGRpIGRlZmF1bHQgbW9zdHJhICdJbmZvJylcclxuICAgICAqL1xyXG4gICAgc3RhdGljIENvbmZpcm0obWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10sIGNvbmZpcm1DYWxsYmFjazogYW55LCBpc1dhcm5pbmc6IGJvb2xlYW4gPSBmYWxzZSwgdGl0bGU6IHN0cmluZyA9IG51bGwsIGN1c3RvbVdpZHRoOiBzdHJpbmcgPSBudWxsKSB7XHJcblxyXG4gICAgICAgIGxldCBjdXJyZW50VGl0bGUgPSB0aXRsZSAhPSBudWxsID8gdGl0bGUgOiAnU2VpIHNpY3VybyBkaSB2b2xlciBwcm9jZWRlcmU/JztcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShtZXNzYWdlKSkge1xyXG4gICAgICAgICAgICBsZXQgaHRtbEVycm9yczogc3RyaW5nID0gbWVzc2FnZS5qb2luKFwiPGJyPlwiKTtcclxuICAgICAgICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBjdXJyZW50VGl0bGUsXHJcbiAgICAgICAgICAgICAgICBodG1sOiBodG1sRXJyb3JzLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGN1c3RvbVdpZHRoID8gY3VzdG9tV2lkdGggOiAnMzJyZW0nLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogIWlzV2FybmluZyA/ICdxdWVzdGlvbicgOiAnd2FybmluZycsXHJcbiAgICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYWxsb3dFc2NhcGVLZXk6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSAmJiBjb25maXJtQ2FsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25maXJtQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGN1cnJlbnRUaXRsZSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IG1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogY3VzdG9tV2lkdGggPyBjdXN0b21XaWR0aCA6ICczMnJlbScsXHJcbiAgICAgICAgICAgICAgICBpY29uOiAhaXNXYXJuaW5nID8gJ3F1ZXN0aW9uJyA6ICd3YXJuaW5nJyxcclxuICAgICAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhbGxvd0VzY2FwZUtleTogZmFsc2VcclxuICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICYmIGNvbmZpcm1DYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm1DYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vc3RyYSB1bm8gc3dlZXRhbGVydCBkaSB0aXBvIElORk8gY29uIGlsIG1lc3NhZ2dpbyBwYXNzYXRvIGNvbWUgcGFyYW1ldHJvXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBNZXNzYWdnaW8gZGEgbW9zdHJhcmUgbmVsbG8gc3dlZXRhbGVydFxyXG4gICAgICogQHBhcmFtIHRpdGxlIFRpdG9sbyBkZWxsbyBzd2VldGFsZXJ0IChkaSBkZWZhdWx0IG1vc3RyYSAnSW5mbycpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBJbmZvKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZyA9IG51bGwsIGlzVG9hc3Q6IGJvb2xlYW4gPSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRUaXRsZSA9IHRpdGxlICE9IG51bGwgPyB0aXRsZSA6IFwiSW5mb3JtYXppb25lOlwiO1xyXG4gICAgICAgIFN3YWwuZmlyZShjdXJyZW50VGl0bGUsIG1lc3NhZ2UsICdpbmZvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb3N0cmEgdW5vIHN3ZWV0YWxlcnQgZGkgdGlwbyBXQVJOSU5HIGNvbiBpbCBtZXNzYWdnaW8gcGFzc2F0byBjb21lIHBhcmFtZXRyb1xyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgTWVzc2FnZ2lvIGRhIG1vc3RyYXJlIG5lbGxvIHN3ZWV0YWxlcnRcclxuICAgICAqIEBwYXJhbSB0aXRsZSBUaXRvbG8gZGVsbG8gc3dlZXRhbGVydCAoZGkgZGVmYXVsdCBtb3N0cmEgJ0F0dGVuemlvbmUhJylcclxuICAgICAqL1xyXG4gICAgc3RhdGljIFdhcm5pbmcobWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10sIHRpdGxlOiBzdHJpbmcgPSBudWxsLCBpc1RvYXN0OiBib29sZWFuID0gbnVsbCkge1xyXG4gICAgICAgIGxldCBjdXJyZW50VGl0bGUgPSB0aXRsZSAhPSBudWxsID8gdGl0bGUgOiBcIkF0dGVuemlvbmUhXCI7XHJcblxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG1lc3NhZ2UpKSB7XHJcbiAgICAgICAgICAgIGxldCBodG1sV2FybmluZ3M6IHN0cmluZyA9IG1lc3NhZ2Uuam9pbihcIjxicj5cIik7XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogY3VycmVudFRpdGxlLFxyXG4gICAgICAgICAgICAgICAgaHRtbDogaHRtbFdhcm5pbmdzLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZShjdXJyZW50VGl0bGUsIG1lc3NhZ2UsICd3YXJuaW5nJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,46 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from "@angular/core";
3
- import { Subject } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- var SpinnerService = /** @class */ (function () {
6
- function SpinnerService() {
7
- this.isLoading = new Subject();
8
- this.requestsCount = 0;
9
- }
10
- /**
11
- * Mostra lo spinner
12
- */
13
- SpinnerService.prototype.show = function () {
14
- var _this = this;
15
- setTimeout(function () {
16
- _this.isLoading.next(true);
17
- }, 100);
18
- };
19
- /**
20
- * Nasconde lo spinner
21
- */
22
- SpinnerService.prototype.hide = function () {
23
- var _this = this;
24
- setTimeout(function () {
25
- _this.isLoading.next(false);
26
- }, 100);
27
- };
28
- SpinnerService.prototype.addRequestCounter = function () {
29
- this.requestsCount++;
30
- this.show();
31
- };
32
- SpinnerService.prototype.removeRequestCounter = function () {
33
- this.requestsCount--;
34
- if (this.requestsCount == 0)
35
- this.hide();
36
- };
37
- SpinnerService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SpinnerService_Factory() { return new SpinnerService(); }, token: SpinnerService, providedIn: "root" });
38
- SpinnerService = __decorate([
39
- Injectable({
40
- providedIn: 'root'
41
- })
42
- ], SpinnerService);
43
- return SpinnerService;
44
- }());
45
- export { SpinnerService };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGVxcHJvamVjdC9lcXAtZHluYW1pYy1tb2R1bGUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc3Bpbm5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9CO0lBQUE7UUFDSSxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUUzQixrQkFBYSxHQUFXLENBQUMsQ0FBQztLQThCckM7SUE1Qkc7O09BRUc7SUFDSCw2QkFBSSxHQUFKO1FBQUEsaUJBSUM7UUFIRyxVQUFVLENBQUM7WUFDUCxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRUQ7O09BRUc7SUFDSCw2QkFBSSxHQUFKO1FBQUEsaUJBSUM7UUFIRyxVQUFVLENBQUM7WUFDUCxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRUQsMENBQWlCLEdBQWpCO1FBQ0ksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsNkNBQW9CLEdBQXBCO1FBQ0ksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOztJQWhDUSxjQUFjO1FBSDFCLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7T0FDVyxjQUFjLENBaUMxQjt5QkF2Q0Q7Q0F1Q0MsQUFqQ0QsSUFpQ0M7U0FqQ1ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaW5uZXJTZXJ2aWNlIHtcclxuICAgIGlzTG9hZGluZyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0c0NvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9zdHJhIGxvIHNwaW5uZXJcclxuICAgICAqL1xyXG4gICAgc2hvdygpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcubmV4dCh0cnVlKTtcclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFzY29uZGUgbG8gc3Bpbm5lclxyXG4gICAgICovXHJcbiAgICBoaWRlKCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFJlcXVlc3RDb3VudGVyKCkge1xyXG4gICAgICAgIHRoaXMucmVxdWVzdHNDb3VudCsrO1xyXG4gICAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVJlcXVlc3RDb3VudGVyKCkge1xyXG4gICAgICAgIHRoaXMucmVxdWVzdHNDb3VudC0tO1xyXG4gICAgICAgIGlmICh0aGlzLnJlcXVlc3RzQ291bnQgPT0gMClcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbn0iXX0=