var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.taskRnvPlatformEject=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _inquirer=_interopRequireDefault(require("inquirer"));
var _logger=require("../../core/systemManager/logger");
var _fileutils=require("../../core/systemManager/fileutils");
var _constants=require("../../core/constants");
var _platformManager=require("../../core/platformManager");
var _taskManager=require("../../core/taskManager");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}

var taskRnvPlatformEject=function taskRnvPlatformEject(c,parentTask,originTask){var selectedPlatforms,_await$inquirer$promp,ejectedPlatforms;return _regenerator.default.async(function taskRnvPlatformEject$(_context){while(1){switch(_context.prev=_context.next){case 0:
(0,_logger.logTask)('taskRnvPlatformEject');_context.next=3;return _regenerator.default.awrap(

(0,_taskManager.executeTask)(c,_constants.TASK_PROJECT_CONFIGURE,_constants.TASK_PLATFORM_EJECT,originTask));case 3:if(!

c.platform){_context.next=7;break;}
selectedPlatforms=[c.platform];_context.next=13;break;case 7:

(0,_logger.logInfo)("Preparing to eject engine platforms to local "+(0,_logger.chalk)().white('./platformTemplates'));_context.next=10;return _regenerator.default.awrap(
_inquirer.default.prompt({
name:'ejectedPlatforms',
message:
'Select platforms you would like to eject (use SPACE key)',
type:'checkbox',
choices:(0,_platformManager.generatePlatformChoices)(c).map(function(choice){return _objectSpread(_objectSpread({},
choice),{},{
disabled:!choice.isConnected});})}));case 10:_await$inquirer$promp=_context.sent;ejectedPlatforms=_await$inquirer$promp.ejectedPlatforms;


selectedPlatforms=ejectedPlatforms;case 13:



if(selectedPlatforms.length){
selectedPlatforms.forEach(function(platform){




(0,_platformManager.ejectPlatform)(c,platform);

c.files.project.config.paths.
platformTemplatesDirs=c.files.project.config.paths.platformTemplatesDirs||{};
c.files.project.config.paths.platformTemplatesDirs[
platform]="./"+
'platformTemplates';
(0,_fileutils.writeFileSync)(c.paths.project.config,c.files.project.config);
});

(0,_logger.logSuccess)(
(0,_logger.chalk)().white(
selectedPlatforms.join(','))+" platform templates are located in "+
(0,_logger.chalk)().white(
c.files.project.config.paths.platformTemplatesDirs[selectedPlatforms[0]])+" now. You can edit them directly!");


}else{
(0,_logger.logError)("You haven't selected any platform to eject.\nTIP: You can select options with "+
(0,_logger.chalk)().white('SPACE')+" key before pressing ENTER!");
}case 14:case"end":return _context.stop();}}},null,null,null,Promise);};exports.taskRnvPlatformEject=taskRnvPlatformEject;var _default=


{
description:'Copy all platform files directly to project',
fn:taskRnvPlatformEject,
task:'platform eject',
params:_constants.PARAMS.withBase(),
platforms:[]};exports.default=_default;
//# sourceMappingURL=task.rnv.platform.eject.js.map