react-form
Advanced tools
Comparing version 0.9.0 to 0.9.1
@@ -188,6 +188,2 @@ 'use strict'; | ||
} | ||
// If all errors have been removed, mark the form as globally clean again | ||
if (!newState.errors && this.state.dirty) { | ||
newState.dirty = false; | ||
} | ||
this.setState(newState, function () { | ||
@@ -258,2 +254,2 @@ _this.props.saveState(_this.state, _this.props); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzIl0sIm5hbWVzIjpbIkZvcm0iLCJub29wIiwicmVvcCIsImQiLCJGb3JtRGVmYXVsdFByb3BzIiwibG9hZFN0YXRlIiwiZGVmYXVsdFZhbHVlcyIsInByZVZhbGlkYXRlIiwidmFsaWRhdGUiLCJvblZhbGlkYXRpb25GYWlsIiwib25DaGFuZ2UiLCJzYXZlU3RhdGUiLCJ3aWxsVW5tb3VudCIsInByZVN1Ym1pdCIsIm9uU3VibWl0IiwicG9zdFN1Ym1pdCIsImNvbmZpZyIsIkNvbXAiLCJjcmVhdGVDbGFzcyIsImNoaWxkQ29udGV4dFR5cGVzIiwiZm9ybUFQSSIsIlByb3BUeXBlcyIsIm9iamVjdCIsImdldENoaWxkQ29udGV4dCIsImdldEFQSSIsImdldERlZmF1bHRQcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImdldEluaXRpYWxTdGF0ZSIsInZhbHVlcyIsImNsb25lIiwicHJvcHMiLCJ0b3VjaGVkIiwiZXJyb3JzIiwibmVzdGVkRXJyb3JzIiwiY29tcG9uZW50V2lsbE1vdW50IiwiZW1pdENoYW5nZSIsInN0YXRlIiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsInNldEZvcm1TdGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwic2V0VmFsdWUiLCJmaWVsZCIsInZhbHVlIiwibm9Ub3VjaCIsInNldCIsImdldFZhbHVlIiwiZmFsbGJhY2siLCJ2YWwiLCJnZXQiLCJzZXROZXN0ZWRFcnJvciIsImdldEVycm9yIiwic2V0VG91Y2hlZCIsImdldFRvdWNoZWQiLCJkaXJ0eSIsImFkZFZhbHVlIiwicmVtb3ZlVmFsdWUiLCJpbmRleCIsImZpZWxkVmFsdWUiLCJzbGljZSIsInN3YXBWYWx1ZXMiLCJkZXN0SW5kZXgiLCJmaWVsZFZhbHVlcyIsInNldEFsbFRvdWNoZWQiLCJzdWJtaXRGb3JtIiwiZSIsInByZXZlbnREZWZhdWx0IiwicHJlU3VibWl0VmFsdWVzIiwibmV3U3RhdGUiLCJzaWxlbnQiLCJzZXRTdGF0ZSIsImluaXRpYWwiLCJyZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyIsImNsZWFuRXJyb3JzIiwicmVuZGVyIiwiZXJyIiwiaXNPYmplY3QiLCJyZXNvbHZlZCIsIm1hcFZhbHVlcyIsImZvdW5kIiwicGlja0J5Iiwia2V5cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImlzQXJyYXkiLCJtYXAiLCJmaW5kIiwicmVjdXJzZSIsInBhdGgiLCJpIiwia2V5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7a0JBb0J3QkEsSTs7QUFwQnhCOzs7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBTUMsT0FBTyxTQUFQQSxJQUFPLEdBQU0sQ0FBRSxDQUFyQjtBQUNBLElBQU1DLE9BQU8sU0FBUEEsSUFBTztBQUFBLFNBQUtDLENBQUw7QUFBQSxDQUFiOztBQUVPLElBQU1DLDhDQUFtQjtBQUM5QkMsYUFBV0osSUFEbUI7QUFFOUJLLGlCQUFlLEVBRmU7QUFHOUJDLGVBQWFMLElBSGlCO0FBSTlCTSxZQUFVO0FBQUEsV0FBTSxJQUFOO0FBQUEsR0FKb0I7QUFLOUJDLG9CQUFrQlIsSUFMWTtBQU05QlMsWUFBVVQsSUFOb0I7QUFPOUJVLGFBQVdWLElBUG1CO0FBUTlCVyxlQUFhWCxJQVJpQjtBQVM5QlksYUFBV1gsSUFUbUI7QUFVOUJZLFlBQVViLElBVm9CO0FBVzlCYyxjQUFZZDtBQVhrQixDQUF6Qjs7QUFjUSxTQUFTRCxJQUFULEdBQTRCO0FBQUEsTUFBYmdCLE1BQWEsdUVBQUosRUFBSTs7QUFDekMsU0FBTyxVQUFDQyxJQUFELEVBQVU7QUFDZixXQUFPLGdCQUFNQyxXQUFOLENBQWtCO0FBQ3ZCQyx5QkFBbUI7QUFDakJDLGlCQUFTLGdCQUFNQyxTQUFOLENBQWdCQztBQURSLE9BREk7QUFJdkJDLHFCQUp1Qiw2QkFJSjtBQUNqQixlQUFPO0FBQ0xILG1CQUFTLEtBQUtJLE1BQUw7QUFESixTQUFQO0FBR0QsT0FSc0I7O0FBU3ZCO0FBQ0FDLHFCQVZ1Qiw2QkFVSjtBQUNqQixlQUFPQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFr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QUFDbEMsZUFBT0YsUUFBUXBGLENBQVIsK0JBQWVxRixJQUFmLElBQXFCQyxDQUFyQixHQUFQO0FBQ0QsT0FGTSxDQUFQO0FBR0Q7QUFDRCxRQUFJLGdCQUFFTCxPQUFGLENBQVV6QyxLQUFWLENBQUosRUFBc0I7QUFDcEIsYUFBT0EsTUFBTTBDLEdBQU4sQ0FBVSxVQUFDbEYsQ0FBRCxFQUFJdUYsR0FBSixFQUFZO0FBQzNCLGVBQU9ILFFBQVFwRixDQUFSLCtCQUFlcUYsSUFBZixJQUFxQkUsR0FBckIsR0FBUDtBQUNELE9BRk0sQ0FBUDtBQUdEO0FBQ0QsV0FBTy9DLEtBQVA7QUFDRCxHQWZEO0FBZ0JBLFNBQU80QyxRQUFRNUMsS0FBUixDQUFQO0FBQ0QiLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBfIGZyb20gJy4vdXRpbHMnXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuY29uc3QgcmVvcCA9IGQgPT4gZFxuXG5leHBvcnQgY29uc3QgRm9ybURlZmF1bHRQcm9wcyA9IHtcbiAgbG9hZFN0YXRlOiBub29wLFxuICBkZWZhdWx0VmFsdWVzOiB7fSxcbiAgcHJlVmFsaWRhdGU6IHJlb3AsXG4gIHZhbGlkYXRlOiAoKSA9PiBudWxsLFxuICBvblZhbGlkYXRpb25GYWlsOiBub29wLFxuICBvbkNoYW5nZTogbm9vcCxcbiAgc2F2ZVN0YXRlOiBub29wLFxuICB3aWxsVW5tb3VudDogbm9vcCxcbiAgcHJlU3VibWl0OiByZW9wLFxuICBvblN1Ym1pdDogbm9vcCxcbiAgcG9zdFN1Ym1pdDogbm9vcFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBGb3JtIChjb25maWcgPSB7fSkge1xuICByZXR1cm4gKENvbXApID0+IHtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgICAgY2hpbGRDb250ZXh0VHlwZXM6IHtcbiAgICAgICAgZm9ybUFQSTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdFxuICAgICAgfSxcbiAgICAgIGdldENoaWxkQ29udGV4dCAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZm9ybUFQSTogdGhpcy5nZXRBUEkoKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gTGlmZWN5Y2xlXG4gICAgICBnZXREZWZhdWx0UHJvcHMgKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgRm9ybURlZmF1bHRQcm9wcywgY29uZmlnKVxuICAgICAgfSxcbiAgICAgIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5hc3NpZ24oe30sIF8uY2xvbmUoY29uZmlnLmRlZmF1bHRWYWx1ZXMpLCBfLmNsb25lKHRoaXMucHJvcHMudmFsdWVzKSlcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMubG9hZFN0YXRlKHRoaXMucHJvcHMpIHx8IHtcbiAgICAgICAgICB2YWx1ZXMsXG4gICAgICAgICAgdG91Y2hlZDoge30sXG4gICAgICAgICAgZXJyb3JzOiB0aGlzLnZhbGlkYXRlKHZhbHVlcyksXG4gICAgICAgICAgbmVzdGVkRXJyb3JzOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY29tcG9uZW50V2lsbE1vdW50ICgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKHRoaXMuc3RhdGUsIHRydWUpXG4gICAgICB9LFxuICAgICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAocHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3BzLnZhbHVlcyA9PT0gdGhpcy5wcm9wcy52YWx1ZXMpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHtcbiAgICAgICAgICB2YWx1ZXM6IF8uY2xvbmUocHJvcHMudmFsdWVzKSB8fCB7fVxuICAgICAgICB9LCB0cnVlKVxuICAgICAgfSxcbiAgICAgIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy53aWxsVW5tb3VudCh0aGlzLnN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgfSxcblxuICAgICAgLy8gQVBJXG4gICAgICBzZXRWYWx1ZSAoZmllbGQsIHZhbHVlLCBub1RvdWNoKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCB2YWx1ZSlcbiAgICAgICAgLy8gQWxzbyBzZXQgdG91Y2hlZCBzaW5jZSB0aGUgdmFsdWUgaXMgY2hhbmdpbmdcbiAgICAgICAgaWYgKG5vVG91Y2gpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlc30pXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdG91Y2hlZCA9IF8uc2V0KHN0YXRlLnRvdWNoZWQsIGZpZWxkLCB2YWx1ZSlcbiAgICAgICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlcywgdG91Y2hlZH0pXG4gICAgICB9LFxuICAgICAgZ2V0VmFsdWUgKGZpZWxkLCBmYWxsYmFjaykge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgdmFsID0gXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZClcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgIT09ICd1bmRlZmluZWQnID8gdmFsIDogZmFsbGJhY2tcbiAgICAgIH0sXG4gICAgICBzZXROZXN0ZWRFcnJvciAoZmllbGQsIHZhbHVlID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBuZXN0ZWRFcnJvcnMgPSBfLnNldCh0aGlzLnN0YXRlLm5lc3RlZEVycm9ycywgZmllbGQsIHZhbHVlKVxuICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZSh7bmVzdGVkRXJyb3JzfSlcbiAgICAgIH0sXG4gICAgICBnZXRFcnJvciAoZmllbGQpIHtcbiAgICAgICAgcmV0dXJuIF8uZ2V0KHRoaXMuc3RhdGUuZXJyb3JzLCBmaWVsZClcbiAgICAgIH0sXG4gICAgICBzZXRUb3VjaGVkIChmaWVsZCwgdmFsdWUgPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IHRvdWNoZWQgPSBfLnNldCh0aGlzLnN0YXRlLnRvdWNoZWQsIGZpZWxkLCB2YWx1ZSlcbiAgICAgICAgdGhpcy5zZXRGb3JtU3RhdGUoe3RvdWNoZWR9KVxuICAgICAgfSxcbiAgICAgIGdldFRvdWNoZWQgKGZpZWxkKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5kaXJ0eSA9PT0gdHJ1ZSB8fCB0aGlzLnByb3BzLnRvdWNoZWQgPT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLmdldChzdGF0ZS50b3VjaGVkLCBmaWVsZClcbiAgICAgIH0sXG4gICAgICBhZGRWYWx1ZSAoZmllbGQsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXG4gICAgICAgICAgLi4uXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pLFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIF0pXG4gICAgICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICAgICAgfSxcbiAgICAgIHJlbW92ZVZhbHVlIChmaWVsZCwgaW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBfLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXSlcbiAgICAgICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgICAgIC4uLmZpZWxkVmFsdWUuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICAgIC4uLmZpZWxkVmFsdWUuc2xpY2UoaW5kZXggKyAxKVxuICAgICAgICBdKVxuICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICAgIH0sXG4gICAgICBzd2FwVmFsdWVzIChmaWVsZCwgaW5kZXgsIGRlc3RJbmRleCkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZXMgPSBfLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXSlcbiAgICAgICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgICAgICBmaWVsZFZhbHVlc1tkZXN0SW5kZXhdLFxuICAgICAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKGluZGV4ICsgMSwgZGVzdEluZGV4KSxcbiAgICAgICAgICBmaWVsZFZhbHVlc1tpbmRleF0sXG4gICAgICAgICAgLi4uZmllbGRWYWx1ZXMuc2xpY2UoZGVzdEluZGV4ICsgMSlcbiAgICAgICAgXSlcbiAgICAgICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlc30pXG4gICAgICB9LFxuICAgICAgc2V0QWxsVG91Y2hlZCAoZGlydHkgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHtkaXJ0eTogISFkaXJ0eX0pXG4gICAgICB9LFxuICAgICAgc3VibWl0Rm9ybSAoZSkge1xuICAgICAgICBlICYmIGUucHJldmVudERlZmF1bHQgJiYgZS5wcmV2ZW50RGVmYXVsdChlKVxuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy52YWxpZGF0ZShzdGF0ZS52YWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgaWYgKCFzdGF0ZS5kaXJ0eSkge1xuICAgICAgICAgICAgdGhpcy5zZXRBbGxUb3VjaGVkKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25WYWxpZGF0aW9uRmFpbChzdGF0ZSwgdGhpcy5wcm9wcylcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmVTdWJtaXRWYWx1ZXMgPSB0aGlzLnByb3BzLnByZVN1Ym1pdChzdGF0ZS52YWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgICB0aGlzLnByb3BzLm9uU3VibWl0KHByZVN1Ym1pdFZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICAgIHRoaXMucHJvcHMucG9zdFN1Ym1pdChwcmVTdWJtaXRWYWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgfSxcblxuICAgICAgLy8gVXRpbHNcbiAgICAgIGdldEFQSSAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2V0VmFsdWU6IHRoaXMuc2V0VmFsdWUsXG4gICAgICAgICAgZ2V0VmFsdWU6IHRoaXMuZ2V0VmFsdWUsXG4gICAgICAgICAgc2V0TmVzdGVkRXJyb3I6IHRoaXMuc2V0TmVzdGVkRXJyb3IsXG4gICAgICAgICAgZ2V0RXJyb3I6IHRoaXMuZ2V0RXJyb3IsXG4gICAgICAgICAgc2V0VG91Y2hlZDogdGhpcy5zZXRUb3VjaGVkLFxuICAgICAgICAgIGdldFRvdWNoZWQ6IHRoaXMuZ2V0VG91Y2hlZCxcbiAgICAgICAgICBhZGRWYWx1ZTogdGhpcy5hZGRWYWx1ZSxcbiAgICAgICAgICByZW1vdmVWYWx1ZTogdGhpcy5yZW1vdmVWYWx1ZSxcbiAgICAgICAgICBzd2FwVmFsdWVzOiB0aGlzLnN3YXBWYWx1ZXMsXG4gICAgICAgICAgc2V0QWxsVG91Y2hlZDogdGhpcy5zZXRBbGxUb3VjaGVkLFxuICAgICAgICAgIHN1Ym1pdEZvcm06IHRoaXMuc3VibWl0Rm9ybVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2V0Rm9ybVN0YXRlIChuZXdTdGF0ZSwgc2lsZW50KSB7XG4gICAgICAgIGlmIChuZXdTdGF0ZSAmJiBuZXdTdGF0ZS52YWx1ZXMpIHtcbiAgICAgICAgICBuZXdTdGF0ZS52YWx1ZXMgPSB0aGlzLnByb3BzLnByZVZhbGlkYXRlKG5ld1N0YXRlLnZhbHVlcywgbmV3U3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICAgICAgbmV3U3RhdGUuZXJyb3JzID0gdGhpcy52YWxpZGF0ZShuZXdTdGF0ZS52YWx1ZXMsIG5ld1N0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgICB9XG4gICAgICAgIC8vIElmIGFsbCBlcnJvcnMgaGF2ZSBiZWVuIHJlbW92ZWQsIG1hcmsgdGhlIGZvcm0gYXMgZ2xvYmFsbHkgY2xlYW4gYWdhaW5cbiAgICAgICAgaWYgKCFuZXdTdGF0ZS5lcnJvcnMgJiYgdGhpcy5zdGF0ZS5kaXJ0eSkge1xuICAgICAgICAgIG5ld1N0YXRlLmRpcnR5ID0gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKG5ld1N0YXRlLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9wcy5zYXZlU3RhdGUodGhpcy5zdGF0ZSwgdGhpcy5wcm9wcylcbiAgICAgICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKHRoaXMuc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIGVtaXRDaGFuZ2UgKHN0YXRlLCBpbml0aWFsKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2Uoc3RhdGUsIHRoaXMucHJvcHMsIGluaXRpYWwpXG4gICAgICB9LFxuICAgICAgdmFsaWRhdGUgKHZhbHVlcykge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnByb3BzLnZhbGlkYXRlKFxuICAgICAgICAgIHJlbW92ZU5lc3RlZEVycm9yVmFsdWVzKHZhbHVlcywgdGhpcy5zdGF0ZSA/IHRoaXMuc3RhdGUubmVzdGVkRXJyb3JzIDoge30pXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIGNsZWFuRXJyb3JzKGVycm9ycylcbiAgICAgIH0sXG4gICAgICAvLyBSZW5kZXJcbiAgICAgIHJlbmRlciAoKSB7XG4gICAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgICAgICAuLi50aGlzLmdldEFQSSgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8Q29tcCB7Li4ucHJvcHN9IC8+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbi8vIFV0aWxzXG5cbmZ1bmN0aW9uIGNsZWFuRXJyb3JzIChlcnIpIHtcbiAgaWYgKF8uaXNPYmplY3QoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gXy5tYXBWYWx1ZXMoZXJyLCBjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IF8ucGlja0J5KHJlc29sdmVkLCBkID0+IGQpXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvdW5kKS5sZW5ndGggPyByZXNvbHZlZCA6IHVuZGVmaW5lZFxuICB9XG4gIGlmIChfLmlzQXJyYXkoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gZXJyLm1hcChjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IHJlc29sdmVkLmZpbmQoZCA9PiBkKVxuICAgIHJldHVybiBmb3VuZCA/IHJlc29sdmVkIDogdW5kZWZpbmVkXG4gIH1cbiAgcmV0dXJuIGVyclxufVxuXG5mdW5jdGlvbiByZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyAodmFsdWUsIG5lc3RlZEVycm9ycykge1xuICBjb25zdCByZWN1cnNlID0gKHZhbHVlLCBwYXRoID0gW10pID0+IHtcbiAgICBpZiAoXy5nZXQobmVzdGVkRXJyb3JzLCBwYXRoKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoXy5pc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBfLm1hcFZhbHVlcyh2YWx1ZSwgKGQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlY3Vyc2UoZCwgWy4uLnBhdGgsIGldKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKF8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGQsIGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVjdXJzZShkLCBbLi4ucGF0aCwga2V5XSlcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIHJldHVybiByZWN1cnNlKHZhbHVlKVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzIl0sIm5hbWVzIjpbIkZvcm0iLCJub29wIiwicmVvcCIsImQiLCJGb3JtRGVmYXVsdFByb3BzIiwibG9hZFN0YXRlIiwiZGVmYXVsdFZhbHVlcyIsInByZVZhbGlkYXRlIiwidmFsaWRhdGUiLCJvblZhbGlkYXRpb25GYWlsIiwib25DaGFuZ2UiLCJzYXZlU3RhdGUiLCJ3aWxsVW5tb3VudCIsInByZVN1Ym1pdCIsIm9uU3VibWl0IiwicG9zdFN1Ym1pdCIsImNvbmZpZyIsIkNvbXAiLCJjcmVhdGVDbGFzcyIsImNoaWxkQ29udGV4dFR5cGVzIiwiZm9ybUFQSSIsIlByb3BUeXBlcyIsIm9iamVjdCIsImdldENoaWxkQ29udGV4dCIsImdldEFQSSIsImdldERlZmF1bHRQcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImdldEluaXRpYWxTdGF0ZSIsInZhbHVlcyIsImNsb25lIiwicHJvcHMiLCJ0b3VjaGVkIiwiZXJyb3JzIiwibmVzdGVkRXJyb3JzIiwiY29tcG9uZW50V2lsbE1vdW50IiwiZW1pdENoYW5nZSIsInN0YXRlIiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsInNldEZvcm1TdGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwic2V0VmFsdWUiLCJmaWVsZCIsInZhbHVlIiwibm9Ub3VjaCIsInNldCIsImdldFZhbHVlIiwiZmFsbGJhY2siLCJ2YWwiLCJnZXQiLCJzZXROZXN0ZWRFcnJvciIsImdldEVycm9yIiwic2V0VG91Y2hlZCIsImdldFRvdWNoZWQiLCJkaXJ0eSIsImFkZFZhbHVlIiwicmVtb3ZlVmFsdWUiLCJpbmRleCIsImZpZWxkVmFsdWUiLCJzbGljZSIsInN3YXBWYWx1ZXMiLCJkZXN0SW5kZXgiLCJmaWVsZFZhbHVlcyIsInNldEFsbFRvdWNoZWQiLCJzdWJtaXRGb3JtIiwiZSIsInByZXZlbnREZWZhdWx0IiwicHJlU3VibWl0VmFsdWVzIiwibmV3U3RhdGUiLCJzaWxlbnQiLCJzZXRTdGF0ZSIsImluaXRpYWwiLCJyZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyIsImNsZWFuRXJyb3JzIiwicmVuZGVyIiwiZXJyIiwiaXNPYmplY3QiLCJyZXNvbHZlZCIsIm1hcFZhbHVlcyIsImZvdW5kIiwicGlja0J5Iiwia2V5cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImlzQXJyYXkiLCJtYXAiLCJmaW5kIiwicmVjdXJzZSIsInBhdGgiLCJpIiwia2V5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7a0JBb0J3QkEsSTs7QUFwQnhCOzs7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBTUMsT0FBTyxTQUFQQSxJQUFPLEdBQU0sQ0FBRSxDQUFyQjtBQUNBLElBQU1DLE9BQU8sU0FBUEEsSUFBTztBQUFBLFNBQUtDLENBQUw7QUFBQSxDQUFiOztBQUVPLElBQU1DLDhDQUFtQjtBQUM5QkMsYUFBV0osSUFEbUI7QUFFOUJLLGlCQUFlLEVBRmU7QUFHOUJDLGVBQWFMLElBSGlCO0FBSTlCTSxZQUFVO0FBQUEsV0FBTSxJQUFOO0FBQUEsR0FKb0I7QUFLOUJDLG9CQUFrQlIsSUFMWTtBQU05QlMsWUFBVVQsSUFOb0I7QUFPOUJVLGFBQVdWLElBUG1CO0FBUTlCVyxlQUFhWCxJQVJpQjtBQVM5QlksYUFBV1gsSUFUbUI7QUFVOUJZLFlBQVViLElBVm9CO0FBVzlCYyxjQUFZZDtBQVhrQixDQUF6Qjs7QUFjUSxTQUFTRCxJQUFULEdBQTRCO0FBQUEsTUFBYmdCLE1BQWEsdUVBQUosRUFBSTs7QUFDekMsU0FBTyxVQUFDQyxJQUFELEVBQVU7QUFDZixXQUFPLGdCQUFNQyxXQUFOLENBQWtCO0FBQ3ZCQyx5QkFBbUI7QUFDakJDLGlCQUFTLGdCQUFNQyxTQUFOLENBQWdCQztBQURSLE9BREk7QUFJdkJDLHFCQUp1Qiw2QkFJSjtBQUNqQixlQUFPO0FBQ0xILG1CQUFTLEtBQUtJLE1BQUw7QUFESixTQUFQO0FBR0QsT0FSc0I7O0FBU3ZCO0FBQ0FDLHFCQVZ1Qiw2QkFVSjtBQUNqQixlQUFPQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFr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QVYsQ0FBSixFQUFzQjtBQUNwQixhQUFPQSxNQUFNMEMsR0FBTixDQUFVLFVBQUNsRixDQUFELEVBQUl1RixHQUFKLEVBQVk7QUFDM0IsZUFBT0gsUUFBUXBGLENBQVIsK0JBQWVxRixJQUFmLElBQXFCRSxHQUFyQixHQUFQO0FBQ0QsT0FGTSxDQUFQO0FBR0Q7QUFDRCxXQUFPL0MsS0FBUDtBQUNELEdBZkQ7QUFnQkEsU0FBTzRDLFFBQVE1QyxLQUFSLENBQVA7QUFDRCIsImZpbGUiOiJmb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IF8gZnJvbSAnLi91dGlscydcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5jb25zdCByZW9wID0gZCA9PiBkXG5cbmV4cG9ydCBjb25zdCBGb3JtRGVmYXVsdFByb3BzID0ge1xuICBsb2FkU3RhdGU6IG5vb3AsXG4gIGRlZmF1bHRWYWx1ZXM6IHt9LFxuICBwcmVWYWxpZGF0ZTogcmVvcCxcbiAgdmFsaWRhdGU6ICgpID0+IG51bGwsXG4gIG9uVmFsaWRhdGlvbkZhaWw6IG5vb3AsXG4gIG9uQ2hhbmdlOiBub29wLFxuICBzYXZlU3RhdGU6IG5vb3AsXG4gIHdpbGxVbm1vdW50OiBub29wLFxuICBwcmVTdWJtaXQ6IHJlb3AsXG4gIG9uU3VibWl0OiBub29wLFxuICBwb3N0U3VibWl0OiBub29wXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvcm0gKGNvbmZpZyA9IHt9KSB7XG4gIHJldHVybiAoQ29tcCkgPT4ge1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgICBjaGlsZENvbnRleHRUeXBlczoge1xuICAgICAgICBmb3JtQVBJOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0XG4gICAgICB9LFxuICAgICAgZ2V0Q2hpbGRDb250ZXh0ICgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmb3JtQVBJOiB0aGlzLmdldEFQSSgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBMaWZlY3ljbGVcbiAgICAgIGdldERlZmF1bHRQcm9wcyAoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBGb3JtRGVmYXVsdFByb3BzLCBjb25maWcpXG4gICAgICB9LFxuICAgICAgZ2V0SW5pdGlhbFN0YXRlICgpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LmFzc2lnbih7fSwgXy5jbG9uZShjb25maWcuZGVmYXVsdFZhbHVlcyksIF8uY2xvbmUodGhpcy5wcm9wcy52YWx1ZXMpKVxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5sb2FkU3RhdGUodGhpcy5wcm9wcykgfHwge1xuICAgICAgICAgIHZhbHVlcyxcbiAgICAgICAgICB0b3VjaGVkOiB7fSxcbiAgICAgICAgICBlcnJvcnM6IHRoaXMudmFsaWRhdGUodmFsdWVzKSxcbiAgICAgICAgICBuZXN0ZWRFcnJvcnM6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjb21wb25lbnRXaWxsTW91bnQgKCkge1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UodGhpcy5zdGF0ZSwgdHJ1ZSlcbiAgICAgIH0sXG4gICAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIChwcm9wcykge1xuICAgICAgICBpZiAocHJvcHMudmFsdWVzID09PSB0aGlzLnByb3BzLnZhbHVlcykge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRGb3JtU3RhdGUoe1xuICAgICAgICAgIHZhbHVlczogXy5jbG9uZShwcm9wcy52YWx1ZXMpIHx8IHt9XG4gICAgICAgIH0sIHRydWUpXG4gICAgICB9LFxuICAgICAgY29tcG9uZW50V2lsbFVubW91bnQgKCkge1xuICAgICAgICB0aGlzLnByb3BzLndpbGxVbm1vdW50KHRoaXMuc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICB9LFxuXG4gICAgICAvLyBBUElcbiAgICAgIHNldFZhbHVlIChmaWVsZCwgdmFsdWUsIG5vVG91Y2gpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IF8uc2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIHZhbHVlKVxuICAgICAgICAvLyBBbHNvIHNldCB0b3VjaGVkIHNpbmNlIHRoZSB2YWx1ZSBpcyBjaGFuZ2luZ1xuICAgICAgICBpZiAobm9Ub3VjaCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0b3VjaGVkID0gXy5zZXQoc3RhdGUudG91Y2hlZCwgZmllbGQsIHZhbHVlKVxuICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzLCB0b3VjaGVkfSlcbiAgICAgIH0sXG4gICAgICBnZXRWYWx1ZSAoZmllbGQsIGZhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgICAgICBjb25zdCB2YWwgPSBfLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkKVxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCAhPT0gJ3VuZGVmaW5lZCcgPyB2YWwgOiBmYWxsYmFja1xuICAgICAgfSxcbiAgICAgIHNldE5lc3RlZEVycm9yIChmaWVsZCwgdmFsdWUgPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IG5lc3RlZEVycm9ycyA9IF8uc2V0KHRoaXMuc3RhdGUubmVzdGVkRXJyb3JzLCBmaWVsZCwgdmFsdWUpXG4gICAgICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHtuZXN0ZWRFcnJvcnN9KVxuICAgICAgfSxcbiAgICAgIGdldEVycm9yIChmaWVsZCkge1xuICAgICAgICByZXR1cm4gXy5nZXQodGhpcy5zdGF0ZS5lcnJvcnMsIGZpZWxkKVxuICAgICAgfSxcbiAgICAgIHNldFRvdWNoZWQgKGZpZWxkLCB2YWx1ZSA9IHRydWUpIHtcbiAgICAgICAgY29uc3QgdG91Y2hlZCA9IF8uc2V0KHRoaXMuc3RhdGUudG91Y2hlZCwgZmllbGQsIHZhbHVlKVxuICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dG91Y2hlZH0pXG4gICAgICB9LFxuICAgICAgZ2V0VG91Y2hlZCAoZmllbGQpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmRpcnR5ID09PSB0cnVlIHx8IHRoaXMucHJvcHMudG91Y2hlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8uZ2V0KHN0YXRlLnRvdWNoZWQsIGZpZWxkKVxuICAgICAgfSxcbiAgICAgIGFkZFZhbHVlIChmaWVsZCwgdmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IF8uc2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIFtcbiAgICAgICAgICAuLi5fLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXSksXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgXSlcbiAgICAgICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlc30pXG4gICAgICB9LFxuICAgICAgcmVtb3ZlVmFsdWUgKGZpZWxkLCBpbmRleCkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IF8uZ2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIFtdKVxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXG4gICAgICAgICAgLi4uZmllbGRWYWx1ZS5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgLi4uZmllbGRWYWx1ZS5zbGljZShpbmRleCArIDEpXG4gICAgICAgIF0pXG4gICAgICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICAgICAgfSxcbiAgICAgIHN3YXBWYWx1ZXMgKGZpZWxkLCBpbmRleCwgZGVzdEluZGV4KSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgICAgICBjb25zdCBmaWVsZFZhbHVlcyA9IF8uZ2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIFtdKVxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXG4gICAgICAgICAgLi4uZmllbGRWYWx1ZXMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICAgIGZpZWxkVmFsdWVzW2Rlc3RJbmRleF0sXG4gICAgICAgICAgLi4uZmllbGRWYWx1ZXMuc2xpY2UoaW5kZXggKyAxLCBkZXN0SW5kZXgpLFxuICAgICAgICAgIGZpZWxkVmFsdWVzW2luZGV4XSxcbiAgICAgICAgICAuLi5maWVsZFZhbHVlcy5zbGljZShkZXN0SW5kZXggKyAxKVxuICAgICAgICBdKVxuICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICAgIH0sXG4gICAgICBzZXRBbGxUb3VjaGVkIChkaXJ0eSA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5zZXRGb3JtU3RhdGUoe2RpcnR5OiAhIWRpcnR5fSlcbiAgICAgIH0sXG4gICAgICBzdWJtaXRGb3JtIChlKSB7XG4gICAgICAgIGUgJiYgZS5wcmV2ZW50RGVmYXVsdCAmJiBlLnByZXZlbnREZWZhdWx0KGUpXG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnZhbGlkYXRlKHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgICBpZiAoIXN0YXRlLmRpcnR5KSB7XG4gICAgICAgICAgICB0aGlzLnNldEFsbFRvdWNoZWQoKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5vblZhbGlkYXRpb25GYWlsKHN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZVN1Ym1pdFZhbHVlcyA9IHRoaXMucHJvcHMucHJlU3VibWl0KHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICAgIHRoaXMucHJvcHMub25TdWJtaXQocHJlU3VibWl0VmFsdWVzLCBzdGF0ZSwgdGhpcy5wcm9wcylcbiAgICAgICAgdGhpcy5wcm9wcy5wb3N0U3VibWl0KHByZVN1Ym1pdFZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICB9LFxuXG4gICAgICAvLyBVdGlsc1xuICAgICAgZ2V0QVBJICgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZXRWYWx1ZTogdGhpcy5zZXRWYWx1ZSxcbiAgICAgICAgICBnZXRWYWx1ZTogdGhpcy5nZXRWYWx1ZSxcbiAgICAgICAgICBzZXROZXN0ZWRFcnJvcjogdGhpcy5zZXROZXN0ZWRFcnJvcixcbiAgICAgICAgICBnZXRFcnJvcjogdGhpcy5nZXRFcnJvcixcbiAgICAgICAgICBzZXRUb3VjaGVkOiB0aGlzLnNldFRvdWNoZWQsXG4gICAgICAgICAgZ2V0VG91Y2hlZDogdGhpcy5nZXRUb3VjaGVkLFxuICAgICAgICAgIGFkZFZhbHVlOiB0aGlzLmFkZFZhbHVlLFxuICAgICAgICAgIHJlbW92ZVZhbHVlOiB0aGlzLnJlbW92ZVZhbHVlLFxuICAgICAgICAgIHN3YXBWYWx1ZXM6IHRoaXMuc3dhcFZhbHVlcyxcbiAgICAgICAgICBzZXRBbGxUb3VjaGVkOiB0aGlzLnNldEFsbFRvdWNoZWQsXG4gICAgICAgICAgc3VibWl0Rm9ybTogdGhpcy5zdWJtaXRGb3JtXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXRGb3JtU3RhdGUgKG5ld1N0YXRlLCBzaWxlbnQpIHtcbiAgICAgICAgaWYgKG5ld1N0YXRlICYmIG5ld1N0YXRlLnZhbHVlcykge1xuICAgICAgICAgIG5ld1N0YXRlLnZhbHVlcyA9IHRoaXMucHJvcHMucHJlVmFsaWRhdGUobmV3U3RhdGUudmFsdWVzLCBuZXdTdGF0ZSwgdGhpcy5wcm9wcylcbiAgICAgICAgICBuZXdTdGF0ZS5lcnJvcnMgPSB0aGlzLnZhbGlkYXRlKG5ld1N0YXRlLnZhbHVlcywgbmV3U3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvcHMuc2F2ZVN0YXRlKHRoaXMuc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBlbWl0Q2hhbmdlIChzdGF0ZSwgaW5pdGlhbCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHN0YXRlLCB0aGlzLnByb3BzLCBpbml0aWFsKVxuICAgICAgfSxcbiAgICAgIHZhbGlkYXRlICh2YWx1ZXMpIHtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5wcm9wcy52YWxpZGF0ZShcbiAgICAgICAgICByZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyh2YWx1ZXMsIHRoaXMuc3RhdGUgPyB0aGlzLnN0YXRlLm5lc3RlZEVycm9ycyA6IHt9KVxuICAgICAgICApXG4gICAgICAgIHJldHVybiBjbGVhbkVycm9ycyhlcnJvcnMpXG4gICAgICB9LFxuICAgICAgLy8gUmVuZGVyXG4gICAgICByZW5kZXIgKCkge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAgICAgLi4udGhpcy5nZXRBUEkoKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPENvbXAgey4uLnByb3BzfSAvPlxuICAgICAgICApXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG4vLyBVdGlsc1xuXG5mdW5jdGlvbiBjbGVhbkVycm9ycyAoZXJyKSB7XG4gIGlmIChfLmlzT2JqZWN0KGVycikpIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IF8ubWFwVmFsdWVzKGVyciwgY2xlYW5FcnJvcnMpXG4gICAgY29uc3QgZm91bmQgPSBfLnBpY2tCeShyZXNvbHZlZCwgZCA9PiBkKVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3VuZCkubGVuZ3RoID8gcmVzb2x2ZWQgOiB1bmRlZmluZWRcbiAgfVxuICBpZiAoXy5pc0FycmF5KGVycikpIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IGVyci5tYXAoY2xlYW5FcnJvcnMpXG4gICAgY29uc3QgZm91bmQgPSByZXNvbHZlZC5maW5kKGQgPT4gZClcbiAgICByZXR1cm4gZm91bmQgPyByZXNvbHZlZCA6IHVuZGVmaW5lZFxuICB9XG4gIHJldHVybiBlcnJcbn1cblxuZnVuY3Rpb24gcmVtb3ZlTmVzdGVkRXJyb3JWYWx1ZXMgKHZhbHVlLCBuZXN0ZWRFcnJvcnMpIHtcbiAgY29uc3QgcmVjdXJzZSA9ICh2YWx1ZSwgcGF0aCA9IFtdKSA9PiB7XG4gICAgaWYgKF8uZ2V0KG5lc3RlZEVycm9ycywgcGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICByZXR1cm4gXy5tYXBWYWx1ZXModmFsdWUsIChkLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiByZWN1cnNlKGQsIFsuLi5wYXRoLCBpXSlcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChfLmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKChkLCBrZXkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlY3Vyc2UoZCwgWy4uLnBhdGgsIGtleV0pXG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuICByZXR1cm4gcmVjdXJzZSh2YWx1ZSlcbn1cbiJdfQ== |
@@ -46,3 +46,3 @@ 'use strict'; | ||
}, | ||
touched ? error : '' | ||
touched && typeof error === 'string' ? error : '' | ||
); | ||
@@ -53,2 +53,2 @@ } | ||
// | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtRXJyb3IuanMiXSwibmFtZXMiOlsiRm9ybUVycm9yIiwiZmllbGQiLCJjbGFzc05hbWUiLCJzdHlsZSIsImdldFRvdWNoZWQiLCJnZXRFcnJvciIsInRvdWNoZWQiLCJlcnJvciIsInN0eWxlcyIsImRpc3BsYXkiLCJjbGFzc2VzIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7OztrQkFLd0JBLFM7O0FBTHhCOzs7O0FBQ0E7Ozs7QUFFQTs7Ozs7O0FBRWUsU0FBU0EsU0FBVCxPQUErQztBQUFBLE1BQTFCQyxLQUEwQixRQUExQkEsS0FBMEI7QUFBQSxNQUFuQkMsU0FBbUIsUUFBbkJBLFNBQW1CO0FBQUEsTUFBUkMsS0FBUSxRQUFSQSxLQUFROztBQUM1RCxTQUNFO0FBQUE7QUFBQSxNQUFXLE9BQU9GLEtBQWxCO0FBQ0cscUJBQTRCO0FBQUEsVUFBMUJHLFVBQTBCLFNBQTFCQSxVQUEwQjtBQUFBLFVBQWRDLFFBQWMsU0FBZEEsUUFBYzs7QUFDM0IsVUFBTUMsVUFBVUYsWUFBaEI7QUFDQSxVQUFNRyxRQUFRRixVQUFkO0FBQ0EsVUFBTUcsU0FBUztBQUNiQyxpQkFBU0gsV0FBV0MsS0FBWCxHQUFtQixPQUFuQixHQUE2QjtBQUR6QixPQUFmO0FBR0EsVUFBTUcsVUFBVSwwQkFBVyxXQUFYLEVBQXdCUixTQUF4QixDQUFoQjtBQUNBLGFBQ0U7QUFBQTtBQUFBO0FBQ0UscUJBQVdRLE9BRGI7QUFFRSxpQkFBT0MsT0FBT0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JKLE1BQWxCLEVBQTBCTCxLQUExQjtBQUZUO0FBSUdHLGtCQUFVQyxLQUFWLEdBQWtCO0FBSnJCLE9BREY7QUFRRDtBQWhCSCxHQURGO0FBb0JEO0FBeEJEIiwiZmlsZSI6ImZvcm1FcnJvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG4vL1xuaW1wb3J0IEZvcm1GaWVsZCBmcm9tICcuL2Zvcm1GaWVsZCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9ybUVycm9yICh7ZmllbGQsIGNsYXNzTmFtZSwgc3R5bGV9KSB7XG4gIHJldHVybiAoXG4gICAgPEZvcm1GaWVsZCBmaWVsZD17ZmllbGR9PlxuICAgICAgeyh7Z2V0VG91Y2hlZCwgZ2V0RXJyb3J9KSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdWNoZWQgPSBnZXRUb3VjaGVkKClcbiAgICAgICAgY29uc3QgZXJyb3IgPSBnZXRFcnJvcigpXG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0b3VjaGVkICYmIGVycm9yID8gJ2Jsb2NrJyA6ICdub25lJ1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKCdGb3JtRXJyb3InLCBjbGFzc05hbWUpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgICAgICAgc3R5bGU9e09iamVjdC5hc3NpZ24oe30sIHN0eWxlcywgc3R5bGUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0b3VjaGVkID8gZXJyb3IgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKVxuICAgICAgfX1cbiAgICA8L0Zvcm1GaWVsZD5cbiAgKVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtRXJyb3IuanMiXSwibmFtZXMiOlsiRm9ybUVycm9yIiwiZmllbGQiLCJjbGFzc05hbWUiLCJzdHlsZSIsImdldFRvdWNoZWQiLCJnZXRFcnJvciIsInRvdWNoZWQiLCJlcnJvciIsInN0eWxlcyIsImRpc3BsYXkiLCJjbGFzc2VzIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7OztrQkFLd0JBLFM7O0FBTHhCOzs7O0FBQ0E7Ozs7QUFFQTs7Ozs7O0FBRWUsU0FBU0EsU0FBVCxPQUErQztBQUFBLE1BQTFCQyxLQUEwQixRQUExQkEsS0FBMEI7QUFBQSxNQUFuQkMsU0FBbUIsUUFBbkJBLFNBQW1CO0FBQUEsTUFBUkMsS0FBUSxRQUFSQSxLQUFROztBQUM1RCxTQUNFO0FBQUE7QUFBQSxNQUFXLE9BQU9GLEtBQWxCO0FBQ0cscUJBQTRCO0FBQUEsVUFBMUJHLFVBQTBCLFNBQTFCQSxVQUEwQjtBQUFBLFVBQWRDLFFBQWMsU0FBZEEsUUFBYzs7QUFDM0IsVUFBTUMsVUFBVUYsWUFBaEI7QUFDQSxVQUFNRyxRQUFRRixVQUFkO0FBQ0EsVUFBTUcsU0FBUztBQUNiQyxpQkFBU0gsV0FBV0MsS0FBWCxHQUFtQixPQUFuQixHQUE2QjtBQUR6QixPQUFmO0FBR0EsVUFBTUcsVUFBVSwwQkFBVyxXQUFYLEVBQXdCUixTQUF4QixDQUFoQjtBQUNBLGFBQ0U7QUFBQTtBQUFBO0FBQ0UscUJBQVdRLE9BRGI7QUFFRSxpQkFBT0MsT0FBT0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JKLE1BQWxCLEVBQTBCTCxLQUExQjtBQUZUO0FBSUdHLG1CQUFXLE9BQU9DLEtBQVAsS0FBaUIsUUFBNUIsR0FBdUNBLEtBQXZDLEdBQStDO0FBSmxELE9BREY7QUFRRDtBQWhCSCxHQURGO0FBb0JEO0FBeEJEIiwiZmlsZSI6ImZvcm1FcnJvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG4vL1xuaW1wb3J0IEZvcm1GaWVsZCBmcm9tICcuL2Zvcm1GaWVsZCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9ybUVycm9yICh7ZmllbGQsIGNsYXNzTmFtZSwgc3R5bGV9KSB7XG4gIHJldHVybiAoXG4gICAgPEZvcm1GaWVsZCBmaWVsZD17ZmllbGR9PlxuICAgICAgeyh7Z2V0VG91Y2hlZCwgZ2V0RXJyb3J9KSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdWNoZWQgPSBnZXRUb3VjaGVkKClcbiAgICAgICAgY29uc3QgZXJyb3IgPSBnZXRFcnJvcigpXG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0b3VjaGVkICYmIGVycm9yID8gJ2Jsb2NrJyA6ICdub25lJ1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKCdGb3JtRXJyb3InLCBjbGFzc05hbWUpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgICAgICAgc3R5bGU9e09iamVjdC5hc3NpZ24oe30sIHN0eWxlcywgc3R5bGUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0b3VjaGVkICYmIHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycgPyBlcnJvciA6ICcnfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvRm9ybUZpZWxkPlxuICApXG59XG4iXX0= |
{ | ||
"name": "react-form", | ||
"version": "0.9.0", | ||
"version": "0.9.1", | ||
"description": "A fast, lightweight, opinionated table and datagrid built on React", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.reactForm = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,s=Array(t.length);e<t.length;e++)s[e]=t[e];return s}return Array.from(t)}function Form(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e){return _react2.default.createClass({childContextTypes:{formAPI:_react2.default.PropTypes.object},getChildContext:function(){return{formAPI:this.getAPI()}},getDefaultProps:function(){return Object.assign({},FormDefaultProps,t)},getInitialState:function(){var e=Object.assign({},_utils2.default.clone(t.defaultValues),_utils2.default.clone(this.props.values));return this.props.loadState(this.props)||{values:e,touched:{},errors:this.validate(e),nestedErrors:{}}},componentWillMount:function(){this.emitChange(this.state,!0)},componentWillReceiveProps:function(t){t.values!==this.props.values&&this.setFormState({values:_utils2.default.clone(t.values)||{}},!0)},componentWillUnmount:function(){this.props.willUnmount(this.state,this.props)},setValue:function(t,e,s){var r=this.state,a=_utils2.default.set(r.values,t,e);if(s)return this.setFormState({values:a});var u=_utils2.default.set(r.touched,t,e);this.setFormState({values:a,touched:u})},getValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t);return"undefined"!=typeof r?r:e},setNestedError:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.nestedErrors,t,e);this.setFormState({nestedErrors:s})},getError:function(t){return _utils2.default.get(this.state.errors,t)},setTouched:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.touched,t,e);this.setFormState({touched:s})},getTouched:function(t){var e=this.state;return this.state.dirty===!0||this.props.touched===!0||_utils2.default.get(e.touched,t)},addValue:function(t,e){var s=this.state,r=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(_utils2.default.get(s.values,t,[])),[e]));this.setFormState({values:r})},removeValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t,[]),a=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(r.slice(0,e)),_toConsumableArray(r.slice(e+1))));this.setFormState({values:a})},swapValues:function(t,e,s){var r=this.state,a=_utils2.default.get(r.values,t,[]),u=_utils2.default.set(r.values,t,[].concat(_toConsumableArray(a.slice(0,e)),[a[s]],_toConsumableArray(a.slice(e+1,s)),[a[e]],_toConsumableArray(a.slice(s+1))));this.setFormState({values:u})},setAllTouched:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.setFormState({dirty:!!t})},submitForm:function(t){t&&t.preventDefault&&t.preventDefault(t);var e=this.state,s=this.validate(e.values,e,this.props);if(s)return e.dirty||this.setAllTouched(),this.props.onValidationFail(e,this.props);var r=this.props.preSubmit(e.values,e,this.props);this.props.onSubmit(r,e,this.props),this.props.postSubmit(r,e,this.props)},getAPI:function(){return{setValue:this.setValue,getValue:this.getValue,setNestedError:this.setNestedError,getError:this.getError,setTouched:this.setTouched,getTouched:this.getTouched,addValue:this.addValue,removeValue:this.removeValue,swapValues:this.swapValues,setAllTouched:this.setAllTouched,submitForm:this.submitForm}},setFormState:function(t,e){var s=this;t&&t.values&&(t.values=this.props.preValidate(t.values,t,this.props),t.errors=this.validate(t.values,t,this.props)),!t.errors&&this.state.dirty&&(t.dirty=!1),this.setState(t,function(){s.props.saveState(s.state,s.props),e||s.emitChange(s.state,s.props)})},emitChange:function(t,e){this.props.onChange(t,this.props,e)},validate:function(t){var e=this.props.validate(removeNestedErrorValues(t,this.state?this.state.nestedErrors:{}));return cleanErrors(e)},render:function(){var t=_extends({},this.props,this.state,this.getAPI());return _react2.default.createElement(e,t)}})}}function cleanErrors(t){if(_utils2.default.isObject(t)){var e=_utils2.default.mapValues(t,cleanErrors),s=_utils2.default.pickBy(e,function(t){return t});return Object.keys(s).length?e:void 0}if(_utils2.default.isArray(t)){var r=t.map(cleanErrors),a=r.find(function(t){return t});return a?r:void 0}return t}function removeNestedErrorValues(t,e){var s=function t(s){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!_utils2.default.get(e,r))return _utils2.default.isObject(s)?_utils2.default.mapValues(s,function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))}):_utils2.default.isArray(s)?s.map(function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))}):s};return s(t)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDefaultProps=void 0;var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t};exports.default=Form;var _react=require("react"),_react2=_interopRequireDefault(_react),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils),noop=function(){},reop=function(t){return t},FormDefaultProps=exports.FormDefaultProps={loadState:noop,defaultValues:{},preValidate:reop,validate:function(){return null},onValidationFail:noop,onChange:noop,saveState:noop,willUnmount:noop,preSubmit:reop,onSubmit:noop,postSubmit:noop}; | ||
"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,s=Array(t.length);e<t.length;e++)s[e]=t[e];return s}return Array.from(t)}function Form(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e){return _react2.default.createClass({childContextTypes:{formAPI:_react2.default.PropTypes.object},getChildContext:function(){return{formAPI:this.getAPI()}},getDefaultProps:function(){return Object.assign({},FormDefaultProps,t)},getInitialState:function(){var e=Object.assign({},_utils2.default.clone(t.defaultValues),_utils2.default.clone(this.props.values));return this.props.loadState(this.props)||{values:e,touched:{},errors:this.validate(e),nestedErrors:{}}},componentWillMount:function(){this.emitChange(this.state,!0)},componentWillReceiveProps:function(t){t.values!==this.props.values&&this.setFormState({values:_utils2.default.clone(t.values)||{}},!0)},componentWillUnmount:function(){this.props.willUnmount(this.state,this.props)},setValue:function(t,e,s){var r=this.state,a=_utils2.default.set(r.values,t,e);if(s)return this.setFormState({values:a});var u=_utils2.default.set(r.touched,t,e);this.setFormState({values:a,touched:u})},getValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t);return"undefined"!=typeof r?r:e},setNestedError:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.nestedErrors,t,e);this.setFormState({nestedErrors:s})},getError:function(t){return _utils2.default.get(this.state.errors,t)},setTouched:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.touched,t,e);this.setFormState({touched:s})},getTouched:function(t){var e=this.state;return this.state.dirty===!0||this.props.touched===!0||_utils2.default.get(e.touched,t)},addValue:function(t,e){var s=this.state,r=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(_utils2.default.get(s.values,t,[])),[e]));this.setFormState({values:r})},removeValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t,[]),a=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(r.slice(0,e)),_toConsumableArray(r.slice(e+1))));this.setFormState({values:a})},swapValues:function(t,e,s){var r=this.state,a=_utils2.default.get(r.values,t,[]),u=_utils2.default.set(r.values,t,[].concat(_toConsumableArray(a.slice(0,e)),[a[s]],_toConsumableArray(a.slice(e+1,s)),[a[e]],_toConsumableArray(a.slice(s+1))));this.setFormState({values:u})},setAllTouched:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.setFormState({dirty:!!t})},submitForm:function(t){t&&t.preventDefault&&t.preventDefault(t);var e=this.state,s=this.validate(e.values,e,this.props);if(s)return e.dirty||this.setAllTouched(),this.props.onValidationFail(e,this.props);var r=this.props.preSubmit(e.values,e,this.props);this.props.onSubmit(r,e,this.props),this.props.postSubmit(r,e,this.props)},getAPI:function(){return{setValue:this.setValue,getValue:this.getValue,setNestedError:this.setNestedError,getError:this.getError,setTouched:this.setTouched,getTouched:this.getTouched,addValue:this.addValue,removeValue:this.removeValue,swapValues:this.swapValues,setAllTouched:this.setAllTouched,submitForm:this.submitForm}},setFormState:function(t,e){var s=this;t&&t.values&&(t.values=this.props.preValidate(t.values,t,this.props),t.errors=this.validate(t.values,t,this.props)),this.setState(t,function(){s.props.saveState(s.state,s.props),e||s.emitChange(s.state,s.props)})},emitChange:function(t,e){this.props.onChange(t,this.props,e)},validate:function(t){var e=this.props.validate(removeNestedErrorValues(t,this.state?this.state.nestedErrors:{}));return cleanErrors(e)},render:function(){var t=_extends({},this.props,this.state,this.getAPI());return _react2.default.createElement(e,t)}})}}function cleanErrors(t){if(_utils2.default.isObject(t)){var e=_utils2.default.mapValues(t,cleanErrors),s=_utils2.default.pickBy(e,function(t){return t});return Object.keys(s).length?e:void 0}if(_utils2.default.isArray(t)){var r=t.map(cleanErrors),a=r.find(function(t){return t});return a?r:void 0}return t}function removeNestedErrorValues(t,e){var s=function t(s){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!_utils2.default.get(e,r))return _utils2.default.isObject(s)?_utils2.default.mapValues(s,function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))}):_utils2.default.isArray(s)?s.map(function(e,s){return t(e,[].concat(_toConsumableArray(r),[s]))}):s};return s(t)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDefaultProps=void 0;var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t};exports.default=Form;var _react=require("react"),_react2=_interopRequireDefault(_react),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils),noop=function(){},reop=function(t){return t},FormDefaultProps=exports.FormDefaultProps={loadState:noop,defaultValues:{},preValidate:reop,validate:function(){return null},onValidationFail:noop,onChange:noop,saveState:noop,willUnmount:noop,preSubmit:reop,onSubmit:noop,postSubmit:noop}; | ||
},{"./utils":11,"react":"react"}],2:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function FormError(e){var r=e.field,t=e.className,a=e.style;return _react2.default.createElement(_formField2.default,{field:r},function(e){var r=e.getTouched,l=e.getError,s=r(),u=l(),o={display:s&&u?"block":"none"},i=(0,_classnames2.default)("FormError",t);return _react2.default.createElement("div",{className:i,style:Object.assign({},o,a)},s?u:"")})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=FormError;var _react=require("react"),_react2=_interopRequireDefault(_react),_classnames=require("classnames"),_classnames2=_interopRequireDefault(_classnames),_formField=require("./formField"),_formField2=_interopRequireDefault(_formField); | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function FormError(e){var r=e.field,t=e.className,a=e.style;return _react2.default.createElement(_formField2.default,{field:r},function(e){var r=e.getTouched,l=e.getError,s=r(),o=l(),u={display:s&&o?"block":"none"},i=(0,_classnames2.default)("FormError",t);return _react2.default.createElement("div",{className:i,style:Object.assign({},u,a)},s&&"string"==typeof o?o:"")})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=FormError;var _react=require("react"),_react2=_interopRequireDefault(_react),_classnames=require("classnames"),_classnames2=_interopRequireDefault(_classnames),_formField=require("./formField"),_formField2=_interopRequireDefault(_formField); | ||
@@ -7,0 +7,0 @@ },{"./formField":3,"classnames":12,"react":"react"}],3:[function(require,module,exports){ |
224
README.md
@@ -28,3 +28,3 @@ <div align="center"> | ||
- [Installation](#installation) | ||
- [Quick Example](#quick-example) | ||
- [Example](#example) | ||
- [API](#api) | ||
@@ -47,6 +47,6 @@ - [{ Form }](#-form-) | ||
## Usage | ||
## Example | ||
```javascript | ||
import React from 'react' | ||
import { Form, Text, Checkbox, Textarea, Select } from 'react-form' | ||
import { Form, Text, Select, Textarea, NestedForm, FormError } from 'react-form' | ||
@@ -60,18 +60,20 @@ // To create a new form, simply call `Form(config)(component)` | ||
defaultValues: { | ||
status: 'single' | ||
friends: [], | ||
} | ||
friends: [] | ||
}, | ||
// Validating your form is super easy, just use the `validate` life-cycle method | ||
validate: values => { | ||
// To create form errors, return an object that maps field names with error messages. | ||
// There are many ways to do this, below is just one example: | ||
const { name, hobby, status, friends, address } = values | ||
return { | ||
// If a field has a validation error, set that field to a string that is the error message for that field | ||
// If the field is valid, return any falsey value to mark it as valid. | ||
name: !values.name ? 'A name is required' : undefined, | ||
hobby: (values.hobby && values.hobby.length < 5) ? 'Your hobby must be at least 5 characters long' : false, | ||
status: !values.status ? 'A status is required' : null, | ||
address: !values.address ? 'A valid address is required' : 0 | ||
// you don't need to return anything at all for fields you don't need to validate | ||
name: !name ? 'A name is required' : undefined, | ||
hobby: (hobby && hobby.length < 5) ? 'Your hobby must be at least 5 characters long' : false, | ||
status: !status ? 'A status is required' : null, | ||
friends: (!friends || !friends.length) ? 'You need at least one friend!' : friends.map(friend => { | ||
const { name, relationship } = friend | ||
return { | ||
name: !name ? 'A name is required' : undefined, | ||
relationship: !relationship ? 'A relationship is required' : undefined | ||
} | ||
}), | ||
address: !address ? 'A valid address is required' : 0 | ||
} | ||
@@ -84,3 +86,3 @@ }, | ||
} | ||
})(({ values, submitForm, addValue, removeValue }) => { | ||
})(({ values, submitForm, addValue, removeValue, getError }) => { | ||
// This is a stateless component, but you can use any valid react component to render your form. | ||
@@ -92,80 +94,110 @@ // Forms also supply plenty of useful props for your components to utilize. See the docs for a complete list. | ||
<Text // This is the built-in Text formInput | ||
field='name' // field is a string version of the field location | ||
placeholder='Full Name' // all other props are sent through to the underlying component, in this case an <input /> | ||
/> | ||
<label> | ||
<span>Full Name</span> | ||
<Text // This is the built-in Text formInput | ||
field='name' // field is a string version of the field location | ||
placeholder='Your name' // all other props are sent through to the underlying component, in this case an <input /> | ||
/> | ||
</label> | ||
<Select // This is the built-in Select formInput | ||
field='status' | ||
options={[{ // You can ship it some options like usual | ||
label: 'Single', | ||
value: 'single' | ||
}, { | ||
label: 'In a Relationship', | ||
value: 'relationship' | ||
}, { | ||
label: 'It\'s Complicated', | ||
value: 'complicated' | ||
}]} | ||
/> | ||
<label> | ||
<span>Relationship Status</span> | ||
<Select // This is the built-in Select formInput | ||
field='status' | ||
options={[{ // You can ship it some options like usual | ||
label: 'Single', | ||
value: 'single' | ||
}, { | ||
label: 'In a Relationship', | ||
value: 'relationship' | ||
}, { | ||
label: 'It\'s Complicated', | ||
value: 'complicated' | ||
}]} | ||
/> | ||
</label> | ||
<Textarea // This is the built-in Textarea formInput | ||
field='bio' | ||
placeholder='Short Bio' | ||
/> | ||
<label> | ||
<span>Short Bio</span> | ||
<Textarea // This is the built-in Textarea formInput | ||
field='bio' | ||
placeholder='Short Bio' | ||
/> | ||
</label> | ||
// Arrays in forms are super easy to handle | ||
{values.friends.map((friends, i) => ( // Loop over the values however you'd like | ||
<div> | ||
<label> | ||
<span>Friends</span> | ||
</label> | ||
<Text | ||
field={['friends', i, 'name']} // You can easily pass an array-style field path. Perfect for passing down as props or nested values | ||
placeholder='Friend Name' | ||
/> | ||
{/* Arrays in forms are super easy to handle */} | ||
{/* This is a custom form error for the root of the friends list (see validation function) */} | ||
<FormError field='friends' /> | ||
<div className='nested'> | ||
{!values.friends.length ? ( | ||
<em>No friends have been added yet</em> | ||
) : values.friends.map((friends, i) => ( // Loop over the values however you'd like | ||
<div key={i}> | ||
<Select | ||
field={`friends.${i}.relationship`} // If you don't like arrays, you can also use a string template | ||
options={[{ | ||
label: 'Friend', | ||
value: 'friend' | ||
}, { | ||
label: 'Acquaintance', | ||
value: 'acquaintance' | ||
}, { | ||
label: 'Colleague', | ||
value: 'colleague' | ||
}]} | ||
/> | ||
<label> | ||
<span>Full Name</span> | ||
<Text | ||
field={['friends', i, 'name']} // You can easily pass an array-style field path. Perfect for passing down as props or nested values | ||
placeholder='Friend Name' | ||
/> | ||
</label> | ||
// This button will remove this friend from the `friends` field | ||
<button | ||
type='button' | ||
onClick={removeValue(['friends', i])} // `removeValue` takes a field location for an item in an array | ||
> | ||
Remove Friend | ||
</button> | ||
<label> | ||
<span>Full Name</span> | ||
<Select | ||
field={`friends.${i}.relationship`} // If you don't like arrays, you can also use a string template | ||
options={[{ | ||
label: 'Friend', | ||
value: 'friend' | ||
}, { | ||
label: 'Acquaintance', | ||
value: 'acquaintance' | ||
}, { | ||
label: 'Colleague', | ||
value: 'colleague' | ||
}]} | ||
/> | ||
</label> | ||
</div> | ||
))} | ||
<button // This button will remove this friend from the `friends` field | ||
type='button' | ||
onClick={() => removeValue('friends', i)} // `removeValue` takes a field location for an array, and the index for the item to remove | ||
> | ||
Remove Friend | ||
</button> | ||
// This button will add a new blank friend item to the `friends` field | ||
<button | ||
</div> | ||
))} | ||
</div> | ||
<button // This button will add a new blank friend item to the `friends` field | ||
type='button' | ||
onClick={addValue('friends', {})} // `addValue` takes an array-like field, and the value to add | ||
> | ||
Remove Friend | ||
onClick={() => addValue('friends', {})} // `addValue` takes an array-like field, and the value to add | ||
> | ||
Add Friend | ||
</button> | ||
// An address has a couple of parts to it, and will probably have its own validation function. | ||
// Let's make it reusable by using a nested form | ||
<br /> | ||
<br /> | ||
<label> | ||
<span>Address</span> | ||
</label> | ||
{/* An address has a couple of parts to it, and will probably have its own validation function. */} | ||
{/* Let's make it reusable by using a nested form */} | ||
<NestedForm | ||
form={AddressForm} // This is just another form that we built below | ||
field='address' // The results of this nested form will be set here on this form. | ||
field='address' // The results of this nested form will be set to this field value on this form. | ||
/> | ||
// Since this is the parent form, let's put a submit button in there ;) | ||
// You can submit your form however you want, as long as you call the `submitForm` callback | ||
{/* // Since this is the parent form, let's put a submit button in there ;) */} | ||
{/* // You can submit your form however you want, as long as you call the `submitForm` callback */} | ||
<button> | ||
Submit | ||
</button> | ||
</form> | ||
@@ -180,8 +212,8 @@ ) | ||
return { | ||
street: !values.street ? 'street' : undefined | ||
city: !values.city ? 'city' : undefined | ||
state: !values.state ? 'state' : undefined | ||
street: !values.street ? 'A street is required' : undefined, | ||
city: !values.city ? 'A city is required' : undefined, | ||
state: !values.state ? 'A state is required' : undefined | ||
} | ||
} | ||
})(({values}) => { | ||
})(() => { | ||
return ( | ||
@@ -191,3 +223,3 @@ <div> | ||
field='street' | ||
placeholder='Address' | ||
placeholder='Street' | ||
/> | ||
@@ -206,14 +238,14 @@ <Text | ||
export default props => { | ||
export default () => { | ||
return ( | ||
<MyForm | ||
// If you wanted to feed your form some existing values, use the `values` prop | ||
values={{ | ||
name: 'Tanner Linsley' | ||
}} | ||
onSubmit={(values) => { | ||
window.alert(JSON.stringify(values, null, 2)) | ||
}} | ||
/> | ||
<div> | ||
<div className='table-wrap'> | ||
<MyForm | ||
onSubmit={(values) => { | ||
window.alert(JSON.stringify(values, null, 2)) | ||
}} | ||
// For more available props, see the docs! | ||
/> | ||
</div> | ||
</div> | ||
) | ||
@@ -406,3 +438,3 @@ } | ||
- `nestedErrors` is an object map indicating any nested forms that did not pass their own validation | ||
- This prop is not recommended for displaying errors. For that, we recommend relying on a `FormInput` or using the `FieldError` component. | ||
- This prop is not recommended for displaying nested form errors. For that, we recommend relying on a `FormInput` or using the `FieldError` component. | ||
- If a nested form contains an error in its own validation lifecycle method, its corresponding `nestedErrors` field will be set to true. | ||
@@ -430,6 +462,6 @@ - Defaults to `{}` | ||
Form()( | ||
({nestedErrors}) => { | ||
console.log(nestedErrors) | ||
({touched}) => { | ||
console.log(touched) | ||
// { | ||
// nestedForm: true // there must be an error in the form located at the "nestedForm" field | ||
// touched: { myField: true } // the `myField` field has been touched | ||
// } | ||
@@ -436,0 +468,0 @@ } |
172212
852
781