@titanium/turbo
Version:
🚀 Turbo is the awesome framework for turbo charging your Titanium cross-platform native mobile app development!
51 lines (41 loc) • 1.57 kB
JavaScript
var _ = require('lodash'),
styler = require('../styler'),
CU = require('../compilerUtils'),
U = require('../../../utils'),
tiapp = require('../../../tiapp'),
iOSProxy;
var MIN_VERSION = '5.4.0';
var systemButtons = [
'ACTION', 'ACTIVITY', 'ADD', 'BOOKMARKS', 'CAMERA', 'CANCEL', 'COMPOSE', 'CONTACT_ADD',
'DISCLOSURE', 'DONE', 'EDIT', 'FAST_FORWARD', 'FIXED_SPACE', 'FLEXIBLE_SPACE', 'INFO_DARK',
'INFO_LIGHT', 'ORGANIZE', 'PAUSE', 'PLAY', 'REFRESH', 'REPLY', 'REWIND', 'SAVE', 'SPINNER',
'STOP', 'TRASH'
];
exports.parse = function(node, state) {
return require('./base').parse(node, state, parse);
};
function parse(node, state, args) {
// Get button title from node text, if present
var nodeText = U.XML.getNodeText(node);
if (nodeText) {
state.extraStyle = styler.createVariableStyle('title', U.possibleMultilineString(U.trim(nodeText.replace(/'/g, "\\'"))));
}
if (tiapp.version.gte(tiapp.getSdkVersion(), MIN_VERSION)) {
iOSProxy = 'iOS';
} else {
iOSProxy = 'iPhone';
}
var systemButton = node.getAttribute('systemButton');
if (_.includes(systemButtons, systemButton)) {
node.setAttribute('systemButton', 'Ti.UI.' + iOSProxy + '.SystemButton.' + systemButton);
}
if ( node.hasAttribute('text') ) {
node.setAttribute('title', node.getAttribute('text'));
node.removeAttribute('text');
}
if ( node.getAttribute('verticalAlign') === 'center' ) {
node.setAttribute('verticalAlign', 'Titanium.UI.TEXT_VERTICAL_ALIGNMENT_CENTER');
}
// Generate runtime code using default
return require('./default').parse(node, state);
}