storm-react-forms
Version:
__DEMO__: http://projectstorm.cloud/react-forms
2 lines • 19.9 kB
JavaScript
(function webpackUniversalModuleDefinition(root,factory){if(typeof exports==="object"&&typeof module==="object")module.exports=factory();else if(typeof define==="function"&&define.amd)define([],factory);else if(typeof exports==="object")exports["storm-react-forms"]=factory();else root["storm-react-forms"]=factory()})(window,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:true,get:getter})}};__webpack_require__.r=function(exports){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(exports,"__esModule",{value:true})};__webpack_require__.t=function(value,mode){if(mode&1)value=__webpack_require__(value);if(mode&8)return value;if(mode&4&&typeof value==="object"&&value&&value.__esModule)return value;var ns=Object.create(null);__webpack_require__.r(ns);Object.defineProperty(ns,"default",{enumerable:true,value:value});if(mode&2&&typeof value!="string")for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key]}.bind(null,key));return ns};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=7)}([function(module,exports){module.exports=require("react")},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var react_core_1=__webpack_require__(2);var BaseElementWidget=function(_super){__extends(BaseElementWidget,_super);function BaseElementWidget(name,props){var _this=_super.call(this,name,props)||this;_this.state={value:props.value||null,resetValue:props.value||null};return _this}BaseElementWidget.getLabel=function(props){if(!props.displayLabel){return null}return props.label||props.name.charAt(0).toUpperCase()+props.name.slice(1)};BaseElementWidget.prototype.getValue=function(){return this.state.value};BaseElementWidget.prototype.resetValue=function(){this.setValue(this.state.resetValue)};BaseElementWidget.prototype.componentWillReceiveProps=function(next){if((this.props.allowValueOverride||next.allowValueOverride)&&next.value!==undefined){this.setValue(next.value,false)}};BaseElementWidget.prototype.cleanValue=function(value){if(value===""){return null}if(value===undefined){return null}return value};BaseElementWidget.prototype.setValue=function(value,fireEvent,additionalState){var _this=this;if(fireEvent===void 0){fireEvent=true}if(additionalState===void 0){additionalState={}}value=this.cleanValue(value);this.setState(__assign({},additionalState,{value:value}),function(){if(fireEvent&&_this.props.valueChangedEvent){_this.props.valueChangedEvent(value)}})};BaseElementWidget.defaultProps={name:"",allowValueOverride:true,displayLabel:true};return BaseElementWidget}(react_core_1.BaseWidget);exports.BaseElementWidget=BaseElementWidget},function(module,exports){module.exports=require("@projectstorm/react-core")},function(module,exports){module.exports=require("lodash")},function(module,exports){module.exports=require("prop-types")},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var React=__webpack_require__(0);var _=__webpack_require__(3);var BaseElementWidget_1=__webpack_require__(1);var FormGroupWidget=function(_super){__extends(FormGroupWidget,_super);function FormGroupWidget(props){var _this=_super.call(this,"srf-group",props)||this;_this.elements={};return _this}FormGroupWidget.prototype.getValue=function(){return _.mapValues(this.elements,function(element){return element.getValue()})};FormGroupWidget.prototype.resetValue=function(){_.forEach(this.elements,function(element){element.resetValue()})};FormGroupWidget.prototype.bindChildren=function(children){var _this=this;this.elements={};return React.Children.map(children,function(child){if(!React.isValidElement(child)){return child}var children=child.props.children;if(child.type!==FormGroupWidget&&child.props.children){children=_this.bindChildren(child.props.children)}if(child.type["__proto__"]===BaseElementWidget_1.BaseElementWidget){var props={ref:function(ob){_this.elements[child.props.name]=ob}};if(_this.state.value){props["value"]=_this.state.value[child.props.name]}return React.cloneElement(child,props,children)}return React.cloneElement(child,null,children)})};FormGroupWidget.prototype.render=function(){return React.createElement("div",__assign({},this.getProps()),this.bindChildren(this.props.children))};FormGroupWidget.defaultProps={name:"",value:null,allowValueOverride:true};return FormGroupWidget}(BaseElementWidget_1.BaseElementWidget);exports.FormGroupWidget=FormGroupWidget},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var React=__webpack_require__(0);var react_core_1=__webpack_require__(2);var ButtonElementWidget=function(_super){__extends(ButtonElementWidget,_super);function ButtonElementWidget(props){var _this=_super.call(this,"srf-button",props)||this;_this.state={};return _this}ButtonElementWidget.prototype.render=function(){return React.createElement("input",__assign({},this.getProps(),{type:"button",value:this.props.name,onClick:this.props.action}))};return ButtonElementWidget}(react_core_1.BaseWidget);exports.ButtonElementWidget=ButtonElementWidget},function(module,exports,__webpack_require__){"use strict";function __export(m){for(var p in m)if(!exports.hasOwnProperty(p))exports[p]=m[p]}Object.defineProperty(exports,"__esModule",{value:true});__export(__webpack_require__(1));__export(__webpack_require__(5));__export(__webpack_require__(6));__export(__webpack_require__(8));__export(__webpack_require__(9));__export(__webpack_require__(10));__export(__webpack_require__(11));__export(__webpack_require__(12))},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var React=__webpack_require__(0);var ButtonElementWidget_1=__webpack_require__(6);var FormGroupWidget_1=__webpack_require__(5);var PropTypes=__webpack_require__(4);var react_core_1=__webpack_require__(2);var FormWidget=function(_super){__extends(FormWidget,_super);function FormWidget(props){var _this=_super.call(this,"srf-form",props)||this;_this.state={};return _this}FormWidget.prototype.fireFormSubmitEvent=function(action){if(action){return action(this.rootGroup.getValue())}else{return this.props.formSubmitEvent(this.rootGroup.getValue())}};FormWidget.prototype.getChildContext=function(){return{form:this}};FormWidget.prototype.getChildren=function(){var _this=this;if(React.isValidElement(this.props.children)){if(this.props.children.type["__proto__"]===FormGroupWidget_1.FormGroupWidget){return React.cloneElement(this.props.children,{ref:function(element){_this.rootGroup=element}})}}return React.createElement(FormGroupWidget_1.FormGroupWidget,{value:this.props.value,name:"",ref:function(element){_this.rootGroup=element}},this.props.children)};FormWidget.prototype.render=function(){var _this=this;return React.createElement("form",__assign({},this.getProps(),{autoComplete:"off"}),this.getChildren(),React.createElement("div",{className:this.bem("__buttons")},this.props.showSubmit&&React.createElement(ButtonElementWidget_1.ButtonElementWidget,{name:this.props.submitButton,action:function(){_this.fireFormSubmitEvent()}}),this.props.showReset&&React.createElement(ButtonElementWidget_1.ButtonElementWidget,{name:this.props.resetButton,action:function(){_this.rootGroup.resetValue()}})))};FormWidget.childContextTypes={form:PropTypes.any};FormWidget.defaultProps={showReset:true,showSubmit:true,submitButton:"Submit",resetButton:"Reset"};return FormWidget}(react_core_1.BaseWidget);exports.FormWidget=FormWidget},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var React=__webpack_require__(0);var _=__webpack_require__(3);var PropTypes=__webpack_require__(4);var BaseElementWidget_1=__webpack_require__(1);var FieldElementWidget=function(_super){__extends(FieldElementWidget,_super);function FieldElementWidget(props){return _super.call(this,"srf-field",props)||this}FieldElementWidget.prototype.render=function(){var _this=this;var props=__assign({},this.getProps(),{placeholder:this.props.placeholder||this.props.label||this.props.name,onChange:function(event){_this.setValue(event.target.value,_this.props.livetype)},onKeyPress:function(event){if(event.key==="Enter"){if(_this.props.livetype===false&&_this.props.valueChangedEvent){event.preventDefault();_this.props.valueChangedEvent(_this.state.value)}if(_this.props.submitOnEnter&&_this.context.form){event.preventDefault();_this.context.form.fireFormSubmitEvent()}}},value:this.getValue()||""});if(this.props.autoComplete==="off"&&this.props.type==="password"){props["autoComplete"]="new-password"}if(this.props.textArea){return React.createElement("textarea",__assign({},props))}return React.createElement("input",__assign({},props))};FieldElementWidget.contextTypes={form:PropTypes.any};FieldElementWidget.defaultProps=_.extend(BaseElementWidget_1.BaseElementWidget.defaultProps,{submitOnEnter:false,livetype:false});return FieldElementWidget}(BaseElementWidget_1.BaseElementWidget);exports.FieldElementWidget=FieldElementWidget},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var React=__webpack_require__(0);var _=__webpack_require__(3);var BaseElementWidget_1=__webpack_require__(1);var SelectElementWidget=function(_super){__extends(SelectElementWidget,_super);function SelectElementWidget(props){var _this=_super.call(this,"srf-select",props)||this;_this.state=_this.computeNewComponentState(props);return _this}SelectElementWidget.prototype.computeNewComponentState=function(props){var options=this.getOptions(props.groups);var value=this.state.value;if(value===null||props.allowValueOverride&&props.value!==undefined){value=props.value}var foundValue=false;var possibleOption=null;loop:for(var i in options){for(var j in options[i]){possibleOption=possibleOption||j;if(j===value){foundValue=true;break loop}}}var newState={value:value,resetValue:this.state.resetValue,groups:options};if(!foundValue&&possibleOption){newState.value=possibleOption;newState.resetValue=possibleOption}return newState};SelectElementWidget.prototype.componentWillReceiveProps=function(nextProps){this.setState(this.computeNewComponentState(nextProps))};SelectElementWidget.prototype.normlaizeGroup=function(option){if(_.isArray(option)){return _.mapKeys(option,function(opt){return opt})}return option};SelectElementWidget.prototype.getOptions=function(groupData){var _a;if(_.isArray(groupData)){return _a={},_a[this.props.defaultGroup]=this.normlaizeGroup(groupData),_a}var groups={};for(var i in groupData){if(!_.isObject(groupData[i])){if(!groups[this.props.defaultGroup]){groups[this.props.defaultGroup]={}}groups[this.props.defaultGroup][i]=this.normlaizeGroup(groupData[i])}else{groups[i]=this.normlaizeGroup(groupData[i])}}return groups};SelectElementWidget.prototype.render=function(){var _this=this;var props=__assign({},this.getProps(),{onChange:function(event){_this.setValue(event.target.value)}});if(this.getValue()){props["value"]=this.getValue()}return React.createElement("select",__assign({},props),_.keys(this.state.groups).map(function(group){return React.createElement("optgroup",{label:group,key:group},_.keys(_this.state.groups[group]).map(function(key){return React.createElement("option",{value:key,key:key},_this.state.groups[group][key])}))}))};SelectElementWidget.defaultProps={groups:{},defaultGroup:"Please select:"};return SelectElementWidget}(BaseElementWidget_1.BaseElementWidget);exports.SelectElementWidget=SelectElementWidget},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var React=__webpack_require__(0);var PropTypes=__webpack_require__(4);var BaseElementWidget_1=__webpack_require__(1);var CheckboxElementWidget=function(_super){__extends(CheckboxElementWidget,_super);function CheckboxElementWidget(props){return _super.call(this,"srf-checkbox",props)||this}CheckboxElementWidget.prototype.render=function(){var _this=this;return React.createElement("input",__assign({},this.getProps(),{type:"checkbox",checked:this.state.value,onChange:function(event){_this.setValue(event.target.checked)}}))};CheckboxElementWidget.contextTypes={form:PropTypes.any};return CheckboxElementWidget}(BaseElementWidget_1.BaseElementWidget);exports.CheckboxElementWidget=CheckboxElementWidget},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var React=__webpack_require__(0);var BaseElementWidget_1=__webpack_require__(1);var react_core_1=__webpack_require__(2);var TableLayoutWidget=function(_super){__extends(TableLayoutWidget,_super);function TableLayoutWidget(props){var _this=_super.call(this,"srf-table",props)||this;_this.state={};return _this}TableLayoutWidget.prototype.render=function(){var _this=this;return React.createElement("table",__assign({},this.getProps()),React.createElement("tbody",null,React.Children.map(this.props.children,function(child){var label=BaseElementWidget_1.BaseElementWidget.getLabel(child.props);if(label){return React.createElement("tr",{className:_this.bem("__row")},React.createElement("td",null,React.createElement("label",{className:_this.bem("__label")},label)),React.createElement("td",null,child))}return React.createElement("tr",{className:_this.bem("__row")},React.createElement("td",{colSpan:2},child))})))};return TableLayoutWidget}(react_core_1.BaseWidget);exports.TableLayoutWidget=TableLayoutWidget}])});
//# sourceMappingURL=main.js.map