Skip to content
This repository was archived by the owner on Apr 30, 2018. It is now read-only.

Commit 476f0b6

Browse files
author
Kent C. Dodds
committed
6.21.0-beta.0
1 parent 5a6825b commit 476f0b6

File tree

5 files changed

+122
-12
lines changed

5 files changed

+122
-12
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 6.21.0
1+
# 6.21.0-beta.0
22

33
## New Features
44

dist/formly.js

Lines changed: 116 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! angular-formly version 6.20.1 built with ♥ by Astrism <[email protected]>, Kent C. Dodds <[email protected]> (ó ì_í)=óò=(ì_í ò)
1+
//! angular-formly version 6.21.0-beta.0 built with ♥ by Astrism <[email protected]>, Kent C. Dodds <[email protected]> (ó ì_í)=óò=(ì_í ò)
22

33
(function webpackUniversalModuleDefinition(root, factory) {
44
if(typeof exports === 'object' && typeof module === 'object')
@@ -147,7 +147,7 @@ return /******/ (function(modules) { // webpackBootstrap
147147

148148
ngModule.constant('formlyApiCheck', _providersFormlyApiCheck2['default']);
149149
ngModule.constant('formlyErrorAndWarningsUrlPrefix', _otherDocsBaseUrl2['default']);
150-
ngModule.constant('formlyVersion', ("6.20.1")); // <-- webpack variable
150+
ngModule.constant('formlyVersion', ("6.21.0-beta.0")); // <-- webpack variable
151151

152152
ngModule.provider('formlyUsability', _providersFormlyUsability2['default']);
153153
ngModule.provider('formlyConfig', _providersFormlyConfig2['default']);
@@ -344,6 +344,7 @@ return /******/ (function(modules) { // webpackBootstrap
344344
})).optional,
345345
validators: validatorChecker.optional,
346346
asyncValidators: validatorChecker.optional,
347+
parsers: apiCheck.arrayOf(formlyExpression).optional,
347348
noFormControl: apiCheck.bool.optional,
348349
hide: apiCheck.bool.optional,
349350
hideExpression: formlyExpression.optional,
@@ -443,7 +444,7 @@ return /******/ (function(modules) { // webpackBootstrap
443444
Object.defineProperty(exports, "__esModule", {
444445
value: true
445446
});
446-
exports["default"] = "https://github.com/formly-js/angular-formly/blob/" + ("6.20.1") + "/other/ERRORS_AND_WARNINGS.md#";
447+
exports["default"] = "https://github.com/formly-js/angular-formly/blob/" + ("6.21.0-beta.0") + "/other/ERRORS_AND_WARNINGS.md#";
447448
module.exports = exports["default"];
448449

449450
/***/ },
@@ -739,7 +740,10 @@ return /******/ (function(modules) { // webpackBootstrap
739740

740741
function getTypeHeritage(parent) {
741742
var heritage = [];
742-
var type = getType(parent);
743+
var type = parent;
744+
if (_angularFix2['default'].isString(type)) {
745+
type = getType(parent);
746+
}
743747
parent = type['extends'];
744748
while (parent) {
745749
type = getType(parent);
@@ -895,7 +899,7 @@ return /******/ (function(modules) { // webpackBootstrap
895899

896900
var _angularFix2 = _interopRequireDefault(_angularFix);
897901

898-
exports['default'] = { formlyEval: formlyEval, getFieldId: getFieldId, reverseDeepMerge: reverseDeepMerge, findByNodeName: findByNodeName, arrayify: arrayify, extendFunction: extendFunction };
902+
exports['default'] = { formlyEval: formlyEval, getFieldId: getFieldId, reverseDeepMerge: reverseDeepMerge, findByNodeName: findByNodeName, arrayify: arrayify, extendFunction: extendFunction, extendArray: extendArray };
899903

900904
function formlyEval(scope, expression, $modelValue, $viewValue, extraLocals) {
901905
if (_angularFix2['default'].isFunction(expression)) {
@@ -980,6 +984,25 @@ return /******/ (function(modules) { // webpackBootstrap
980984
});
981985
};
982986
}
987+
988+
function extendArray(primary, secondary, property) {
989+
if (property) {
990+
primary = primary[property];
991+
secondary = secondary[property];
992+
}
993+
if (secondary && primary) {
994+
_angularFix2['default'].forEach(secondary, function (item) {
995+
if (primary.indexOf(item) === -1) {
996+
primary.push(item);
997+
}
998+
});
999+
return primary;
1000+
} else if (secondary) {
1001+
return secondary;
1002+
} else {
1003+
return primary;
1004+
}
1005+
}
9831006
module.exports = exports['default'];
9841007

9851008
/***/ },
@@ -1155,7 +1178,8 @@ return /******/ (function(modules) { // webpackBootstrap
11551178
ctrl.$setValidity(name, false);
11561179
}
11571180
})['finally'](function () {
1158-
if (Object.keys(ctrl.$pending).length === 1) {
1181+
var $pending = ctrl.$pending || {};
1182+
if (Object.keys($pending).length === 1) {
11591183
delete ctrl.$pending;
11601184
} else {
11611185
delete ctrl.$pending[name];
@@ -1198,6 +1222,8 @@ return /******/ (function(modules) { // webpackBootstrap
11981222

11991223
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
12001224

1225+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
1226+
12011227
var _angularFix = __webpack_require__(3);
12021228

12031229
var _angularFix2 = _interopRequireDefault(_angularFix);
@@ -1512,6 +1538,7 @@ return /******/ (function(modules) { // webpackBootstrap
15121538
scope.fc = scope.options.formControl; // shortcut for template authors
15131539
stopWatchingShowError();
15141540
addShowMessagesWatcher();
1541+
addParsers();
15151542
}
15161543
});
15171544
}
@@ -1537,6 +1564,76 @@ return /******/ (function(modules) { // webpackBootstrap
15371564
scope.showError = show; // shortcut for template authors
15381565
});
15391566
}
1567+
1568+
function addParsers() {
1569+
// init with type's parsers
1570+
var parsers = getParsersFromType(type);
1571+
1572+
// get optionsTypes parsers
1573+
parsers = formlyUtil.extendArray(parsers, getParsersFromOptionsTypes(scope.options.optionsTypes));
1574+
1575+
// get field's parsers
1576+
parsers = formlyUtil.extendArray(parsers, scope.options.parsers);
1577+
1578+
// convert parsers into formlyExpression parsers
1579+
_angularFix2['default'].forEach(parsers, function (parser, index) {
1580+
parsers[index] = getFormlyExpressionParser(parser);
1581+
});
1582+
1583+
var ngModelCtrls = scope.fc;
1584+
if (!_angularFix2['default'].isArray(ngModelCtrls)) {
1585+
ngModelCtrls = [ngModelCtrls];
1586+
}
1587+
1588+
_angularFix2['default'].forEach(ngModelCtrls, function (ngModelCtrl) {
1589+
var _ngModelCtrl$$parsers;
1590+
1591+
ngModelCtrl.$parsers = (_ngModelCtrl$$parsers = ngModelCtrl.$parsers).concat.apply(_ngModelCtrl$$parsers, _toConsumableArray(parsers));
1592+
});
1593+
1594+
function getParsersFromType(theType) {
1595+
if (!theType) {
1596+
return [];
1597+
}
1598+
if (_angularFix2['default'].isString(theType)) {
1599+
theType = formlyConfig.getType(theType, true, scope.options);
1600+
}
1601+
var typeParsers = [];
1602+
1603+
// get parsers from parent
1604+
if (theType['extends']) {
1605+
typeParsers = formlyUtil.extendArray(typeParsers, getParsersFromType(theType['extends']));
1606+
}
1607+
1608+
// get own type's parsers
1609+
typeParsers = formlyUtil.extendArray(typeParsers, getDefaultOptionsParsers(theType));
1610+
1611+
// get parsers from optionsTypes
1612+
typeParsers = formlyUtil.extendArray(typeParsers, getParsersFromOptionsTypes(getDefaultOptionsOptionsTypes(theType)));
1613+
1614+
return typeParsers;
1615+
}
1616+
1617+
function getParsersFromOptionsTypes() {
1618+
var optionsTypes = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
1619+
1620+
var optionsTypesParsers = [];
1621+
_angularFix2['default'].forEach(optionsTypes.reverse(), function (optionsTypeName) {
1622+
optionsTypesParsers = formlyUtil.extendArray(optionsTypesParsers, getParsersFromType(optionsTypeName));
1623+
});
1624+
return optionsTypesParsers;
1625+
}
1626+
1627+
function getFormlyExpressionParser(parser) {
1628+
formlyExpressionParserFunction.originalParser = parser;
1629+
return formlyExpressionParserFunction;
1630+
1631+
function formlyExpressionParserFunction($viewValue) {
1632+
var $modelValue = scope.options.value();
1633+
return formlyUtil.formlyEval(scope, parser, $modelValue, $viewValue);
1634+
}
1635+
}
1636+
}
15401637
}
15411638

15421639
function callLinkFunctions() {
@@ -1795,6 +1892,19 @@ return /******/ (function(modules) { // webpackBootstrap
17951892
}
17961893
}
17971894
formlyField.$inject = ["$http", "$q", "$compile", "$templateCache", "$interpolate", "formlyConfig", "formlyValidationMessages", "formlyApiCheck", "formlyUtil", "formlyUsability", "formlyWarn"];
1895+
1896+
// Stateless util functions
1897+
function getDefaultOptionsParsers(type) {
1898+
return getDefaultOptionsProperty(type, 'parsers', []);
1899+
}
1900+
1901+
function getDefaultOptionsOptionsTypes(type) {
1902+
return getDefaultOptionsProperty(type, 'optionsTypes', []);
1903+
}
1904+
1905+
function getDefaultOptionsProperty(type, prop, defaultValue) {
1906+
return type.defaultOptions && type.defaultOptions[prop] || defaultValue;
1907+
}
17981908
module.exports = exports['default'];
17991909

18001910
/***/ },

dist/formly.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/formly.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-formly",
3-
"version": "6.20.1",
3+
"version": "6.21.0-beta.0",
44
"author": "Astrism <[email protected]>",
55
"contributors": [
66
"Astrism <[email protected]>",

0 commit comments

Comments
 (0)