@storybook/angular 9.1.0-alpha.6 → 9.1.0-alpha.7

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 (266) hide show
  1. package/build-schema.json +199 -0
  2. package/builders.json +14 -0
  3. package/dist/builders/build-storybook/index.js +31 -83
  4. package/dist/builders/start-storybook/index.js +31 -104
  5. package/dist/chunk-CUDJAP6K.mjs +3 -0
  6. package/dist/chunk-KMSSK3DZ.mjs +6 -0
  7. package/dist/chunk-LXSTVAFF.mjs +40 -0
  8. package/dist/client/config.d.ts +20 -6
  9. package/dist/client/config.js +49 -20
  10. package/dist/client/config.mjs +10 -13
  11. package/dist/client/docs/config.d.ts +6 -3
  12. package/dist/client/docs/config.js +18 -14
  13. package/dist/client/docs/config.mjs +6 -10
  14. package/dist/client/index.d.ts +144 -6
  15. package/dist/client/index.js +47 -30
  16. package/dist/client/index.mjs +3 -9
  17. package/dist/client/preview-prod.d.ts +2 -1
  18. package/dist/client/preview-prod.js +5 -4
  19. package/dist/client/preview-prod.mjs +1 -0
  20. package/dist/index.d.ts +59 -2
  21. package/dist/index.js +47 -29
  22. package/dist/index.mjs +3 -13
  23. package/dist/preset.js +8 -38
  24. package/dist/server/framework-preset-angular-cli.js +20 -84
  25. package/dist/server/framework-preset-angular-ivy.js +6 -59
  26. package/dist/{client/types.d.ts → types-3b0b7107.d.ts} +9 -9
  27. package/package.json +59 -12
  28. package/start-schema.json +234 -0
  29. package/dist/builders/build-storybook/index.d.ts +0 -25
  30. package/dist/builders/build-storybook/index.mjs +0 -81
  31. package/dist/builders/build-storybook/index.spec.d.ts +0 -1
  32. package/dist/builders/build-storybook/index.spec.js +0 -222
  33. package/dist/builders/build-storybook/index.spec.mjs +0 -187
  34. package/dist/builders/build-storybook/schema.json +0 -199
  35. package/dist/builders/builders.json +0 -14
  36. package/dist/builders/start-storybook/index.d.ts +0 -21
  37. package/dist/builders/start-storybook/index.mjs +0 -102
  38. package/dist/builders/start-storybook/index.spec.d.ts +0 -1
  39. package/dist/builders/start-storybook/index.spec.js +0 -188
  40. package/dist/builders/start-storybook/index.spec.mjs +0 -186
  41. package/dist/builders/start-storybook/schema.json +0 -234
  42. package/dist/builders/utils/error-handler.d.ts +0 -2
  43. package/dist/builders/utils/error-handler.js +0 -38
  44. package/dist/builders/utils/error-handler.mjs +0 -33
  45. package/dist/builders/utils/run-compodoc.d.ts +0 -6
  46. package/dist/builders/utils/run-compodoc.js +0 -35
  47. package/dist/builders/utils/run-compodoc.mjs +0 -31
  48. package/dist/builders/utils/run-compodoc.spec.d.ts +0 -1
  49. package/dist/builders/utils/run-compodoc.spec.js +0 -76
  50. package/dist/builders/utils/run-compodoc.spec.mjs +0 -74
  51. package/dist/builders/utils/standalone-options.d.ts +0 -18
  52. package/dist/builders/utils/standalone-options.js +0 -2
  53. package/dist/builders/utils/standalone-options.mjs +0 -1
  54. package/dist/client/angular-beta/AbstractRenderer.d.ts +0 -75
  55. package/dist/client/angular-beta/AbstractRenderer.js +0 -201
  56. package/dist/client/angular-beta/AbstractRenderer.mjs +0 -164
  57. package/dist/client/angular-beta/CanvasRenderer.d.ts +0 -12
  58. package/dist/client/angular-beta/CanvasRenderer.js +0 -13
  59. package/dist/client/angular-beta/CanvasRenderer.mjs +0 -9
  60. package/dist/client/angular-beta/ComputesTemplateFromComponent.d.ts +0 -24
  61. package/dist/client/angular-beta/ComputesTemplateFromComponent.js +0 -160
  62. package/dist/client/angular-beta/ComputesTemplateFromComponent.mjs +0 -154
  63. package/dist/client/angular-beta/ComputesTemplateFromComponent.test.d.ts +0 -1
  64. package/dist/client/angular-beta/ComputesTemplateFromComponent.test.js +0 -730
  65. package/dist/client/angular-beta/ComputesTemplateFromComponent.test.mjs +0 -728
  66. package/dist/client/angular-beta/DocsRenderer.d.ts +0 -13
  67. package/dist/client/angular-beta/DocsRenderer.js +0 -39
  68. package/dist/client/angular-beta/DocsRenderer.mjs +0 -35
  69. package/dist/client/angular-beta/RendererFactory.d.ts +0 -11
  70. package/dist/client/angular-beta/RendererFactory.js +0 -56
  71. package/dist/client/angular-beta/RendererFactory.mjs +0 -50
  72. package/dist/client/angular-beta/RendererFactory.test.d.ts +0 -1
  73. package/dist/client/angular-beta/RendererFactory.test.js +0 -235
  74. package/dist/client/angular-beta/RendererFactory.test.mjs +0 -233
  75. package/dist/client/angular-beta/StorybookModule.d.ts +0 -8
  76. package/dist/client/angular-beta/StorybookModule.js +0 -27
  77. package/dist/client/angular-beta/StorybookModule.mjs +0 -23
  78. package/dist/client/angular-beta/StorybookModule.test.d.ts +0 -1
  79. package/dist/client/angular-beta/StorybookModule.test.js +0 -321
  80. package/dist/client/angular-beta/StorybookModule.test.mjs +0 -319
  81. package/dist/client/angular-beta/StorybookProvider.d.ts +0 -5
  82. package/dist/client/angular-beta/StorybookProvider.js +0 -26
  83. package/dist/client/angular-beta/StorybookProvider.mjs +0 -22
  84. package/dist/client/angular-beta/StorybookWrapperComponent.d.ts +0 -13
  85. package/dist/client/angular-beta/StorybookWrapperComponent.js +0 -127
  86. package/dist/client/angular-beta/StorybookWrapperComponent.mjs +0 -123
  87. package/dist/client/angular-beta/__testfixtures__/input.component.d.ts +0 -29
  88. package/dist/client/angular-beta/__testfixtures__/input.component.js +0 -76
  89. package/dist/client/angular-beta/__testfixtures__/input.component.mjs +0 -73
  90. package/dist/client/angular-beta/__testfixtures__/test.module.d.ts +0 -2
  91. package/dist/client/angular-beta/__testfixtures__/test.module.js +0 -20
  92. package/dist/client/angular-beta/__testfixtures__/test.module.mjs +0 -17
  93. package/dist/client/angular-beta/utils/BootstrapQueue.d.ts +0 -12
  94. package/dist/client/angular-beta/utils/BootstrapQueue.js +0 -86
  95. package/dist/client/angular-beta/utils/BootstrapQueue.mjs +0 -49
  96. package/dist/client/angular-beta/utils/BootstrapQueue.test.d.ts +0 -1
  97. package/dist/client/angular-beta/utils/BootstrapQueue.test.js +0 -164
  98. package/dist/client/angular-beta/utils/BootstrapQueue.test.mjs +0 -162
  99. package/dist/client/angular-beta/utils/NgComponentAnalyzer.d.ts +0 -22
  100. package/dist/client/angular-beta/utils/NgComponentAnalyzer.js +0 -93
  101. package/dist/client/angular-beta/utils/NgComponentAnalyzer.mjs +0 -84
  102. package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.d.ts +0 -1
  103. package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.js +0 -388
  104. package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.mjs +0 -386
  105. package/dist/client/angular-beta/utils/NgModulesAnalyzer.d.ts +0 -6
  106. package/dist/client/angular-beta/utils/NgModulesAnalyzer.js +0 -41
  107. package/dist/client/angular-beta/utils/NgModulesAnalyzer.mjs +0 -37
  108. package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.d.ts +0 -1
  109. package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.js +0 -24
  110. package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.mjs +0 -22
  111. package/dist/client/angular-beta/utils/PropertyExtractor.d.ts +0 -30
  112. package/dist/client/angular-beta/utils/PropertyExtractor.js +0 -196
  113. package/dist/client/angular-beta/utils/PropertyExtractor.mjs +0 -158
  114. package/dist/client/angular-beta/utils/PropertyExtractor.test.d.ts +0 -1
  115. package/dist/client/angular-beta/utils/PropertyExtractor.test.js +0 -177
  116. package/dist/client/angular-beta/utils/PropertyExtractor.test.mjs +0 -175
  117. package/dist/client/angular-beta/utils/StoryUID.d.ts +0 -22
  118. package/dist/client/angular-beta/utils/StoryUID.js +0 -43
  119. package/dist/client/angular-beta/utils/StoryUID.mjs +0 -38
  120. package/dist/client/argsToTemplate.d.ts +0 -56
  121. package/dist/client/argsToTemplate.js +0 -58
  122. package/dist/client/argsToTemplate.mjs +0 -55
  123. package/dist/client/argsToTemplate.test.d.ts +0 -1
  124. package/dist/client/argsToTemplate.test.js +0 -102
  125. package/dist/client/argsToTemplate.test.mjs +0 -100
  126. package/dist/client/compodoc-types.d.ts +0 -102
  127. package/dist/client/compodoc-types.js +0 -2
  128. package/dist/client/compodoc-types.mjs +0 -1
  129. package/dist/client/compodoc.d.ts +0 -12
  130. package/dist/client/compodoc.js +0 -261
  131. package/dist/client/compodoc.mjs +0 -248
  132. package/dist/client/compodoc.test.d.ts +0 -1
  133. package/dist/client/compodoc.test.js +0 -132
  134. package/dist/client/compodoc.test.mjs +0 -130
  135. package/dist/client/decorateStory.d.ts +0 -4
  136. package/dist/client/decorateStory.js +0 -48
  137. package/dist/client/decorateStory.mjs +0 -45
  138. package/dist/client/decorateStory.test.d.ts +0 -1
  139. package/dist/client/decorateStory.test.js +0 -306
  140. package/dist/client/decorateStory.test.mjs +0 -301
  141. package/dist/client/decorators.d.ts +0 -13
  142. package/dist/client/decorators.js +0 -69
  143. package/dist/client/decorators.mjs +0 -63
  144. package/dist/client/decorators.test.d.ts +0 -1
  145. package/dist/client/decorators.test.js +0 -159
  146. package/dist/client/decorators.test.mjs +0 -157
  147. package/dist/client/docs/__testfixtures__/doc-button/input.d.ts +0 -110
  148. package/dist/client/docs/__testfixtures__/doc-button/input.js +0 -204
  149. package/dist/client/docs/__testfixtures__/doc-button/input.mjs +0 -201
  150. package/dist/client/docs/__testfixtures__/doc-button/tsconfig.json +0 -7
  151. package/dist/client/docs/angular-properties.test.d.ts +0 -1
  152. package/dist/client/docs/angular-properties.test.js +0 -36
  153. package/dist/client/docs/angular-properties.test.mjs +0 -34
  154. package/dist/client/docs/sourceDecorator.d.ts +0 -10
  155. package/dist/client/docs/sourceDecorator.js +0 -53
  156. package/dist/client/docs/sourceDecorator.mjs +0 -48
  157. package/dist/client/globals.d.ts +0 -1
  158. package/dist/client/globals.js +0 -33
  159. package/dist/client/globals.mjs +0 -31
  160. package/dist/client/portable-stories.d.ts +0 -23
  161. package/dist/client/portable-stories.js +0 -62
  162. package/dist/client/portable-stories.mjs +0 -26
  163. package/dist/client/public-types.d.ts +0 -54
  164. package/dist/client/public-types.js +0 -2
  165. package/dist/client/public-types.mjs +0 -1
  166. package/dist/client/render.d.ts +0 -7
  167. package/dist/client/render.js +0 -19
  168. package/dist/client/render.mjs +0 -14
  169. package/dist/client/types.js +0 -2
  170. package/dist/client/types.mjs +0 -1
  171. package/dist/node/index.d.ts +0 -2
  172. package/dist/node/index.js +0 -6
  173. package/dist/node/index.mjs +0 -3
  174. package/dist/preset.d.ts +0 -5
  175. package/dist/preset.mjs +0 -34
  176. package/dist/renderer.d.ts +0 -6
  177. package/dist/renderer.js +0 -15
  178. package/dist/renderer.mjs +0 -6
  179. package/dist/server/__mocks-ng-workspace__/empty-projects-entry/angular.json +0 -4
  180. package/dist/server/__mocks-ng-workspace__/minimal-config/angular.json +0 -18
  181. package/dist/server/__mocks-ng-workspace__/minimal-config/src/main.d.ts +0 -1
  182. package/dist/server/__mocks-ng-workspace__/minimal-config/src/main.js +0 -5
  183. package/dist/server/__mocks-ng-workspace__/minimal-config/src/main.mjs +0 -2
  184. package/dist/server/__mocks-ng-workspace__/minimal-config/src/tsconfig.app.json +0 -9
  185. package/dist/server/__mocks-ng-workspace__/minimal-config/tsconfig.json +0 -13
  186. package/dist/server/__mocks-ng-workspace__/some-config/angular.json +0 -19
  187. package/dist/server/__mocks-ng-workspace__/some-config/src/main.d.ts +0 -1
  188. package/dist/server/__mocks-ng-workspace__/some-config/src/main.js +0 -5
  189. package/dist/server/__mocks-ng-workspace__/some-config/src/main.mjs +0 -2
  190. package/dist/server/__mocks-ng-workspace__/some-config/src/tsconfig.app.json +0 -9
  191. package/dist/server/__mocks-ng-workspace__/some-config/tsconfig.json +0 -13
  192. package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/angular.json +0 -64
  193. package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.d.ts +0 -1
  194. package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.js +0 -5
  195. package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.mjs +0 -2
  196. package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/tsconfig.app.json +0 -9
  197. package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/tsconfig.json +0 -13
  198. package/dist/server/__mocks-ng-workspace__/with-lib/angular.json +0 -28
  199. package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +0 -1
  200. package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.js +0 -5
  201. package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.mjs +0 -2
  202. package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/tsconfig.lib.json +0 -20
  203. package/dist/server/__mocks-ng-workspace__/with-lib/tsconfig.json +0 -13
  204. package/dist/server/__mocks-ng-workspace__/with-nx/angular.json +0 -18
  205. package/dist/server/__mocks-ng-workspace__/with-nx/nx.json +0 -3
  206. package/dist/server/__mocks-ng-workspace__/with-nx/src/main.d.ts +0 -1
  207. package/dist/server/__mocks-ng-workspace__/with-nx/src/main.js +0 -5
  208. package/dist/server/__mocks-ng-workspace__/with-nx/src/main.mjs +0 -2
  209. package/dist/server/__mocks-ng-workspace__/with-nx/src/tsconfig.app.json +0 -8
  210. package/dist/server/__mocks-ng-workspace__/with-nx/tsconfig.json +0 -14
  211. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/nx.json +0 -3
  212. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/main.d.ts +0 -1
  213. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/main.js +0 -5
  214. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/main.mjs +0 -2
  215. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/tsconfig.app.json +0 -8
  216. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/tsconfig.json +0 -14
  217. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/workspace.json +0 -18
  218. package/dist/server/__mocks-ng-workspace__/with-options-styles/angular.json +0 -18
  219. package/dist/server/__mocks-ng-workspace__/with-options-styles/src/main.d.ts +0 -1
  220. package/dist/server/__mocks-ng-workspace__/with-options-styles/src/main.js +0 -5
  221. package/dist/server/__mocks-ng-workspace__/with-options-styles/src/main.mjs +0 -2
  222. package/dist/server/__mocks-ng-workspace__/with-options-styles/src/tsconfig.app.json +0 -9
  223. package/dist/server/__mocks-ng-workspace__/with-options-styles/tsconfig.json +0 -13
  224. package/dist/server/__mocks-ng-workspace__/without-architect-build/angular.json +0 -5
  225. package/dist/server/__mocks-ng-workspace__/without-architect-build-options/angular.json +0 -11
  226. package/dist/server/__mocks-ng-workspace__/without-compatible-projects/angular.json +0 -7
  227. package/dist/server/__mocks-ng-workspace__/without-projects-entry/angular.json +0 -3
  228. package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +0 -1
  229. package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.js +0 -5
  230. package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.mjs +0 -2
  231. package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/tsconfig.lib.json +0 -20
  232. package/dist/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +0 -13
  233. package/dist/server/__mocks-ng-workspace__/without-tsConfig/angular.json +0 -16
  234. package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +0 -1
  235. package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/main.js +0 -5
  236. package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/main.mjs +0 -2
  237. package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/tsconfig.app.json +0 -9
  238. package/dist/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +0 -13
  239. package/dist/server/__tests__/angular.json +0 -96
  240. package/dist/server/angular-cli-webpack.d.ts +0 -1
  241. package/dist/server/angular-cli-webpack.js +0 -80
  242. package/dist/server/angular-cli-webpack.mjs +0 -80
  243. package/dist/server/framework-preset-angular-cli.d.ts +0 -3
  244. package/dist/server/framework-preset-angular-cli.mjs +0 -82
  245. package/dist/server/framework-preset-angular-ivy.d.ts +0 -10
  246. package/dist/server/framework-preset-angular-ivy.mjs +0 -56
  247. package/dist/server/plugins/storybook-normalize-angular-entry-plugin.d.ts +0 -12
  248. package/dist/server/plugins/storybook-normalize-angular-entry-plugin.js +0 -55
  249. package/dist/server/plugins/storybook-normalize-angular-entry-plugin.mjs +0 -52
  250. package/dist/server/preset-options.d.ts +0 -9
  251. package/dist/server/preset-options.js +0 -2
  252. package/dist/server/preset-options.mjs +0 -1
  253. package/dist/server/utils/filter-out-styling-rules.d.ts +0 -2
  254. package/dist/server/utils/filter-out-styling-rules.js +0 -17
  255. package/dist/server/utils/filter-out-styling-rules.mjs +0 -13
  256. package/dist/server/utils/module-is-available.d.ts +0 -1
  257. package/dist/server/utils/module-is-available.js +0 -13
  258. package/dist/server/utils/module-is-available.mjs +0 -9
  259. package/dist/test-setup.d.ts +0 -1
  260. package/dist/test-setup.js +0 -6
  261. package/dist/test-setup.mjs +0 -4
  262. package/dist/types.d.ts +0 -27
  263. package/dist/types.js +0 -2
  264. package/dist/types.mjs +0 -1
  265. package/scripts/postbuild.js +0 -17
  266. package/template/cli/.eslintrc.json +0 -5
@@ -1,22 +0,0 @@
1
- import { Component, Type } from '@angular/core';
2
- export type ComponentInputsOutputs = {
3
- inputs: {
4
- propName: string;
5
- templateName: string;
6
- }[];
7
- outputs: {
8
- propName: string;
9
- templateName: string;
10
- }[];
11
- };
12
- /** Returns component Inputs / Outputs by browsing these properties and decorator */
13
- export declare const getComponentInputsOutputs: (component: any) => ComponentInputsOutputs;
14
- export declare const isDeclarable: (component: any) => boolean;
15
- export declare const isComponent: (component: any) => component is Type<unknown>;
16
- export declare const isStandaloneComponent: (component: any) => component is Type<unknown>;
17
- /** Returns all component decorator properties is used to get all `@Input` and `@Output` Decorator */
18
- export declare const getComponentPropsDecoratorMetadata: (component: any) => {
19
- [key: string]: any[];
20
- };
21
- /** Returns component decorator `@Component` */
22
- export declare const getComponentDecoratorMetadata: (component: any) => Component | undefined;
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getComponentDecoratorMetadata = exports.getComponentPropsDecoratorMetadata = exports.isStandaloneComponent = exports.isComponent = exports.isDeclarable = exports.getComponentInputsOutputs = void 0;
4
- const core_1 = require("@angular/core");
5
- const reflectionCapabilities = new core_1.ɵReflectionCapabilities();
6
- /** Returns component Inputs / Outputs by browsing these properties and decorator */
7
- const getComponentInputsOutputs = (component) => {
8
- const componentMetadata = (0, exports.getComponentDecoratorMetadata)(component);
9
- const componentPropsMetadata = (0, exports.getComponentPropsDecoratorMetadata)(component);
10
- const initialValue = {
11
- inputs: [],
12
- outputs: [],
13
- };
14
- // Adds the I/O present in @Component metadata
15
- if (componentMetadata && componentMetadata.inputs) {
16
- initialValue.inputs.push(...componentMetadata.inputs.map((i) => ({
17
- propName: typeof i === 'string' ? i : i.name,
18
- templateName: typeof i === 'string' ? i : i.alias,
19
- })));
20
- }
21
- if (componentMetadata && componentMetadata.outputs) {
22
- initialValue.outputs.push(...componentMetadata.outputs.map((i) => ({ propName: i, templateName: i })));
23
- }
24
- if (!componentPropsMetadata) {
25
- return initialValue;
26
- }
27
- // Browses component properties to extract I/O
28
- // Filters properties that have the same name as the one present in the @Component property
29
- return Object.entries(componentPropsMetadata).reduce((previousValue, [propertyName, values]) => {
30
- const value = values.find((v) => v instanceof core_1.Input || v instanceof core_1.Output);
31
- if (value instanceof core_1.Input) {
32
- const inputToAdd = {
33
- propName: propertyName,
34
- templateName: value.bindingPropertyName ?? value.alias ?? propertyName,
35
- };
36
- const previousInputsFiltered = previousValue.inputs.filter((i) => i.templateName !== propertyName);
37
- return {
38
- ...previousValue,
39
- inputs: [...previousInputsFiltered, inputToAdd],
40
- };
41
- }
42
- if (value instanceof core_1.Output) {
43
- const outputToAdd = {
44
- propName: propertyName,
45
- templateName: value.bindingPropertyName ?? value.alias ?? propertyName,
46
- };
47
- const previousOutputsFiltered = previousValue.outputs.filter((i) => i.templateName !== propertyName);
48
- return {
49
- ...previousValue,
50
- outputs: [...previousOutputsFiltered, outputToAdd],
51
- };
52
- }
53
- return previousValue;
54
- }, initialValue);
55
- };
56
- exports.getComponentInputsOutputs = getComponentInputsOutputs;
57
- const isDeclarable = (component) => {
58
- if (!component) {
59
- return false;
60
- }
61
- const decorators = reflectionCapabilities.annotations(component);
62
- return !!(decorators || []).find((d) => d instanceof core_1.Directive || d instanceof core_1.Pipe || d instanceof core_1.Component);
63
- };
64
- exports.isDeclarable = isDeclarable;
65
- const isComponent = (component) => {
66
- if (!component) {
67
- return false;
68
- }
69
- const decorators = reflectionCapabilities.annotations(component);
70
- return (decorators || []).some((d) => d instanceof core_1.Component);
71
- };
72
- exports.isComponent = isComponent;
73
- const isStandaloneComponent = (component) => {
74
- if (!component) {
75
- return false;
76
- }
77
- const decorators = reflectionCapabilities.annotations(component);
78
- // TODO: `standalone` is only available in Angular v14. Remove cast to `any` once
79
- // Angular deps are updated to v14.x.x.
80
- return (decorators || []).some((d) => (d instanceof core_1.Component || d instanceof core_1.Directive || d instanceof core_1.Pipe) && d.standalone);
81
- };
82
- exports.isStandaloneComponent = isStandaloneComponent;
83
- /** Returns all component decorator properties is used to get all `@Input` and `@Output` Decorator */
84
- const getComponentPropsDecoratorMetadata = (component) => {
85
- return reflectionCapabilities.propMetadata(component);
86
- };
87
- exports.getComponentPropsDecoratorMetadata = getComponentPropsDecoratorMetadata;
88
- /** Returns component decorator `@Component` */
89
- const getComponentDecoratorMetadata = (component) => {
90
- const decorators = reflectionCapabilities.annotations(component);
91
- return decorators.reverse().find((d) => d instanceof core_1.Component);
92
- };
93
- exports.getComponentDecoratorMetadata = getComponentDecoratorMetadata;
@@ -1,84 +0,0 @@
1
- import { Component, Directive, Input, Output, Pipe, ɵReflectionCapabilities as ReflectionCapabilities, } from '@angular/core';
2
- const reflectionCapabilities = new ReflectionCapabilities();
3
- /** Returns component Inputs / Outputs by browsing these properties and decorator */
4
- export const getComponentInputsOutputs = (component) => {
5
- const componentMetadata = getComponentDecoratorMetadata(component);
6
- const componentPropsMetadata = getComponentPropsDecoratorMetadata(component);
7
- const initialValue = {
8
- inputs: [],
9
- outputs: [],
10
- };
11
- // Adds the I/O present in @Component metadata
12
- if (componentMetadata && componentMetadata.inputs) {
13
- initialValue.inputs.push(...componentMetadata.inputs.map((i) => ({
14
- propName: typeof i === 'string' ? i : i.name,
15
- templateName: typeof i === 'string' ? i : i.alias,
16
- })));
17
- }
18
- if (componentMetadata && componentMetadata.outputs) {
19
- initialValue.outputs.push(...componentMetadata.outputs.map((i) => ({ propName: i, templateName: i })));
20
- }
21
- if (!componentPropsMetadata) {
22
- return initialValue;
23
- }
24
- // Browses component properties to extract I/O
25
- // Filters properties that have the same name as the one present in the @Component property
26
- return Object.entries(componentPropsMetadata).reduce((previousValue, [propertyName, values]) => {
27
- const value = values.find((v) => v instanceof Input || v instanceof Output);
28
- if (value instanceof Input) {
29
- const inputToAdd = {
30
- propName: propertyName,
31
- templateName: value.bindingPropertyName ?? value.alias ?? propertyName,
32
- };
33
- const previousInputsFiltered = previousValue.inputs.filter((i) => i.templateName !== propertyName);
34
- return {
35
- ...previousValue,
36
- inputs: [...previousInputsFiltered, inputToAdd],
37
- };
38
- }
39
- if (value instanceof Output) {
40
- const outputToAdd = {
41
- propName: propertyName,
42
- templateName: value.bindingPropertyName ?? value.alias ?? propertyName,
43
- };
44
- const previousOutputsFiltered = previousValue.outputs.filter((i) => i.templateName !== propertyName);
45
- return {
46
- ...previousValue,
47
- outputs: [...previousOutputsFiltered, outputToAdd],
48
- };
49
- }
50
- return previousValue;
51
- }, initialValue);
52
- };
53
- export const isDeclarable = (component) => {
54
- if (!component) {
55
- return false;
56
- }
57
- const decorators = reflectionCapabilities.annotations(component);
58
- return !!(decorators || []).find((d) => d instanceof Directive || d instanceof Pipe || d instanceof Component);
59
- };
60
- export const isComponent = (component) => {
61
- if (!component) {
62
- return false;
63
- }
64
- const decorators = reflectionCapabilities.annotations(component);
65
- return (decorators || []).some((d) => d instanceof Component);
66
- };
67
- export const isStandaloneComponent = (component) => {
68
- if (!component) {
69
- return false;
70
- }
71
- const decorators = reflectionCapabilities.annotations(component);
72
- // TODO: `standalone` is only available in Angular v14. Remove cast to `any` once
73
- // Angular deps are updated to v14.x.x.
74
- return (decorators || []).some((d) => (d instanceof Component || d instanceof Directive || d instanceof Pipe) && d.standalone);
75
- };
76
- /** Returns all component decorator properties is used to get all `@Input` and `@Output` Decorator */
77
- export const getComponentPropsDecoratorMetadata = (component) => {
78
- return reflectionCapabilities.propMetadata(component);
79
- };
80
- /** Returns component decorator `@Component` */
81
- export const getComponentDecoratorMetadata = (component) => {
82
- const decorators = reflectionCapabilities.annotations(component);
83
- return decorators.reverse().find((d) => d instanceof Component);
84
- };
@@ -1,388 +0,0 @@
1
- "use strict";
2
- // @vitest-environment happy-dom
3
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
4
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7
- return c > 3 && r && Object.defineProperty(target, key, r), r;
8
- };
9
- var __metadata = (this && this.__metadata) || function (k, v) {
10
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- const core_1 = require("@angular/core");
14
- const testing_1 = require("@angular/core/testing");
15
- const testing_2 = require("@angular/platform-browser-dynamic/testing");
16
- const vitest_1 = require("vitest");
17
- const NgComponentAnalyzer_1 = require("./NgComponentAnalyzer");
18
- (0, vitest_1.describe)('getComponentInputsOutputs', () => {
19
- (0, vitest_1.it)('should return empty if no I/O found', () => {
20
- let FooComponent = class FooComponent {
21
- };
22
- FooComponent = __decorate([
23
- (0, core_1.Component)({
24
- standalone: false,
25
- })
26
- ], FooComponent);
27
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.getComponentInputsOutputs)(FooComponent)).toEqual({
28
- inputs: [],
29
- outputs: [],
30
- });
31
- class BarComponent {
32
- }
33
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.getComponentInputsOutputs)(BarComponent)).toEqual({
34
- inputs: [],
35
- outputs: [],
36
- });
37
- });
38
- (0, vitest_1.it)('should return I/O', () => {
39
- let FooComponent = class FooComponent {
40
- constructor() {
41
- this.signalInput = (0, core_1.input)();
42
- this.signalInputAliased = (0, core_1.input)('signalInputAliased', {
43
- alias: 'signalInputAliasedAlias',
44
- });
45
- this.output = new core_1.EventEmitter();
46
- this.outputWithBindingPropertyName = new core_1.EventEmitter();
47
- this.signalOutput = (0, core_1.output)();
48
- }
49
- };
50
- __decorate([
51
- (0, core_1.Input)(),
52
- __metadata("design:type", String)
53
- ], FooComponent.prototype, "input", void 0);
54
- __decorate([
55
- (0, core_1.Input)('inputPropertyName'),
56
- __metadata("design:type", String)
57
- ], FooComponent.prototype, "inputWithBindingPropertyName", void 0);
58
- __decorate([
59
- (0, core_1.Output)(),
60
- __metadata("design:type", Object)
61
- ], FooComponent.prototype, "output", void 0);
62
- __decorate([
63
- (0, core_1.Output)('outputPropertyName'),
64
- __metadata("design:type", Object)
65
- ], FooComponent.prototype, "outputWithBindingPropertyName", void 0);
66
- FooComponent = __decorate([
67
- (0, core_1.Component)({
68
- template: '',
69
- inputs: ['inputInComponentMetadata'],
70
- outputs: ['outputInComponentMetadata'],
71
- standalone: false,
72
- })
73
- ], FooComponent);
74
- const fooComponentFactory = resolveComponentFactory(FooComponent);
75
- const { inputs, outputs } = (0, NgComponentAnalyzer_1.getComponentInputsOutputs)(FooComponent);
76
- (0, vitest_1.expect)({ inputs, outputs }).toEqual({
77
- inputs: [
78
- { propName: 'inputInComponentMetadata', templateName: 'inputInComponentMetadata' },
79
- { propName: 'input', templateName: 'input' },
80
- { propName: 'inputWithBindingPropertyName', templateName: 'inputPropertyName' },
81
- ],
82
- outputs: [
83
- { propName: 'outputInComponentMetadata', templateName: 'outputInComponentMetadata' },
84
- { propName: 'output', templateName: 'output' },
85
- { propName: 'outputWithBindingPropertyName', templateName: 'outputPropertyName' },
86
- ],
87
- });
88
- (0, vitest_1.expect)(sortByPropName(inputs)).toEqual(sortByPropName(fooComponentFactory.inputs.map(({ isSignal, ...rest }) => rest)));
89
- (0, vitest_1.expect)(sortByPropName(outputs)).toEqual(sortByPropName(fooComponentFactory.outputs));
90
- });
91
- (0, vitest_1.it)("should return I/O when some of component metadata has the same name as one of component's properties", () => {
92
- let FooComponent = class FooComponent {
93
- constructor() {
94
- this.output = new core_1.EventEmitter();
95
- this.outputWithBindingPropertyName = new core_1.EventEmitter();
96
- }
97
- };
98
- __decorate([
99
- (0, core_1.Input)(),
100
- __metadata("design:type", String)
101
- ], FooComponent.prototype, "input", void 0);
102
- __decorate([
103
- (0, core_1.Input)('inputPropertyName'),
104
- __metadata("design:type", String)
105
- ], FooComponent.prototype, "inputWithBindingPropertyName", void 0);
106
- __decorate([
107
- (0, core_1.Output)(),
108
- __metadata("design:type", Object)
109
- ], FooComponent.prototype, "output", void 0);
110
- __decorate([
111
- (0, core_1.Output)('outputPropertyName'),
112
- __metadata("design:type", Object)
113
- ], FooComponent.prototype, "outputWithBindingPropertyName", void 0);
114
- FooComponent = __decorate([
115
- (0, core_1.Component)({
116
- template: '',
117
- inputs: ['input', 'inputWithBindingPropertyName'],
118
- outputs: ['outputWithBindingPropertyName'],
119
- standalone: false,
120
- })
121
- ], FooComponent);
122
- const fooComponentFactory = resolveComponentFactory(FooComponent);
123
- const { inputs, outputs } = (0, NgComponentAnalyzer_1.getComponentInputsOutputs)(FooComponent);
124
- (0, vitest_1.expect)(sortByPropName(inputs)).toEqual(sortByPropName(fooComponentFactory.inputs.map(({ isSignal, ...rest }) => rest)));
125
- (0, vitest_1.expect)(sortByPropName(outputs)).toEqual(sortByPropName(fooComponentFactory.outputs));
126
- });
127
- (0, vitest_1.it)('should return I/O in the presence of multiple decorators', () => {
128
- let FooComponent = class FooComponent {
129
- };
130
- __decorate([
131
- (0, core_1.Input)(),
132
- (0, core_1.HostBinding)('class.preceeding-first'),
133
- __metadata("design:type", String)
134
- ], FooComponent.prototype, "inputPreceedingHostBinding", void 0);
135
- __decorate([
136
- (0, core_1.HostBinding)('class.following-binding'),
137
- (0, core_1.Input)(),
138
- __metadata("design:type", String)
139
- ], FooComponent.prototype, "inputFollowingHostBinding", void 0);
140
- FooComponent = __decorate([
141
- (0, core_1.Component)({
142
- template: '',
143
- standalone: false,
144
- })
145
- ], FooComponent);
146
- const fooComponentFactory = resolveComponentFactory(FooComponent);
147
- const { inputs, outputs } = (0, NgComponentAnalyzer_1.getComponentInputsOutputs)(FooComponent);
148
- (0, vitest_1.expect)({ inputs, outputs }).toEqual({
149
- inputs: [
150
- { propName: 'inputPreceedingHostBinding', templateName: 'inputPreceedingHostBinding' },
151
- { propName: 'inputFollowingHostBinding', templateName: 'inputFollowingHostBinding' },
152
- ],
153
- outputs: [],
154
- });
155
- (0, vitest_1.expect)(sortByPropName(inputs)).toEqual(sortByPropName(fooComponentFactory.inputs.map(({ isSignal, ...rest }) => rest)));
156
- (0, vitest_1.expect)(sortByPropName(outputs)).toEqual(sortByPropName(fooComponentFactory.outputs));
157
- });
158
- (0, vitest_1.it)('should return I/O with extending classes', () => {
159
- let BarComponent = class BarComponent {
160
- };
161
- __decorate([
162
- (0, core_1.Input)(),
163
- __metadata("design:type", String)
164
- ], BarComponent.prototype, "a", void 0);
165
- __decorate([
166
- (0, core_1.Input)(),
167
- __metadata("design:type", String)
168
- ], BarComponent.prototype, "b", void 0);
169
- BarComponent = __decorate([
170
- (0, core_1.Component)({
171
- template: '',
172
- standalone: false,
173
- })
174
- ], BarComponent);
175
- let FooComponent = class FooComponent extends BarComponent {
176
- };
177
- __decorate([
178
- (0, core_1.Input)(),
179
- __metadata("design:type", String)
180
- ], FooComponent.prototype, "b", void 0);
181
- __decorate([
182
- (0, core_1.Input)(),
183
- __metadata("design:type", String)
184
- ], FooComponent.prototype, "c", void 0);
185
- FooComponent = __decorate([
186
- (0, core_1.Component)({
187
- template: '',
188
- standalone: false,
189
- })
190
- ], FooComponent);
191
- const fooComponentFactory = resolveComponentFactory(FooComponent);
192
- const { inputs, outputs } = (0, NgComponentAnalyzer_1.getComponentInputsOutputs)(FooComponent);
193
- (0, vitest_1.expect)({ inputs, outputs }).toEqual({
194
- inputs: [
195
- { propName: 'a', templateName: 'a' },
196
- { propName: 'b', templateName: 'b' },
197
- { propName: 'c', templateName: 'c' },
198
- ],
199
- outputs: [],
200
- });
201
- (0, vitest_1.expect)(sortByPropName(inputs)).toEqual(sortByPropName(fooComponentFactory.inputs.map(({ isSignal, ...rest }) => rest)));
202
- (0, vitest_1.expect)(sortByPropName(outputs)).toEqual(sortByPropName(fooComponentFactory.outputs));
203
- });
204
- });
205
- (0, vitest_1.describe)('isDeclarable', () => {
206
- (0, vitest_1.it)('should return true with a Component', () => {
207
- let FooComponent = class FooComponent {
208
- };
209
- FooComponent = __decorate([
210
- (0, core_1.Component)({})
211
- ], FooComponent);
212
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isDeclarable)(FooComponent)).toEqual(true);
213
- });
214
- (0, vitest_1.it)('should return true with a Directive', () => {
215
- let FooDirective = class FooDirective {
216
- };
217
- FooDirective = __decorate([
218
- (0, core_1.Directive)({})
219
- ], FooDirective);
220
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isDeclarable)(FooDirective)).toEqual(true);
221
- });
222
- (0, vitest_1.it)('should return true with a Pipe', () => {
223
- let FooPipe = class FooPipe {
224
- };
225
- FooPipe = __decorate([
226
- (0, core_1.Pipe)({ name: 'pipe' })
227
- ], FooPipe);
228
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isDeclarable)(FooPipe)).toEqual(true);
229
- });
230
- (0, vitest_1.it)('should return false with simple class', () => {
231
- class FooPipe {
232
- }
233
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isDeclarable)(FooPipe)).toEqual(false);
234
- });
235
- (0, vitest_1.it)('should return false with Injectable', () => {
236
- let FooInjectable = class FooInjectable {
237
- };
238
- FooInjectable = __decorate([
239
- (0, core_1.Injectable)()
240
- ], FooInjectable);
241
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isDeclarable)(FooInjectable)).toEqual(false);
242
- });
243
- });
244
- (0, vitest_1.describe)('isComponent', () => {
245
- (0, vitest_1.it)('should return true with a Component', () => {
246
- let FooComponent = class FooComponent {
247
- };
248
- FooComponent = __decorate([
249
- (0, core_1.Component)({})
250
- ], FooComponent);
251
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isComponent)(FooComponent)).toEqual(true);
252
- });
253
- (0, vitest_1.it)('should return false with simple class', () => {
254
- class FooPipe {
255
- }
256
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isComponent)(FooPipe)).toEqual(false);
257
- });
258
- (0, vitest_1.it)('should return false with Directive', () => {
259
- let FooDirective = class FooDirective {
260
- };
261
- FooDirective = __decorate([
262
- (0, core_1.Directive)()
263
- ], FooDirective);
264
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isComponent)(FooDirective)).toEqual(false);
265
- });
266
- });
267
- (0, vitest_1.describe)('isStandaloneComponent', () => {
268
- (0, vitest_1.it)('should return true with a Component with "standalone: true"', () => {
269
- let FooComponent = class FooComponent {
270
- };
271
- FooComponent = __decorate([
272
- (0, core_1.Component)({ standalone: true })
273
- ], FooComponent);
274
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooComponent)).toEqual(true);
275
- });
276
- (0, vitest_1.it)('should return false with a Component with "standalone: false"', () => {
277
- let FooComponent = class FooComponent {
278
- };
279
- FooComponent = __decorate([
280
- (0, core_1.Component)({ standalone: false })
281
- ], FooComponent);
282
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooComponent)).toEqual(false);
283
- });
284
- (0, vitest_1.it)('should return false with a Component without the "standalone" property', () => {
285
- let FooComponent = class FooComponent {
286
- };
287
- FooComponent = __decorate([
288
- (0, core_1.Component)({})
289
- ], FooComponent);
290
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooComponent)).toEqual(false);
291
- });
292
- (0, vitest_1.it)('should return false with simple class', () => {
293
- class FooPipe {
294
- }
295
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooPipe)).toEqual(false);
296
- });
297
- (0, vitest_1.it)('should return true with a Directive with "standalone: true"', () => {
298
- let FooDirective = class FooDirective {
299
- };
300
- FooDirective = __decorate([
301
- (0, core_1.Directive)({ standalone: true })
302
- ], FooDirective);
303
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooDirective)).toEqual(true);
304
- });
305
- (0, vitest_1.it)('should return false with a Directive with "standalone: false"', () => {
306
- let FooDirective = class FooDirective {
307
- };
308
- FooDirective = __decorate([
309
- (0, core_1.Directive)({ standalone: false })
310
- ], FooDirective);
311
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooDirective)).toEqual(false);
312
- });
313
- (0, vitest_1.it)('should return false with Directive without the "standalone" property', () => {
314
- let FooDirective = class FooDirective {
315
- };
316
- FooDirective = __decorate([
317
- (0, core_1.Directive)()
318
- ], FooDirective);
319
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooDirective)).toEqual(false);
320
- });
321
- (0, vitest_1.it)('should return true with a Pipe with "standalone: true"', () => {
322
- let FooPipe = class FooPipe {
323
- };
324
- FooPipe = __decorate([
325
- (0, core_1.Pipe)({ name: 'FooPipe', standalone: true })
326
- ], FooPipe);
327
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooPipe)).toEqual(true);
328
- });
329
- (0, vitest_1.it)('should return false with a Pipe with "standalone: false"', () => {
330
- let FooPipe = class FooPipe {
331
- };
332
- FooPipe = __decorate([
333
- (0, core_1.Pipe)({ name: 'FooPipe', standalone: false })
334
- ], FooPipe);
335
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooPipe)).toEqual(false);
336
- });
337
- (0, vitest_1.it)('should return false with Pipe without the "standalone" property', () => {
338
- let FooPipe = class FooPipe {
339
- };
340
- FooPipe = __decorate([
341
- (0, core_1.Pipe)({
342
- name: 'fooPipe',
343
- })
344
- ], FooPipe);
345
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.isStandaloneComponent)(FooPipe)).toEqual(false);
346
- });
347
- });
348
- (0, vitest_1.describe)('getComponentDecoratorMetadata', () => {
349
- (0, vitest_1.it)('should return Component with a Component', () => {
350
- let FooComponent = class FooComponent {
351
- };
352
- FooComponent = __decorate([
353
- (0, core_1.Component)({ selector: 'foo' })
354
- ], FooComponent);
355
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.getComponentDecoratorMetadata)(FooComponent)).toBeInstanceOf(core_1.Component);
356
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.getComponentDecoratorMetadata)(FooComponent)).toEqual({
357
- changeDetection: 1,
358
- selector: 'foo',
359
- });
360
- });
361
- (0, vitest_1.it)('should return Component with extending classes', () => {
362
- let BarComponent = class BarComponent {
363
- };
364
- BarComponent = __decorate([
365
- (0, core_1.Component)({ selector: 'bar' })
366
- ], BarComponent);
367
- let FooComponent = class FooComponent extends BarComponent {
368
- };
369
- FooComponent = __decorate([
370
- (0, core_1.Component)({ selector: 'foo' })
371
- ], FooComponent);
372
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.getComponentDecoratorMetadata)(FooComponent)).toBeInstanceOf(core_1.Component);
373
- (0, vitest_1.expect)((0, NgComponentAnalyzer_1.getComponentDecoratorMetadata)(FooComponent)).toEqual({
374
- changeDetection: 1,
375
- selector: 'foo',
376
- });
377
- });
378
- });
379
- function sortByPropName(array) {
380
- return array.sort((a, b) => a.propName.localeCompare(b.propName));
381
- }
382
- function resolveComponentFactory(component) {
383
- testing_1.TestBed.configureTestingModule({
384
- declarations: [component],
385
- }).overrideModule(testing_2.BrowserDynamicTestingModule, {});
386
- const componentFactoryResolver = testing_1.TestBed.inject(core_1.ComponentFactoryResolver);
387
- return componentFactoryResolver.resolveComponentFactory(component);
388
- }