@novin-dev/formalite
Version:
Generate MUI form with few line of code
149 lines (142 loc) • 5.42 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var numeral = require('numeral');
var get = require('lodash/get.js');
var Formalite_type = require('../Formalite.type.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var numeral__default = /*#__PURE__*/_interopDefaultLegacy(numeral);
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
var getData = function (_a) {
var source = _a.source, key = _a.key;
return get__default["default"](source, String(key));
};
var generateNestedKeyForYup = function (key) {
var splitedKey = key.split(".");
var generatedKey = "fields.".concat(splitedKey[0]);
splitedKey.forEach(function (item, index) {
if (index !== 0 && index % 2 === 0) {
generatedKey += ".innerType.fields.".concat(item);
}
});
return generatedKey;
};
var generalCheck = function (_a, type) {
var _b;
var schema = _a.schema, formikValues = _a.formikValues, key = _a.key;
var generatedKey = generateNestedKeyForYup(key);
var isRequired = false;
var fieldSchema = get__default["default"](schema, generatedKey);
if (((_b = fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.conditions) === null || _b === void 0 ? void 0 : _b.length) > 0) {
fieldSchema.conditions.every(function (condition) {
var _a;
var refValues = condition.refs.map(function (ref) {
return getData({ source: formikValues, key: ref.key });
});
var newSchema = (_a = condition.fn).bind.apply(_a, tslib.__spreadArray(tslib.__spreadArray([null], refValues, false), [fieldSchema], false))();
isRequired = !!get__default["default"](newSchema, "exclusiveTests.".concat(type));
return !isRequired;
});
}
else {
var value = get__default["default"](fieldSchema, "exclusiveTests.".concat(type));
isRequired = !!value;
}
return isRequired;
};
var checkIsRequired = function (_a) {
var schema = _a.schema, formikValues = _a.formikValues, key = _a.key;
return generalCheck({ schema: schema, formikValues: formikValues, key: key }, "required");
};
var checkIsMin = function (_a) {
var schema = _a.schema, formikValues = _a.formikValues, key = _a.key;
return generalCheck({ schema: schema, formikValues: formikValues, key: key }, "min");
};
var showErrorMessage = function (error) {
console.info("Formalite Error", error);
};
function fData(number) {
return numeral__default["default"](number).format("0.0 b");
}
var getDefaultValue = function (type) {
if ([
Formalite_type.ViewTypes.MultiDropZoneView,
Formalite_type.ViewTypes.SingleDropZoneView,
Formalite_type.ViewTypes.AvatarDropZoneView,
Formalite_type.ViewTypes.CheckGroupView,
Formalite_type.ViewTypes.SwitchGroupView,
Formalite_type.ViewTypes.RepeaterView,
].includes(type)) {
return [];
}
if ([
Formalite_type.ViewTypes.DatePickerView,
Formalite_type.ViewTypes.DateTimePickerView,
Formalite_type.ViewTypes.TimePickerView,
].includes(type)) {
return null;
}
if (Formalite_type.ViewTypes.TextDropZoneView === type) {
return {
text: "",
files: [],
};
}
return "";
};
var handleRandomClassNameOrId = function () {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < 5; i += 1) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
};
var checkRegex = function (_a) {
var regexs = _a.regexs, text = _a.text;
if (!regexs) {
return true;
}
// const allRegexs = regexs.filter((item) => !!item);
var testResult = true;
regexs.forEach(function (item) {
if (item && !item.test(text)) {
testResult = false;
}
});
return testResult;
};
var resetFormFunction = function (formString) {
var result = {};
Object.keys(formString).forEach(function (item) {
if (formString[item].type === Formalite_type.ViewTypes.GroupView) {
result = tslib.__assign(tslib.__assign({}, result), resetFormFunction(formString[item].options));
}
result[item] = getDefaultValue(formString[item].type);
});
return result;
};
var isIOS = function () {
return ([
"iPad Simulator",
"iPhone Simulator",
"iPod Simulator",
"iPad",
"iPhone",
"iPod",
].includes(navigator.platform) ||
// iPad on iOS 13 detection
(navigator.userAgent.includes("Mac") && "ontouchend" in document));
};
exports.checkIsMin = checkIsMin;
exports.checkIsRequired = checkIsRequired;
exports.checkRegex = checkRegex;
exports.fData = fData;
exports.generateNestedKeyForYup = generateNestedKeyForYup;
exports.getData = getData;
exports.getDefaultValue = getDefaultValue;
exports.handleRandomClassNameOrId = handleRandomClassNameOrId;
exports.isIOS = isIOS;
exports.resetFormFunction = resetFormFunction;
exports.showErrorMessage = showErrorMessage;
//# sourceMappingURL=utils.js.map