@builder.io/mitosis 0.2.5 → 0.2.6
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.
- package/dist/src/generators/angular/index.js +11 -14
- package/dist/src/generators/qwik/jsx.js +17 -12
- package/dist/src/generators/svelte/blocks.js +1 -1
- package/dist/src/generators/vue/blocks.js +1 -1
- package/dist/src/helpers/slots.d.ts +1 -0
- package/dist/src/helpers/slots.js +8 -1
- package/package.json +1 -1
|
@@ -189,10 +189,6 @@ var stringifyBinding = function (node, options, blockOptions) {
|
|
|
189
189
|
if (key === 'key') {
|
|
190
190
|
return;
|
|
191
191
|
}
|
|
192
|
-
if (key === 'attributes') {
|
|
193
|
-
// TODO: contains ternary operator which needs to be handled
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
192
|
var keyToUse = BINDINGS_MAPPER[key] || key;
|
|
197
193
|
var _b = binding, code = _b.code, _c = _b.arguments, cusArgs = _c === void 0 ? ['event'] : _c;
|
|
198
194
|
// TODO: proper babel transform to replace. Util for this
|
|
@@ -227,11 +223,7 @@ var handleNgOutletBindings = function (node) {
|
|
|
227
223
|
continue;
|
|
228
224
|
}
|
|
229
225
|
var _a = node.bindings[key], code = _a.code, _b = _a.arguments, cusArgs = _b === void 0 ? ['event'] : _b;
|
|
230
|
-
if (
|
|
231
|
-
// TODO handle ternary
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
else if (key.includes('props.')) {
|
|
226
|
+
if (key.includes('props.')) {
|
|
235
227
|
allProps += "".concat(key.replace('props.', ''), ": ").concat(code, ", ");
|
|
236
228
|
}
|
|
237
229
|
else if (key.includes('.')) {
|
|
@@ -256,7 +248,7 @@ var handleNgOutletBindings = function (node) {
|
|
|
256
248
|
return [allProps, events];
|
|
257
249
|
};
|
|
258
250
|
var blockToAngular = function (json, options, blockOptions) {
|
|
259
|
-
var _a, _b, _c;
|
|
251
|
+
var _a, _b, _c, _d;
|
|
260
252
|
if (options === void 0) { options = {}; }
|
|
261
253
|
if (blockOptions === void 0) { blockOptions = {
|
|
262
254
|
nativeAttributes: [],
|
|
@@ -274,8 +266,7 @@ var blockToAngular = function (json, options, blockOptions) {
|
|
|
274
266
|
var textCode = (_a = json.bindings._text) === null || _a === void 0 ? void 0 : _a.code;
|
|
275
267
|
if (textCode) {
|
|
276
268
|
if ((0, slots_1.isSlotProperty)(textCode)) {
|
|
277
|
-
|
|
278
|
-
return "<ng-content select=\"[".concat(selector, "]\"></ng-content>");
|
|
269
|
+
return "<ng-content select=\"[".concat((0, slots_1.toKebabSlot)(textCode), "]\"></ng-content>");
|
|
279
270
|
}
|
|
280
271
|
if (textCode.includes('JSON.stringify')) {
|
|
281
272
|
var obj = textCode.replace('JSON.stringify', '');
|
|
@@ -294,18 +285,24 @@ var blockToAngular = function (json, options, blockOptions) {
|
|
|
294
285
|
else if (json.name === 'Show') {
|
|
295
286
|
var condition = (_c = json.bindings.when) === null || _c === void 0 ? void 0 : _c.code;
|
|
296
287
|
if (condition === null || condition === void 0 ? void 0 : condition.includes('typeof')) {
|
|
297
|
-
var wordAfterTypeof = condition.split('typeof')[1].trim();
|
|
288
|
+
var wordAfterTypeof = condition.split('typeof')[1].trim().split(' ')[0];
|
|
298
289
|
condition = condition.replace("typeof ".concat(wordAfterTypeof), "useTypeOf(".concat(wordAfterTypeof, ")"));
|
|
299
290
|
}
|
|
300
291
|
str += "<ng-container *ngIf=\"".concat(condition, "\">");
|
|
301
292
|
str += json.children.map(function (item) { return (0, exports.blockToAngular)(item, options, blockOptions); }).join('\n');
|
|
302
293
|
str += "</ng-container>";
|
|
294
|
+
// else condition
|
|
295
|
+
if ((0, is_mitosis_node_1.isMitosisNode)((_d = json.meta) === null || _d === void 0 ? void 0 : _d.else)) {
|
|
296
|
+
str += "<ng-container *ngIf=\"!(".concat(condition, ")\">");
|
|
297
|
+
str += (0, exports.blockToAngular)(json.meta.else, options, blockOptions);
|
|
298
|
+
str += "</ng-container>";
|
|
299
|
+
}
|
|
303
300
|
}
|
|
304
301
|
else if (json.name.includes('.')) {
|
|
305
302
|
var elSelector = childComponents.find(function (impName) { return impName === json.name; })
|
|
306
303
|
? (0, lodash_1.kebabCase)(json.name)
|
|
307
304
|
: json.name;
|
|
308
|
-
var
|
|
305
|
+
var _e = handleNgOutletBindings(json), allProps = _e[0], events = _e[1];
|
|
309
306
|
str += "<ng-container ".concat(events, " *ngComponentOutlet=\"\n ").concat(elSelector.replace('state.', '').replace('props.', ''), ";\n inputs: { ").concat(allProps, " };\n content: myContent;\n \"> ");
|
|
310
307
|
str += "</ng-container>";
|
|
311
308
|
}
|
|
@@ -90,19 +90,24 @@ function renderJSXNodes(file, directives, handlers, children, styles, key, paren
|
|
|
90
90
|
includedHelperDirectives(directive.toString(), directives);
|
|
91
91
|
}
|
|
92
92
|
else {
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
includedHelperDirectives(directive, directives);
|
|
96
|
-
if (file.module !== 'med' && file.imports.hasImport(childName)) {
|
|
97
|
-
file.import('./med.js', childName);
|
|
98
|
-
}
|
|
93
|
+
if (childName === 'Slot') {
|
|
94
|
+
_this.file.import(_this.file.qwikModule, 'Slot');
|
|
99
95
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
96
|
+
else {
|
|
97
|
+
if (typeof directive == 'string') {
|
|
98
|
+
directives.set(childName, directive);
|
|
99
|
+
includedHelperDirectives(directive, directives);
|
|
100
|
+
if (file.module !== 'med' && file.imports.hasImport(childName)) {
|
|
101
|
+
file.import('./med.js', childName);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (isSymbol(childName)) {
|
|
105
|
+
// TODO(misko): We are hard coding './med.js' which is not right.
|
|
106
|
+
!file.imports.hasImport(childName) && file.import('./med.js', childName);
|
|
107
|
+
var exportedChildName = file.exports.get(childName);
|
|
108
|
+
if (exportedChildName) {
|
|
109
|
+
childName = exportedChildName;
|
|
110
|
+
}
|
|
106
111
|
}
|
|
107
112
|
}
|
|
108
113
|
var props = child.properties;
|
|
@@ -114,7 +114,7 @@ var mappers = {
|
|
|
114
114
|
}
|
|
115
115
|
return "\n <span #".concat(key, ">\n ").concat((_d = json.bindings[key]) === null || _d === void 0 ? void 0 : _d.code, "\n </span>\n ");
|
|
116
116
|
}
|
|
117
|
-
return "<slot name=\"".concat((0, slots_1.
|
|
117
|
+
return "<slot name=\"".concat((0, slots_1.toKebabSlot)(slotName, SLOT_PREFIX), "\">").concat(renderChildren(), "</slot>");
|
|
118
118
|
},
|
|
119
119
|
};
|
|
120
120
|
var BINDINGS_MAPPER = {
|
|
@@ -72,7 +72,7 @@ var NODE_MAPPERS = {
|
|
|
72
72
|
if (slotName === 'default') {
|
|
73
73
|
return "<slot>".concat(renderChildren(), "</slot>");
|
|
74
74
|
}
|
|
75
|
-
return "<slot name=\"".concat((0, slots_1.
|
|
75
|
+
return "<slot name=\"".concat((0, slots_1.toKebabSlot)(slotName, SLOT_PREFIX), "\">").concat(renderChildren(), "</slot>");
|
|
76
76
|
},
|
|
77
77
|
};
|
|
78
78
|
var SPECIAL_HTML_TAGS = ['style', 'script'];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type SlotMapper = (slotName: string) => string;
|
|
2
2
|
export declare const isSlotProperty: (key: string, slotPrefix?: string) => boolean;
|
|
3
3
|
export declare const stripSlotPrefix: (key: string, slotPrefix?: string) => string;
|
|
4
|
+
export declare const toKebabSlot: (key: string, slotPrefix?: string) => string;
|
|
4
5
|
export declare function replaceSlotsInString(code: string, mapper: SlotMapper): string;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.replaceSlotsInString = exports.stripSlotPrefix = exports.isSlotProperty = void 0;
|
|
3
|
+
exports.replaceSlotsInString = exports.toKebabSlot = exports.stripSlotPrefix = exports.isSlotProperty = void 0;
|
|
4
4
|
var core_1 = require("@babel/core");
|
|
5
|
+
var function_1 = require("fp-ts/function");
|
|
6
|
+
var lodash_1 = require("lodash");
|
|
5
7
|
var babel_transform_1 = require("./babel-transform");
|
|
6
8
|
var SLOT_PREFIX = 'slot';
|
|
7
9
|
var isSlotProperty = function (key, slotPrefix) {
|
|
@@ -14,6 +16,11 @@ var stripSlotPrefix = function (key, slotPrefix) {
|
|
|
14
16
|
return (0, exports.isSlotProperty)(key, slotPrefix) ? key.substring(slotPrefix.length) : key;
|
|
15
17
|
};
|
|
16
18
|
exports.stripSlotPrefix = stripSlotPrefix;
|
|
19
|
+
var toKebabSlot = function (key, slotPrefix) {
|
|
20
|
+
if (slotPrefix === void 0) { slotPrefix = SLOT_PREFIX; }
|
|
21
|
+
return (0, function_1.pipe)((0, exports.stripSlotPrefix)(key, slotPrefix), lodash_1.kebabCase);
|
|
22
|
+
};
|
|
23
|
+
exports.toKebabSlot = toKebabSlot;
|
|
17
24
|
function replaceSlotsInString(code, mapper) {
|
|
18
25
|
return (0, babel_transform_1.babelTransformExpression)(code, {
|
|
19
26
|
Identifier: function (path) {
|