UNPKG

@builder.io/mitosis

Version:

Write components once, run everywhere. Compiles to Vue, React, Solid, and Liquid. Import code from Figma and Builder.io

34 lines (33 loc) 1.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.addPreventDefault = void 0; const event_handlers_1 = require("../../../helpers/event-handlers"); const is_mitosis_node_1 = require("../../../helpers/is-mitosis-node"); const legacy_1 = __importDefault(require("neotraverse/legacy")); /** * Find event handlers that explicitly call .preventDefault() and * add preventdefault:event * https://qwik.builder.io/tutorial/events/preventdefault */ function addPreventDefault(json) { (0, legacy_1.default)(json).forEach((node) => { var _a; if ((0, is_mitosis_node_1.isMitosisNode)(node)) { if (node.bindings) { for (const key of Object.keys(node.bindings)) { if ((0, event_handlers_1.checkIsEvent)(key)) { if ((_a = node.bindings[key]) === null || _a === void 0 ? void 0 : _a.code.includes('.preventDefault()')) { const event = key.slice(2).toLowerCase(); node.properties['preventdefault:' + event] = ''; node.bindings[key].code = node.bindings[key].code.replace(/.*?\.preventDefault\(\);?/, '').trim(); } } } } } }); } exports.addPreventDefault = addPreventDefault;