Files
JiboSDK/lib/package-generator/package-generator-modal.js
2026-03-22 03:21:45 +02:00

1 line
3.6 KiB
JavaScript

"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=e(require("react")),a=require("jibo-tools").packageGenerator,$=e(require("jquery")),n=e(require("path")),i=e(require("fs")),s=require("atom").CompositeDisposable,l=e(require("../atom-react/components/jibo-combo-box")),o=t.createClass({displayName:"PackageGeneratorModal",getInitialState:function(){return this.data=[{label:"Create Skill",display:"Skill",value:{template:"behavior-template",fields:[{label:"Package.json name",ref:"packageName"}]}},{label:"Create Asset Pack",display:"Asset Pack",value:{template:"asset-pack-template",fields:[{label:"Package.json name",ref:"packageName"},{label:"Asset Pack Title",ref:"titleName"}]}}],{step:0,type:this.data[0].value}},onChangeConfiguration:function(e){this.setState({type:e.value})},getFieldValue:function(e){var a=t.findDOMNode(this.refs[e]);if(!a)return"";var n=a.getModel();return n.getText()},createInputField:function(e,a,n){return t.createElement("div",{className:"block"},t.createElement("label",null,e),t.createElement("atom-text-editor",{ref:a,tabIndex:n,mini:!0}))},render:function(){var e=this;switch(this.state.step){case 0:var a=[];return this.state.type.fields.forEach(function(t,n){a.push(e.createInputField(t.label,t.ref,n))}),t.createElement("div",{className:"block package-generator"},t.createElement("div",{className:"panel-heading"},t.createElement("h1",{style:{textAlign:"center"}},"New Jibo Skill")),t.createElement("div",{className:"block"},t.createElement("label",null,"Type"),t.createElement(l,{data:this.data,init:this.data[0],onSelected:this.onChangeConfiguration})),a,t.createElement("hr",null),t.createElement("div",{className:"btn-group"},t.createElement("button",{className:"btn",ref:"generateButton",onClick:this.onChoose},"Generate"),t.createElement("button",{className:"btn",onClick:this.props.onClose},"Cancel")));case 1:return t.createElement("div",{className:"inline-block",style:{display:"flex"}},t.createElement("i",{className:"fa fa-cog fa-spin fa-5x"}),t.createElement("label",{style:{margin:"auto",fontSize:23}},"Installing node dependencies"))}},areFieldsFilledIn:function(){for(var e=Object.keys(this.fields),t=!0,a=0;a<e.length;a++){var n=e[a];t=t&&this.fields[n]}return t},onUpdate:function(){var e=this;0===this.state.step&&!function(){var a=e.state.type.fields[0].ref,n=t.findDOMNode(e.refs[a]);n.focused(),e.fields={};var i=t.findDOMNode(e.refs.generateButton);e.state.type.fields.forEach(function(a){e.fields[a.ref]=!1;var n=t.findDOMNode(e.refs[a.ref]),s=n.getModel();s.onDidChange(function(){e.fields[a.ref]=s.getText().length>0,i.disabled=!e.areFieldsFilledIn()})}),i.disabled=!0}()},componentDidUpdate:function(){this.onUpdate()},componentDidMount:function(){var e=this;this.onUpdate(),this.disposable=new s,this.disposable.add(atom.commands.add(this.getDOMNode(),{"jibo-sdk:escape":this.props.onClose})),this.disposable.add(atom.commands.add(this.getDOMNode(),{"core:confirm":function(){e.areFieldsFilledIn()&&e.onChoose()}}))},componentWillUnmount:function(){this.disposable.dispose()},onChoose:function(){var e=this;this.state.step++;var t=this.getPackagesDirectory(),i=this.getFieldValue("packageName");i=n.normalize(i);var s=this.getFieldValue("titleName"),l=n.resolve(t,i),o=i.split(n.sep),r=o.length>0?o[o.length-1]:i;this.setState(this.state),a(this.state.type.template,l,r,s,function(){e.props.onClose(),atom.open({pathsToOpen:[l]})})},getPackagesDirectory:function(){return atom.config.get("core.projectHome")||process.env.ATOM_REPOS_HOME||n.join(i.getHomeDirectory(),"github")}});module.exports=function(){var e=$("<div/>"),a=atom.workspace.addModalPanel({item:e});t.render(t.createElement(o,{onClose:function(){a.destroy()}}),e[0])};