@nodegui/vue-nodegui
Version:
library to render native desktop applications using vue js
48 lines • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.compilerOptions = void 0;
const compiler_core_1 = require("@vue/compiler-core");
const nativeWidget_1 = require("./widgets/nativeWidget");
const V_MODEL_TEXT = Symbol('vModelText');
const V_MODEL_SLIDER = Symbol('vModelSlider');
const V_MODEL_SPINBOX = Symbol('vModelSpinBox');
const V_MODEL_COMBOBOX = Symbol('vModelComboBox');
compiler_core_1.registerRuntimeHelpers({
[V_MODEL_TEXT]: 'vModelText',
[V_MODEL_SLIDER]: 'vModelSlider',
[V_MODEL_SPINBOX]: 'vModelSpinBox',
[V_MODEL_COMBOBOX]: 'vModelComboBox',
});
exports.compilerOptions = {
isNativeTag: nativeWidget_1.isNativeWidget,
directiveTransforms: {
model: (dir, node, context) => {
const baseResult = compiler_core_1.transformModel(dir, node, context);
const { tag } = node;
let directiveToUse;
switch (tag) {
case 'vn-line-edit':
directiveToUse = V_MODEL_TEXT;
break;
case 'vn-slider':
case 'vn-dial':
directiveToUse = V_MODEL_SLIDER;
break;
case 'vn-spinbox':
directiveToUse = V_MODEL_SPINBOX;
break;
case 'vn-combobox':
directiveToUse = V_MODEL_COMBOBOX;
break;
default:
throw new Error(`cannot use v-model on tag: ${tag}`);
}
baseResult.needRuntime = context.helper(directiveToUse);
// console.log('dir', dir);
// console.log('node', node);
// console.log('context', context);
return baseResult;
},
},
};
//# sourceMappingURL=vueLoader.js.map