@builder.io/mitosis 0.0.56-50 → 0.0.56-53

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.
@@ -4,4 +4,7 @@ var angular_1 = require("../generators/angular");
4
4
  var shared_1 = require("./shared");
5
5
  describe('Angular', function () {
6
6
  (0, shared_1.runTestsForTarget)('angular', (0, angular_1.componentToAngular)());
7
+ (0, shared_1.runTestsForTarget)('angular', (0, angular_1.componentToAngular)({
8
+ standalone: true,
9
+ }));
7
10
  });
@@ -40,6 +40,7 @@ var slots_1 = require("../helpers/slots");
40
40
  var get_custom_imports_1 = require("../helpers/get-custom-imports");
41
41
  var get_components_used_1 = require("../helpers/get-components-used");
42
42
  var is_upper_case_1 = require("../helpers/is-upper-case");
43
+ var BUILT_IN_COMPONENTS = new Set(['Show', 'For', 'Fragment']);
43
44
  var mappers = {
44
45
  Fragment: function (json, options, blockOptions) {
45
46
  return "<div>".concat(json.children
@@ -251,9 +252,7 @@ var componentToAngular = function (options) {
251
252
  var domRefs = (0, get_refs_1.getRefs)(json);
252
253
  var jsRefs = Object.keys(json.refs).filter(function (ref) { return !domRefs.has(ref); });
253
254
  var stateVars = Object.keys((json === null || json === void 0 ? void 0 : json.state) || {});
254
- var componentsUsed = Array.from((0, get_components_used_1.getComponentsUsed)(json)).filter(function (item) {
255
- return (0, is_upper_case_1.isUpperCase)(item[0]);
256
- });
255
+ var componentsUsed = Array.from((0, get_components_used_1.getComponentsUsed)(json)).filter(function (item) { return item.length && (0, is_upper_case_1.isUpperCase)(item[0]) && !BUILT_IN_COMPONENTS.has(item); });
257
256
  (0, map_refs_1.mapRefs)(json, function (refName) {
258
257
  var isDomRef = domRefs.has(refName);
259
258
  return "this.".concat(isDomRef ? '' : '_').concat(refName).concat(isDomRef ? '.nativeElement' : '');
@@ -290,7 +289,11 @@ var componentToAngular = function (options) {
290
289
  });
291
290
  },
292
291
  });
293
- var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: `\n ", "\n `,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "], ["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: \\`\n ", "\n \\`,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "])), outputs.length ? 'Output, EventEmitter, \n' : '', ((_g = options === null || options === void 0 ? void 0 : options.experimental) === null || _g === void 0 ? void 0 : _g.inject) ? 'Inject, forwardRef,' : '', domRefs.size ? ', ViewChild, ElementRef' : '', props.size ? ', Input' : '', options.standalone ? "import { CommonModule } from '@angular/common';" : '', json.types ? json.types.join('\n') : '', json.interfaces ? (_h = json.interfaces) === null || _h === void 0 ? void 0 : _h.join('\n') : '', (0, render_imports_1.renderPreComponent)({ component: json, target: 'angular' }), options.standalone
292
+ var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: `\n ", "\n `,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "], ["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: \\`\n ", "\n \\`,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "])), outputs.length ? 'Output, EventEmitter, \n' : '', ((_g = options === null || options === void 0 ? void 0 : options.experimental) === null || _g === void 0 ? void 0 : _g.inject) ? 'Inject, forwardRef,' : '', domRefs.size ? ', ViewChild, ElementRef' : '', props.size ? ', Input' : '', options.standalone ? "import { CommonModule } from '@angular/common';" : '', json.types ? json.types.join('\n') : '', json.interfaces ? (_h = json.interfaces) === null || _h === void 0 ? void 0 : _h.join('\n') : '', (0, render_imports_1.renderPreComponent)({
293
+ component: json,
294
+ target: 'angular',
295
+ excludeMitosisComponents: !options.standalone,
296
+ }), options.standalone
294
297
  ? // TODO: also add child component imports here as well
295
298
  "\n standalone: true,\n imports: [CommonModule".concat(componentsUsed.length ? ", ".concat(componentsUsed.join(', ')) : '', "],\n ")
296
299
  : '', (0, lodash_1.kebabCase)(json.name || 'my-component'), (0, indent_1.indent)(template, 8).replace(/`/g, '\\`').replace(/\$\{/g, '\\${'), css.length
@@ -5,14 +5,16 @@ export declare const renderImport: ({ theImport, target, asyncComponentImports,
5
5
  target: Target;
6
6
  asyncComponentImports: boolean;
7
7
  }) => string;
8
- export declare const renderImports: ({ imports, target, asyncComponentImports, }: {
8
+ export declare const renderImports: ({ imports, target, asyncComponentImports, excludeMitosisComponents, }: {
9
9
  imports: MitosisImport[];
10
10
  target: Target;
11
11
  asyncComponentImports: boolean;
12
+ excludeMitosisComponents?: boolean | undefined;
12
13
  }) => string;
13
- export declare const renderPreComponent: ({ component, target, asyncComponentImports, }: {
14
+ export declare const renderPreComponent: ({ component, target, excludeMitosisComponents, asyncComponentImports, }: {
14
15
  component: MitosisComponent;
15
16
  target: Target;
16
17
  asyncComponentImports?: boolean | undefined;
18
+ excludeMitosisComponents?: boolean | undefined;
17
19
  }) => string;
18
20
  export declare const renderExportAndLocal: (component: MitosisComponent) => string;
@@ -33,6 +33,8 @@ var getFileExtensionForTarget = function (target) {
33
33
  case 'vue2':
34
34
  case 'vue3':
35
35
  return '.vue';
36
+ case 'angular':
37
+ return '';
36
38
  // these `.lite` extensions are handled in the `transpile` step of the CLI.
37
39
  // TO-DO: consolidate file-extension renaming to one place.
38
40
  default:
@@ -106,7 +108,7 @@ var renderImport = function (_a) {
106
108
  };
107
109
  exports.renderImport = renderImport;
108
110
  var renderImports = function (_a) {
109
- var imports = _a.imports, target = _a.target, asyncComponentImports = _a.asyncComponentImports;
111
+ var imports = _a.imports, target = _a.target, asyncComponentImports = _a.asyncComponentImports, excludeMitosisComponents = _a.excludeMitosisComponents;
110
112
  return imports
111
113
  .filter(function (theImport) {
112
114
  if (
@@ -116,7 +118,7 @@ var renderImports = function (_a) {
116
118
  theImport.path.startsWith('@builder.io/mitosis')) {
117
119
  return false;
118
120
  }
119
- else if (target === 'angular' && theImport.path.includes('.lite')) {
121
+ else if (excludeMitosisComponents && theImport.path.includes('.lite')) {
120
122
  return false;
121
123
  }
122
124
  else {
@@ -128,11 +130,12 @@ var renderImports = function (_a) {
128
130
  };
129
131
  exports.renderImports = renderImports;
130
132
  var renderPreComponent = function (_a) {
131
- var component = _a.component, target = _a.target, _b = _a.asyncComponentImports, asyncComponentImports = _b === void 0 ? false : _b;
133
+ var component = _a.component, target = _a.target, excludeMitosisComponents = _a.excludeMitosisComponents, _b = _a.asyncComponentImports, asyncComponentImports = _b === void 0 ? false : _b;
132
134
  return "\n ".concat((0, exports.renderImports)({
133
135
  imports: component.imports,
134
136
  target: target,
135
137
  asyncComponentImports: asyncComponentImports,
138
+ excludeMitosisComponents: excludeMitosisComponents,
136
139
  }), "\n ").concat((0, exports.renderExportAndLocal)(component), "\n ").concat(component.hooks.preComponent || '', "\n ");
137
140
  };
138
141
  exports.renderPreComponent = renderPreComponent;