file-prompt
Version:
An interactive prompt for selecting files from a directory.
1 lines • 5.62 kB
JavaScript
;function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function _typeof(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function createListener(e,t,n,r){var o=n.bind(r);return{id:_underscore2["default"].uniqueId("l"),obj:e,event:t,handler:o,callback:n,context:r}}function write(e,t){var n=t.props.stdout||process.stdout;n.write(e)}function writeArray(e,t){var n=!0,r=!1,o=void 0;try{for(var s,i=e[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){var u=s.value;switch("undefined"==typeof u?"undefined":_typeof(u)){case"string":write(u,t);break;case"function":u()}}}catch(a){r=!0,o=a}finally{try{!n&&i["return"]&&i["return"]()}finally{if(r)throw o}}}var _get=function e(t,n,r){null===t&&(t=Function.prototype);var o=Object.getOwnPropertyDescriptor(t,n);if(void 0===o){var s=Object.getPrototypeOf(t);return null===s?void 0:e(s,n,r)}if("value"in o)return o.value;var i=o.get;if(void 0!==i)return i.call(r)},_createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(exports,"__esModule",{value:!0});var _underscore=require("underscore"),_underscore2=_interopRequireDefault(_underscore),_events=require("events"),_events2=_interopRequireDefault(_events),Component=function(e){function t(e){_classCallCheck(this,t);var n=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this));return n.state={},n.props={},n._listeners=[],n._hasRendered=!1,n._content=null,n.props=n.getDefaultProps(),e&&Object.assign(n.props,e),n.state=n.getInitialState(),n}return _inherits(t,e),_createClass(t,null,[{key:"display",value:function(e){var t=e._content;Array.isArray(t)?writeArray(t,e):write(t,e)}},{key:"mount",value:function(e){e.componentWillMount(),e.renderComponent(),t.display(e),e.componentDidMount()}}]),_createClass(t,[{key:"componentDidMount",value:function(){}},{key:"componentDidUpdate",value:function(e,t){}},{key:"componentShouldUpdate",value:function(e,t){return!_underscore2["default"].isEqual(t,this.state)}},{key:"componentWillMount",value:function(){}},{key:"componentWillUnmount",value:function(){}},{key:"componentWillUpdate",value:function(e,t){}},{key:"getDefaultProps",value:function(){return{}}},{key:"getInitialState",value:function(){return{}}},{key:"forceUpdate",value:function(e){this.componentWillUpdate(this.props,this.state),this.renderComponent(),this.componentDidUpdate(this.props,this.state),"function"==typeof e&&e.call(this)}},{key:"listenTo",value:function(e,t,n){var r=arguments.length<=3||void 0===arguments[3]?this:arguments[3],o=createListener(e,t,n,r);this._listeners.push(o),e.on(t,o.handler)}},{key:"listenToOnce",value:function(e,t,n){var r=this,o=arguments.length<=3||void 0===arguments[3]?this:arguments[3],s=createListener(e,t,n,o);this._listeners.push(s),e.once(t,function(){r.stopListening(e,t,n),s.handler.apply(s,arguments)})}},{key:"off",value:function(e,t){var n=arguments.length<=2||void 0===arguments[2]?this:arguments[2];this.stopListening(this,e,t,n)}},{key:"on",value:function(e,n){var r=arguments.length<=2||void 0===arguments[2]?this:arguments[2],o=createListener(this,e,n,r);return this._listeners.push(o),_get(Object.getPrototypeOf(t.prototype),"on",this).call(this,e,o.handler)}},{key:"once",value:function(e,n){var r=arguments.length<=2||void 0===arguments[2]?this:arguments[2],o=createListener(this,e,n,r);return this._listeners.push(o),_get(Object.getPrototypeOf(t.prototype),"once",this).call(this,e,o.handler)}},{key:"remove",value:function(){this.stopListening(),this.componentWillUnmount()}},{key:"render",value:function(){throw new Error("Component must implement a render method.")}},{key:"renderComponent",value:function(){var e=this.render();Array.isArray(e)||(e+="\n"),this._content=e}},{key:"set",value:function(e,t,n){var r={props:_underscore2["default"].clone(this.props),state:_underscore2["default"].clone(this.state)},o={props:_underscore2["default"].clone(this.props),state:_underscore2["default"].clone(this.state)};o[e]=Object.assign(o[e],t),this.componentShouldUpdate(o.props,o.state)?(this.componentWillUpdate(o.props,o.state),this[e]=o[e],this.renderComponent(),this.componentDidUpdate(r.props,r.state)):this[e]=o[e],"function"==typeof n&&n.call(this)}},{key:"setProps",value:function(e,t){this.set("props",e,t)}},{key:"setState",value:function(e,t){this.set("state",e,t)}},{key:"stopListening",value:function(){for(var e=this,t={},n=this._listeners.slice(),r=["obj","event","callback","context"],o=arguments.length,s=Array(o),i=0;o>i;i++)s[i]=arguments[i];s.length>0&&s.forEach(function(e,n){e&&(t[r[n]]=e)}),Object.keys(t).length>0&&(n=_underscore2["default"].where(n,t)),n.forEach(function(t){t.obj.removeListener(t.event,t.handler),e._listeners.splice(e._listeners.indexOf(t),1)})}}]),t}(_events2["default"]);exports["default"]=Component;