@builder.io/mitosis 0.5.24 → 0.5.26
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/alpine/generate.js +4 -3
- package/dist/src/generators/angular/index.js +35 -25
- package/dist/src/generators/angular/types.d.ts +12 -0
- package/dist/src/generators/helpers/rsc.js +2 -1
- package/dist/src/generators/html/generator.js +8 -7
- package/dist/src/generators/liquid/generator.js +2 -1
- package/dist/src/generators/lit/generate.js +2 -1
- package/dist/src/generators/marko/generate.js +2 -1
- package/dist/src/generators/mitosis/generator.js +6 -5
- package/dist/src/generators/qwik/helpers/add-prevent-default.js +3 -2
- package/dist/src/generators/qwik/helpers/handlers.js +2 -1
- package/dist/src/generators/qwik/src-generator.js +2 -1
- package/dist/src/generators/react/blocks.js +2 -1
- package/dist/src/generators/solid/blocks.js +2 -1
- package/dist/src/generators/stencil/helpers/index.js +2 -1
- package/dist/src/generators/svelte/blocks.js +3 -2
- package/dist/src/generators/swift/generator.js +2 -1
- package/dist/src/generators/template/generator.js +2 -1
- package/dist/src/generators/vue/blocks.js +3 -2
- package/dist/src/helpers/event-handlers.d.ts +2 -1
- package/dist/src/helpers/event-handlers.js +110 -3
- package/dist/src/parsers/jsx/helpers.d.ts +6 -0
- package/dist/src/parsers/jsx/helpers.js +28 -4
- package/dist/src/parsers/jsx/hooks/index.d.ts +4 -3
- package/dist/src/parsers/jsx/hooks/index.js +37 -26
- package/dist/src/parsers/jsx/hooks/use-metadata.d.ts +9 -0
- package/dist/src/parsers/jsx/hooks/use-metadata.js +184 -0
- package/dist/src/parsers/jsx/imports.d.ts +0 -2
- package/dist/src/parsers/jsx/imports.js +8 -26
- package/dist/src/parsers/jsx/jsx.js +87 -106
- package/dist/src/parsers/jsx/types.d.ts +7 -1
- package/package.json +1 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.componentToAlpine = exports.isValidAlpineBinding = exports.checkIsComponentNode = void 0;
|
|
4
|
+
const html_tags_1 = require("../../constants/html_tags");
|
|
4
5
|
const babel_transform_1 = require("../../helpers/babel-transform");
|
|
5
6
|
const dash_case_1 = require("../../helpers/dash-case");
|
|
7
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
6
8
|
const fast_clone_1 = require("../../helpers/fast-clone");
|
|
7
9
|
const get_refs_1 = require("../../helpers/get-refs");
|
|
8
10
|
const get_state_object_string_1 = require("../../helpers/get-state-object-string");
|
|
@@ -12,11 +14,10 @@ const replace_identifiers_1 = require("../../helpers/replace-identifiers");
|
|
|
12
14
|
const strip_meta_properties_1 = require("../../helpers/strip-meta-properties");
|
|
13
15
|
const strip_state_and_props_refs_1 = require("../../helpers/strip-state-and-props-refs");
|
|
14
16
|
const collect_css_1 = require("../../helpers/styles/collect-css");
|
|
17
|
+
const plugins_1 = require("../../modules/plugins");
|
|
15
18
|
const mitosis_node_1 = require("../../types/mitosis-node");
|
|
16
19
|
const lodash_1 = require("lodash");
|
|
17
20
|
const standalone_1 = require("prettier/standalone");
|
|
18
|
-
const html_tags_1 = require("../../constants/html_tags");
|
|
19
|
-
const plugins_1 = require("../../modules/plugins");
|
|
20
21
|
const render_mount_hook_1 = require("./render-mount-hook");
|
|
21
22
|
const render_update_hooks_1 = require("./render-update-hooks");
|
|
22
23
|
const checkIsComponentNode = (node) => node.name === '@builder.io/mitosis/component';
|
|
@@ -128,7 +129,7 @@ const blockToAlpine = (json, options = {}) => {
|
|
|
128
129
|
const { code: value, type: bindingType } = json.bindings[key];
|
|
129
130
|
// TODO: proper babel transform to replace. Util for this
|
|
130
131
|
const useValue = (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(value);
|
|
131
|
-
if (
|
|
132
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
132
133
|
str += bindEventHandler(options)(key, value);
|
|
133
134
|
}
|
|
134
135
|
else if (key === 'ref') {
|
|
@@ -67,6 +67,7 @@ const is_children_1 = __importDefault(require("../../helpers/is-children"));
|
|
|
67
67
|
const on_mount_1 = require("../helpers/on-mount");
|
|
68
68
|
const helpers_2 = require("./helpers");
|
|
69
69
|
const types_1 = require("./types");
|
|
70
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
70
71
|
const parse_selector_1 = require("./parse-selector");
|
|
71
72
|
const { types } = babel;
|
|
72
73
|
const mappers = {
|
|
@@ -187,7 +188,7 @@ const processEventBinding = (key, code, nodeName, customArg) => {
|
|
|
187
188
|
};
|
|
188
189
|
};
|
|
189
190
|
const stringifyBinding = (node, options, blockOptions) => ([key, binding]) => {
|
|
190
|
-
var _a;
|
|
191
|
+
var _a, _b;
|
|
191
192
|
if (key.startsWith('$') || key.startsWith('"') || key === 'key') {
|
|
192
193
|
return;
|
|
193
194
|
}
|
|
@@ -197,10 +198,15 @@ const stringifyBinding = (node, options, blockOptions) => ([key, binding]) => {
|
|
|
197
198
|
const keyToUse = BINDINGS_MAPPER[key] || key;
|
|
198
199
|
const { code, arguments: cusArgs = ['event'] } = binding;
|
|
199
200
|
// TODO: proper babel transform to replace. Util for this
|
|
200
|
-
if (
|
|
201
|
+
if ((0, event_handlers_1.checkIsEvent)(keyToUse)) {
|
|
201
202
|
const { event, value } = processEventBinding(keyToUse, code, node.name, cusArgs[0]);
|
|
202
|
-
//
|
|
203
|
-
|
|
203
|
+
// native events are all lowerCased
|
|
204
|
+
const lowerCaseEvent = event.toLowerCase();
|
|
205
|
+
const eventKey = (0, event_handlers_1.checkIsBindingNativeEvent)(event) ||
|
|
206
|
+
((_a = blockOptions.nativeEvents) === null || _a === void 0 ? void 0 : _a.find((nativeEvent) => nativeEvent === keyToUse || nativeEvent === event || nativeEvent === lowerCaseEvent))
|
|
207
|
+
? lowerCaseEvent
|
|
208
|
+
: event;
|
|
209
|
+
return ` (${eventKey})="${value}"`;
|
|
204
210
|
}
|
|
205
211
|
else if (keyToUse === 'class') {
|
|
206
212
|
return ` [class]="${code}" `;
|
|
@@ -209,7 +215,7 @@ const stringifyBinding = (node, options, blockOptions) => ([key, binding]) => {
|
|
|
209
215
|
return ` #${code} `;
|
|
210
216
|
}
|
|
211
217
|
else if ((html_tags_1.VALID_HTML_TAGS.includes(node.name.trim()) || keyToUse.includes('-')) &&
|
|
212
|
-
!((
|
|
218
|
+
!((_b = blockOptions.nativeAttributes) === null || _b === void 0 ? void 0 : _b.includes(keyToUse)) &&
|
|
213
219
|
!Object.values(BINDINGS_MAPPER).includes(keyToUse)) {
|
|
214
220
|
// standard html elements need the attr to satisfy the compiler in many cases: eg: svg elements and [fill]
|
|
215
221
|
return ` [attr.${keyToUse}]="${code}" `;
|
|
@@ -249,7 +255,7 @@ const handleNgOutletBindings = (node, options) => {
|
|
|
249
255
|
}
|
|
250
256
|
let keyToUse = key.includes('-') ? `'${key}'` : key;
|
|
251
257
|
keyToUse = keyToUse.replace('state.', '').replace('props.', '');
|
|
252
|
-
if (
|
|
258
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
253
259
|
const { event, value } = processEventBinding(key, code, node.name, cusArgs[0]);
|
|
254
260
|
allProps += `on${event.charAt(0).toUpperCase() + event.slice(1)}: ${value.replace(/\(.*?\)/g, '')}.bind(this), `;
|
|
255
261
|
}
|
|
@@ -268,6 +274,7 @@ const handleNgOutletBindings = (node, options) => {
|
|
|
268
274
|
};
|
|
269
275
|
const blockToAngular = ({ root, json, options = {}, blockOptions = {
|
|
270
276
|
nativeAttributes: [],
|
|
277
|
+
nativeEvents: [],
|
|
271
278
|
}, }) => {
|
|
272
279
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
273
280
|
const childComponents = (blockOptions === null || blockOptions === void 0 ? void 0 : blockOptions.childComponents) || [];
|
|
@@ -542,7 +549,7 @@ const handleBindings = (json, item, index, forName, indexName) => {
|
|
|
542
549
|
continue;
|
|
543
550
|
if (key === 'key')
|
|
544
551
|
continue;
|
|
545
|
-
if (
|
|
552
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
546
553
|
const { arguments: cusArgs = ['event'] } = item.bindings[key];
|
|
547
554
|
const eventBindingName = `${generateNewBindingName(index, item.name)}_event`;
|
|
548
555
|
if (((_a = item.bindings[key]) === null || _a === void 0 ? void 0 : _a.code.trim().startsWith('{')) &&
|
|
@@ -570,12 +577,12 @@ const handleBindings = (json, item, index, forName, indexName) => {
|
|
|
570
577
|
}
|
|
571
578
|
}
|
|
572
579
|
else if ((_c = item.bindings[key]) === null || _c === void 0 ? void 0 : _c.code) {
|
|
573
|
-
if (((_d = item.bindings[key]) === null || _d === void 0 ? void 0 : _d.type) !== 'spread' && !
|
|
580
|
+
if (((_d = item.bindings[key]) === null || _d === void 0 ? void 0 : _d.type) !== 'spread' && !(0, event_handlers_1.checkIsEvent)(key)) {
|
|
574
581
|
json.state[newBindingName] = { code: 'null', type: 'property' };
|
|
575
582
|
(0, helpers_2.makeReactiveState)(json, newBindingName, `this.${newBindingName} = ${item.bindings[key].code}`);
|
|
576
583
|
item.bindings[key].code = `state.${newBindingName}`;
|
|
577
584
|
}
|
|
578
|
-
else if (
|
|
585
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
579
586
|
const { arguments: cusArgs = ['event'] } = item.bindings[key];
|
|
580
587
|
if (((_e = item.bindings[key]) === null || _e === void 0 ? void 0 : _e.code.trim().startsWith('{')) &&
|
|
581
588
|
((_f = item.bindings[key]) === null || _f === void 0 ? void 0 : _f.code.trim().endsWith('}'))) {
|
|
@@ -646,7 +653,7 @@ const classPropertiesPlugin = () => ({
|
|
|
646
653
|
},
|
|
647
654
|
});
|
|
648
655
|
const componentToAngular = (userOptions = {}) => ({ component: _component }) => {
|
|
649
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
656
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
650
657
|
// Make a copy we can safely mutate, similar to babel's toolchain
|
|
651
658
|
let json = (0, fast_clone_1.fastClone)(_component);
|
|
652
659
|
const useMetadata = (_a = json.meta) === null || _a === void 0 ? void 0 : _a.useMetadata;
|
|
@@ -770,7 +777,7 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
770
777
|
const helperFunctions = new Set();
|
|
771
778
|
let template = json.children
|
|
772
779
|
.map((item) => {
|
|
773
|
-
var _a, _b;
|
|
780
|
+
var _a, _b, _c, _d;
|
|
774
781
|
const tmpl = (0, exports.blockToAngular)({
|
|
775
782
|
root: json,
|
|
776
783
|
json: item,
|
|
@@ -778,6 +785,7 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
778
785
|
blockOptions: {
|
|
779
786
|
childComponents,
|
|
780
787
|
nativeAttributes: (_b = (_a = useMetadata === null || useMetadata === void 0 ? void 0 : useMetadata.angular) === null || _a === void 0 ? void 0 : _a.nativeAttributes) !== null && _b !== void 0 ? _b : [],
|
|
788
|
+
nativeEvents: (_d = (_c = useMetadata === null || useMetadata === void 0 ? void 0 : useMetadata.angular) === null || _c === void 0 ? void 0 : _c.nativeEvents) !== null && _d !== void 0 ? _d : [],
|
|
781
789
|
},
|
|
782
790
|
});
|
|
783
791
|
if (options.state === 'inline-with-wrappers') {
|
|
@@ -793,6 +801,7 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
793
801
|
const { components: dynamicComponents, dynamicTemplate } = traverseToGetAllDynamicComponents(json, options, {
|
|
794
802
|
childComponents,
|
|
795
803
|
nativeAttributes: (_d = (_c = useMetadata === null || useMetadata === void 0 ? void 0 : useMetadata.angular) === null || _c === void 0 ? void 0 : _c.nativeAttributes) !== null && _d !== void 0 ? _d : [],
|
|
804
|
+
nativeEvents: (_f = (_e = useMetadata === null || useMetadata === void 0 ? void 0 : useMetadata.angular) === null || _e === void 0 ? void 0 : _e.nativeEvents) !== null && _f !== void 0 ? _f : [],
|
|
796
805
|
});
|
|
797
806
|
(0, helpers_2.transformState)(json);
|
|
798
807
|
const dataString = (0, get_state_object_string_1.getStateObjectStringFromComponent)(json, {
|
|
@@ -816,8 +825,8 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
816
825
|
const styles = css.length ? [hostDisplayCss, css].join('\n') : hostDisplayCss;
|
|
817
826
|
// Preparing built in component metadata parameters
|
|
818
827
|
const componentMetadata = {
|
|
819
|
-
selector: ((
|
|
820
|
-
? `'${(
|
|
828
|
+
selector: ((_g = useMetadata === null || useMetadata === void 0 ? void 0 : useMetadata.angular) === null || _g === void 0 ? void 0 : _g.selector)
|
|
829
|
+
? `'${(_h = useMetadata === null || useMetadata === void 0 ? void 0 : useMetadata.angular) === null || _h === void 0 ? void 0 : _h.selector}'`
|
|
821
830
|
: `'${(0, lodash_1.kebabCase)(json.name || 'my-component')}'`,
|
|
822
831
|
template: `\`
|
|
823
832
|
${(0, indent_1.indent)(dynamicTemplate, 8).replace(/`/g, '\\`').replace(/\$\{/g, '\\${')}
|
|
@@ -843,7 +852,7 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
843
852
|
const hasConstructor = Boolean(injectables.length) || dynamicComponents.size || refsForObjSpread.size;
|
|
844
853
|
const angularCoreImports = [
|
|
845
854
|
...(outputs.length ? ['Output', 'EventEmitter'] : []),
|
|
846
|
-
...(((
|
|
855
|
+
...(((_j = options === null || options === void 0 ? void 0 : options.experimental) === null || _j === void 0 ? void 0 : _j.inject) ? ['Inject', 'forwardRef'] : []),
|
|
847
856
|
'Component',
|
|
848
857
|
...(domRefs.size || dynamicComponents.size || refsForObjSpread.size
|
|
849
858
|
? ['ViewChild', 'ElementRef']
|
|
@@ -851,7 +860,7 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
851
860
|
...(refsForObjSpread.size ? ['Renderer2'] : []),
|
|
852
861
|
...(props.size ? ['Input'] : []),
|
|
853
862
|
...(dynamicComponents.size ? ['ViewContainerRef', 'TemplateRef'] : []),
|
|
854
|
-
...(((
|
|
863
|
+
...(((_k = json.hooks.onUpdate) === null || _k === void 0 ? void 0 : _k.length) && options.typescript ? ['SimpleChanges'] : []),
|
|
855
864
|
].join(', ');
|
|
856
865
|
let str = (0, dedent_1.dedent) `
|
|
857
866
|
import { ${angularCoreImports} } from '@angular/core';
|
|
@@ -881,9 +890,10 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
881
890
|
${Array.from(props)
|
|
882
891
|
.filter((item) => !(0, slots_1.isSlotProperty)(item) && item !== 'children')
|
|
883
892
|
.map((item) => {
|
|
893
|
+
const hasDefaultProp = json.defaultProps && json.defaultProps.hasOwnProperty(item);
|
|
884
894
|
const propType = propsTypeRef ? `${propsTypeRef}["${item}"]` : 'any';
|
|
885
|
-
let propDeclaration = `@Input() ${item}${options.typescript ?
|
|
886
|
-
if (
|
|
895
|
+
let propDeclaration = `@Input() ${item}${options.typescript ? `${hasDefaultProp ? '' : '!'}: ${propType}` : ''}`;
|
|
896
|
+
if (hasDefaultProp) {
|
|
887
897
|
propDeclaration += ` = defaultProps["${item}"]`;
|
|
888
898
|
}
|
|
889
899
|
return propDeclaration;
|
|
@@ -940,13 +950,13 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
940
950
|
? `\nprivate renderer${options.typescript ? ': Renderer2' : ''},\n`
|
|
941
951
|
: ''}) {}
|
|
942
952
|
`}
|
|
943
|
-
${!json.hooks.onMount.length && !dynamicComponents.size && !((
|
|
953
|
+
${!json.hooks.onMount.length && !dynamicComponents.size && !((_l = json.hooks.onInit) === null || _l === void 0 ? void 0 : _l.code)
|
|
944
954
|
? ''
|
|
945
955
|
: `ngOnInit() {
|
|
946
|
-
${!((
|
|
956
|
+
${!((_m = json.hooks) === null || _m === void 0 ? void 0 : _m.onInit)
|
|
947
957
|
? ''
|
|
948
958
|
: `
|
|
949
|
-
${(
|
|
959
|
+
${(_o = json.hooks.onInit) === null || _o === void 0 ? void 0 : _o.code}
|
|
950
960
|
`}
|
|
951
961
|
${json.hooks.onMount.length > 0
|
|
952
962
|
? `
|
|
@@ -968,19 +978,19 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
968
978
|
|
|
969
979
|
${
|
|
970
980
|
// hooks specific to Angular
|
|
971
|
-
((
|
|
972
|
-
? Object.entries((
|
|
981
|
+
((_q = (_p = json.compileContext) === null || _p === void 0 ? void 0 : _p.angular) === null || _q === void 0 ? void 0 : _q.hooks)
|
|
982
|
+
? Object.entries((_s = (_r = json.compileContext) === null || _r === void 0 ? void 0 : _r.angular) === null || _s === void 0 ? void 0 : _s.hooks).map(([key, value]) => {
|
|
973
983
|
return `${key}() {
|
|
974
984
|
${value.code}
|
|
975
985
|
}`;
|
|
976
986
|
})
|
|
977
987
|
: ''}
|
|
978
988
|
|
|
979
|
-
${!((
|
|
989
|
+
${!((_t = json.hooks.onUpdate) === null || _t === void 0 ? void 0 : _t.length)
|
|
980
990
|
? ''
|
|
981
991
|
: `ngOnChanges(changes${options.typescript ? ': SimpleChanges' : ''}) {
|
|
982
992
|
if (typeof window !== 'undefined') {
|
|
983
|
-
${(
|
|
993
|
+
${(_u = json.hooks.onUpdate) === null || _u === void 0 ? void 0 : _u.reduce((code, hook) => {
|
|
984
994
|
code += hook.code;
|
|
985
995
|
return code + '\n';
|
|
986
996
|
}, '')}
|
|
@@ -991,7 +1001,7 @@ const componentToAngular = (userOptions = {}) => ({ component: _component }) =>
|
|
|
991
1001
|
${!json.hooks.onUnMount && !refsForObjSpread.size
|
|
992
1002
|
? ''
|
|
993
1003
|
: `ngOnDestroy() {
|
|
994
|
-
${((
|
|
1004
|
+
${((_v = json.hooks.onUnMount) === null || _v === void 0 ? void 0 : _v.code) || ''}
|
|
995
1005
|
${refsForObjSpread.size
|
|
996
1006
|
? `for (const fn of this._listenerFns.values()) { fn(); }`
|
|
997
1007
|
: ''}
|
|
@@ -17,7 +17,19 @@ export interface ToAngularOptions extends BaseTranspilerOptions {
|
|
|
17
17
|
}
|
|
18
18
|
export declare const DEFAULT_ANGULAR_OPTIONS: ToAngularOptions;
|
|
19
19
|
export type AngularMetadata = {
|
|
20
|
+
/**
|
|
21
|
+
* Mitosis uses `attr.XXX` as default see https://angular.io/guide/attribute-binding.
|
|
22
|
+
* If you want to skip some you can use the 'nativeAttributes'.
|
|
23
|
+
*/
|
|
20
24
|
nativeAttributes?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* If you encounter some native events which aren't generated in lower-case.
|
|
27
|
+
* Create a new PR inside [event-handlers.ts](https://github.com/BuilderIO/mitosis/blob/main/packages/core/src/helpers/event-handlers.ts) to fix it for all.
|
|
28
|
+
*/
|
|
29
|
+
nativeEvents?: string[];
|
|
30
|
+
/**
|
|
31
|
+
* Overwrite default selector for component. Default will be kebab case (MyComponent -> my-component)
|
|
32
|
+
*/
|
|
21
33
|
selector?: string;
|
|
22
34
|
};
|
|
23
35
|
export type AngularBlockOptions = {
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.checkIfIsClientComponent = void 0;
|
|
7
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
7
8
|
const is_mitosis_node_1 = require("../../helpers/is-mitosis-node");
|
|
8
9
|
const legacy_1 = __importDefault(require("neotraverse/legacy"));
|
|
9
10
|
const checkIsNodeAMitosisComponent = (node) => node.name[0] === node.name[0].toUpperCase();
|
|
@@ -26,7 +27,7 @@ const checkIfIsClientComponent = (json) => {
|
|
|
26
27
|
let foundEventListener = false;
|
|
27
28
|
(0, legacy_1.default)(json).forEach(function (node) {
|
|
28
29
|
if ((0, is_mitosis_node_1.isMitosisNode)(node) && !checkIsNodeAMitosisComponent(node)) {
|
|
29
|
-
if (Object.keys(node.bindings).filter((item) =>
|
|
30
|
+
if (Object.keys(node.bindings).filter((item) => (0, event_handlers_1.checkIsEvent)(item)).length) {
|
|
30
31
|
foundEventListener = true;
|
|
31
32
|
this.stop();
|
|
32
33
|
}
|
|
@@ -4,14 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.componentToCustomElement = exports.componentToHtml = void 0;
|
|
7
|
-
const core_1 = require("@babel/core");
|
|
8
|
-
const function_1 = require("fp-ts/lib/function");
|
|
9
|
-
const lodash_1 = require("lodash");
|
|
10
|
-
const legacy_1 = __importDefault(require("neotraverse/legacy"));
|
|
11
|
-
const standalone_1 = require("prettier/standalone");
|
|
12
7
|
const html_tags_1 = require("../../constants/html_tags");
|
|
13
8
|
const babel_transform_1 = require("../../helpers/babel-transform");
|
|
14
9
|
const dash_case_1 = require("../../helpers/dash-case");
|
|
10
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
15
11
|
const fast_clone_1 = require("../../helpers/fast-clone");
|
|
16
12
|
const get_prop_functions_1 = require("../../helpers/get-prop-functions");
|
|
17
13
|
const get_props_1 = require("../../helpers/get-props");
|
|
@@ -22,7 +18,6 @@ const has_bindings_text_1 = require("../../helpers/has-bindings-text");
|
|
|
22
18
|
const has_component_1 = require("../../helpers/has-component");
|
|
23
19
|
const has_props_1 = require("../../helpers/has-props");
|
|
24
20
|
const has_stateful_dom_1 = require("../../helpers/has-stateful-dom");
|
|
25
|
-
const is_children_1 = __importDefault(require("../../helpers/is-children"));
|
|
26
21
|
const is_html_attribute_1 = require("../../helpers/is-html-attribute");
|
|
27
22
|
const is_mitosis_node_1 = require("../../helpers/is-mitosis-node");
|
|
28
23
|
const map_refs_1 = require("../../helpers/map-refs");
|
|
@@ -35,6 +30,12 @@ const strip_state_and_props_refs_1 = require("../../helpers/strip-state-and-prop
|
|
|
35
30
|
const collect_css_1 = require("../../helpers/styles/collect-css");
|
|
36
31
|
const plugins_1 = require("../../modules/plugins");
|
|
37
32
|
const mitosis_node_1 = require("../../types/mitosis-node");
|
|
33
|
+
const core_1 = require("@babel/core");
|
|
34
|
+
const function_1 = require("fp-ts/lib/function");
|
|
35
|
+
const lodash_1 = require("lodash");
|
|
36
|
+
const legacy_1 = __importDefault(require("neotraverse/legacy"));
|
|
37
|
+
const is_children_1 = __importDefault(require("../../helpers/is-children"));
|
|
38
|
+
const standalone_1 = require("prettier/standalone");
|
|
38
39
|
const on_mount_1 = require("../helpers/on-mount");
|
|
39
40
|
const isAttribute = (key) => {
|
|
40
41
|
return /-/.test(key);
|
|
@@ -295,7 +296,7 @@ const blockToHtml = (json, options, blockOptions = {}) => {
|
|
|
295
296
|
const cusArg = ((_g = json.bindings[key]) === null || _g === void 0 ? void 0 : _g.arguments) || ['event'];
|
|
296
297
|
// TODO: proper babel transform to replace. Util for this
|
|
297
298
|
const useValue = value;
|
|
298
|
-
if (
|
|
299
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
299
300
|
let event = key.replace('on', '').toLowerCase();
|
|
300
301
|
const fnName = (0, lodash_1.camelCase)(`on-${elId}-${event}`);
|
|
301
302
|
const codeContent = (0, remove_surrounding_block_1.removeSurroundingBlock)(updateReferencesInCode(useValue, options, blockOptions));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.componentToLiquid = exports.isValidLiquidBinding = void 0;
|
|
4
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
4
5
|
const standalone_1 = require("prettier/standalone");
|
|
5
6
|
const html_tags_1 = require("../../constants/html_tags");
|
|
6
7
|
const fast_clone_1 = require("../../helpers/fast-clone");
|
|
@@ -89,7 +90,7 @@ const blockToLiquid = (json, options = {}) => {
|
|
|
89
90
|
const { code: value } = json.bindings[key];
|
|
90
91
|
// TODO: proper babel transform to replace. Util for this
|
|
91
92
|
const useValue = (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(value);
|
|
92
|
-
if (
|
|
93
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
93
94
|
// Do nothing
|
|
94
95
|
}
|
|
95
96
|
else if ((0, exports.isValidLiquidBinding)(useValue)) {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.componentToLit = void 0;
|
|
4
4
|
const dash_case_1 = require("../../helpers/dash-case");
|
|
5
5
|
const dedent_1 = require("../../helpers/dedent");
|
|
6
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
6
7
|
const fast_clone_1 = require("../../helpers/fast-clone");
|
|
7
8
|
const filter_empty_text_nodes_1 = require("../../helpers/filter-empty-text-nodes");
|
|
8
9
|
const get_props_1 = require("../../helpers/get-props");
|
|
@@ -80,7 +81,7 @@ const blockToLit = (json, options = {}) => {
|
|
|
80
81
|
// https://lit.dev/docs/templates/directives/#ref
|
|
81
82
|
str += ` ref="${code}" `;
|
|
82
83
|
}
|
|
83
|
-
else if (
|
|
84
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
84
85
|
const asyncKeyword = ((_g = json.bindings[key]) === null || _g === void 0 ? void 0 : _g.async) ? 'async ' : '';
|
|
85
86
|
const useKey = '@' + key.substring(2).toLowerCase();
|
|
86
87
|
str += ` ${useKey}=\${${asyncKeyword}(${cusArgs.join(',')}) => ${processBinding(code)}} `;
|
|
@@ -7,6 +7,7 @@ exports.markoFormatHtml = exports.postprocessHtml = exports.preprocessHtml = exp
|
|
|
7
7
|
const html_tags_1 = require("../../constants/html_tags");
|
|
8
8
|
const dash_case_1 = require("../../helpers/dash-case");
|
|
9
9
|
const dedent_1 = require("../../helpers/dedent");
|
|
10
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
10
11
|
const fast_clone_1 = require("../../helpers/fast-clone");
|
|
11
12
|
const filter_empty_text_nodes_1 = require("../../helpers/filter-empty-text-nodes");
|
|
12
13
|
const get_refs_1 = require("../../helpers/get-refs");
|
|
@@ -76,7 +77,7 @@ const blockToMarko = (json, options) => {
|
|
|
76
77
|
else if (key === 'ref') {
|
|
77
78
|
str += ` key="${(0, lodash_1.camelCase)(code)}" `;
|
|
78
79
|
}
|
|
79
|
-
else if (
|
|
80
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
80
81
|
const asyncKeyword = async ? 'async ' : '';
|
|
81
82
|
const useKey = key === 'onChange' && json.name === 'input' ? 'onInput' : key;
|
|
82
83
|
str += ` ${(0, dash_case_1.dashCase)(useKey)}=(${asyncKeyword}(${cusArgs.join(',')}) => ${processBinding(options.component, code)}) `;
|
|
@@ -4,22 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.componentToMitosis = exports.blockToMitosis = exports.DEFAULT_FORMAT = void 0;
|
|
7
|
-
const is_mitosis_node_1 = require("../../helpers/is-mitosis-node");
|
|
8
|
-
const plugins_1 = require("../../modules/plugins");
|
|
9
|
-
const json5_1 = __importDefault(require("json5"));
|
|
10
|
-
const standalone_1 = require("prettier/standalone");
|
|
11
7
|
const hooks_1 = require("../../constants/hooks");
|
|
12
8
|
const html_tags_1 = require("../../constants/html_tags");
|
|
13
9
|
const dedent_1 = require("../../helpers/dedent");
|
|
10
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
14
11
|
const fast_clone_1 = require("../../helpers/fast-clone");
|
|
15
12
|
const get_components_1 = require("../../helpers/get-components");
|
|
16
13
|
const get_refs_1 = require("../../helpers/get-refs");
|
|
17
14
|
const get_state_object_string_1 = require("../../helpers/get-state-object-string");
|
|
15
|
+
const is_mitosis_node_1 = require("../../helpers/is-mitosis-node");
|
|
18
16
|
const is_root_text_node_1 = require("../../helpers/is-root-text-node");
|
|
19
17
|
const map_refs_1 = require("../../helpers/map-refs");
|
|
20
18
|
const render_imports_1 = require("../../helpers/render-imports");
|
|
21
19
|
const state_1 = require("../../helpers/state");
|
|
20
|
+
const plugins_1 = require("../../modules/plugins");
|
|
22
21
|
const mitosis_node_1 = require("../../types/mitosis-node");
|
|
22
|
+
const json5_1 = __importDefault(require("json5"));
|
|
23
|
+
const standalone_1 = require("prettier/standalone");
|
|
23
24
|
const react_1 = require("../react");
|
|
24
25
|
exports.DEFAULT_FORMAT = 'legacy';
|
|
25
26
|
// Special isValidAttributeName for Mitosis so we can allow for $ in names
|
|
@@ -120,7 +121,7 @@ const blockToMitosis = (json, toMitosisOptions = {}, component, insideJsx) => {
|
|
|
120
121
|
if (((_g = json.bindings[key]) === null || _g === void 0 ? void 0 : _g.type) === 'spread') {
|
|
121
122
|
str += ` {...(${(_h = json.bindings[key]) === null || _h === void 0 ? void 0 : _h.code})} `;
|
|
122
123
|
}
|
|
123
|
-
else if (
|
|
124
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
124
125
|
const { arguments: cusArgs = ['event'], async } = json.bindings[key];
|
|
125
126
|
const asyncKeyword = async ? 'async ' : '';
|
|
126
127
|
str += ` ${key}={${asyncKeyword}(${cusArgs.join(',')}) => ${value.replace(/\s*;$/, '')}} `;
|
|
@@ -4,8 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.addPreventDefault = void 0;
|
|
7
|
-
const
|
|
7
|
+
const event_handlers_1 = require("../../../helpers/event-handlers");
|
|
8
8
|
const is_mitosis_node_1 = require("../../../helpers/is-mitosis-node");
|
|
9
|
+
const legacy_1 = __importDefault(require("neotraverse/legacy"));
|
|
9
10
|
/**
|
|
10
11
|
* Find event handlers that explicitly call .preventDefault() and
|
|
11
12
|
* add preventdefault:event
|
|
@@ -17,7 +18,7 @@ function addPreventDefault(json) {
|
|
|
17
18
|
if ((0, is_mitosis_node_1.isMitosisNode)(node)) {
|
|
18
19
|
if (node.bindings) {
|
|
19
20
|
for (const key of Object.keys(node.bindings)) {
|
|
20
|
-
if (
|
|
21
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
21
22
|
if ((_a = node.bindings[key]) === null || _a === void 0 ? void 0 : _a.code.includes('.preventDefault()')) {
|
|
22
23
|
const event = key.slice(2).toLowerCase();
|
|
23
24
|
node.properties['preventdefault:' + event] = '';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.renderHandlers = void 0;
|
|
4
|
+
const event_handlers_1 = require("../../../helpers/event-handlers");
|
|
4
5
|
const component_1 = require("../component");
|
|
5
6
|
const src_generator_1 = require("../src-generator");
|
|
6
7
|
const IIF_START = '(() => {';
|
|
@@ -55,5 +56,5 @@ function renderHandler(file, symbol, code) {
|
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
58
|
function isEventName(name) {
|
|
58
|
-
return
|
|
59
|
+
return (0, event_handlers_1.checkIsEvent)(name) && name.charAt(2).toUpperCase() == name.charAt(2);
|
|
59
60
|
}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.iteratorProperty = exports.lastProperty = exports.isStatement = exports.iif = exports.arrowFnValue = exports.arrowFnBlock = exports.invoke = exports.quote = exports.Imports = exports.Symbol = exports.SrcBuilder = exports.File = void 0;
|
|
7
7
|
const parser_typescript_1 = __importDefault(require("prettier/parser-typescript"));
|
|
8
8
|
const standalone_1 = require("prettier/standalone");
|
|
9
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
9
10
|
const html_tags_1 = require("../../constants/html_tags");
|
|
10
11
|
const builder_1 = require("../../parsers/builder");
|
|
11
12
|
const stable_serialize_1 = require("./helpers/stable-serialize");
|
|
@@ -410,7 +411,7 @@ class SrcBuilder {
|
|
|
410
411
|
}
|
|
411
412
|
exports.SrcBuilder = SrcBuilder;
|
|
412
413
|
function isEvent(name) {
|
|
413
|
-
return
|
|
414
|
+
return (0, event_handlers_1.checkIsEvent)(name) && isUppercase(name.charAt(2)) && !name.endsWith('$');
|
|
414
415
|
}
|
|
415
416
|
function isUppercase(ch) {
|
|
416
417
|
return ch == ch.toUpperCase();
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.blockToReact = void 0;
|
|
7
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
7
8
|
const filter_empty_text_nodes_1 = require("../../helpers/filter-empty-text-nodes");
|
|
8
9
|
const is_children_1 = __importDefault(require("../../helpers/is-children"));
|
|
9
10
|
const is_root_text_node_1 = require("../../helpers/is-root-text-node");
|
|
@@ -243,7 +244,7 @@ const blockToReact = (json, options, component, insideJsx, parentSlots = []) =>
|
|
|
243
244
|
if (((_d = json.bindings[key]) === null || _d === void 0 ? void 0 : _d.type) === 'spread') {
|
|
244
245
|
str += ` {...(${value})} `;
|
|
245
246
|
}
|
|
246
|
-
else if (
|
|
247
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
247
248
|
const asyncKeyword = ((_e = json.bindings[key]) === null || _e === void 0 ? void 0 : _e.async) ? 'async ' : '';
|
|
248
249
|
const { arguments: cusArgs = ['event'] } = json.bindings[key];
|
|
249
250
|
const eventName = options.type === 'native' ? NATIVE_EVENT_MAPPER[key] || key : key;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.blockToSolid = void 0;
|
|
4
4
|
const babel_transform_1 = require("../../helpers/babel-transform");
|
|
5
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
5
6
|
const filter_empty_text_nodes_1 = require("../../helpers/filter-empty-text-nodes");
|
|
6
7
|
const is_mitosis_node_1 = require("../../helpers/is-mitosis-node");
|
|
7
8
|
const typescript_1 = require("../../helpers/typescript");
|
|
@@ -80,7 +81,7 @@ const blockToSolid = (json, component, options, insideJsx) => {
|
|
|
80
81
|
if (type === 'spread') {
|
|
81
82
|
str += ` {...(${code})} `;
|
|
82
83
|
}
|
|
83
|
-
else if (
|
|
84
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
84
85
|
const useKey = key === 'onChange' && json.name === 'input' ? 'onInput' : key;
|
|
85
86
|
const asyncKeyword = ((_d = json.bindings[key]) === null || _d === void 0 ? void 0 : _d.async) ? 'async ' : '';
|
|
86
87
|
str += ` ${useKey}={${asyncKeyword}(${cusArg.join(',')}) => ${code}} `;
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getImports = exports.getStencilCoreImportsAsString = exports.needsWrap = exports.getPropsAsCode = exports.getTagName = exports.processBinding = exports.isEvent = void 0;
|
|
4
4
|
const dash_case_1 = require("../../../helpers/dash-case");
|
|
5
|
+
const event_handlers_1 = require("../../../helpers/event-handlers");
|
|
5
6
|
const render_imports_1 = require("../../../helpers/render-imports");
|
|
6
7
|
const strip_state_and_props_refs_1 = require("../../../helpers/strip-state-and-props-refs");
|
|
7
|
-
const isEvent = (key) =>
|
|
8
|
+
const isEvent = (key) => (0, event_handlers_1.checkIsEvent)(key);
|
|
8
9
|
exports.isEvent = isEvent;
|
|
9
10
|
/**
|
|
10
11
|
* We need to "emit" events those can be on multiple places, so we do it as post step
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.blockToSvelte = void 0;
|
|
7
7
|
const bindings_1 = require("../../helpers/bindings");
|
|
8
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
8
9
|
const is_children_1 = __importDefault(require("../../helpers/is-children"));
|
|
9
10
|
const is_upper_case_1 = require("../../helpers/is-upper-case");
|
|
10
11
|
const for_1 = require("../../helpers/nodes/for");
|
|
@@ -174,7 +175,7 @@ const stringifyBinding = (node, options) => ([key, binding]) => {
|
|
|
174
175
|
const spreadValue = key === 'props' ? '$$props' : code;
|
|
175
176
|
return ` {...${spreadValue}} `;
|
|
176
177
|
}
|
|
177
|
-
else if (
|
|
178
|
+
else if ((0, event_handlers_1.checkIsEvent)(key) && isValidHtmlTag) {
|
|
178
179
|
const { async } = binding;
|
|
179
180
|
// handle html native on[event] props
|
|
180
181
|
const event = key.replace('on', '').toLowerCase();
|
|
@@ -188,7 +189,7 @@ const stringifyBinding = (node, options) => ([key, binding]) => {
|
|
|
188
189
|
return ` on:${event}="{${asyncKeyword}(${cusArgs.join(',')}) => {${valueWithoutBlock}}}" `;
|
|
189
190
|
}
|
|
190
191
|
}
|
|
191
|
-
else if (
|
|
192
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
192
193
|
// handle on[custom event] props
|
|
193
194
|
const valueWithoutBlock = (0, remove_surrounding_block_1.removeSurroundingBlock)(code);
|
|
194
195
|
if (valueWithoutBlock === key) {
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.componentToSwift = void 0;
|
|
7
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
7
8
|
const legacy_1 = __importDefault(require("neotraverse/legacy"));
|
|
8
9
|
const dedent_1 = require("../../helpers/dedent");
|
|
9
10
|
const fast_clone_1 = require("../../helpers/fast-clone");
|
|
@@ -123,7 +124,7 @@ const blockToSwift = (json, options) => {
|
|
|
123
124
|
key === 'className') {
|
|
124
125
|
continue;
|
|
125
126
|
}
|
|
126
|
-
if (
|
|
127
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
127
128
|
if (key === 'onClick') {
|
|
128
129
|
continue;
|
|
129
130
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.componentToTemplate = void 0;
|
|
4
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
4
5
|
const standalone_1 = require("prettier/standalone");
|
|
5
6
|
const html_tags_1 = require("../../constants/html_tags");
|
|
6
7
|
const dedent_1 = require("../../helpers/dedent");
|
|
@@ -62,7 +63,7 @@ const blockToTemplate = (json, options = {}) => {
|
|
|
62
63
|
const value = (_e = json.bindings[key]) === null || _e === void 0 ? void 0 : _e.code;
|
|
63
64
|
// TODO: proper babel transform to replace. Util for this
|
|
64
65
|
const useValue = value;
|
|
65
|
-
if (
|
|
66
|
+
if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
66
67
|
// Do nothing
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.blockToVue = void 0;
|
|
7
7
|
const bindings_1 = require("../../helpers/bindings");
|
|
8
|
+
const event_handlers_1 = require("../../helpers/event-handlers");
|
|
8
9
|
const filter_empty_text_nodes_1 = require("../../helpers/filter-empty-text-nodes");
|
|
9
10
|
const is_children_1 = __importDefault(require("../../helpers/is-children"));
|
|
10
11
|
const is_mitosis_node_1 = require("../../helpers/is-mitosis-node");
|
|
@@ -104,7 +105,7 @@ const stringifyBinding = (node, options) => ([key, value]) => {
|
|
|
104
105
|
else {
|
|
105
106
|
// TODO: proper babel transform to replace. Util for this
|
|
106
107
|
const useValue = (value === null || value === void 0 ? void 0 : value.code) || '';
|
|
107
|
-
if (
|
|
108
|
+
if ((0, event_handlers_1.checkIsEvent)(key) && isValidHtmlTag) {
|
|
108
109
|
// handle html native on[event] props
|
|
109
110
|
const { arguments: cusArgs = ['event'], async } = value;
|
|
110
111
|
let event = key.replace('on', '').toLowerCase();
|
|
@@ -123,7 +124,7 @@ const stringifyBinding = (node, options) => ([key, value]) => {
|
|
|
123
124
|
const eventHandlerKey = `${SPECIAL_PROPERTIES.V_ON_AT}${event}`;
|
|
124
125
|
return `${eventHandlerKey}="${eventHandlerValue}"`;
|
|
125
126
|
}
|
|
126
|
-
else if (
|
|
127
|
+
else if ((0, event_handlers_1.checkIsEvent)(key)) {
|
|
127
128
|
// handle on[custom event] props
|
|
128
129
|
const { arguments: cusArgs = ['event'] } = node.bindings[key];
|
|
129
130
|
return `:${key}="(${cusArgs.join(',')}) => ${(0, helpers_1.encodeQuotes)(useValue)}"`;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const checkIsEvent: (code: string) => boolean;
|
|
2
|
+
export declare const checkIsBindingNativeEvent: (code: string) => boolean;
|