{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///formly.min.js","webpack:///webpack/bootstrap cc28f4eb3105e78194c3","webpack:///./index.js","webpack:///./angular-fix/index.js","webpack:///./directives/formly-custom-validation.js","webpack:///./directives/formly-field.js","webpack:///./directives/formly-focus.js","webpack:///./directives/formly-form.js","webpack:///./directives/index.js","webpack:///./index.common.js","webpack:///./providers/formlyConfig.js","webpack:///./providers/formlyErrorAndWarningsUrlPrefix.js","webpack:///./providers/formlyUsability.js","webpack:///./providers/formlyValidationMessages.js","webpack:///./providers/formlyVersion.js","webpack:///./providers/index.js","webpack:///./run/formlyNgModelAttrsManipulator.js","webpack:///./run/index.js","webpack:///./services/formlyUtil.js","webpack:///./services/formlyWarn.js","webpack:///./services/index.js","webpack:///external \"angular\""],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_19__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","angular","version","window","ngModule","directive","formlyUtil","$q","isPromiseLike","obj","isFunction","then","checkValidators","validators","allowedProperties","validatorsWithExtraProps","forEach","validator","name","extraProps","v","key","indexOf","push","length","Object","keys","Error","join","JSON","stringify","link","scope","el","attrs","ctrl","$eval","formlyCustomValidation","options","validation","messages","hasValidators","hasOwnProperty","message","formlyEval","$modelValue","$viewValue","isObject","expression","isPossiblyAsync","isString","validatorCollection","modelValue","viewValue","value","when","reject","$parsers","unshift","isValid","$setValidity","formlyField","$http","$compile","$templateCache","formlyConfig","formlyValidationMessages","formlyUsability","formlyWarn","asHtml","wrapper","element","append","html","getFieldTemplate","type","getType","template","templateUrl","getFieldError","getTemplate","isUrl","httpOptions","cache","get","response","data","error","transcludeInWrappers","getWrapperOption","checkWrapper","promises","map","w","all","wrappersTemplates","wrapperTemplate","index","checkWrapperTemplate","reverse","totalWrapper","shift","doTransclusion","superWrapper","transcludeEl","find","replaceWith","arrayify","getWrapper","getWrapperByType","typeWrappers","concat","defaultWrapper","apiCheck","getTemplateOptionsCount","templateOptions","isDefined","filter","prop","restrict","transclude","model","formId","fields","form","controller","$scope","$interval","$timeout","$parse","$controller","runExpressions","field","currentValue","valueGetterSetter","expressionProperties","setter","assign","promise","newVal","simplifyLife","reverseDeepMerge","mergeFieldOptionsWithTypeDefaults","mergeOptions","defaultOptions","properOrder","optionsTypes","typeName","extraOptions","extendOptionsWithDefaults","extend","setFormControl","cleanUp","stopWaitingForDestroy","cancel","interval","noFormControl","maxTime","intervalTime","iterations","formControl","$on","addModelWatcher","$watch","addShowMessagesWatcher","show","errorExistsAndShouldBeVisible","addValidationMessages","invokeControllers","undefined","arguments","opts","fieldType","getFieldId","setElementTemplate","templateEl","contents","apply","thusly","args","runManipulators","manipulators","chain","manipulator","newTemplate","templateManipulators","preWrapper","postWrapper","isArray","tests","$inject","$document","previousEl","doc","$observe","activeElement","focus","focusWait","blur","_toArray","arr","Array","from","_slice","prototype","slice","formlyForm","currentFormId","rootEl","replace","attachKey","setupWatchers","watcher","watchers","listener","watchExpression","getWatchExpression","watchListener","getWatchListener","stopWatching","watchDeep","originalExpression","modifyArgs","displayName","originalListener","_len","originalArgs","_key","newResult","getFormlyError","ngModuleName","formlyUsabilityProvider","setType","getError","checkType","typeMap","throwError","errorContext","overwriteOk","checkOverwrite","setWrapper","wrapperOptions","types","getOptionsTypes","getOptionsName","checkWrapperAPI","templateWrappersMap","defaultWrapperName","checkWrapperTypes","shouldThrow","every","property","object","newValue","objectName","warn","wrappers","removeWrapperByName","removeWrappersForType","_this","disableWarnings","console","_this2","extras","disableNgModelAttrsManipulator","$get","provider","constant","errorInfoSlug","getErrorMessage","toJson","url","errorsAndWarningsUrlPrefix","additionalInfo","formlyTransclude","addTemplateOptionValueMessage","prefix","suffix","alternate","templateOptionValue","addStringMessage","string","addFormlyNgModelAttrsManipulator","ngModelAttrsManipulator","addTemplateOptionsAttrs","boundAttributes","ngModelBoundAttributes","ng-disabled","ng-required","ng-pattern","ng-maxlength","ng-minlength","invokedAttributes","ngModelInvokedAttributes","ng-change","ng-keydown","ng-keyup","ng-keypress","ng-click","ng-focus","ng-blur","attributes","ngModelAttributes","formly-focus","placeholder","min","max","tabindex","addDefinedAttributes","modelEls","val","addNgModelAttrs","ngModelAttrs","bound","attr","addIfNotPresent","unbound","els","to","ep","attrName","valPrefix","valSuffix","noTouchy","querySelectorAll","modelOptions","getterSetter","run","realRes","res","src","getPrototypeOf","objectPrototype","arrayPrototype","deepRes","formlyErrorAndWarningsUrlPrefix","$log","warnInfoSlug"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"angular\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"angular\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ngFormly\"] = factory(require(\"angular\"));\n\telse\n\t\troot[\"ngFormly\"] = factory(root[\"angular\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_19__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"angular\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"angular\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ngFormly\"] = factory(require(\"angular\"));\n\telse\n\t\troot[\"ngFormly\"] = factory(root[\"angular\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_19__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = __webpack_require__(7);\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t// some versions of angular don't export the angular module properly,\n\t// so we get it from window in this case.\n\tvar angular = __webpack_require__(19);\n\tif (!angular.version) {\n\t angular = window.angular;\n\t}\n\tmodule.exports = angular;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.directive(\"formlyCustomValidation\", [\"formlyUtil\", \"$q\", function (formlyUtil, $q) {\n\t return {\n\t require: \"ngModel\",\n\t link: function (scope, el, attrs, ctrl) {\n\t var validators = scope.$eval(attrs.formlyCustomValidation);\n\t if (!validators) {\n\t return;\n\t }\n\t checkValidators(validators);\n\t scope.options.validation.messages = scope.options.validation.messages || {};\n\t\n\t // setup watchers and parsers\n\t var hasValidators = ctrl.hasOwnProperty(\"$validators\");\n\t angular.forEach(validators, function (validator, name) {\n\t var message = validator.message;\n\t if (message) {\n\t scope.options.validation.messages[name] = function () {\n\t return formlyUtil.formlyEval(scope, message, ctrl.$modelValue, ctrl.$viewValue);\n\t };\n\t }\n\t validator = angular.isObject(validator) ? validator.expression : validator;\n\t if (hasValidators) {\n\t var isPossiblyAsync = !angular.isString(validator);\n\t var validatorCollection = isPossiblyAsync ? \"$asyncValidators\" : \"$validators\";\n\t ctrl[validatorCollection][name] = function (modelValue, viewValue) {\n\t var value = formlyUtil.formlyEval(scope, validator, modelValue, viewValue);\n\t if (isPossiblyAsync) {\n\t return isPromiseLike(value) ? value : value ? $q.when(value) : $q.reject(value);\n\t } else {\n\t return value;\n\t }\n\t };\n\t } else {\n\t ctrl.$parsers.unshift(function (viewValue) {\n\t var isValid = formlyUtil.formlyEval(scope, validator, ctrl.$modelValue, viewValue);\n\t ctrl.$setValidity(name, isValid);\n\t return viewValue;\n\t });\n\t }\n\t });\n\t }\n\t };\n\t function isPromiseLike(obj) {\n\t return obj && angular.isFunction(obj.then);\n\t }\n\t\n\t function checkValidators(validators) {\n\t var allowedProperties = [\"expression\", \"message\"];\n\t var validatorsWithExtraProps = {};\n\t angular.forEach(validators, function (validator, name) {\n\t var extraProps = [];\n\t angular.forEach(validator, function (v, key) {\n\t if (allowedProperties.indexOf(key) === -1) {\n\t extraProps.push(key);\n\t }\n\t });\n\t if (extraProps.length) {\n\t validatorsWithExtraProps[name] = extraProps;\n\t }\n\t });\n\t if (Object.keys(validatorsWithExtraProps).length) {\n\t throw new Error([\"Validators are only allowed to be functions or objects that have \" + allowedProperties.join(\", \") + \".\", \"You provided some extra properties: \" + JSON.stringify(validatorsWithExtraProps)].join(\" \"));\n\t }\n\t }\n\t }]);\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.directive(\"formlyField\", formlyField);\n\t\n\t formlyField.tests = false ? require(\"./formly-field.test\")(ngModule) : null;\n\t\n\t function formlyField($http, $q, $compile, $templateCache, formlyConfig, formlyValidationMessages, formlyUtil, formlyUsability, formlyWarn) {\n\t return {\n\t restrict: \"AE\",\n\t transclude: true,\n\t scope: {\n\t options: \"=\",\n\t model: \"=\",\n\t formId: \"=?\",\n\t index: \"=?\",\n\t fields: \"=?\",\n\t form: \"=?\"\n\t },\n\t controller: [\"$scope\", \"$interval\", \"$timeout\", \"$parse\", \"$controller\", function fieldController($scope, $interval, $timeout, $parse, $controller) {\n\t var opts = $scope.options;\n\t var fieldType = opts.type && formlyConfig.getType(opts.type);\n\t simplifyLife(opts);\n\t mergeFieldOptionsWithTypeDefaults(opts, fieldType);\n\t apiCheck(opts);\n\t // set field id to link labels and fields\n\t $scope.id = formlyUtil.getFieldId($scope.formId, opts, $scope.index);\n\t\n\t // initalization\n\t extendOptionsWithDefaults(opts, $scope.index);\n\t runExpressions();\n\t setFormControl($scope, opts, $interval);\n\t addModelWatcher($scope, opts);\n\t addShowMessagesWatcher($scope, opts);\n\t addValidationMessages(opts);\n\t invokeControllers($scope, opts, fieldType);\n\t\n\t // function definitions\n\t function runExpressions() {\n\t $timeout(function () {\n\t // must run on next tick to make sure that the current value is correct.\n\t var field = $scope.options;\n\t var currentValue = valueGetterSetter();\n\t angular.forEach(field.expressionProperties, function runExpression(expression, prop) {\n\t var setter = $parse(prop).assign;\n\t var promise = $q.when(formlyUtil.formlyEval($scope, expression, currentValue));\n\t promise.then(function (value) {\n\t setter(field, value);\n\t });\n\t });\n\t });\n\t }\n\t\n\t function valueGetterSetter(newVal) {\n\t if (!$scope.model || !$scope.options.key) {\n\t return;\n\t }\n\t if (angular.isDefined(newVal)) {\n\t $scope.model[$scope.options.key] = newVal;\n\t }\n\t return $scope.model[$scope.options.key];\n\t }\n\t\n\t function simplifyLife(options) {\n\t // add a few empty objects (if they don't already exist) so you don't have to undefined check everywhere\n\t formlyUtil.reverseDeepMerge(options, {\n\t data: {},\n\t templateOptions: {},\n\t validation: {}\n\t });\n\t }\n\t\n\t function mergeFieldOptionsWithTypeDefaults(options, type) {\n\t if (type) {\n\t mergeOptions(options, type.defaultOptions);\n\t }\n\t var properOrder = arrayify(options.optionsTypes).reverse(); // so the right things are overridden\n\t angular.forEach(properOrder, function (typeName) {\n\t mergeOptions(options, formlyConfig.getType(typeName, true, options).defaultOptions);\n\t });\n\t }\n\t\n\t function mergeOptions(options, extraOptions) {\n\t if (extraOptions) {\n\t if (angular.isFunction(extraOptions)) {\n\t extraOptions = extraOptions(options);\n\t }\n\t formlyUtil.reverseDeepMerge(options, extraOptions);\n\t }\n\t }\n\t\n\t function extendOptionsWithDefaults(options, index) {\n\t angular.extend(options, {\n\t // attach the key in case the formly-field directive is used directly\n\t key: options.key || index || 0,\n\t value: valueGetterSetter,\n\t runExpressions: runExpressions\n\t });\n\t }\n\t\n\t // initialization functions\n\t function setFormControl(scope, options, $interval) {\n\t if (options.noFormControl) {\n\t return;\n\t }\n\t var stopWaitingForDestroy;\n\t var maxTime = 2000;\n\t var intervalTime = 5;\n\t var iterations = 0;\n\t var interval = $interval(function () {\n\t iterations++;\n\t if (!angular.isDefined(options.key)) {\n\t return cleanUp();\n\t }\n\t var formControl = scope.form && scope.form[scope.id];\n\t if (formControl) {\n\t options.formControl = formControl;\n\t cleanUp();\n\t } else if (intervalTime * iterations > maxTime) {\n\t formlyWarn(\"couldnt-set-the-formcontrol-after-timems\", \"Couldn't set the formControl after \" + maxTime + \"ms\", scope);\n\t cleanUp();\n\t }\n\t }, intervalTime);\n\t stopWaitingForDestroy = scope.$on(\"$destroy\", cleanUp);\n\t\n\t function cleanUp() {\n\t stopWaitingForDestroy();\n\t $interval.cancel(interval);\n\t }\n\t }\n\t\n\t function addModelWatcher(scope, options) {\n\t if (options.model) {\n\t scope.$watch(\"options.model\", runExpressions, true);\n\t }\n\t }\n\t\n\t function addShowMessagesWatcher(scope, options) {\n\t var expression = \"options.formControl.$invalid && (options.formControl.$touched || options.validation.show)\";\n\t scope.$watch(expression, function (show) {\n\t options.validation.errorExistsAndShouldBeVisible = show;\n\t });\n\t }\n\t\n\t function addValidationMessages(options) {\n\t options.validation.messages = options.validation.messages || {};\n\t angular.forEach(formlyValidationMessages.messages, function (expression, name) {\n\t if (!options.validation.messages[name]) {\n\t options.validation.messages[name] = function (viewValue, modelValue, scope) {\n\t return formlyUtil.formlyEval(scope, expression, modelValue, viewValue);\n\t };\n\t }\n\t });\n\t }\n\t\n\t function invokeControllers(scope) {\n\t var options = arguments[1] === undefined ? {} : arguments[1];\n\t var type = arguments[2] === undefined ? {} : arguments[2];\n\t angular.forEach([type.controller, options.controller], function (controller) {\n\t if (controller) {\n\t $controller(controller, { $scope: scope });\n\t }\n\t });\n\t }\n\t }],\n\t link: function fieldLink(scope, el) {\n\t var type = scope.options.type && formlyConfig.getType(scope.options.type);\n\t var args = arguments;\n\t var thusly = this;\n\t getFieldTemplate(scope.options).then(runManipulators(formlyConfig.templateManipulators.preWrapper)).then(transcludeInWrappers(scope.options)).then(runManipulators(formlyConfig.templateManipulators.postWrapper)).then(setElementTemplate)[\"catch\"](function (error) {\n\t formlyWarn(\"there-was-a-problem-setting-the-template-for-this-field\", \"There was a problem setting the template for this field \", scope.options, error);\n\t });\n\t\n\t function setElementTemplate(templateEl) {\n\t el.html(asHtml(templateEl));\n\t $compile(el.contents())(scope);\n\t if (type && type.link) {\n\t type.link.apply(thusly, args);\n\t }\n\t if (scope.options.link) {\n\t scope.options.link.apply(thusly, args);\n\t }\n\t }\n\t\n\t function runManipulators(manipulators) {\n\t return function runManipulatorsOnTemplate(template) {\n\t var chain = $q.when(template);\n\t angular.forEach(manipulators, function (manipulator) {\n\t chain = chain.then(function (template) {\n\t return $q.when(manipulator(template, scope.options, scope)).then(function (newTemplate) {\n\t return angular.isString(newTemplate) ? newTemplate : asHtml(newTemplate);\n\t });\n\t });\n\t });\n\t return chain;\n\t };\n\t }\n\t }\n\t };\n\t\n\t function asHtml(el) {\n\t var wrapper = angular.element(\"\");\n\t return wrapper.append(el).html();\n\t }\n\t\n\t function getFieldTemplate(options) {\n\t var type = formlyConfig.getType(options.type, true, options);\n\t var template = options.template || type && type.template;\n\t var templateUrl = options.templateUrl || type && type.templateUrl;\n\t if (!template && !templateUrl) {\n\t throw formlyUsability.getFieldError(\"template-type-type-not-supported\", \"template type '\" + options.type + \"' not supported. On element:\", options);\n\t }\n\t return getTemplate(template || templateUrl, !template);\n\t }\n\t\n\t\n\t function getTemplate(template, isUrl) {\n\t if (!isUrl) {\n\t return $q.when(template);\n\t } else {\n\t var httpOptions = { cache: $templateCache };\n\t return $http.get(template, httpOptions).then(function (response) {\n\t return response.data;\n\t })[\"catch\"](function (error) {\n\t formlyWarn(\"problem-loading-template-for-templateurl\", \"Problem loading template for \" + template, error);\n\t });\n\t }\n\t }\n\t\n\t function transcludeInWrappers(options) {\n\t var wrapper = getWrapperOption(options);\n\t\n\t return function transcludeTemplate(template) {\n\t if (!wrapper.length) {\n\t return $q.when(template);\n\t }\n\t\n\t wrapper.forEach(formlyUsability.checkWrapper);\n\t var promises = wrapper.map(function (w) {\n\t return getTemplate(w.template || w.templateUrl, !w.template);\n\t });\n\t return $q.all(promises).then(function (wrappersTemplates) {\n\t wrappersTemplates.forEach(function (wrapperTemplate, index) {\n\t formlyUsability.checkWrapperTemplate(wrapperTemplate, wrapper[index]);\n\t });\n\t wrappersTemplates.reverse(); // wrapper 0 is wrapped in wrapper 1 and so on...\n\t var totalWrapper = wrappersTemplates.shift();\n\t wrappersTemplates.forEach(function (wrapperTemplate) {\n\t totalWrapper = doTransclusion(totalWrapper, wrapperTemplate);\n\t });\n\t return doTransclusion(totalWrapper, template);\n\t });\n\t };\n\t }\n\t\n\t function doTransclusion(wrapper, template) {\n\t var superWrapper = angular.element(\"\"); // this allows people not have to have a single root in wrappers\n\t superWrapper.append(wrapper);\n\t var transcludeEl = superWrapper.find(\"formly-transclude\");\n\t transcludeEl.replaceWith(template);\n\t return superWrapper.html();\n\t }\n\t\n\t function getWrapperOption(options) {\n\t var wrapper = options.wrapper;\n\t // explicit null means no wrapper\n\t if (wrapper === null) {\n\t return;\n\t }\n\t\n\t // nothing specified means use the default wrapper for the type\n\t if (!wrapper) {\n\t // get all wrappers that specify they apply to this type\n\t wrapper = arrayify(formlyConfig.getWrapperByType(options.type));\n\t } else {\n\t wrapper = arrayify(wrapper).map(formlyConfig.getWrapper);\n\t }\n\t\n\t // get all wrappers for that this type specified that it uses.\n\t var type = formlyConfig.getType(options.type, true, options);\n\t if (type && type.wrapper) {\n\t var typeWrappers = arrayify(type.wrapper).map(formlyConfig.getWrapper);\n\t wrapper = wrapper.concat(typeWrappers);\n\t }\n\t\n\t // add the default wrapper last\n\t var defaultWrapper = formlyConfig.getWrapper();\n\t if (defaultWrapper) {\n\t wrapper.push(defaultWrapper);\n\t }\n\t return wrapper;\n\t }\n\t\n\t function apiCheck(options) {\n\t var templateOptions = getTemplateOptionsCount(options);\n\t if (templateOptions === 0) {\n\t throw formlyUsability.getFieldError(\"you-must-provide-one-of-type-template-or-templateurl-for-a-field\", \"You must provide one of type, template, or templateUrl for a field\", options);\n\t } else if (templateOptions > 1) {\n\t throw formlyUsability.getFieldError(\"you-must-only-provide-a-type-template-or-templateurl-for-a-field\", \"You must only provide a type, template, or templateUrl for a field\", options);\n\t }\n\t\n\t // check that only allowed properties are provided\n\t var allowedProperties = [\"type\", \"template\", \"templateUrl\", \"key\", \"model\", \"expressionProperties\", \"data\", \"templateOptions\", \"wrapper\", \"modelOptions\", \"watcher\", \"validators\", \"noFormControl\", \"hide\", \"ngModelAttrs\", \"optionsTypes\", \"link\", \"controller\", \"validation\",\n\t // things we add to the field after the fact are ok\n\t \"formControl\", \"value\", \"runExpressions\"];\n\t var extraProps = Object.keys(options).filter(function (prop) {\n\t return allowedProperties.indexOf(prop) === -1;\n\t });\n\t if (extraProps.length) {\n\t throw formlyUsability.getFieldError(\"you-have-specified-field-properties-that-are-not-allowed\", \"You have specified field properties that are not allowed: \" + JSON.stringify(extraProps.join(\", \")), options);\n\t }\n\t\n\t function getTemplateOptionsCount(options) {\n\t var templateOptions = 0;\n\t templateOptions += angular.isDefined(options.template) ? 1 : 0;\n\t templateOptions += angular.isDefined(options.type) ? 1 : 0;\n\t templateOptions += angular.isDefined(options.templateUrl) ? 1 : 0;\n\t return templateOptions;\n\t }\n\t }\n\t }\n\t formlyField.$inject = [\"$http\", \"$q\", \"$compile\", \"$templateCache\", \"formlyConfig\", \"formlyValidationMessages\", \"formlyUtil\", \"formlyUsability\", \"formlyWarn\"];\n\t\n\t function arrayify(obj) {\n\t if (obj && !angular.isArray(obj)) {\n\t obj = [obj];\n\t } else if (!obj) {\n\t obj = [];\n\t }\n\t return obj;\n\t }\n\t};\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.directive(\"formlyFocus\", [\"$timeout\", \"$document\", function ($timeout, $document) {\n\t /* jshint -W052 */\n\t return {\n\t link: function (scope, element, attrs) {\n\t var previousEl = null;\n\t var el = element[0];\n\t var doc = $document[0];\n\t attrs.$observe(\"formlyFocus\", function (value) {\n\t if (value === \"true\") {\n\t $timeout(function () {\n\t previousEl = doc.activeElement;\n\t el.focus();\n\t }, ~ ~attrs.focusWait);\n\t } else if (value === \"false\") {\n\t if (doc.activeElement === el) {\n\t el.blur();\n\t if (attrs.hasOwnProperty(\"refocus\") && previousEl) {\n\t previousEl.focus();\n\t }\n\t }\n\t }\n\t });\n\t }\n\t };\n\t }]);\n\t};\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); };\n\t\n\tvar _slice = Array.prototype.slice;\n\tvar angular = __webpack_require__(1);\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.directive(\"formlyForm\", formlyForm);\n\t\n\t formlyForm.tests = false ? require(\"./formly-form.test\")(ngModule) : null;\n\t\n\t function formlyForm(formlyUsability) {\n\t var currentFormId = 1;\n\t return {\n\t restrict: \"E\",\n\t template: function (el, attrs) {\n\t /* jshint -W033 */ // this because jshint is broken I guess...\n\t var rootEl = attrs.rootEl || \"ng-form\";\n\t return \"\\n <\" + rootEl + \" class=\\\"formly\\\"\\n name=\\\"form\\\"\\n role=\\\"form\\\">\\n
\\n
\\n
\\n \\n \";\n\t },\n\t replace: true,\n\t transclude: true,\n\t scope: {\n\t fields: \"=\",\n\t model: \"=?\", // we'll do our own warning to help with migrations\n\t form: \"=?\"\n\t },\n\t controller: [\"$scope\", function ($scope) {\n\t $scope.formId = \"formly_\" + currentFormId++;\n\t\n\t angular.forEach($scope.fields, attachKey); // attaches a key based on the index if a key isn't specified\n\t angular.forEach($scope.fields, setupWatchers); // setup watchers for all fields\n\t\n\t // watch the model and evaluate watch expressions that depend on it.\n\t $scope.$watch(\"model\", function onResultUpdate(newResult) {\n\t angular.forEach($scope.fields, function (field) {\n\t /*jshint -W030 */\n\t field.runExpressions && field.runExpressions(newResult);\n\t });\n\t }, true);\n\t\n\t function attachKey(field, index) {\n\t field.key = field.key || index || 0;\n\t }\n\t\n\t function setupWatchers(field, index) {\n\t if (!angular.isDefined(field.watcher)) {\n\t return;\n\t }\n\t var watchers = field.watcher;\n\t if (!angular.isArray(watchers)) {\n\t watchers = [watchers];\n\t }\n\t angular.forEach(watchers, function (watcher) {\n\t if (!angular.isDefined(watcher.listener)) {\n\t throw formlyUsability.getFieldError(\"all-field-watchers-must-have-a-listener\", \"All field watchers must have a listener\", field);\n\t }\n\t var watchExpression = getWatchExpression(watcher, field, index);\n\t var watchListener = getWatchListener(watcher, field, index);\n\t\n\t var type = watcher.type || \"$watch\";\n\t watcher.stopWatching = $scope[type](watchExpression, watchListener, watcher.watchDeep);\n\t });\n\t }\n\t\n\t function getWatchExpression(watcher, field, index) {\n\t var watchExpression = watcher.expression || \"model['\" + field.key + \"']\";\n\t if (angular.isFunction(watchExpression)) {\n\t // wrap the field's watch expression so we can call it with the field as the first arg\n\t // and the stop function as the last arg as a helper\n\t var originalExpression = watchExpression;\n\t watchExpression = function formlyWatchExpression() {\n\t var args = modifyArgs.apply(undefined, [watcher, index].concat(_slice.call(arguments)));\n\t return originalExpression.apply(undefined, _toArray(args));\n\t };\n\t watchExpression.displayName = \"Formly Watch Expression for field for \" + field.key;\n\t }\n\t return watchExpression;\n\t }\n\t\n\t function getWatchListener(watcher, field, index) {\n\t var watchListener = watcher.listener;\n\t if (angular.isFunction(watchListener)) {\n\t // wrap the field's watch listener so we can call it with the field as the first arg\n\t // and the stop function as the last arg as a helper\n\t var originalListener = watchListener;\n\t watchListener = function formlyWatchListener() {\n\t var args = modifyArgs.apply(undefined, [watcher, index].concat(_slice.call(arguments)));\n\t return originalListener.apply(undefined, _toArray(args));\n\t };\n\t watchListener.displayName = \"Formly Watch Listener for field for \" + field.key;\n\t }\n\t return watchListener;\n\t }\n\t\n\t function modifyArgs(watcher, index) {\n\t for (var _len = arguments.length, originalArgs = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n\t originalArgs[_key - 2] = arguments[_key];\n\t }\n\t\n\t return [$scope.fields[index]].concat(_toArray(originalArgs), [watcher.stopWatching]);\n\t }\n\t }],\n\t link: function (scope, el, attrs) {\n\t if (attrs.hasOwnProperty(\"result\")) {\n\t throw formlyUsability.getFormlyError(\"The \\\"result\\\" attribute on a formly-form is no longer valid. Use \\\"model\\\" instead\");\n\t }\n\t if (attrs.name !== \"form\") {\n\t // then they specified their own name\n\t throw formlyUsability.getFormlyError(\"The \\\"name\\\" attribute on a formly-form is no longer valid. Use \\\"form\\\" instead\");\n\t }\n\t // enforce the model attribute because we're making it optional to help with migrations\n\t if (!attrs.hasOwnProperty(\"model\") || !scope.model) {\n\t throw formlyUsability.getFormlyError(\"The \\\"model\\\" attribute is required on a formly-form.\");\n\t }\n\t }\n\t };\n\t }\n\t formlyForm.$inject = [\"formlyUsability\"];\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t __webpack_require__(2)(ngModule);\n\t __webpack_require__(3)(ngModule);\n\t __webpack_require__(5)(ngModule);\n\t __webpack_require__(4)(ngModule);\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar ngModuleName = \"formly\";\n\tvar angular = __webpack_require__(1);\n\tvar ngModule = angular.module(ngModuleName, []);\n\t\n\t__webpack_require__(13)(ngModule);\n\t__webpack_require__(18)(ngModule);\n\t__webpack_require__(6)(ngModule);\n\t__webpack_require__(15)(ngModule);\n\t\n\tmodule.exports = ngModuleName;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.provider(\"formlyConfig\", formlyConfig);\n\t\n\t formlyConfig.tests = false ? require(\"./formlyConfig.test\")(ngModule) : null;\n\t\n\t function formlyConfig(formlyUsabilityProvider) {\n\t var _this2 = this;\n\t\n\t\n\t var typeMap = {};\n\t var templateWrappersMap = {};\n\t var defaultWrapperName = \"default\";\n\t var _this = this;\n\t var getError = formlyUsabilityProvider.getFormlyError;\n\t\n\t angular.extend(this, {\n\t setType: setType,\n\t getType: getType,\n\t setWrapper: setWrapper,\n\t getWrapper: getWrapper,\n\t getWrapperByType: getWrapperByType,\n\t removeWrapperByName: removeWrapperByName,\n\t removeWrappersForType: removeWrappersForType,\n\t disableWarnings: false,\n\t extras: {\n\t disableNgModelAttrsManipulator: false\n\t },\n\t templateManipulators: {\n\t preWrapper: [],\n\t postWrapper: []\n\t },\n\t $get: function () {\n\t return _this2;\n\t }\n\t });\n\t\n\t function setType(options) {\n\t if (angular.isArray(options)) {\n\t angular.forEach(options, setType);\n\t } else if (angular.isObject(options)) {\n\t checkType(options);\n\t typeMap[options.name] = options;\n\t } else {\n\t throw getError(\"You must provide an object or array for setType. You provided: \" + JSON.stringify(arguments));\n\t }\n\t }\n\t\n\t function getType(name, throwError, errorContext) {\n\t if (!name) {\n\t return undefined;\n\t }\n\t var type = typeMap[name];\n\t if (!type && throwError === true) {\n\t throw getError(\"There is no type by the name of \\\"\" + name + \"\\\": \" + JSON.stringify(errorContext));\n\t } else {\n\t return type;\n\t }\n\t }\n\t\n\t function checkType(options) {\n\t if (!options.name) {\n\t throw getError(\"You must provide a name for setType. You provided: \" + JSON.stringify(arguments));\n\t } else if (!options.defaultOptions && !options.template && !options.templateUrl) {\n\t throw getError(\"You must provide defaultOptions OR a template OR templateUrl for setType. \" + (\"You provided none of these: \" + JSON.stringify(arguments)));\n\t } else if (options.template && options.templateUrl) {\n\t throw getError(\"You must provide at most a template OR templateUrl for setType. \" + (\"You provided both: \" + JSON.stringify(arguments)));\n\t }\n\t if (!options.overwriteOk) {\n\t checkOverwrite(options.name, typeMap, options, \"types\");\n\t } else {\n\t delete options.overwriteOk;\n\t }\n\t }\n\t\n\t function setWrapper(options, name) {\n\t if (angular.isArray(options)) {\n\t return options.map(function (wrapperOptions) {\n\t return setWrapper(wrapperOptions);\n\t });\n\t } else if (angular.isObject(options)) {\n\t options.types = getOptionsTypes(options);\n\t options.name = getOptionsName(options, name);\n\t checkWrapperAPI(options);\n\t templateWrappersMap[options.name] = options;\n\t return options;\n\t } else if (angular.isString(options)) {\n\t return setWrapper({\n\t template: options,\n\t name: name\n\t });\n\t }\n\t }\n\t\n\t function getOptionsTypes(options) {\n\t if (angular.isString(options.types)) {\n\t return [options.types];\n\t }\n\t if (!angular.isDefined(options.types)) {\n\t return [];\n\t } else {\n\t return options.types;\n\t }\n\t }\n\t\n\t function getOptionsName(options, name) {\n\t return options.name || name || options.types.join(\" \") || defaultWrapperName;\n\t }\n\t\n\t function checkWrapperAPI(options) {\n\t formlyUsabilityProvider.checkWrapper(options);\n\t if (options.template) {\n\t formlyUsabilityProvider.checkWrapperTemplate(options.template, options);\n\t }\n\t if (!options.overwriteOk) {\n\t checkOverwrite(options.name, templateWrappersMap, options, \"templateWrappers\");\n\t } else {\n\t delete options.overwriteOk;\n\t }\n\t checkWrapperTypes(options);\n\t }\n\t\n\t function checkWrapperTypes(options) {\n\t var shouldThrow = !angular.isArray(options.types) || !options.types.every(angular.isString);\n\t if (shouldThrow) {\n\t throw getError(\"Attempted to create a template wrapper with types that is not a string or an array of strings\");\n\t }\n\t }\n\t\n\t function checkOverwrite(property, object, newValue, objectName) {\n\t if (object.hasOwnProperty(property)) {\n\t warn([\"Attempting to overwrite \" + property + \" on \" + objectName + \" which is currently\", \"\" + JSON.stringify(object[property]) + \" with \" + JSON.stringify(newValue), \"To supress this warning, specify the property \\\"overwriteOk: true\\\"\"].join(\" \"));\n\t }\n\t }\n\t\n\t function getWrapper(name) {\n\t return templateWrappersMap[name || defaultWrapperName];\n\t }\n\t\n\t function getWrapperByType(type) {\n\t /* jshint maxcomplexity:6 */\n\t var wrappers = [];\n\t for (var name in templateWrappersMap) {\n\t if (templateWrappersMap.hasOwnProperty(name)) {\n\t if (templateWrappersMap[name].types && templateWrappersMap[name].types.indexOf(type) !== -1) {\n\t wrappers.push(templateWrappersMap[name]);\n\t }\n\t }\n\t }\n\t return wrappers;\n\t }\n\t\n\t function removeWrapperByName(name) {\n\t var wrapper = templateWrappersMap[name];\n\t delete templateWrappersMap[name];\n\t return wrapper;\n\t }\n\t\n\t function removeWrappersForType(type) {\n\t var wrappers = getWrapperByType(type);\n\t if (!wrappers) {\n\t return;\n\t }\n\t if (!angular.isArray(wrappers)) {\n\t return removeWrapperByName(wrappers.name);\n\t } else {\n\t wrappers.forEach(function (wrapper) {\n\t return removeWrapperByName(wrapper.name);\n\t });\n\t return wrappers;\n\t }\n\t }\n\t\n\t\n\t function warn() {\n\t if (!_this.disableWarnings) {\n\t console.warn.apply(console, arguments);\n\t }\n\t }\n\t }\n\t formlyConfig.$inject = [\"formlyUsabilityProvider\"];\n\t\n\t\n\t};\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.constant(\"formlyErrorAndWarningsUrlPrefix\", \"https://github.com/formly-js/angular-formly/wiki/Errors-and-Warnings#\");\n\t};\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.provider(\"formlyUsability\", function () {\n\t var _this = this;\n\t var errorsAndWarningsUrlPrefix = \"https://github.com/formly-js/angular-formly/wiki/Errors-and-Warnings#\";\n\t angular.extend(this, {\n\t getFormlyError: getFormlyError,\n\t getFieldError: getFieldError,\n\t checkWrapper: checkWrapper,\n\t checkWrapperTemplate: checkWrapperTemplate,\n\t $get: function () {\n\t return _this;\n\t }\n\t });\n\t\n\t function getFieldError(errorInfoSlug, message, field) {\n\t if (arguments.length < 3) {\n\t field = message;\n\t message = errorInfoSlug;\n\t errorInfoSlug = null;\n\t }\n\t return new Error(getErrorMessage(errorInfoSlug, message) + (\" Field definition: \" + angular.toJson(field)));\n\t }\n\t\n\t function getFormlyError(errorInfoSlug, message) {\n\t if (!message) {\n\t message = errorInfoSlug;\n\t errorInfoSlug = null;\n\t }\n\t return new Error(getErrorMessage(errorInfoSlug, message));\n\t }\n\t\n\t function getErrorMessage(errorInfoSlug, message) {\n\t var url = \"\";\n\t if (errorInfoSlug !== null) {\n\t url = \"\" + errorsAndWarningsUrlPrefix + \"\" + errorInfoSlug;\n\t }\n\t return \"Formly Error: \" + message + \". \" + url;\n\t }\n\t\n\t function checkWrapper(wrapper) {\n\t if (wrapper.template && wrapper.templateUrl) {\n\t throw getFormlyError(\"Template wrappers can only have a templateUrl or a template. \" + (\"This one provided both: \" + JSON.stringify(wrapper)));\n\t }\n\t if (!wrapper.template && !wrapper.templateUrl) {\n\t throw getFormlyError(\"Template wrappers must have one of a templateUrl or a template. \" + (\"This one provided neither: \" + JSON.stringify(wrapper)));\n\t }\n\t }\n\t\n\t function checkWrapperTemplate(template, additionalInfo) {\n\t var formlyTransclude = \"\";\n\t if (template.indexOf(formlyTransclude) === -1) {\n\t throw getFormlyError(\"Template wrapper templates must use \\\"\" + formlyTransclude + \"\\\" somewhere in them. \" + (\"This one does not have \\\"\\\" in it: \" + template) + \"\\n\" + (\"Additional information: \" + JSON.stringify(additionalInfo)));\n\t }\n\t }\n\t });\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.factory(\"formlyValidationMessages\", function () {\n\t var formlyValidationMessages = {\n\t addTemplateOptionValueMessage: addTemplateOptionValueMessage,\n\t addStringMessage: addStringMessage,\n\t messages: {}\n\t };\n\t\n\t return formlyValidationMessages;\n\t\n\t function addTemplateOptionValueMessage(name, prop, prefix, suffix, alternate) {\n\t formlyValidationMessages.messages[name] = templateOptionValue(prop, prefix, suffix, alternate);\n\t }\n\t\n\t function addStringMessage(name, string) {\n\t formlyValidationMessages.messages[name] = function () {\n\t return string;\n\t };\n\t }\n\t\n\t\n\t function templateOptionValue(prop, prefix, suffix, alternate) {\n\t return function getValidationMessage(viewValue, modelValue, scope) {\n\t if (scope.options.templateOptions[prop]) {\n\t return \"\" + prefix + \" \" + scope.options.templateOptions[prop] + \" \" + suffix;\n\t } else {\n\t return alternate;\n\t }\n\t };\n\t }\n\t });\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.constant(\"formlyVersion\", (\"3.0.8\"));\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t __webpack_require__(10)(ngModule);\n\t __webpack_require__(8)(ngModule);\n\t __webpack_require__(12)(ngModule);\n\t __webpack_require__(9)(ngModule);\n\t __webpack_require__(11)(ngModule);\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.run(addFormlyNgModelAttrsManipulator);\n\t\n\t function addFormlyNgModelAttrsManipulator(formlyConfig) {\n\t if (formlyConfig.extras.disableNgModelAttrsManipulator) {\n\t return;\n\t }\n\t formlyConfig.templateManipulators.preWrapper.push(ngModelAttrsManipulator);\n\t }\n\t addFormlyNgModelAttrsManipulator.$inject = [\"formlyConfig\"];\n\t\n\t\n\t function ngModelAttrsManipulator(template, options, scope) {\n\t /* jshint maxcomplexity:7 */\n\t var el = angular.element(\"\");\n\t var data = options.data;\n\t if (data.noTouchy) {\n\t return template;\n\t }\n\t el.append(template);\n\t var modelEls = angular.element(el[0].querySelectorAll(\"[ng-model]\"));\n\t if (!modelEls || !modelEls.length) {\n\t return template;\n\t }\n\t addNgModelAttrs(options.ngModelAttrs);\n\t\n\t addIfNotPresent(modelEls, \"id\", scope.id);\n\t addIfNotPresent(modelEls, \"name\", scope.id);\n\t\n\t if (angular.isDefined(options.validators)) {\n\t addIfNotPresent(modelEls, \"formly-custom-validation\", \"options.validators\");\n\t }\n\t if (angular.isDefined(options.modelOptions)) {\n\t addIfNotPresent(modelEls, \"ng-model-options\", \"options.modelOptions\");\n\t if (options.modelOptions.getterSetter) {\n\t modelEls.attr(\"ng-model\", \"options.value\");\n\t }\n\t }\n\t addTemplateOptionsAttrs();\n\t\n\t return el.html();\n\t\n\t\n\t function addTemplateOptionsAttrs() {\n\t // if the field has specified values for these, then we want to add the attributes and watch them for changes.\n\t var boundAttributes = angular.extend(data.ngModelBoundAttributes || {}, {\n\t \"ng-disabled\": \"disabled\",\n\t \"ng-required\": \"required\",\n\t \"ng-pattern\": \"pattern\",\n\t \"ng-maxlength\": \"maxlength\",\n\t \"ng-minlength\": \"minlength\"\n\t });\n\t var invokedAttributes = angular.extend(data.ngModelInvokedAttributes || {}, {\n\t \"ng-change\": \"onChange\",\n\t \"ng-keydown\": \"onKeydown\",\n\t \"ng-keyup\": \"onKeyup\",\n\t \"ng-keypress\": \"onKeypress\",\n\t \"ng-click\": \"onClick\",\n\t \"ng-focus\": \"onFocus\",\n\t \"ng-blur\": \"onBlur\"\n\t });\n\t // attributes are wrapped in curly braces\n\t var attributes = angular.extend(data.ngModelAttributes || {}, {\n\t \"formly-focus\": \"focus\",\n\t placeholder: \"placeholder\",\n\t min: \"min\",\n\t max: \"max\",\n\t tabindex: \"tabindex\",\n\t type: \"type\"\n\t });\n\t\n\t addDefinedAttributes(modelEls, boundAttributes, options);\n\t addDefinedAttributes(modelEls, attributes, options, \"{{\", \"}}\");\n\t addDefinedAttributes(modelEls, invokedAttributes, options, function (val) {\n\t return angular.isFunction(val) ? \"\" : \"$eval(\";\n\t }, function (val) {\n\t return angular.isFunction(val) ? \"(model[options.key], options, this, $event)\" : \")\";\n\t });\n\t }\n\t\n\t function addNgModelAttrs(ngModelAttrs) {\n\t ngModelAttrs = ngModelAttrs || {};\n\t angular.forEach(ngModelAttrs.bound, function (val, attr) {\n\t addIfNotPresent(modelEls, attr, \"options.ngModelAttrs.bound['\" + attr + \"']\");\n\t });\n\t angular.forEach(ngModelAttrs.unbound, function (val, attr) {\n\t addIfNotPresent(modelEls, attr, scope.$eval(val));\n\t });\n\t }\n\t\n\t function addDefinedAttributes(els, attrs, options) {\n\t var prefix = arguments[3] === undefined ? \"\" : arguments[3];\n\t var suffix = arguments[4] === undefined ? \"\" : arguments[4];\n\t /* jshint maxcomplexity:6 */\n\t var to = options.templateOptions;\n\t var ep = options.expressionProperties;\n\t if (!to && !ep) {\n\t return; // no reason to iterate if these don't exist...\n\t } else {\n\t to = to || {};\n\t ep = ep || {};\n\t }\n\t angular.forEach(attrs, function (val, attrName) {\n\t // if it's defined as a property on template options, or if it's an expression property,\n\t // then we'll add the attribute (and hence the watchers)\n\t if (angular.isDefined(to[val]) || angular.isDefined(ep[\"templateOptions.\" + val])) {\n\t var valPrefix = angular.isFunction(prefix) ? prefix(to[val]) : prefix;\n\t var valSuffix = angular.isFunction(suffix) ? suffix(to[val]) : suffix;\n\t addIfNotPresent(els, \"\" + attrName, \"\" + valPrefix + \"options.templateOptions['\" + val + \"']\" + valSuffix);\n\t }\n\t });\n\t }\n\t\n\t function addIfNotPresent(el, attr, val) {\n\t if (!el.attr(attr)) {\n\t el.attr(attr, val);\n\t }\n\t }\n\t }\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t __webpack_require__(14)(ngModule);\n\t};\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _slice = Array.prototype.slice;\n\tvar angular = __webpack_require__(1);\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.factory(\"formlyUtil\", function () {\n\t var objectPrototype = Object.getPrototypeOf({});\n\t var arrayPrototype = Object.getPrototypeOf([]);\n\t return {\n\t formlyEval: formlyEval,\n\t getFieldId: getFieldId,\n\t reverseDeepMerge: reverseDeepMerge\n\t };\n\t\n\t function formlyEval(scope, expression, modelValue, viewValue) {\n\t if (angular.isFunction(expression)) {\n\t return expression(viewValue, modelValue, scope);\n\t } else {\n\t return scope.$eval(expression, {\n\t $viewValue: viewValue,\n\t $modelValue: modelValue\n\t });\n\t }\n\t }\n\t\n\t function getFieldId(formId, options, index) {\n\t var type = options.type;\n\t if (!type && options.template) {\n\t type = \"template\";\n\t } else if (!type && options.templateUrl) {\n\t type = \"templateUrl\";\n\t }\n\t\n\t return [formId, type, options.key, index].join(\"_\");\n\t }\n\t\n\t function reverseDeepMerge() {\n\t var realRes = arguments[0];\n\t var res = {};\n\t angular.forEach([].concat(_slice.call(arguments)).reverse(), function (src) {\n\t if (!src) {\n\t return;\n\t }\n\t angular.forEach(src, function (val, prop) {\n\t /* jshint maxcomplexity:7 */\n\t if (typeof val === \"object\" && val !== null && (Object.getPrototypeOf(val) === objectPrototype || Object.getPrototypeOf(val) === arrayPrototype)) {\n\t var deepRes = res[prop];\n\t if (!deepRes && angular.isArray(val)) {\n\t deepRes = [];\n\t } else if (!deepRes) {\n\t deepRes = {};\n\t }\n\t res[prop] = reverseDeepMerge(deepRes, val);\n\t } else if (angular.isDefined(val)) {\n\t res[prop] = val;\n\t }\n\t });\n\t });\n\t angular.forEach(realRes, function (val, prop) {\n\t delete realRes[prop];\n\t });\n\t angular.forEach(res, function (val, prop) {\n\t realRes[prop] = val;\n\t });\n\t res = realRes;\n\t return res;\n\t }\n\t\n\t });\n\t};\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); };\n\t\n\tmodule.exports = function (ngModule) {\n\t ngModule.factory(\"formlyWarn\", [\"formlyConfig\", \"formlyErrorAndWarningsUrlPrefix\", \"$log\", function (formlyConfig, formlyErrorAndWarningsUrlPrefix, $log) {\n\t return function warn() {\n\t if (!formlyConfig.disableWarnings) {\n\t var args = Array.prototype.slice.call(arguments);\n\t var warnInfoSlug = args.shift();\n\t args.unshift(\"Formly Warning:\");\n\t args.push(\"\" + formlyErrorAndWarningsUrlPrefix + \"\" + warnInfoSlug);\n\t $log.warn.apply($log, _toArray(args));\n\t }\n\t };\n\t }]);\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (ngModule) {\n\t __webpack_require__(16)(ngModule);\n\t __webpack_require__(17)(ngModule);\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_19__;\n\n/***/ }\n/******/ ])\n});\n\n\n\n/** WEBPACK FOOTER **\n ** formly.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap cc28f4eb3105e78194c3\n **/","\"use strict\";\n\nmodule.exports = require(\"./index.common\");\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./index.js\n ** module id = 0\n ** module chunks = 0\n **/","\"use strict\";\n\n// some versions of angular don't export the angular module properly,\n// so we get it from window in this case.\nvar angular = require(\"angular\");\nif (!angular.version) {\n angular = window.angular;\n}\nmodule.exports = angular;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./angular-fix/index.js\n ** module id = 1\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n ngModule.directive(\"formlyCustomValidation\", [\"formlyUtil\", \"$q\", function (formlyUtil, $q) {\n return {\n require: \"ngModel\",\n link: function (scope, el, attrs, ctrl) {\n var validators = scope.$eval(attrs.formlyCustomValidation);\n if (!validators) {\n return;\n }\n checkValidators(validators);\n scope.options.validation.messages = scope.options.validation.messages || {};\n\n // setup watchers and parsers\n var hasValidators = ctrl.hasOwnProperty(\"$validators\");\n angular.forEach(validators, function (validator, name) {\n var message = validator.message;\n if (message) {\n scope.options.validation.messages[name] = function () {\n return formlyUtil.formlyEval(scope, message, ctrl.$modelValue, ctrl.$viewValue);\n };\n }\n validator = angular.isObject(validator) ? validator.expression : validator;\n if (hasValidators) {\n var isPossiblyAsync = !angular.isString(validator);\n var validatorCollection = isPossiblyAsync ? \"$asyncValidators\" : \"$validators\";\n ctrl[validatorCollection][name] = function (modelValue, viewValue) {\n var value = formlyUtil.formlyEval(scope, validator, modelValue, viewValue);\n if (isPossiblyAsync) {\n return isPromiseLike(value) ? value : value ? $q.when(value) : $q.reject(value);\n } else {\n return value;\n }\n };\n } else {\n ctrl.$parsers.unshift(function (viewValue) {\n var isValid = formlyUtil.formlyEval(scope, validator, ctrl.$modelValue, viewValue);\n ctrl.$setValidity(name, isValid);\n return viewValue;\n });\n }\n });\n }\n };\n function isPromiseLike(obj) {\n return obj && angular.isFunction(obj.then);\n }\n\n function checkValidators(validators) {\n var allowedProperties = [\"expression\", \"message\"];\n var validatorsWithExtraProps = {};\n angular.forEach(validators, function (validator, name) {\n var extraProps = [];\n angular.forEach(validator, function (v, key) {\n if (allowedProperties.indexOf(key) === -1) {\n extraProps.push(key);\n }\n });\n if (extraProps.length) {\n validatorsWithExtraProps[name] = extraProps;\n }\n });\n if (Object.keys(validatorsWithExtraProps).length) {\n throw new Error([\"Validators are only allowed to be functions or objects that have \" + allowedProperties.join(\", \") + \".\", \"You provided some extra properties: \" + JSON.stringify(validatorsWithExtraProps)].join(\" \"));\n }\n }\n }]);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./directives/formly-custom-validation.js\n ** module id = 2\n ** module chunks = 0\n **/","\"use strict\";\n\nvar angular = require(\"angular-fix\");\n\nmodule.exports = function (ngModule) {\n ngModule.directive(\"formlyField\", formlyField);\n\n formlyField.tests = ON_TEST ? require(\"./formly-field.test\")(ngModule) : null;\n\n function formlyField($http, $q, $compile, $templateCache, formlyConfig, formlyValidationMessages, formlyUtil, formlyUsability, formlyWarn) {\n return {\n restrict: \"AE\",\n transclude: true,\n scope: {\n options: \"=\",\n model: \"=\",\n formId: \"=?\",\n index: \"=?\",\n fields: \"=?\",\n form: \"=?\"\n },\n controller: [\"$scope\", \"$interval\", \"$timeout\", \"$parse\", \"$controller\", function fieldController($scope, $interval, $timeout, $parse, $controller) {\n var opts = $scope.options;\n var fieldType = opts.type && formlyConfig.getType(opts.type);\n simplifyLife(opts);\n mergeFieldOptionsWithTypeDefaults(opts, fieldType);\n apiCheck(opts);\n // set field id to link labels and fields\n $scope.id = formlyUtil.getFieldId($scope.formId, opts, $scope.index);\n\n // initalization\n extendOptionsWithDefaults(opts, $scope.index);\n runExpressions();\n setFormControl($scope, opts, $interval);\n addModelWatcher($scope, opts);\n addShowMessagesWatcher($scope, opts);\n addValidationMessages(opts);\n invokeControllers($scope, opts, fieldType);\n\n // function definitions\n function runExpressions() {\n $timeout(function () {\n // must run on next tick to make sure that the current value is correct.\n var field = $scope.options;\n var currentValue = valueGetterSetter();\n angular.forEach(field.expressionProperties, function runExpression(expression, prop) {\n var setter = $parse(prop).assign;\n var promise = $q.when(formlyUtil.formlyEval($scope, expression, currentValue));\n promise.then(function (value) {\n setter(field, value);\n });\n });\n });\n }\n\n function valueGetterSetter(newVal) {\n if (!$scope.model || !$scope.options.key) {\n return;\n }\n if (angular.isDefined(newVal)) {\n $scope.model[$scope.options.key] = newVal;\n }\n return $scope.model[$scope.options.key];\n }\n\n function simplifyLife(options) {\n // add a few empty objects (if they don't already exist) so you don't have to undefined check everywhere\n formlyUtil.reverseDeepMerge(options, {\n data: {},\n templateOptions: {},\n validation: {}\n });\n }\n\n function mergeFieldOptionsWithTypeDefaults(options, type) {\n if (type) {\n mergeOptions(options, type.defaultOptions);\n }\n var properOrder = arrayify(options.optionsTypes).reverse(); // so the right things are overridden\n angular.forEach(properOrder, function (typeName) {\n mergeOptions(options, formlyConfig.getType(typeName, true, options).defaultOptions);\n });\n }\n\n function mergeOptions(options, extraOptions) {\n if (extraOptions) {\n if (angular.isFunction(extraOptions)) {\n extraOptions = extraOptions(options);\n }\n formlyUtil.reverseDeepMerge(options, extraOptions);\n }\n }\n\n function extendOptionsWithDefaults(options, index) {\n angular.extend(options, {\n // attach the key in case the formly-field directive is used directly\n key: options.key || index || 0,\n value: valueGetterSetter,\n runExpressions: runExpressions\n });\n }\n\n // initialization functions\n function setFormControl(scope, options, $interval) {\n if (options.noFormControl) {\n return;\n }\n var stopWaitingForDestroy;\n var maxTime = 2000;\n var intervalTime = 5;\n var iterations = 0;\n var interval = $interval(function () {\n iterations++;\n if (!angular.isDefined(options.key)) {\n return cleanUp();\n }\n var formControl = scope.form && scope.form[scope.id];\n if (formControl) {\n options.formControl = formControl;\n cleanUp();\n } else if (intervalTime * iterations > maxTime) {\n formlyWarn(\"couldnt-set-the-formcontrol-after-timems\", \"Couldn't set the formControl after \" + maxTime + \"ms\", scope);\n cleanUp();\n }\n }, intervalTime);\n stopWaitingForDestroy = scope.$on(\"$destroy\", cleanUp);\n\n function cleanUp() {\n stopWaitingForDestroy();\n $interval.cancel(interval);\n }\n }\n\n function addModelWatcher(scope, options) {\n if (options.model) {\n scope.$watch(\"options.model\", runExpressions, true);\n }\n }\n\n function addShowMessagesWatcher(scope, options) {\n var expression = \"options.formControl.$invalid && (options.formControl.$touched || options.validation.show)\";\n scope.$watch(expression, function (show) {\n options.validation.errorExistsAndShouldBeVisible = show;\n });\n }\n\n function addValidationMessages(options) {\n options.validation.messages = options.validation.messages || {};\n angular.forEach(formlyValidationMessages.messages, function (expression, name) {\n if (!options.validation.messages[name]) {\n options.validation.messages[name] = function (viewValue, modelValue, scope) {\n return formlyUtil.formlyEval(scope, expression, modelValue, viewValue);\n };\n }\n });\n }\n\n function invokeControllers(scope) {\n var options = arguments[1] === undefined ? {} : arguments[1];\n var type = arguments[2] === undefined ? {} : arguments[2];\n angular.forEach([type.controller, options.controller], function (controller) {\n if (controller) {\n $controller(controller, { $scope: scope });\n }\n });\n }\n }],\n link: function fieldLink(scope, el) {\n var type = scope.options.type && formlyConfig.getType(scope.options.type);\n var args = arguments;\n var thusly = this;\n getFieldTemplate(scope.options).then(runManipulators(formlyConfig.templateManipulators.preWrapper)).then(transcludeInWrappers(scope.options)).then(runManipulators(formlyConfig.templateManipulators.postWrapper)).then(setElementTemplate)[\"catch\"](function (error) {\n formlyWarn(\"there-was-a-problem-setting-the-template-for-this-field\", \"There was a problem setting the template for this field \", scope.options, error);\n });\n\n function setElementTemplate(templateEl) {\n el.html(asHtml(templateEl));\n $compile(el.contents())(scope);\n if (type && type.link) {\n type.link.apply(thusly, args);\n }\n if (scope.options.link) {\n scope.options.link.apply(thusly, args);\n }\n }\n\n function runManipulators(manipulators) {\n return function runManipulatorsOnTemplate(template) {\n var chain = $q.when(template);\n angular.forEach(manipulators, function (manipulator) {\n chain = chain.then(function (template) {\n return $q.when(manipulator(template, scope.options, scope)).then(function (newTemplate) {\n return angular.isString(newTemplate) ? newTemplate : asHtml(newTemplate);\n });\n });\n });\n return chain;\n };\n }\n }\n };\n\n function asHtml(el) {\n var wrapper = angular.element(\"\");\n return wrapper.append(el).html();\n }\n\n function getFieldTemplate(options) {\n var type = formlyConfig.getType(options.type, true, options);\n var template = options.template || type && type.template;\n var templateUrl = options.templateUrl || type && type.templateUrl;\n if (!template && !templateUrl) {\n throw formlyUsability.getFieldError(\"template-type-type-not-supported\", \"template type '\" + options.type + \"' not supported. On element:\", options);\n }\n return getTemplate(template || templateUrl, !template);\n }\n\n\n function getTemplate(template, isUrl) {\n if (!isUrl) {\n return $q.when(template);\n } else {\n var httpOptions = { cache: $templateCache };\n return $http.get(template, httpOptions).then(function (response) {\n return response.data;\n })[\"catch\"](function (error) {\n formlyWarn(\"problem-loading-template-for-templateurl\", \"Problem loading template for \" + template, error);\n });\n }\n }\n\n function transcludeInWrappers(options) {\n var wrapper = getWrapperOption(options);\n\n return function transcludeTemplate(template) {\n if (!wrapper.length) {\n return $q.when(template);\n }\n\n wrapper.forEach(formlyUsability.checkWrapper);\n var promises = wrapper.map(function (w) {\n return getTemplate(w.template || w.templateUrl, !w.template);\n });\n return $q.all(promises).then(function (wrappersTemplates) {\n wrappersTemplates.forEach(function (wrapperTemplate, index) {\n formlyUsability.checkWrapperTemplate(wrapperTemplate, wrapper[index]);\n });\n wrappersTemplates.reverse(); // wrapper 0 is wrapped in wrapper 1 and so on...\n var totalWrapper = wrappersTemplates.shift();\n wrappersTemplates.forEach(function (wrapperTemplate) {\n totalWrapper = doTransclusion(totalWrapper, wrapperTemplate);\n });\n return doTransclusion(totalWrapper, template);\n });\n };\n }\n\n function doTransclusion(wrapper, template) {\n var superWrapper = angular.element(\"\"); // this allows people not have to have a single root in wrappers\n superWrapper.append(wrapper);\n var transcludeEl = superWrapper.find(\"formly-transclude\");\n transcludeEl.replaceWith(template);\n return superWrapper.html();\n }\n\n function getWrapperOption(options) {\n var wrapper = options.wrapper;\n // explicit null means no wrapper\n if (wrapper === null) {\n return;\n }\n\n // nothing specified means use the default wrapper for the type\n if (!wrapper) {\n // get all wrappers that specify they apply to this type\n wrapper = arrayify(formlyConfig.getWrapperByType(options.type));\n } else {\n wrapper = arrayify(wrapper).map(formlyConfig.getWrapper);\n }\n\n // get all wrappers for that this type specified that it uses.\n var type = formlyConfig.getType(options.type, true, options);\n if (type && type.wrapper) {\n var typeWrappers = arrayify(type.wrapper).map(formlyConfig.getWrapper);\n wrapper = wrapper.concat(typeWrappers);\n }\n\n // add the default wrapper last\n var defaultWrapper = formlyConfig.getWrapper();\n if (defaultWrapper) {\n wrapper.push(defaultWrapper);\n }\n return wrapper;\n }\n\n function apiCheck(options) {\n var templateOptions = getTemplateOptionsCount(options);\n if (templateOptions === 0) {\n throw formlyUsability.getFieldError(\"you-must-provide-one-of-type-template-or-templateurl-for-a-field\", \"You must provide one of type, template, or templateUrl for a field\", options);\n } else if (templateOptions > 1) {\n throw formlyUsability.getFieldError(\"you-must-only-provide-a-type-template-or-templateurl-for-a-field\", \"You must only provide a type, template, or templateUrl for a field\", options);\n }\n\n // check that only allowed properties are provided\n var allowedProperties = [\"type\", \"template\", \"templateUrl\", \"key\", \"model\", \"expressionProperties\", \"data\", \"templateOptions\", \"wrapper\", \"modelOptions\", \"watcher\", \"validators\", \"noFormControl\", \"hide\", \"ngModelAttrs\", \"optionsTypes\", \"link\", \"controller\", \"validation\",\n // things we add to the field after the fact are ok\n \"formControl\", \"value\", \"runExpressions\"];\n var extraProps = Object.keys(options).filter(function (prop) {\n return allowedProperties.indexOf(prop) === -1;\n });\n if (extraProps.length) {\n throw formlyUsability.getFieldError(\"you-have-specified-field-properties-that-are-not-allowed\", \"You have specified field properties that are not allowed: \" + JSON.stringify(extraProps.join(\", \")), options);\n }\n\n function getTemplateOptionsCount(options) {\n var templateOptions = 0;\n templateOptions += angular.isDefined(options.template) ? 1 : 0;\n templateOptions += angular.isDefined(options.type) ? 1 : 0;\n templateOptions += angular.isDefined(options.templateUrl) ? 1 : 0;\n return templateOptions;\n }\n }\n }\n formlyField.$inject = [\"$http\", \"$q\", \"$compile\", \"$templateCache\", \"formlyConfig\", \"formlyValidationMessages\", \"formlyUtil\", \"formlyUsability\", \"formlyWarn\"];\n\n function arrayify(obj) {\n if (obj && !angular.isArray(obj)) {\n obj = [obj];\n } else if (!obj) {\n obj = [];\n }\n return obj;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./directives/formly-field.js\n ** module id = 3\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n ngModule.directive(\"formlyFocus\", [\"$timeout\", \"$document\", function ($timeout, $document) {\n /* jshint -W052 */\n return {\n link: function (scope, element, attrs) {\n var previousEl = null;\n var el = element[0];\n var doc = $document[0];\n attrs.$observe(\"formlyFocus\", function (value) {\n if (value === \"true\") {\n $timeout(function () {\n previousEl = doc.activeElement;\n el.focus();\n }, ~ ~attrs.focusWait);\n } else if (value === \"false\") {\n if (doc.activeElement === el) {\n el.blur();\n if (attrs.hasOwnProperty(\"refocus\") && previousEl) {\n previousEl.focus();\n }\n }\n }\n });\n }\n };\n }]);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./directives/formly-focus.js\n ** module id = 4\n ** module chunks = 0\n **/","\"use strict\";\n\nvar _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); };\n\nvar _slice = Array.prototype.slice;\nvar angular = require(\"angular-fix\");\n\nmodule.exports = function (ngModule) {\n ngModule.directive(\"formlyForm\", formlyForm);\n\n formlyForm.tests = ON_TEST ? require(\"./formly-form.test\")(ngModule) : null;\n\n function formlyForm(formlyUsability) {\n var currentFormId = 1;\n return {\n restrict: \"E\",\n template: function (el, attrs) {\n /* jshint -W033 */ // this because jshint is broken I guess...\n var rootEl = attrs.rootEl || \"ng-form\";\n return \"\\n <\" + rootEl + \" class=\\\"formly\\\"\\n name=\\\"form\\\"\\n role=\\\"form\\\">\\n
\\n
\\n
\\n \\n \";\n },\n replace: true,\n transclude: true,\n scope: {\n fields: \"=\",\n model: \"=?\", // we'll do our own warning to help with migrations\n form: \"=?\"\n },\n controller: [\"$scope\", function ($scope) {\n $scope.formId = \"formly_\" + currentFormId++;\n\n angular.forEach($scope.fields, attachKey); // attaches a key based on the index if a key isn't specified\n angular.forEach($scope.fields, setupWatchers); // setup watchers for all fields\n\n // watch the model and evaluate watch expressions that depend on it.\n $scope.$watch(\"model\", function onResultUpdate(newResult) {\n angular.forEach($scope.fields, function (field) {\n /*jshint -W030 */\n field.runExpressions && field.runExpressions(newResult);\n });\n }, true);\n\n function attachKey(field, index) {\n field.key = field.key || index || 0;\n }\n\n function setupWatchers(field, index) {\n if (!angular.isDefined(field.watcher)) {\n return;\n }\n var watchers = field.watcher;\n if (!angular.isArray(watchers)) {\n watchers = [watchers];\n }\n angular.forEach(watchers, function (watcher) {\n if (!angular.isDefined(watcher.listener)) {\n throw formlyUsability.getFieldError(\"all-field-watchers-must-have-a-listener\", \"All field watchers must have a listener\", field);\n }\n var watchExpression = getWatchExpression(watcher, field, index);\n var watchListener = getWatchListener(watcher, field, index);\n\n var type = watcher.type || \"$watch\";\n watcher.stopWatching = $scope[type](watchExpression, watchListener, watcher.watchDeep);\n });\n }\n\n function getWatchExpression(watcher, field, index) {\n var watchExpression = watcher.expression || \"model['\" + field.key + \"']\";\n if (angular.isFunction(watchExpression)) {\n // wrap the field's watch expression so we can call it with the field as the first arg\n // and the stop function as the last arg as a helper\n var originalExpression = watchExpression;\n watchExpression = function formlyWatchExpression() {\n var args = modifyArgs.apply(undefined, [watcher, index].concat(_slice.call(arguments)));\n return originalExpression.apply(undefined, _toArray(args));\n };\n watchExpression.displayName = \"Formly Watch Expression for field for \" + field.key;\n }\n return watchExpression;\n }\n\n function getWatchListener(watcher, field, index) {\n var watchListener = watcher.listener;\n if (angular.isFunction(watchListener)) {\n // wrap the field's watch listener so we can call it with the field as the first arg\n // and the stop function as the last arg as a helper\n var originalListener = watchListener;\n watchListener = function formlyWatchListener() {\n var args = modifyArgs.apply(undefined, [watcher, index].concat(_slice.call(arguments)));\n return originalListener.apply(undefined, _toArray(args));\n };\n watchListener.displayName = \"Formly Watch Listener for field for \" + field.key;\n }\n return watchListener;\n }\n\n function modifyArgs(watcher, index) {\n for (var _len = arguments.length, originalArgs = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n originalArgs[_key - 2] = arguments[_key];\n }\n\n return [$scope.fields[index]].concat(_toArray(originalArgs), [watcher.stopWatching]);\n }\n }],\n link: function (scope, el, attrs) {\n if (attrs.hasOwnProperty(\"result\")) {\n throw formlyUsability.getFormlyError(\"The \\\"result\\\" attribute on a formly-form is no longer valid. Use \\\"model\\\" instead\");\n }\n if (attrs.name !== \"form\") {\n // then they specified their own name\n throw formlyUsability.getFormlyError(\"The \\\"name\\\" attribute on a formly-form is no longer valid. Use \\\"form\\\" instead\");\n }\n // enforce the model attribute because we're making it optional to help with migrations\n if (!attrs.hasOwnProperty(\"model\") || !scope.model) {\n throw formlyUsability.getFormlyError(\"The \\\"model\\\" attribute is required on a formly-form.\");\n }\n }\n };\n }\n formlyForm.$inject = [\"formlyUsability\"];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./directives/formly-form.js\n ** module id = 5\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n require(\"./formly-custom-validation\")(ngModule);\n require(\"./formly-field\")(ngModule);\n require(\"./formly-form\")(ngModule);\n require(\"./formly-focus\")(ngModule);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./directives/index.js\n ** module id = 6\n ** module chunks = 0\n **/","\"use strict\";\n\nvar ngModuleName = \"formly\";\nvar angular = require(\"./angular-fix\");\nvar ngModule = angular.module(ngModuleName, []);\n\nrequire(\"./providers\")(ngModule);\nrequire(\"./services\")(ngModule);\nrequire(\"./directives\")(ngModule);\nrequire(\"./run\")(ngModule);\n\nmodule.exports = ngModuleName;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./index.common.js\n ** module id = 7\n ** module chunks = 0\n **/","\"use strict\";\n\nvar angular = require(\"angular-fix\");\n\nmodule.exports = function (ngModule) {\n ngModule.provider(\"formlyConfig\", formlyConfig);\n\n formlyConfig.tests = ON_TEST ? require(\"./formlyConfig.test\")(ngModule) : null;\n\n function formlyConfig(formlyUsabilityProvider) {\n var _this2 = this;\n\n\n var typeMap = {};\n var templateWrappersMap = {};\n var defaultWrapperName = \"default\";\n var _this = this;\n var getError = formlyUsabilityProvider.getFormlyError;\n\n angular.extend(this, {\n setType: setType,\n getType: getType,\n setWrapper: setWrapper,\n getWrapper: getWrapper,\n getWrapperByType: getWrapperByType,\n removeWrapperByName: removeWrapperByName,\n removeWrappersForType: removeWrappersForType,\n disableWarnings: false,\n extras: {\n disableNgModelAttrsManipulator: false\n },\n templateManipulators: {\n preWrapper: [],\n postWrapper: []\n },\n $get: function () {\n return _this2;\n }\n });\n\n function setType(options) {\n if (angular.isArray(options)) {\n angular.forEach(options, setType);\n } else if (angular.isObject(options)) {\n checkType(options);\n typeMap[options.name] = options;\n } else {\n throw getError(\"You must provide an object or array for setType. You provided: \" + JSON.stringify(arguments));\n }\n }\n\n function getType(name, throwError, errorContext) {\n if (!name) {\n return undefined;\n }\n var type = typeMap[name];\n if (!type && throwError === true) {\n throw getError(\"There is no type by the name of \\\"\" + name + \"\\\": \" + JSON.stringify(errorContext));\n } else {\n return type;\n }\n }\n\n function checkType(options) {\n if (!options.name) {\n throw getError(\"You must provide a name for setType. You provided: \" + JSON.stringify(arguments));\n } else if (!options.defaultOptions && !options.template && !options.templateUrl) {\n throw getError(\"You must provide defaultOptions OR a template OR templateUrl for setType. \" + (\"You provided none of these: \" + JSON.stringify(arguments)));\n } else if (options.template && options.templateUrl) {\n throw getError(\"You must provide at most a template OR templateUrl for setType. \" + (\"You provided both: \" + JSON.stringify(arguments)));\n }\n if (!options.overwriteOk) {\n checkOverwrite(options.name, typeMap, options, \"types\");\n } else {\n delete options.overwriteOk;\n }\n }\n\n function setWrapper(options, name) {\n if (angular.isArray(options)) {\n return options.map(function (wrapperOptions) {\n return setWrapper(wrapperOptions);\n });\n } else if (angular.isObject(options)) {\n options.types = getOptionsTypes(options);\n options.name = getOptionsName(options, name);\n checkWrapperAPI(options);\n templateWrappersMap[options.name] = options;\n return options;\n } else if (angular.isString(options)) {\n return setWrapper({\n template: options,\n name: name\n });\n }\n }\n\n function getOptionsTypes(options) {\n if (angular.isString(options.types)) {\n return [options.types];\n }\n if (!angular.isDefined(options.types)) {\n return [];\n } else {\n return options.types;\n }\n }\n\n function getOptionsName(options, name) {\n return options.name || name || options.types.join(\" \") || defaultWrapperName;\n }\n\n function checkWrapperAPI(options) {\n formlyUsabilityProvider.checkWrapper(options);\n if (options.template) {\n formlyUsabilityProvider.checkWrapperTemplate(options.template, options);\n }\n if (!options.overwriteOk) {\n checkOverwrite(options.name, templateWrappersMap, options, \"templateWrappers\");\n } else {\n delete options.overwriteOk;\n }\n checkWrapperTypes(options);\n }\n\n function checkWrapperTypes(options) {\n var shouldThrow = !angular.isArray(options.types) || !options.types.every(angular.isString);\n if (shouldThrow) {\n throw getError(\"Attempted to create a template wrapper with types that is not a string or an array of strings\");\n }\n }\n\n function checkOverwrite(property, object, newValue, objectName) {\n if (object.hasOwnProperty(property)) {\n warn([\"Attempting to overwrite \" + property + \" on \" + objectName + \" which is currently\", \"\" + JSON.stringify(object[property]) + \" with \" + JSON.stringify(newValue), \"To supress this warning, specify the property \\\"overwriteOk: true\\\"\"].join(\" \"));\n }\n }\n\n function getWrapper(name) {\n return templateWrappersMap[name || defaultWrapperName];\n }\n\n function getWrapperByType(type) {\n /* jshint maxcomplexity:6 */\n var wrappers = [];\n for (var name in templateWrappersMap) {\n if (templateWrappersMap.hasOwnProperty(name)) {\n if (templateWrappersMap[name].types && templateWrappersMap[name].types.indexOf(type) !== -1) {\n wrappers.push(templateWrappersMap[name]);\n }\n }\n }\n return wrappers;\n }\n\n function removeWrapperByName(name) {\n var wrapper = templateWrappersMap[name];\n delete templateWrappersMap[name];\n return wrapper;\n }\n\n function removeWrappersForType(type) {\n var wrappers = getWrapperByType(type);\n if (!wrappers) {\n return;\n }\n if (!angular.isArray(wrappers)) {\n return removeWrapperByName(wrappers.name);\n } else {\n wrappers.forEach(function (wrapper) {\n return removeWrapperByName(wrapper.name);\n });\n return wrappers;\n }\n }\n\n\n function warn() {\n if (!_this.disableWarnings) {\n console.warn.apply(console, arguments);\n }\n }\n }\n formlyConfig.$inject = [\"formlyUsabilityProvider\"];\n\n\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./providers/formlyConfig.js\n ** module id = 8\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n ngModule.constant(\"formlyErrorAndWarningsUrlPrefix\", \"https://github.com/formly-js/angular-formly/wiki/Errors-and-Warnings#\");\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./providers/formlyErrorAndWarningsUrlPrefix.js\n ** module id = 9\n ** module chunks = 0\n **/","\"use strict\";\n\nvar angular = require(\"angular-fix\");\n\nmodule.exports = function (ngModule) {\n ngModule.provider(\"formlyUsability\", function () {\n var _this = this;\n var errorsAndWarningsUrlPrefix = \"https://github.com/formly-js/angular-formly/wiki/Errors-and-Warnings#\";\n angular.extend(this, {\n getFormlyError: getFormlyError,\n getFieldError: getFieldError,\n checkWrapper: checkWrapper,\n checkWrapperTemplate: checkWrapperTemplate,\n $get: function () {\n return _this;\n }\n });\n\n function getFieldError(errorInfoSlug, message, field) {\n if (arguments.length < 3) {\n field = message;\n message = errorInfoSlug;\n errorInfoSlug = null;\n }\n return new Error(getErrorMessage(errorInfoSlug, message) + (\" Field definition: \" + angular.toJson(field)));\n }\n\n function getFormlyError(errorInfoSlug, message) {\n if (!message) {\n message = errorInfoSlug;\n errorInfoSlug = null;\n }\n return new Error(getErrorMessage(errorInfoSlug, message));\n }\n\n function getErrorMessage(errorInfoSlug, message) {\n var url = \"\";\n if (errorInfoSlug !== null) {\n url = \"\" + errorsAndWarningsUrlPrefix + \"\" + errorInfoSlug;\n }\n return \"Formly Error: \" + message + \". \" + url;\n }\n\n function checkWrapper(wrapper) {\n if (wrapper.template && wrapper.templateUrl) {\n throw getFormlyError(\"Template wrappers can only have a templateUrl or a template. \" + (\"This one provided both: \" + JSON.stringify(wrapper)));\n }\n if (!wrapper.template && !wrapper.templateUrl) {\n throw getFormlyError(\"Template wrappers must have one of a templateUrl or a template. \" + (\"This one provided neither: \" + JSON.stringify(wrapper)));\n }\n }\n\n function checkWrapperTemplate(template, additionalInfo) {\n var formlyTransclude = \"\";\n if (template.indexOf(formlyTransclude) === -1) {\n throw getFormlyError(\"Template wrapper templates must use \\\"\" + formlyTransclude + \"\\\" somewhere in them. \" + (\"This one does not have \\\"\\\" in it: \" + template) + \"\\n\" + (\"Additional information: \" + JSON.stringify(additionalInfo)));\n }\n }\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./providers/formlyUsability.js\n ** module id = 10\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n ngModule.factory(\"formlyValidationMessages\", function () {\n var formlyValidationMessages = {\n addTemplateOptionValueMessage: addTemplateOptionValueMessage,\n addStringMessage: addStringMessage,\n messages: {}\n };\n\n return formlyValidationMessages;\n\n function addTemplateOptionValueMessage(name, prop, prefix, suffix, alternate) {\n formlyValidationMessages.messages[name] = templateOptionValue(prop, prefix, suffix, alternate);\n }\n\n function addStringMessage(name, string) {\n formlyValidationMessages.messages[name] = function () {\n return string;\n };\n }\n\n\n function templateOptionValue(prop, prefix, suffix, alternate) {\n return function getValidationMessage(viewValue, modelValue, scope) {\n if (scope.options.templateOptions[prop]) {\n return \"\" + prefix + \" \" + scope.options.templateOptions[prop] + \" \" + suffix;\n } else {\n return alternate;\n }\n };\n }\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./providers/formlyValidationMessages.js\n ** module id = 11\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n ngModule.constant(\"formlyVersion\", VERSION);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./providers/formlyVersion.js\n ** module id = 12\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n require(\"./formlyUsability\")(ngModule);\n require(\"./formlyConfig\")(ngModule);\n require(\"./formlyVersion\")(ngModule);\n require(\"./formlyErrorAndWarningsUrlPrefix\")(ngModule);\n require(\"./formlyValidationMessages\")(ngModule);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./providers/index.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n ngModule.run(addFormlyNgModelAttrsManipulator);\n\n function addFormlyNgModelAttrsManipulator(formlyConfig) {\n if (formlyConfig.extras.disableNgModelAttrsManipulator) {\n return;\n }\n formlyConfig.templateManipulators.preWrapper.push(ngModelAttrsManipulator);\n }\n addFormlyNgModelAttrsManipulator.$inject = [\"formlyConfig\"];\n\n\n function ngModelAttrsManipulator(template, options, scope) {\n /* jshint maxcomplexity:7 */\n var el = angular.element(\"\");\n var data = options.data;\n if (data.noTouchy) {\n return template;\n }\n el.append(template);\n var modelEls = angular.element(el[0].querySelectorAll(\"[ng-model]\"));\n if (!modelEls || !modelEls.length) {\n return template;\n }\n addNgModelAttrs(options.ngModelAttrs);\n\n addIfNotPresent(modelEls, \"id\", scope.id);\n addIfNotPresent(modelEls, \"name\", scope.id);\n\n if (angular.isDefined(options.validators)) {\n addIfNotPresent(modelEls, \"formly-custom-validation\", \"options.validators\");\n }\n if (angular.isDefined(options.modelOptions)) {\n addIfNotPresent(modelEls, \"ng-model-options\", \"options.modelOptions\");\n if (options.modelOptions.getterSetter) {\n modelEls.attr(\"ng-model\", \"options.value\");\n }\n }\n addTemplateOptionsAttrs();\n\n return el.html();\n\n\n function addTemplateOptionsAttrs() {\n // if the field has specified values for these, then we want to add the attributes and watch them for changes.\n var boundAttributes = angular.extend(data.ngModelBoundAttributes || {}, {\n \"ng-disabled\": \"disabled\",\n \"ng-required\": \"required\",\n \"ng-pattern\": \"pattern\",\n \"ng-maxlength\": \"maxlength\",\n \"ng-minlength\": \"minlength\"\n });\n var invokedAttributes = angular.extend(data.ngModelInvokedAttributes || {}, {\n \"ng-change\": \"onChange\",\n \"ng-keydown\": \"onKeydown\",\n \"ng-keyup\": \"onKeyup\",\n \"ng-keypress\": \"onKeypress\",\n \"ng-click\": \"onClick\",\n \"ng-focus\": \"onFocus\",\n \"ng-blur\": \"onBlur\"\n });\n // attributes are wrapped in curly braces\n var attributes = angular.extend(data.ngModelAttributes || {}, {\n \"formly-focus\": \"focus\",\n placeholder: \"placeholder\",\n min: \"min\",\n max: \"max\",\n tabindex: \"tabindex\",\n type: \"type\"\n });\n\n addDefinedAttributes(modelEls, boundAttributes, options);\n addDefinedAttributes(modelEls, attributes, options, \"{{\", \"}}\");\n addDefinedAttributes(modelEls, invokedAttributes, options, function (val) {\n return angular.isFunction(val) ? \"\" : \"$eval(\";\n }, function (val) {\n return angular.isFunction(val) ? \"(model[options.key], options, this, $event)\" : \")\";\n });\n }\n\n function addNgModelAttrs(ngModelAttrs) {\n ngModelAttrs = ngModelAttrs || {};\n angular.forEach(ngModelAttrs.bound, function (val, attr) {\n addIfNotPresent(modelEls, attr, \"options.ngModelAttrs.bound['\" + attr + \"']\");\n });\n angular.forEach(ngModelAttrs.unbound, function (val, attr) {\n addIfNotPresent(modelEls, attr, scope.$eval(val));\n });\n }\n\n function addDefinedAttributes(els, attrs, options) {\n var prefix = arguments[3] === undefined ? \"\" : arguments[3];\n var suffix = arguments[4] === undefined ? \"\" : arguments[4];\n /* jshint maxcomplexity:6 */\n var to = options.templateOptions;\n var ep = options.expressionProperties;\n if (!to && !ep) {\n return; // no reason to iterate if these don't exist...\n } else {\n to = to || {};\n ep = ep || {};\n }\n angular.forEach(attrs, function (val, attrName) {\n // if it's defined as a property on template options, or if it's an expression property,\n // then we'll add the attribute (and hence the watchers)\n if (angular.isDefined(to[val]) || angular.isDefined(ep[\"templateOptions.\" + val])) {\n var valPrefix = angular.isFunction(prefix) ? prefix(to[val]) : prefix;\n var valSuffix = angular.isFunction(suffix) ? suffix(to[val]) : suffix;\n addIfNotPresent(els, \"\" + attrName, \"\" + valPrefix + \"options.templateOptions['\" + val + \"']\" + valSuffix);\n }\n });\n }\n\n function addIfNotPresent(el, attr, val) {\n if (!el.attr(attr)) {\n el.attr(attr, val);\n }\n }\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./run/formlyNgModelAttrsManipulator.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n require(\"./formlyNgModelAttrsManipulator\")(ngModule);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./run/index.js\n ** module id = 15\n ** module chunks = 0\n **/","\"use strict\";\n\nvar _slice = Array.prototype.slice;\nvar angular = require(\"angular-fix\");\n\nmodule.exports = function (ngModule) {\n ngModule.factory(\"formlyUtil\", function () {\n var objectPrototype = Object.getPrototypeOf({});\n var arrayPrototype = Object.getPrototypeOf([]);\n return {\n formlyEval: formlyEval,\n getFieldId: getFieldId,\n reverseDeepMerge: reverseDeepMerge\n };\n\n function formlyEval(scope, expression, modelValue, viewValue) {\n if (angular.isFunction(expression)) {\n return expression(viewValue, modelValue, scope);\n } else {\n return scope.$eval(expression, {\n $viewValue: viewValue,\n $modelValue: modelValue\n });\n }\n }\n\n function getFieldId(formId, options, index) {\n var type = options.type;\n if (!type && options.template) {\n type = \"template\";\n } else if (!type && options.templateUrl) {\n type = \"templateUrl\";\n }\n\n return [formId, type, options.key, index].join(\"_\");\n }\n\n function reverseDeepMerge() {\n var realRes = arguments[0];\n var res = {};\n angular.forEach([].concat(_slice.call(arguments)).reverse(), function (src) {\n if (!src) {\n return;\n }\n angular.forEach(src, function (val, prop) {\n /* jshint maxcomplexity:7 */\n if (typeof val === \"object\" && val !== null && (Object.getPrototypeOf(val) === objectPrototype || Object.getPrototypeOf(val) === arrayPrototype)) {\n var deepRes = res[prop];\n if (!deepRes && angular.isArray(val)) {\n deepRes = [];\n } else if (!deepRes) {\n deepRes = {};\n }\n res[prop] = reverseDeepMerge(deepRes, val);\n } else if (angular.isDefined(val)) {\n res[prop] = val;\n }\n });\n });\n angular.forEach(realRes, function (val, prop) {\n delete realRes[prop];\n });\n angular.forEach(res, function (val, prop) {\n realRes[prop] = val;\n });\n res = realRes;\n return res;\n }\n\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./services/formlyUtil.js\n ** module id = 16\n ** module chunks = 0\n **/","\"use strict\";\n\nvar _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); };\n\nmodule.exports = function (ngModule) {\n ngModule.factory(\"formlyWarn\", [\"formlyConfig\", \"formlyErrorAndWarningsUrlPrefix\", \"$log\", function (formlyConfig, formlyErrorAndWarningsUrlPrefix, $log) {\n return function warn() {\n if (!formlyConfig.disableWarnings) {\n var args = Array.prototype.slice.call(arguments);\n var warnInfoSlug = args.shift();\n args.unshift(\"Formly Warning:\");\n args.push(\"\" + formlyErrorAndWarningsUrlPrefix + \"\" + warnInfoSlug);\n $log.warn.apply($log, _toArray(args));\n }\n };\n }]);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./services/formlyWarn.js\n ** module id = 17\n ** module chunks = 0\n **/","\"use strict\";\n\nmodule.exports = function (ngModule) {\n require(\"./formlyUtil\")(ngModule);\n require(\"./formlyWarn\")(ngModule);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./services/index.js\n ** module id = 18\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_19__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 19\n ** module chunks = 0\n **/"],"sourceRoot":"","file":"formly.min.js"}