@decaf-ts/for-angular 0.0.3 → 0.0.5

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 (87) hide show
  1. package/LICENSE.md +659 -21
  2. package/README.md +37 -242
  3. package/dist/lib/README.md +92 -0
  4. package/dist/lib/assets/i18n/en.json +131 -0
  5. package/dist/lib/assets/images/angular-logo.svg +45 -0
  6. package/dist/lib/assets/images/decaf-logo-black.svg +22 -0
  7. package/dist/lib/assets/images/decaf-logo-lw.svg +50 -0
  8. package/dist/lib/assets/images/decaf-logo-white.svg +22 -0
  9. package/dist/lib/assets/images/decaf-logo.svg +54 -0
  10. package/dist/lib/components/component-renderer/component-renderer.component.d.ts +267 -0
  11. package/dist/lib/components/crud-field/crud-field.component.d.ts +447 -0
  12. package/dist/lib/components/crud-form/crud-form.component.d.ts +102 -0
  13. package/dist/lib/components/model-renderer/model-renderer.component.d.ts +97 -0
  14. package/dist/lib/engine/DynamicModule.d.ts +17 -0
  15. package/dist/{for-angular → lib}/engine/NgxCrudFormField.d.ts +37 -30
  16. package/dist/lib/engine/NgxFormService.d.ts +167 -0
  17. package/dist/lib/engine/NgxRenderingEngine.d.ts +128 -0
  18. package/dist/lib/engine/NgxRenderingEngine2.d.ts +251 -0
  19. package/dist/lib/engine/ValidatorFactory.d.ts +15 -0
  20. package/dist/lib/engine/constants.d.ts +151 -0
  21. package/dist/lib/engine/decorators.d.ts +25 -0
  22. package/dist/lib/engine/index.d.ts +15 -0
  23. package/dist/lib/engine/types.d.ts +293 -0
  24. package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +309 -0
  25. package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +288 -0
  26. package/dist/lib/esm2022/components/crud-form/constants.mjs +14 -0
  27. package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +140 -0
  28. package/dist/lib/esm2022/components/crud-form/types.mjs +2 -0
  29. package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +137 -0
  30. package/dist/lib/esm2022/engine/DynamicModule.mjs +18 -0
  31. package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +117 -0
  32. package/dist/lib/esm2022/engine/NgxFormService.mjs +315 -0
  33. package/dist/lib/esm2022/engine/NgxRenderingEngine.mjs +194 -0
  34. package/dist/lib/esm2022/engine/NgxRenderingEngine2.mjs +333 -0
  35. package/dist/lib/esm2022/engine/ValidatorFactory.mjs +102 -0
  36. package/dist/lib/esm2022/engine/constants.mjs +160 -0
  37. package/dist/lib/esm2022/engine/decorators.mjs +38 -0
  38. package/dist/lib/esm2022/engine/index.mjs +16 -0
  39. package/dist/lib/esm2022/engine/types.mjs +2 -0
  40. package/dist/lib/esm2022/for-angular.module.mjs +118 -0
  41. package/dist/lib/esm2022/interfaces.mjs +2 -0
  42. package/dist/lib/esm2022/public-apis.mjs +13 -0
  43. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs +2138 -0
  44. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -0
  45. package/dist/lib/for-angular.module.d.ts +44 -0
  46. package/dist/lib/interfaces.d.ts +28 -0
  47. package/dist/lib/public-apis.d.ts +12 -0
  48. package/package.json +74 -25
  49. package/dist/for-angular/README.md +0 -297
  50. package/dist/for-angular/assets/i18n/en.json +0 -21
  51. package/dist/for-angular/components/decaf-crud-field/decaf-crud-field.component.d.ts +0 -22
  52. package/dist/for-angular/components/decaf-crud-form/decaf-crud-form.component.d.ts +0 -28
  53. package/dist/for-angular/components/decaf-model-renderer/decaf-model-renderer.component.d.ts +0 -20
  54. package/dist/for-angular/directives/decaf-field.directive.d.ts +0 -8
  55. package/dist/for-angular/engine/DynamicModule.d.ts +0 -2
  56. package/dist/for-angular/engine/NgxFormService.d.ts +0 -119
  57. package/dist/for-angular/engine/NgxRenderingEngine.d.ts +0 -17
  58. package/dist/for-angular/engine/ValidatorFactory.d.ts +0 -4
  59. package/dist/for-angular/engine/constants.d.ts +0 -10
  60. package/dist/for-angular/engine/decorators.d.ts +0 -1
  61. package/dist/for-angular/engine/index.d.ts +0 -5
  62. package/dist/for-angular/engine/types.d.ts +0 -32
  63. package/dist/for-angular/esm2022/components/decaf-crud-field/decaf-crud-field.component.mjs +0 -66
  64. package/dist/for-angular/esm2022/components/decaf-crud-form/constants.mjs +0 -14
  65. package/dist/for-angular/esm2022/components/decaf-crud-form/decaf-crud-form.component.mjs +0 -84
  66. package/dist/for-angular/esm2022/components/decaf-crud-form/types.mjs +0 -2
  67. package/dist/for-angular/esm2022/components/decaf-model-renderer/decaf-model-renderer.component.mjs +0 -46
  68. package/dist/for-angular/esm2022/directives/decaf-field.directive.mjs +0 -23
  69. package/dist/for-angular/esm2022/engine/DynamicModule.mjs +0 -3
  70. package/dist/for-angular/esm2022/engine/NgxCrudFormField.mjs +0 -118
  71. package/dist/for-angular/esm2022/engine/NgxFormService.mjs +0 -232
  72. package/dist/for-angular/esm2022/engine/NgxRenderingEngine.mjs +0 -35
  73. package/dist/for-angular/esm2022/engine/ValidatorFactory.mjs +0 -48
  74. package/dist/for-angular/esm2022/engine/constants.mjs +0 -12
  75. package/dist/for-angular/esm2022/engine/decorators.mjs +0 -17
  76. package/dist/for-angular/esm2022/engine/index.mjs +0 -6
  77. package/dist/for-angular/esm2022/engine/types.mjs +0 -2
  78. package/dist/for-angular/esm2022/interfaces.mjs +0 -2
  79. package/dist/for-angular/esm2022/public-apis.mjs +0 -5
  80. package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs +0 -675
  81. package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
  82. package/dist/for-angular/interfaces.d.ts +0 -8
  83. package/dist/for-angular/public-apis.d.ts +0 -4
  84. /package/dist/{for-angular/components/decaf-crud-form → lib/components/crud-form}/constants.d.ts +0 -0
  85. /package/dist/{for-angular/components/decaf-crud-form → lib/components/crud-form}/types.d.ts +0 -0
  86. /package/dist/{for-angular → lib}/esm2022/decaf-ts-for-angular.mjs +0 -0
  87. /package/dist/{for-angular → lib}/index.d.ts +0 -0
@@ -0,0 +1,50 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 166.75 39.77">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: none;
7
+ }
8
+
9
+ .cls-2 {
10
+ clip-path: url(#clippath-1);
11
+ }
12
+
13
+ .cls-3 {
14
+ fill: #fff;
15
+ }
16
+
17
+ .cls-4 {
18
+ clip-path: url(#clippath);
19
+ }
20
+ </style>
21
+ <clipPath id="clippath">
22
+ <polygon class="cls-1" points="39.77 0 9.93 0 4.96 4.96 0 9.93 0 39.77 29.86 39.77 39.77 29.86 39.77 0"/>
23
+ </clipPath>
24
+ <clipPath id="clippath-1">
25
+ <rect class="cls-1" x="-5" y="-5" width="49.77" height="49.77"/>
26
+ </clipPath>
27
+ </defs>
28
+ <g id="Layer_1-2" data-name="Layer 1">
29
+ <g>
30
+ <g>
31
+ <g class="cls-4">
32
+ <g class="cls-2">
33
+ <image width="104" height="104" transform="translate(-5 -5) scale(.48)" xlink:href="data:image/png;base64,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"/>
34
+ </g>
35
+ </g>
36
+ <g>
37
+ <polygon class="cls-3" points="9.94 14.93 4.97 14.93 4.97 29.87 4.97 29.87 4.97 34.8 4.97 34.8 4.97 34.81 9.94 34.81 9.94 34.8 19.89 34.8 19.89 29.87 9.94 29.87 9.94 14.93"/>
38
+ <polygon class="cls-3" points="19.89 14.91 19.89 19.91 19.89 24.9 24.85 24.9 24.85 19.91 29.82 19.91 29.82 14.91 19.89 14.91"/>
39
+ </g>
40
+ </g>
41
+ <g>
42
+ <path class="cls-3" d="M54.7,34.98V4.76h9.86c4.46,0,8.17,1.31,11.14,3.93,2.97,2.62,4.45,6.35,4.45,11.18s-1.48,8.56-4.45,11.18c-2.97,2.62-6.68,3.93-11.14,3.93h-9.86ZM60.43,30.01h3.65c2.93,0,5.37-.82,7.32-2.46,1.96-1.64,2.93-4.2,2.93-7.68s-.98-6.05-2.93-7.71c-1.96-1.65-4.4-2.48-7.32-2.48h-3.65v20.33Z"/>
43
+ <path class="cls-3" d="M98.75,27.73h5.21c-.41,2.3-1.55,4.14-3.43,5.53-1.88,1.38-4.17,2.07-6.87,2.07-3.42,0-6.13-1.12-8.15-3.37-2.01-2.24-3.02-4.89-3.02-7.94s.94-5.71,2.82-7.88,4.52-3.26,7.91-3.26,6.08,1.04,7.91,3.11c1.83,2.07,2.74,4.53,2.74,7.38,0,.63-.03,1.24-.09,1.81h-16.16c.2,1.76.84,3.15,1.91,4.19,1.07,1.04,2.45,1.55,4.13,1.55,2.81,0,4.5-1.06,5.08-3.19ZM93.24,16.85c-3.1,0-4.92,1.61-5.47,4.83h10.77c-.12-1.44-.64-2.6-1.59-3.5-.94-.89-2.18-1.34-3.71-1.34Z"/>
44
+ <path class="cls-3" d="M117.09,35.32c-3.33,0-6.02-1.07-8.06-3.22-2.04-2.14-3.06-4.81-3.06-8.01s1.02-5.86,3.06-8.01c2.04-2.14,4.73-3.22,8.06-3.22,2.81,0,5.2.76,7.17,2.29,1.97,1.53,3.07,3.53,3.3,6h-5.3c-.2-1.06-.78-1.95-1.72-2.65-.94-.7-2.05-1.06-3.32-1.06-1.8,0-3.19.62-4.19,1.86-1,1.24-1.5,2.83-1.5,4.79s.51,3.55,1.52,4.79c1.01,1.24,2.43,1.86,4.26,1.86,1.25,0,2.32-.32,3.24-.97.91-.65,1.5-1.52,1.76-2.61h5.39c-.35,2.39-1.5,4.35-3.45,5.87s-4.34,2.29-7.15,2.29Z"/>
45
+ <path class="cls-3" d="M139.46,12.88c2.81,0,5.09.74,6.84,2.22,1.75,1.48,2.63,3.45,2.63,5.89v13.99h-5.26v-3.24c-.46,1.09-1.28,1.96-2.46,2.61s-2.54.97-4.11.97c-2.14,0-3.9-.61-5.26-1.83-1.36-1.22-2.04-2.78-2.04-4.68,0-2.1.75-3.77,2.26-5.01,1.51-1.24,3.49-1.86,5.95-1.86h4.04c1.07,0,1.61-.49,1.61-1.47,0-1.06-.4-1.94-1.2-2.61-.8-.68-1.89-1.01-3.28-1.01s-2.45.36-3.28,1.08c-.83.72-1.27,1.6-1.33,2.63h-4.78c.14-2.22,1.09-4.05,2.85-5.5,1.75-1.45,4.02-2.18,6.8-2.18ZM138.38,31.4c1.65,0,2.95-.52,3.89-1.55.94-1.04,1.41-2.39,1.41-4.06v-.35h-4.91c-1.13,0-2.04.29-2.74.86-.7.58-1.04,1.34-1.04,2.29,0,.83.31,1.51.93,2.03s1.44.78,2.46.78Z"/>
46
+ <path class="cls-3" d="M155.02,34.98v-17.31h-4.3v-4.45h4.3v-2.03c0-2.22.71-3.99,2.13-5.31s3.32-1.99,5.69-1.99h3.91v4.49h-3.3c-.93,0-1.67.27-2.24.82-.56.55-.85,1.29-.85,2.24v1.77h6.39v4.45h-6.39v17.31h-5.34Z"/>
47
+ </g>
48
+ </g>
49
+ </g>
50
+ </svg>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 166.75 39.77">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: #fff;
7
+ }
8
+ </style>
9
+ </defs>
10
+ <g id="Layer_1-2" data-name="Layer 1">
11
+ <g>
12
+ <g>
13
+ <path class="cls-1" d="M54.7,34.98V4.76h9.86c4.46,0,8.17,1.31,11.14,3.93,2.97,2.62,4.45,6.35,4.45,11.18s-1.48,8.56-4.45,11.18c-2.97,2.62-6.68,3.93-11.14,3.93h-9.86ZM60.43,30.01h3.65c2.93,0,5.37-.82,7.32-2.46,1.96-1.64,2.93-4.2,2.93-7.68s-.98-6.05-2.93-7.71c-1.96-1.65-4.4-2.48-7.32-2.48h-3.65v20.33Z"/>
14
+ <path class="cls-1" d="M98.75,27.73h5.21c-.41,2.3-1.55,4.14-3.43,5.53-1.88,1.38-4.17,2.07-6.87,2.07-3.42,0-6.13-1.12-8.15-3.37-2.01-2.24-3.02-4.89-3.02-7.94s.94-5.71,2.82-7.88,4.52-3.26,7.91-3.26,6.08,1.04,7.91,3.11c1.83,2.07,2.74,4.53,2.74,7.38,0,.63-.03,1.24-.09,1.81h-16.16c.2,1.76.84,3.15,1.91,4.19,1.07,1.04,2.45,1.55,4.13,1.55,2.81,0,4.5-1.06,5.08-3.19ZM93.24,16.85c-3.1,0-4.92,1.61-5.47,4.83h10.77c-.12-1.44-.64-2.6-1.59-3.5-.94-.89-2.18-1.34-3.71-1.34Z"/>
15
+ <path class="cls-1" d="M117.09,35.32c-3.33,0-6.02-1.07-8.06-3.22-2.04-2.14-3.06-4.81-3.06-8.01s1.02-5.86,3.06-8.01c2.04-2.14,4.73-3.22,8.06-3.22,2.81,0,5.2.76,7.17,2.29,1.97,1.53,3.07,3.53,3.3,6h-5.3c-.2-1.06-.78-1.95-1.72-2.65-.94-.7-2.05-1.06-3.32-1.06-1.8,0-3.19.62-4.19,1.86-1,1.24-1.5,2.83-1.5,4.79s.51,3.55,1.52,4.79c1.01,1.24,2.43,1.86,4.26,1.86,1.25,0,2.32-.32,3.24-.97.91-.65,1.5-1.52,1.76-2.61h5.39c-.35,2.39-1.5,4.35-3.45,5.87s-4.34,2.29-7.15,2.29Z"/>
16
+ <path class="cls-1" d="M139.46,12.88c2.81,0,5.09.74,6.84,2.22,1.75,1.48,2.63,3.45,2.63,5.89v13.99h-5.26v-3.24c-.46,1.09-1.28,1.96-2.46,2.61s-2.54.97-4.11.97c-2.14,0-3.9-.61-5.26-1.83-1.36-1.22-2.04-2.78-2.04-4.68,0-2.1.75-3.77,2.26-5.01,1.51-1.24,3.49-1.86,5.95-1.86h4.04c1.07,0,1.61-.49,1.61-1.47,0-1.06-.4-1.94-1.2-2.61-.8-.68-1.89-1.01-3.28-1.01s-2.45.36-3.28,1.08c-.83.72-1.27,1.6-1.33,2.63h-4.78c.14-2.22,1.09-4.05,2.85-5.5,1.75-1.45,4.02-2.18,6.8-2.18ZM138.38,31.4c1.65,0,2.95-.52,3.89-1.55.94-1.04,1.41-2.39,1.41-4.06v-.35h-4.91c-1.13,0-2.04.29-2.74.86-.7.58-1.04,1.34-1.04,2.29,0,.83.31,1.51.93,2.03s1.44.78,2.46.78Z"/>
17
+ <path class="cls-1" d="M155.02,34.98v-17.31h-4.3v-4.45h4.3v-2.03c0-2.22.71-3.99,2.13-5.31s3.32-1.99,5.69-1.99h3.91v4.49h-3.3c-.93,0-1.67.27-2.24.82-.56.55-.85,1.29-.85,2.24v1.77h6.39v4.45h-6.39v17.31h-5.34Z"/>
18
+ </g>
19
+ <path class="cls-1" d="M9.93,0l-4.97,4.96L0,9.93v29.83h29.86l9.91-9.91V0H9.93ZM19.89,34.8h-9.94s-4.97,0-4.97,0h0s0,0,0,0v-4.94h0v-14.94h4.97v14.94h9.94v4.94ZM29.82,19.91h-4.97v4.99h-4.96v-9.99h9.93v4.99Z"/>
20
+ </g>
21
+ </g>
22
+ </svg>
@@ -0,0 +1,54 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 166.75 39.77">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: none;
7
+ }
8
+
9
+ .cls-2 {
10
+ clip-path: url(#clippath-1);
11
+ }
12
+
13
+ .cls-3 {
14
+ fill: #141414;
15
+ }
16
+
17
+ .cls-4 {
18
+ fill: #fff;
19
+ }
20
+
21
+ .cls-5 {
22
+ clip-path: url(#clippath);
23
+ }
24
+ </style>
25
+ <clipPath id="clippath">
26
+ <polygon class="cls-1" points="39.77 0 9.93 0 4.96 4.96 0 9.93 0 39.77 29.86 39.77 39.77 29.86 39.77 0"/>
27
+ </clipPath>
28
+ <clipPath id="clippath-1">
29
+ <rect class="cls-1" x="-5" y="-5" width="49.77" height="49.77"/>
30
+ </clipPath>
31
+ </defs>
32
+ <g id="Layer_1-2" data-name="Layer 1">
33
+ <g>
34
+ <g>
35
+ <g class="cls-5">
36
+ <g class="cls-2">
37
+ <image width="104" height="105" transform="translate(-5 -5.4) scale(.48)" xlink:href="data:image/png;base64,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"/>
38
+ </g>
39
+ </g>
40
+ <g>
41
+ <polygon class="cls-4" points="9.94 14.93 4.97 14.93 4.97 29.87 4.97 29.87 4.97 34.8 4.97 34.8 4.97 34.81 9.94 34.81 9.94 34.8 19.89 34.8 19.89 29.87 9.94 29.87 9.94 14.93"/>
42
+ <polygon class="cls-4" points="19.89 14.91 19.89 19.91 19.89 24.9 24.85 24.9 24.85 19.91 29.82 19.91 29.82 14.91 19.89 14.91"/>
43
+ </g>
44
+ </g>
45
+ <g>
46
+ <path class="cls-3" d="M54.7,34.98V4.76h9.86c4.46,0,8.17,1.31,11.14,3.93,2.97,2.62,4.45,6.35,4.45,11.18s-1.48,8.56-4.45,11.18c-2.97,2.62-6.68,3.93-11.14,3.93h-9.86ZM60.43,30.01h3.65c2.93,0,5.37-.82,7.32-2.46,1.96-1.64,2.93-4.2,2.93-7.68s-.98-6.05-2.93-7.71c-1.96-1.65-4.4-2.48-7.32-2.48h-3.65v20.33Z"/>
47
+ <path class="cls-3" d="M98.75,27.73h5.21c-.41,2.3-1.55,4.14-3.43,5.53-1.88,1.38-4.17,2.07-6.87,2.07-3.42,0-6.13-1.12-8.15-3.37-2.01-2.24-3.02-4.89-3.02-7.94s.94-5.71,2.82-7.88,4.52-3.26,7.91-3.26,6.08,1.04,7.91,3.11c1.83,2.07,2.74,4.53,2.74,7.38,0,.63-.03,1.24-.09,1.81h-16.16c.2,1.76.84,3.15,1.91,4.19,1.07,1.04,2.45,1.55,4.13,1.55,2.81,0,4.5-1.06,5.08-3.19ZM93.24,16.85c-3.1,0-4.92,1.61-5.47,4.83h10.77c-.12-1.44-.64-2.6-1.59-3.5-.94-.89-2.18-1.34-3.71-1.34Z"/>
48
+ <path class="cls-3" d="M117.09,35.32c-3.33,0-6.02-1.07-8.06-3.22-2.04-2.14-3.06-4.81-3.06-8.01s1.02-5.86,3.06-8.01c2.04-2.14,4.73-3.22,8.06-3.22,2.81,0,5.2.76,7.17,2.29,1.97,1.53,3.07,3.53,3.3,6h-5.3c-.2-1.06-.78-1.95-1.72-2.65-.94-.7-2.05-1.06-3.32-1.06-1.8,0-3.19.62-4.19,1.86-1,1.24-1.5,2.83-1.5,4.79s.51,3.55,1.52,4.79c1.01,1.24,2.43,1.86,4.26,1.86,1.25,0,2.32-.32,3.24-.97.91-.65,1.5-1.52,1.76-2.61h5.39c-.35,2.39-1.5,4.35-3.45,5.87s-4.34,2.29-7.15,2.29Z"/>
49
+ <path class="cls-3" d="M139.46,12.88c2.81,0,5.09.74,6.84,2.22,1.75,1.48,2.63,3.45,2.63,5.89v13.99h-5.26v-3.24c-.46,1.09-1.28,1.96-2.46,2.61s-2.54.97-4.11.97c-2.14,0-3.9-.61-5.26-1.83-1.36-1.22-2.04-2.78-2.04-4.68,0-2.1.75-3.77,2.26-5.01,1.51-1.24,3.49-1.86,5.95-1.86h4.04c1.07,0,1.61-.49,1.61-1.47,0-1.06-.4-1.94-1.2-2.61-.8-.68-1.89-1.01-3.28-1.01s-2.45.36-3.28,1.08c-.83.72-1.27,1.6-1.33,2.63h-4.78c.14-2.22,1.09-4.05,2.85-5.5,1.75-1.45,4.02-2.18,6.8-2.18ZM138.38,31.4c1.65,0,2.95-.52,3.89-1.55.94-1.04,1.41-2.39,1.41-4.06v-.35h-4.91c-1.13,0-2.04.29-2.74.86-.7.58-1.04,1.34-1.04,2.29,0,.83.31,1.51.93,2.03s1.44.78,2.46.78Z"/>
50
+ <path class="cls-3" d="M155.02,34.98v-17.31h-4.3v-4.45h4.3v-2.03c0-2.22.71-3.99,2.13-5.31s3.32-1.99,5.69-1.99h3.91v4.49h-3.3c-.93,0-1.67.27-2.24.82-.56.55-.85,1.29-.85,2.24v1.77h6.39v4.45h-6.39v17.31h-5.34Z"/>
51
+ </g>
52
+ </g>
53
+ </g>
54
+ </svg>
@@ -0,0 +1,267 @@
1
+ import { ComponentRef, EnvironmentInjector, EventEmitter, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { ModelRenderCustomEvent } from '../../engine';
3
+ import { Logger } from '@decaf-ts/logging';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * @description Dynamic component renderer for Decaf Angular applications.
7
+ * @summary This component provides a flexible way to dynamically render Angular components
8
+ * at runtime based on a tag name. It handles the creation, property binding, and event
9
+ * subscription for dynamically loaded components. This is particularly useful for
10
+ * building configurable UIs where components need to be determined at runtime.
11
+ *
12
+ * @component {ComponentRendererComponent}
13
+ * @example
14
+ * <ngx-decaf-component-renderer
15
+ * [tag]="tag"
16
+ * [globals]="globals"
17
+ * (listenEvent)="listenEvent($event)">
18
+ * </ngx-decaf-component-renderer>
19
+ *
20
+ * @mermaid
21
+ * classDiagram
22
+ * class ComponentRendererComponent {
23
+ * +ViewContainerRef vcr
24
+ * +string tag
25
+ * +Record~string, unknown~ globals
26
+ * +EnvironmentInjector injector
27
+ * +ComponentRef~unknown~ component
28
+ * +EventEmitter~ModelRenderCustomEvent~ listenEvent
29
+ * +ngOnInit()
30
+ * +ngOnDestroy()
31
+ * +ngOnChanges(changes)
32
+ * -createComponent(tag, globals)
33
+ * -subscribeEvents()
34
+ * -unsubscribeEvents()
35
+ * }
36
+ * ComponentRendererComponent --|> OnInit
37
+ * ComponentRendererComponent --|> OnChanges
38
+ * ComponentRendererComponent --|> OnDestroy
39
+ *
40
+ * @implements {OnInit}
41
+ * @implements {OnChanges}
42
+ * @implements {OnDestroy}
43
+ */
44
+ export declare class ComponentRendererComponent implements OnInit, OnDestroy {
45
+ /**
46
+ * @description Reference to the container where the dynamic component will be rendered.
47
+ * @summary This ViewContainerRef provides the container where the dynamically created
48
+ * component will be inserted into the DOM. It's marked as static to ensure it's available
49
+ * during the ngOnInit lifecycle hook when the component is created.
50
+ *
51
+ * @type {ViewContainerRef}
52
+ * @memberOf ComponentRendererComponent
53
+ */
54
+ vcr: ViewContainerRef;
55
+ /**
56
+ * @description The tag name of the component to be dynamically rendered.
57
+ * @summary This input property specifies which component should be rendered by providing
58
+ * its registered tag name. The tag must correspond to a component that has been registered
59
+ * with the NgxRenderingEngine2. This is a required input as it determines which component
60
+ * to create.
61
+ *
62
+ * @type {string}
63
+ * @required
64
+ * @memberOf ComponentRendererComponent
65
+ */
66
+ tag: string;
67
+ /**
68
+ * @description Global properties to pass to the rendered component.
69
+ * @summary This input property allows passing a set of properties to the dynamically
70
+ * rendered component. These properties will be mapped to the component's inputs if they
71
+ * match. Properties that don't match any input on the target component will be filtered out
72
+ * with a warning.
73
+ *
74
+ * @type {Record<string, unknown>}
75
+ * @default {}
76
+ * @memberOf ComponentRendererComponent
77
+ */
78
+ globals: Record<string, unknown>;
79
+ /**
80
+ * @description Injector used for dependency injection in the dynamic component.
81
+ * @summary This injector is used when creating the dynamic component to provide it with
82
+ * access to the application's dependency injection system. It ensures that the dynamically
83
+ * created component can access the same services and dependencies as statically created
84
+ * components.
85
+ *
86
+ * @type {EnvironmentInjector}
87
+ * @memberOf ComponentRendererComponent
88
+ */
89
+ injector: EnvironmentInjector;
90
+ /**
91
+ * @description Reference to the dynamically created component.
92
+ * @summary This property holds a reference to the ComponentRef of the dynamically created
93
+ * component. It's used to interact with the component instance, subscribe to its events,
94
+ * and properly destroy it when the renderer is destroyed.
95
+ *
96
+ * @type {ComponentRef<unknown>}
97
+ * @memberOf ComponentRendererComponent
98
+ */
99
+ component: ComponentRef<unknown>;
100
+ /**
101
+ * @description Event emitter for events from the rendered component.
102
+ * @summary This output property emits events that originate from the dynamically rendered
103
+ * component. It allows the parent component to listen for and respond to events from the
104
+ * dynamic component, creating a communication channel between the parent and the dynamically
105
+ * rendered child.
106
+ *
107
+ * @type {EventEmitter<ModelRenderCustomEvent>}
108
+ * @memberOf ComponentRendererComponent
109
+ */
110
+ listenEvent: EventEmitter<ModelRenderCustomEvent>;
111
+ /**
112
+ * @description Logger instance for the component.
113
+ * @summary This property holds a Logger instance specific to this component.
114
+ * It's used to log information, warnings, and errors related to the component's
115
+ * operations, particularly useful for debugging and monitoring the dynamic
116
+ * component rendering process.
117
+ *
118
+ * @type {Logger}
119
+ * @memberOf ComponentRendererComponent
120
+ */
121
+ logger: Logger;
122
+ parent: any;
123
+ inner?: TemplateRef<any>;
124
+ /**
125
+ * @description Creates an instance of ComponentRendererComponent.
126
+ * @summary Initializes a new ComponentRendererComponent. This component doesn't require
127
+ * any dependencies to be injected in its constructor as it uses the inject function to
128
+ * obtain the EnvironmentInjector.
129
+ *
130
+ * @memberOf ComponentRendererComponent
131
+ */
132
+ constructor();
133
+ /**
134
+ * @description Initializes the component after Angular first displays the data-bound properties.
135
+ * @summary Sets up the component by creating the dynamic component specified by the tag input.
136
+ * This method is called once when the component is initialized and triggers the dynamic
137
+ * component creation process with the provided tag name and global properties.
138
+ *
139
+ * @mermaid
140
+ * sequenceDiagram
141
+ * participant A as Angular Lifecycle
142
+ * participant C as ComponentRendererComponent
143
+ * participant R as NgxRenderingEngine2
144
+ *
145
+ * A->>C: ngOnInit()
146
+ * C->>C: createComponent(tag, globals)
147
+ * C->>R: components(tag)
148
+ * R-->>C: Return component constructor
149
+ * C->>C: Process component inputs
150
+ * C->>C: Create component instance
151
+ * C->>C: subscribeEvents()
152
+ *
153
+ * @return {void}
154
+ * @memberOf ComponentRendererComponent
155
+ */
156
+ ngOnInit(): void;
157
+ /**
158
+ * @description Cleans up resources when the component is destroyed.
159
+ * @summary Performs cleanup operations when the component is being destroyed by Angular.
160
+ * This includes unsubscribing from all event emitters of the dynamic component and
161
+ * destroying the rendering engine instance to prevent memory leaks.
162
+ *
163
+ * @mermaid
164
+ * sequenceDiagram
165
+ * participant A as Angular Lifecycle
166
+ * participant C as ComponentRendererComponent
167
+ * participant R as NgxRenderingEngine2
168
+ *
169
+ * A->>C: ngOnDestroy()
170
+ * alt component exists
171
+ * C->>C: unsubscribeEvents()
172
+ * C->>R: destroy()
173
+ * end
174
+ *
175
+ * @return {Promise<void>} A promise that resolves when cleanup is complete
176
+ * @memberOf ComponentRendererComponent
177
+ */
178
+ ngOnDestroy(): Promise<void>;
179
+ /**
180
+ * @description Creates and renders a dynamic component.
181
+ * @summary This method handles the creation of a dynamic component based on the provided tag.
182
+ * It retrieves the component constructor from the rendering engine, processes its inputs,
183
+ * filters out unmapped properties, creates the component instance, and sets up event subscriptions.
184
+ *
185
+ * @param {string} tag - The tag name of the component to create
186
+ * @param {KeyValue} globals - Global properties to pass to the component
187
+ * @return {void}
188
+ *
189
+ * @mermaid
190
+ * sequenceDiagram
191
+ * participant C as ComponentRendererComponent
192
+ * participant R as NgxRenderingEngine2
193
+ * participant V as ViewContainerRef
194
+ *
195
+ * C->>R: components(tag)
196
+ * R-->>C: Return component constructor
197
+ * C->>C: reflectComponentType(component)
198
+ * C->>C: Process input properties
199
+ * C->>C: Filter unmapped properties
200
+ * C->>V: clear()
201
+ * C->>R: createComponent(component, props, metadata, vcr, injector, [])
202
+ * R-->>C: Return component reference
203
+ * C->>C: subscribeEvents()
204
+ *
205
+ * @private
206
+ * @memberOf ComponentRendererComponent
207
+ */
208
+ private createComponent;
209
+ createParentComponent(): void;
210
+ /**
211
+ * @description Subscribes to events emitted by the dynamic component.
212
+ * @summary This method sets up subscriptions to all EventEmitter properties of the
213
+ * dynamically created component. When an event is emitted by the dynamic component,
214
+ * it is captured and re-emitted through the listenEvent output property with additional
215
+ * metadata about the event source.
216
+ *
217
+ * @mermaid
218
+ * sequenceDiagram
219
+ * participant C as ComponentRendererComponent
220
+ * participant D as Dynamic Component
221
+ * participant P as Parent Component
222
+ *
223
+ * C->>C: subscribeEvents()
224
+ * C->>D: Get instance properties
225
+ * loop For each property
226
+ * C->>C: Check if property is EventEmitter
227
+ * alt is EventEmitter
228
+ * C->>D: Subscribe to event
229
+ * D-->>C: Event emitted
230
+ * C->>P: Re-emit event with metadata
231
+ * end
232
+ * end
233
+ *
234
+ * @private
235
+ * @return {void}
236
+ * @memberOf ComponentRendererComponent
237
+ */
238
+ private subscribeEvents;
239
+ /**
240
+ * @description Unsubscribes from all events of the dynamic component.
241
+ * @summary This method cleans up event subscriptions when the component is being destroyed.
242
+ * It iterates through all properties of the dynamic component instance and unsubscribes
243
+ * from any EventEmitter properties to prevent memory leaks and unexpected behavior after
244
+ * the component is destroyed.
245
+ *
246
+ * @mermaid
247
+ * sequenceDiagram
248
+ * participant C as ComponentRendererComponent
249
+ * participant D as Dynamic Component
250
+ *
251
+ * C->>C: unsubscribeEvents()
252
+ * C->>D: Get instance properties
253
+ * loop For each property
254
+ * C->>C: Check if property is EventEmitter
255
+ * alt is EventEmitter
256
+ * C->>D: Unsubscribe from event
257
+ * end
258
+ * end
259
+ *
260
+ * @private
261
+ * @return {void}
262
+ * @memberOf ComponentRendererComponent
263
+ */
264
+ private unsubscribeEvents;
265
+ static ɵfac: i0.ɵɵFactoryDeclaration<ComponentRendererComponent, never>;
266
+ static ɵcmp: i0.ɵɵComponentDeclaration<ComponentRendererComponent, "ngx-decaf-component-renderer", never, { "tag": { "alias": "tag"; "required": true; }; "globals": { "alias": "globals"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; }, { "listenEvent": "listenEvent"; }, never, never, true, never>;
267
+ }