-
Notifications
You must be signed in to change notification settings - Fork 45
/
Copy pathangular-schema-form-material-bundled.min.js
26 lines (26 loc) · 58.6 KB
/
angular-schema-form-material-bundled.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*!
* angular-schema-form-material
* @version 1.0.0-alpha.2
* @date Mon, 02 Jan 2017 12:21:23 GMT
* @link https://github.com/json-schema-form/angular-schema-form-material
* @license MIT
* Copyright (c) 2014-2017 JSON Schema Form
*/
!function(e){function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=26)}([function(e,t){var r="/material/default.html",n='<md-input-container class="schema-form-{{::form.type}} {{::form.htmlClass}}"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess(), \'has-feedback\': form.feedback !== false}"\r\n sf-messages sf-layout sf-material-class="md-input-has-value">\r\n <label ng-show="showTitle()" for="{{::form.key|sfCamelKey}}">{{::form.title}}</label>\r\n <input sf-field-model\r\n ng-show="::form.key"\r\n type="{{::form.type}}"\r\n step="any"\r\n sf-changed="form"\r\n placeholder="{{::form.placeholder}}"\r\n id="{{::form.key|sfCamelKey}}"\r\n ng-class="::form.fieldHtmlClass"\r\n sf-type-parser="form.schema"\r\n ng-disabled="::form.readonly"\r\n schema-validate="form"\r\n name="{{::form.key|sfCamelKey}}"\r\n aria-describedby="{{::form.key|sfCamelKey}}Status" />\r\n</md-input-container>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/checkbox.html",n='<div class="checkbox schema-form-checkbox {{::form.htmlClass}}"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess()}"\r\n sf-messages>\r\n <md-checkbox sf-field-model\r\n sf-changed="form"\r\n ng-disabled="form.readonly"\r\n schema-validate="form"\r\n sf-material-class="md-checked"\r\n class="{{::form.fieldHtmlClass}}"\r\n name="{{::form.key|sfCamelKey}}"\r\n aria-label="{{::form.title}}">\r\n <span>{{::form.title}}</span>\r\n </md-checkbox>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/submit.html",n='<section class="schema-form-submit {{::form.htmlClass}}" sf-messages>\r\n <md-button class="md-raised {{ form.style || \'md-primary\' }} {{::form.fieldHtmlClass}}"\r\n type="{{::form.type}}"\r\n ng-disabled="form.readonly"\r\n aria-label="{{::form.title}}">\r\n <md-tooltip ng-if="::form.tip">{{::form.tip}}</md-tooltip>\r\n {{::form.title}}\r\n </md-button>\r\n</section>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t,r){r(22),r(21),r(20)},function(e,t){var r="/material/actions.html",n='<section layout="row" class="btn-group schema-form-actions {{form.htmlClass}}"></section>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/array.html",n='<div class="schema-form-array {{::form.htmlClass}}"\r\n sf-field-model="sf-new-array"\r\n sf-new-array>\r\n <label class="control-label" ng-show="showTitle()">{{ form.title }}</label>\r\n <md-list class="list-group" sf-field-model ui-sortable="form.sortOptions">\r\n <md-list-item layout="row" class="list-group-item"\r\n sf-field-model="ng-repeat"\r\n ng-repeat="item in modelArray track by $index"\r\n schema-form-array-items\r\n class="{{::form.fieldHtmlClass}}">\r\n <md-button flex="none" flex-order="2"\r\n type="button"\r\n ng-hide="form.readonly || form.remove === null"\r\n ng-click="deleteFromArray($index)"\r\n ng-disabled="form.schema.minItems >= modelArray.length"\r\n class="md-icon-button" aria-label="More"\r\n style="position: relative; z-index: 20;">\r\n <md-icon>close</md-icon>\r\n </md-button>\r\n </md-list-item>\r\n </md-list>\r\n <div class="clearfix" style="padding: 15px;" ng-model="modelArray" schema-validate="form">\r\n <div class="help-block"\r\n ng-show="(hasError() && errorMessage(schemaError())) || form.description"\r\n ng-bind-html="(hasError() && errorMessage(schemaError())) || form.description"></div>\r\n\r\n <md-button ng-hide="form.readonly || form.add === null"\r\n ng-click="appendToArray()"\r\n ng-disabled="form.schema.maxItems <= modelArray.length"\r\n type="button"\r\n class="btn md-raised md-primary {{ form.style.add || \'btn-default\' }} pull-right">\r\n <i class="glyphicon glyphicon-plus"></i>\r\n {{ form.add || \'Add\'}}\r\n </md-button>\r\n </div>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/autocomplete.html",n='<div class="form-group {{::form.htmlClass}} schema-form-select"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess(), \'has-feedback\': form.feedback !== false}"\r\n sf-messages sf-layout>\r\n <md-autocomplete flex\r\n ng-disabled="form.readonly"\r\n ng-model="$$value$$"\r\n sf-autocomplete\r\n sf-field-model="replaceAll"\r\n schema-validate="form"\r\n md-selected-item="$$value$$"\r\n md-search-text="searchText"\r\n md-selected-item-change="\'todo\';"\r\n md-items="item in evalExpr(\'this[\\\'\'+form.optionFilter+\'\\\'](\\\'\'+searchText+\'\\\')\')"\r\n md-item-text="item.name"\r\n md-floating-label="{{::form.title}}"\r\n md-menu-class="autocomplete-custom-template">\r\n <md-item-template>\r\n <span md-highlight-text="searchText">{{item.name}}</span>\r\n </md-item-template>\r\n <md-not-found>\r\n No matches found\r\n </md-not-found>\r\n </md-autocomplete>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/checkboxes.html",n='<div sf-array="form" sf-field-model\r\n class="form-group schema-form-checkboxes {{::form.htmlClass}}"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess()}"\r\n sf-messages>\r\n <label class="control-label" ng-show="showTitle()">{{::form.title}}</label>\r\n <div class="checkbox" ng-repeat="val in titleMapValues track by $index" >\r\n <md-checkbox ng-model="titleMapValues[$index]"\r\n sf-changed="form"\r\n ng-disabled="::form.readonly"\r\n name="{{::form.key|sfCamelKey}}"\r\n ng-true-value="true"\r\n ng-false-value="false"\r\n aria-label="{{::form.title}}">\r\n {{::form.titleMap[$index].name}}\r\n </md-checkbox>\r\n </div>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/date.html",n='<div class="schema-form-date {{::form.htmlClass}}">\r\n <label ng-show="showTitle()" for="{{::form.key|sfCamelKey}}">{{::form.title}}</label>\r\n <md-datepicker sf-field-model\r\n sf-changed="form"\r\n schema-validate="form"\r\n sf-type-parser="form.schema"\r\n id="{{::form.key|sfCamelKey}}"\r\n ng-show="::form.key"\r\n ng-class="::form.fieldHtmlClass"\r\n ng-disabled="::form.readonly"\r\n md-placeholder="Enter date" sf-messages>\r\n </md-datepicker>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/fieldset.html",n='<fieldset ng-disabled="form.readonly" class="standard {{form.htmlClass}}" flex>\r\n <legend ng-show="form.title">{{ form.title }}</legend>\r\n</fieldset>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/help.html",n='<div class="helpvalue schema-form-helpvalue {{form.htmlClass}}" ng-bind-html="form.helpvalue"></div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/radio-buttons.html",n='<div class="form-group schema-form-radiobuttons {{::form.htmlClass}}"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess()}" sf-layout sf-messages>\r\n <div>\r\n <label class="control-label" ng-show="showTitle()">{{form.title}}</label>\r\n </div>\r\n <section layout="row" layout-sm="column" layout-align="center center">\r\n <md-input-container ng-repeat="item in form.titleMap">\r\n <md-button type="button"\r\n class="group md-raised"\r\n sf-field-model="replaceAll"\r\n ng-model="$$value$$"\r\n sf-changed="form"\r\n class="radio {{::form.fieldHtmlClass}}"\r\n ng-class="{\'md-primary\': ($$value$$ == item.value)}"\r\n ng-disabled="form.readonly"\r\n ng-model-options="form.ngModelOptions"\r\n schema-validate="form"\r\n ng-value="item.value"\r\n ng-click="$$value$$ = item.value"\r\n name="{{form.key.join(\'.\')}}">\r\n <span ng-bind-html="item.name"></span>\r\n </md-button>\r\n </md-input-container>\r\n </section>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/radios-inline.html",n='<div class="form-group schema-form-radios-inline {{::form.htmlClass}}"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess()}" sf-layout sf-messages>\r\n <label class="control-label" ng-show="showTitle()">{{form.title}}</label>\r\n <md-radio-group layout="row"\r\n sf-field-model="replaceAll"\r\n ng-model="$$value$$"\r\n class="{{::form.fieldHtmlClass}}"\r\n ng-class="{ active: item.value === $$value$$ }"\r\n sf-changed="form"\r\n schema-validate="form"\r\n ng-disabled="form.readonly"\r\n name="{{form.key.join(\'.\')}}">\r\n <md-radio-button ng-repeat="item in form.titleMap" ng-value="item.value">\r\n <span ng-bind-html="item.name"></span>\r\n </md-radio-button>\r\n </md-radio-group>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/radios.html",n='<div class="form-group schema-form-radios {{::form.htmlClass}}"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess()}">\r\n <label class="control-label" ng-show="showTitle()" aria-label="{{form.title}}" layout="row">{{form.title}} {{form.titleMap | json}}</label>\r\n <div>\r\n <md-radio-group sf-field-model\r\n sf-changed="form"\r\n ng-disabled="form.readonly"\r\n name="{{form.key.join(\'.\')}}"\r\n sf-layout sf-messages>\r\n <md-radio-button ng-repeat="item in form.titleMap"\r\n ng-value="item.value"\r\n class="{{::form.fieldHtmlClass}}"\r\n sf-field-model="ng-class"\r\n ng-class="{ active: item.value === $$value$$ }">\r\n <span ng-bind-html="item.name"></span>\r\n </md-radio-button>\r\n </md-radio-group>\r\n </div>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/section.html",n='<md-content class="schema-form-section {{::form.htmlClass}}" sf-layout>\r\n</md-content>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/select.html",n='<md-input-container\r\n class="form-group {{::form.htmlClass}} schema-form-select"\r\n ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess(), \'has-feedback\': form.feedback !== false}"\r\n sf-messages sf-layout>\r\n <label ng-show="::showTitle()">{{::form.title}}</label>\r\n <md-select sf-field-model schema-validate="form">\r\n <md-optgroup ng-repeat-start="(key, opt) in form.getOptions(form, evalExpr) | orderBy:\'group\' as optGroups"\r\n ng-if="opt.group && opt.group != optGroups[key-1].group"\r\n label="{{::opt.group}}"\r\n aria-label="{{::opt.group}}">\r\n <md-option ng-repeat="(key, filtered) in form.getOptions(form, evalExpr) | filter: {group: opt.group} | orderBy:\'name\' as opts"\r\n ng-value="::filtered.value"\r\n aria-label="{{::filtered.name}}">{{::filtered.name}}</md-option>\r\n </md-optgroup>\r\n <md-option ng-if="!opt.group"\r\n ng-value="::opt.value"\r\n ng-repeat-end>{{::opt.name}}</md-option>\r\n </md-select>\r\n</md-input-container>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/switch.html",n='<md-input-container class="schema-form-switch {{::form.htmlClass}}">\r\n <md-switch sf-field-model\r\n sf-changed="form"\r\n sf-type-parser="form.schema"\r\n sf-messages\r\n schema-validate="form"\r\n id="{{::form.key|sfCamelKey}}"\r\n aria-label="{{form.title}}"\r\n ng-show="::form.key"\r\n ng-class="form.fieldHtmlClass"\r\n ng-disabled="::form.readonly">\r\n <span ng-show="showTitle()" for="{{::form.key|sfCamelKey}}">{{::form.title}}</span>\r\n </md-switch>\r\n</md-input-container>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/tabarray.html",n='\r\n<div sf-array="form" ng-init="selected = { tab: 0 }"\r\n class="clearfix schema-form-tabarray schema-form-tabarray-{{form.tabType || \'left\'}} {{::form.htmlClass}}">\r\n <div ng-if="!form.tabType || form.tabType !== \'right\'"\r\n ng-class="{\'col-xs-3\': !form.tabType || form.tabType === \'left\'}">\r\n <ul class="nav nav-tabs"\r\n ng-class="{ \'tabs-left\': !form.tabType || form.tabType === \'left\'}">\r\n <li ng-repeat="item in modelArray track by $index"\r\n ng-click="$event.preventDefault() || (selected.tab = $index)"\r\n ng-class="{active: selected.tab === $index}">\r\n <a href="#">{{interp(form.title,{\'$index\':$index, value: item}) || $index}}</a>\r\n </li>\r\n <li ng-hide="form.readonly" ng-click="$event.preventDefault() || (selected.tab = appendToArray().length - 1)">\r\n <a href="#">\r\n <i class="glyphicon glyphicon-plus"></i>\r\n {{ form.add || \'Add\'}}\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div ng-class="{\'col-xs-9\': !form.tabType || form.tabType === \'left\' || form.tabType === \'right\'}">\r\n <div class="tab-content {{::form.fieldHtmlClass}}">\r\n <div class="tab-pane clearfix"\r\n ng-repeat="item in modelArray track by $index"\r\n ng-show="selected.tab === $index"\r\n ng-class="{active: selected.tab === $index}">\r\n <sf-decorator ng-init="arrayIndex = $index" form="copyWithIndex($index)"></sf-decorator>\r\n\r\n\r\n <button ng-hide="form.readonly"\r\n ng-click="selected.tab = deleteFromArray($index).length - 1"\r\n type="button"\r\n class="btn {{ form.style.remove || \'btn-default\' }} pull-right">\r\n <i class="glyphicon glyphicon-trash"></i>\r\n {{ form.remove || \'Remove\'}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div ng-if="form.tabType === \'right\'" class="col-xs-3">\r\n <ul class="nav nav-tabs tabs-right">\r\n <li ng-repeat="item in modelArray track by $index"\r\n ng-click="$event.preventDefault() || (selected.tab = $index)"\r\n ng-class="{active: selected.tab === $index}">\r\n <a href="#">{{interp(form.title,{\'$index\':$index, value: item}) || $index}}</a>\r\n </li>\r\n <li ng-hide="form.readonly" ng-click="$event.preventDefault() || appendToArray()">\r\n <a href="#">\r\n <i class="glyphicon glyphicon-plus"></i>\r\n {{ form.add || \'Add\'}}\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/tabs.html",n='<div sf-field-model class="schema-form-tabs {{::form.htmlClass}}">\r\n <md-tabs md-dynamic-height md-selected="selected" md-autoselect ng-init="selected = 0"></md-tabs>\r\n</div>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){var r="/material/textarea.html",n='<md-input-container class="{{::form.htmlClass}} schema-form-textarea" sf-messages sf-layout>\r\n <label ng-show="showTitle()" for="{{::form.key|sfCamelKey}}">{{::form.title}}</label>\r\n <textarea ng-class="::form.fieldHtmlClass"\r\n id="{{::form.key|sfCamelKey}}"\r\n sf-changed="form"\r\n ng-disabled="::form.readonly"\r\n sf-field-model\r\n schema-validate="form"\r\n name="{{::form.key|sfCamelKey}}"></textarea>\r\n</md-input-container>\r\n';window.angular.module("ng").run(["$templateCache",function(e){e.put(r,n)}]),e.exports=r},function(e,t){function r(e,t){return{restrict:"A",scope:!1,link:function(e,r,n,a){function o(e,t){return e[t]}var i;try{i=e.form.key.reduce(o,e.model)}catch(e){i=void 0}t(function(){null!==i&&"undefined"!=typeof i&&i!==!1&&r.addClass(n.sfMaterialClass)},0)}}}angular.module("schemaForm").directive("sfMaterialClass",r),r.$inject=["$compile","$timeout"]},function(e,t,r){"use strict";function n(e,t,r,n,i){function l(e){var t=e.fieldFrag.querySelector("[sf-layout]");e.form.grid&&Object.getOwnPropertyNames(e.form.grid).forEach(function(r,n,a){t.setAttribute(r,e.form.grid[r])})}function s(){var e='<div ng-if="ngModel.$invalid" ng-messages="ngModel.$error"><div sf-message ng-message></div></div>',t=document.createElement("div");return t.innerHTML=e,t.firstChild}function c(e){var t=e.fieldFrag.querySelector("[sf-messages]");if(t&&N){var r=N.cloneNode();t.appendChild(r)}}function m(e){var t=e.fieldFrag.querySelector("textarea"),r=e.form.maxlength||!1;t&&r&&t.setAttribute("md-maxlength",r)}function d(e){var t=e.fieldFrag.querySelector("md-autocomplete"),r=e.form.minLength||1,n=e.form.maxLength||!1,a=e.form.title||e.form.placeholder||e.form.key.slice(-1)[0];t&&(e.form.onChange&&(t.setAttribute("md-selected-item-change","args.form.onChange()"),t.setAttribute("md-search-text-change","args.form.onChange(searchText)")),t.setAttribute("md-min-length",r),n&&t.setAttribute("md-max-length",n),a&&t.setAttribute("md-floating-label",a))}function h(e){var t=e.fieldFrag.querySelector("md-switch");e.form.schema.titleMap&&(t.setAttribute("ng-true-value",e.form.schema.titleMap.true),t.setAttribute("ng-false-value",e.form.schema.titleMap.false))}function y(e){var t,r,r=e.fieldFrag.querySelector("md-select");if(e.form.selectOptions=[],e.form.getOptions=a,e.form.schema.links&&"object"==typeof e.form.schema.links){var n,i=/({)([^}]*)(})/gm;for(t=0;t<e.form.schema.links.length;t++)n=e.form.schema.links[t],"options"===n.rel&&(e.form.optionSource=n.href.replace(i,"$1$1 model.$2 $3$3"));r.setAttribute("sfm-external-options",e.form.optionSource)}else e.form.selectOptions=o(e.form)}function b(e){var t=e.fieldFrag.querySelector("md-datepicker");if(t){e.form.onChange&&t.setAttribute("ng-change","args.form.onChange(searchText)");var r=e.form.minimum||!1,n=e.form.maximum||!1;r&&t.setAttribute("md-max-date",r),n&&t.setAttribute("md-max-date",n)}}function x(e){if(e.form.tabs&&e.form.tabs.length>0){var t=e.fieldFrag.querySelector("md-tabs");e.form.tabs.forEach(function(r,n){var a="(evalExpr("+e.path+".tabs["+n+'].condition, { model: model, "arrayIndex": $index}))',o=document.createElement("md-tab");r.condition&&o.setAttribute("ng-if",a),o.setAttribute("label","{{"+e.path+".tabs["+n+"].title}}");var i=document.createElement("md-tab-body"),l=e.build(r.items,e.path+".tabs["+n+"].items",e.state);i.appendChild(l),o.appendChild(i),t.appendChild(o)})}}function M(t,r,a){if("string"===r.type&&("date"===r.format||"date-time"===r.format)){var o=e.stdFormObj(t,r,a);return o.key=a.path,o.type="date",a.lookup[n.stringify(a.path)]=o,o}}var C=r.builders.simpleTransclusion,O=r.builders.ngModelOptions,E=r.builders.ngModel,D=r.builders.sfField,P=r.builders.condition,T=r.builders.array,I=r.builders.numeric,l=l,N=s(),H=c,z=y,U=d,G=h,W=b,J=x,Z=m,Q=[D,E,O,P,l],X=Q.concat(H),Y=Q.concat(T);e.defaults.string.unshift(M),t.defineDecorator("materialDecorator",{actions:{template:f.a,builder:[D,C,P]},array:{template:u.a,builder:Y},autocomplete:{template:p.a,builder:X.concat(U)},boolean:{template:g.a,builder:X},button:{template:v.a,builder:X},checkbox:{template:g.a,builder:X},checkboxes:{template:$.a,builder:Y},date:{template:k.a,builder:X.concat(W)},default:{template:w.a,builder:X},fieldset:{template:A.a,builder:[D,C,P]},help:{template:F.a,builder:X},number:{template:w.a,builder:X.concat(I)},password:{template:w.a,builder:X},radios:{template:S.a,builder:X},"radios-inline":{template:V.a,builder:X},radiobuttons:{template:j.a,builder:X},section:{template:q.a,builder:[D,C,P,l]},select:{template:K.a,builder:X.concat(z)},submit:{template:v.a,builder:X},tabs:{template:R.a,builder:[D,J,P]},tabarray:{template:_.a,builder:Y},textarea:{template:B.a,builder:X.concat(Z)},switch:{template:L.a,builder:X.concat(G)}})}function a(e,t){return e.optionData?t(e.optionData):e.selectOptions?e.selectOptions:[]}function o(e){var t=[];if(e.titleMap)return e.titleMap;if(e.enum&&e.enum.length)for(i=0;i<e.enum.length;i++)e.enum[i]&&e.enum[i].length&&t.push({name:e.enum[i],value:e.enum[i]});return t}function l(e){function t(t,r,n){n.$observe("sfmExternalOptions",function(r){e.get(r).then(function(e){t.form.selectOptions=o(e.data)})})}var r={link:t,restrict:"A"};return r}function s(){return function(e){if(!e)return"";var t,r,n;for(n=e.slice(),r=0;r<n.length;r++)t=n[r].toLowerCase().split(""),r&&t.length&&(t[0]=t[0].toUpperCase()),n[r]=t.join("");return n.join("")}}var c=r(4),f=r.n(c),m=r(5),u=r.n(m),d=r(6),p=r.n(d),h=r(1),g=r.n(h),y=r(2),v=r.n(y),b=r(7),$=r.n(b),x=r(8),k=r.n(x),M=r(0),w=r.n(M),C=r(9),A=r.n(C),O=r(10),F=r.n(O),E=r(13),S=r.n(E),D=r(12),V=r.n(D),P=r(11),j=r.n(P),T=r(14),q=r.n(T),I=r(15),K=r.n(I),N=r(16),L=r.n(N),H=r(18),R=r.n(H),z=r(17),_=r.n(z),U=r(19),B=r.n(U);angular.module("schemaForm").config(n).directive("sfmExternalOptions",l).filter("sfCamelKey",s),n.$inject=["schemaFormProvider","schemaFormDecoratorsProvider","sfBuilderProvider","sfPathProvider","$injector"],l.$inject=["$http"]},function(e,t){angular.module("schemaForm").directive("sfTypeParser",function(){return{restrict:"A",scope:!1,require:"ngModel",link:function(e,t,r,n){var a=e.$watch(r.sfTypeParser,function(e){if(e){var t=e.type.indexOf("number")!==-1,r=e.type.indexOf("integer")!==-1,o=/^[0-9]*$/;(t||r)&&n.$parsers.push(function(e){var r;return t?r=parseFloat(e):o.test(e)&&(r=parseInt(e,10)),console.log("parser",o.test(e),e,r),void 0===r||isNaN(r)?e:r}),a()}})}}})},function(e,t){/*!
* angular-schema-form
* @version 1.0.0-alpha.4
* @date Sun, 01 Jan 2017 11:54:39 GMT
* @link https://github.com/json-schema-form/angular-schema-form
* @license MIT
* Copyright (c) 2014-2017 JSON Schema Form
*/
!function(e){function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,t,r){Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=15)}([function(e,t){e.exports=angular},function(e,t){/*!
* json-schema-form-core
* @version 1.0.0-alpha.5
* @date Sat, 10 Dec 2016 10:00:44 GMT
* @link https://github.com/json-schema-form/json-schema-form-core
* @license MIT
* Copyright (c) 2016 JSON Schema Form
*/
e.exports=function(e){function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,t,r){Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=10)}([function(e,t,r){"use strict";function n(e,t,r,n){if(void 0===r&&(r=""),void 0===n&&(n=!1),e){var a=e.slice(),o=t||"-";return n&&(a=a.filter(function(e){return"number"!=typeof e})),(0!==r.length?r+o:"")+a.join(o)}return""}var a=r(2);r.n(a);t.name=n,r.o(a,"parse")&&r.d(t,"parse",function(){return a.parse}),r.o(a,"stringify")&&r.d(t,"stringify",function(){return a.stringify}),r.o(a,"normalize")&&r.d(t,"normalize",function(){return a.normalize})},function(e,t,r){"use strict";t.a=function(e,t){if(!Array.isArray(e)){var r=[];return t?t.forEach(function(t){r.push({name:e[t],value:t})}):Object.keys(e).forEach(function(t){r.push({name:e[t],value:t})}),r}return e}},function(e,t,r){e.exports=r(8).ObjectPath},function(e,t,r){"use strict";function n(e,t,i,l,s){return t=t||[],i=i||{},t.map(function(t){if("string"==typeof t&&(t={key:t}),t.key&&"string"==typeof t.key&&(t.key=r.i(a.parse)(t.key)),t.titleMap&&(t.titleMap=r.i(o.a)(t.titleMap)),t.key){var c=r.i(a.stringify)(t.key);if(e[c]){var f=e[c];f&&Object.keys(f).forEach(function(e){void 0===t[e]&&(t[e]=f[e])})}}return l===!0&&(t.readonly=!0),t.items&&(t.items=n(e,t.items,i,t.readonly,s)),t.tabs&&t.tabs.forEach(function(r){r.items&&(r.items=n(e,r.items,i,t.readonly,s))}),"checkbox"===t.type&&void 0===t.schema.default&&(t.schema.default=!1),s&&"template"===t.type&&!t.template&&t.templateUrl&&s.push(t),t})}var a=r(0),o=r(1);t.a=n},function(e,t,r){"use strict";function n(e,t,r,a){var o=e[y(r.type)];if(o)for(var i=void 0,l=function(t,r,a){return n(e,t,r,a)},s=0;s<o.length;s++)if(i=o[s](t,r,a,l))return i.schema["x-schema-form"]&&Object.assign(i,i.schema["x-schema-form"]),i}function a(e,t,n){n=n||{};var a=n.global&&n.global.formDefaults?Object.assign({},n.global.formDefaults):{};return n.global&&n.global.supressPropertyTitles===!0?a.title=t.title:a.title=t.title||e,t.description&&(a.description=t.description),n.required!==!0&&t.required!==!0||(a.required=!0),t.maxLength&&(a.maxlength=t.maxLength),t.minLength&&(a.minlength=t.minLength),(t.readOnly||t.readonly)&&(a.readonly=!0),t.minimum&&(a.minimum=t.minimum+(t.exclusiveMinimum?1:0)),t.maximum&&(a.maximum=t.maximum-(t.exclusiveMaximum?1:0)),t.validationMessage&&(a.validationMessage=t.validationMessage),t.enumNames&&(a.titleMap=r.i(g.a)(t.enumNames,t.enum)),a.schema=t,a.ngModelOptions=a.ngModelOptions||{},a}function o(e,t,n){if("string"===y(t.type)&&!t.enum){var o=a(e,t,n);return o.key=n.path,o.type="text",n.lookup[r.i(h.stringify)(n.path)]=o,o}}function i(e,t,n){if("number"===y(t.type)){var o=a(e,t,n);return o.key=n.path,o.type="number",n.lookup[r.i(h.stringify)(n.path)]=o,o}}function l(e,t,n){if("integer"===y(t.type)){var o=a(e,t,n);return o.key=n.path,o.type="number",n.lookup[r.i(h.stringify)(n.path)]=o,o}}function s(e,t,n){if("boolean"===y(t.type)){var o=a(e,t,n);return o.key=n.path,o.type="checkbox",n.lookup[r.i(h.stringify)(n.path)]=o,o}}function c(e,t,n){if("string"===y(t.type)&&t.enum){var o=a(e,t,n);return o.key=n.path,o.type="select",o.titleMap||(o.titleMap=v(t.enum)),n.lookup[r.i(h.stringify)(n.path)]=o,o}}function f(e,t,n){if("array"===y(t.type)&&t.items&&t.items.enum){var o=a(e,t,n);return o.key=n.path,o.type="checkboxes",o.titleMap||(o.titleMap=v(t.items.enum)),n.lookup[r.i(h.stringify)(n.path)]=o,o}}function m(e,t,n,o){if("object"===y(t.type)){var i=a(e,t,n);return i.type="fieldset",i.key=n.path,i.items=[],n.lookup[r.i(h.stringify)(n.path)]=i,t.properties&&Object.keys(t.properties).forEach(function(e){var a=t.properties[e],l=n.path.slice();if(l.push(e),n.ignore[r.i(h.stringify)(l)]!==!0){var s=t.required&&t.required.indexOf(e)!==-1,c=o(e,a,{path:l,required:s||!1,lookup:n.lookup,ignore:n.ignore,global:n.global});c&&i.items.push(c)}}),i}}function u(e,t,n,o){if("array"===y(t.type)){var i=a(e,t,n);i.type="array",i.key=n.path,n.lookup[r.i(h.stringify)(n.path)]=i;var l=t.required&&t.required.indexOf(n.path[n.path.length-1])!==-1,s=n.path.slice();return s.push(""),i.items=[o(e,t.items,{path:s,required:l||!1,lookup:n.lookup,ignore:n.ignore,global:n.global})],i}}function d(){return{string:[c,o],object:[m],number:[i],integer:[l],boolean:[s],array:[f,u]}}function p(e,t,r,a){var o=[],i={};if(r=r||{},a=a||{},t=t||d(),!e.properties)throw new Error('Not implemented. Only type "object" allowed at root level of schema.');return Object.keys(e.properties).forEach(function(l){if(r[l]!==!0){var s=e.required&&e.required.indexOf(l)!==-1,c=n(t,l,e.properties[l],{path:[l],lookup:i,ignore:r,required:s,global:a});c&&o.push(c)}}),{form:o,lookup:i}}var h=r(0),g=r(1);t.defaultFormDefinition=n,t.stdFormObj=a,t.text=o,t.number=i,t.integer=l,t.checkbox=s,t.select=c,t.checkboxes=f,t.fieldset=m,t.array=u,t.createDefaults=d,t.defaultForm=p;var y=function(e){if(Array.isArray(e)&&2===e.length){if("null"===e[0])return e[1];if("null"===e[1])return e[0]}return e},v=function(e){var t=[];return e.forEach(function(e){t.push({name:e,value:e})}),t}},function(e,t,r){"use strict";function n(e,t,r){t||(t=this);var n="string"==typeof e?a.parse(e):e;if("undefined"!=typeof r&&1===n.length)return t[n[0]]=r,t;"undefined"!=typeof r&&"undefined"==typeof t[n[0]]&&(t[n[0]]=n.length>2&&o.test(n[1])?[]:{});for(var i=t[n[0]],l=1;l<n.length;l++){if(""===n[l])return;if("undefined"!=typeof r){if(l===n.length-1)return i[n[l]]=r,r;var s=i[n[l]];"undefined"!=typeof s&&null!==s||(s=o.test(n[l+1])?[]:{},i[n[l]]=s),i=s}else i&&(i=i[n[l]])}return i}var a=r(0);t.a=n;var o=/^\d+$/},function(e,t,r){"use strict";function n(e,t,r,n){n=void 0===n||n,r=r||[];var a=function e(t,r,a){if(r(t,a),t.properties&&Object.keys(t.properties).forEach(function(n){var o=a.slice();o.push(n),e(t.properties[n],r,o)}),!n&&t.items){var o=a.slice();o.push(""),e(t.items,r,o)}};a(e,t,r||[])}function a(e,t){t(e),e.items&&e.items.forEach(function(e){a(e,t)}),e.tabs&&e.tabs.forEach(function(e){e.items&&e.items.forEach(function(e){a(e,t)})})}t.a=n,t.b=a},function(e,t,r){"use strict";function n(e,t){if(!e)return{valid:!0};var r=e.schema;if(!r)return{valid:!0};""===t&&(t=void 0),"number"===e.type&&null===t&&(t=void 0);var n={type:"object",properties:{},required:void 0},a=e.key[e.key.length-1];n.properties[a]=r,e.required&&(n.required=[a]);var i={};return t&&(i[a]=t),o.a.validateResult(i,n)}var a=r(9),o=r.n(a);t.a=n},function(e,t,r){"use strict";var n;!function(a){var o={parse:function(e){if("string"!=typeof e)throw new TypeError("ObjectPath.parse must be passed a string");for(var t,r,n,a,o=0,i=[];o<e.length;)if(t=e.indexOf(".",o),r=e.indexOf("[",o),t===-1&&r===-1)i.push(e.slice(o,e.length)),o=e.length;else if(r===-1||t!==-1&&t<r)i.push(e.slice(o,t)),o=t+1;else if(r>o&&(i.push(e.slice(o,r)),o=r),n=e.slice(r+1,r+2),'"'!==n&&"'"!==n)a=e.indexOf("]",r),a===-1&&(a=e.length),i.push(e.slice(o+1,a)),o="."===e.slice(a+1,a+2)?a+2:a+1;else{for(a=e.indexOf(n+"]",r),a===-1&&(a=e.length);"\\"===e.slice(a-1,a)&&r<e.length;)r++,a=e.indexOf(n+"]",r);i.push(e.slice(o+2,a).replace(new RegExp("\\"+n,"g"),n)),o="."===e.slice(a+2,a+3)?a+3:a+2}return i},stringify:function(e,t){return Array.isArray(e)||(e=[e.toString()]),t='"'===t?'"':"'",e.map(function(e){return"["+t+e.toString().replace(new RegExp(t,"g"),"\\"+t)+t+"]"}).join("")},normalize:function(e,t){return o.stringify(Array.isArray(e)?e:o.parse(e),t)},registerModule:function(e){e.module("ObjectPath",[]).provider("ObjectPath",function(){this.parse=o.parse,this.stringify=o.stringify,this.normalize=o.normalize,this.$get=function(){return o}})}};n=function(){return{ObjectPath:o}}.call(t,r,t,e),!(n!==a&&(e.exports=n))}()},function(e,t){e.exports=tv4},function(e,t,r){"use strict";var n=r(4),a=r(0),o=r(1),i=r(3),l=r(5),s=r(6),c=r(7);r.d(t,"sfPath",function(){return f}),r.d(t,"schemaDefaults",function(){return m}),r.d(t,"canonicalTitleMap",function(){return u}),r.d(t,"merge",function(){return i.a}),r.d(t,"select",function(){return l.a}),r.d(t,"traverseSchema",function(){return s.a}),r.d(t,"traverseForm",function(){return s.b}),r.d(t,"validate",function(){return c.a});var f=a,m=n,u=o.a}])},function(e,t,r){"use strict";var n=r(1),a=r.n(n),o=r(0),i=r.n(o),l=r(12),s=r(10),c=r(11),f=r(13),m=r(14),u=r(5),d=r(6),p=r(8),h=r(4),g=r(7),y=r(9),v=r(3),b=[];try{i.a.module("ngSanitize"),b.push("ngSanitize")}catch(e){}try{i.a.module("ui.sortable"),b.push("ui.sortable")}catch(e){}try{i.a.module("angularSpectrumColorpicker"),b.push("angularSpectrumColorpicker")}catch(e){}i.a.module("schemaForm",b).provider("sfPath",m.a).provider("sfBuilder",["sfPathProvider",l.a]).provider("schemaFormDecorators",["$compileProvider","sfPathProvider",s.a]).provider("sfErrorMessage",f.a).provider("schemaForm",["sfPathProvider",c.a]).factory("sfSelect",function(){return a.a.select}).factory("sfValidator",function(){return a.a.validate}).directive("sfChanged",u.a).directive("sfField",["$parse","$compile","$http","$templateCache","$interpolate","$q","sfErrorMessage","sfPath","sfSelect",d.a]).directive("sfMessage",["$injector","sfErrorMessage",p.a]).directive("sfNewArray",["sfSelect","sfPath","schemaForm",h.a]).directive("sfSchema",["$compile","$http","$templateCache","$q","schemaForm","schemaFormDecorators","sfSelect","sfPath","sfBuilder",y.a]).directive("schemaValidate",["sfValidator","$parse","sfSelect",v.a]).directive("sfKeyController",["schemaForm","sfPath",g.a])},function(e,t,r){"use strict";var n=r(0),a=r.n(n);t.a=function(e,t,r){return{restrict:"A",scope:!1,priority:500,require:"ngModel",link:function(t,n,o,i){t.$emit("schemaFormPropagateNgModelController",i);var l=null,s=t.$eval(o.schemaValidate);s.copyValueTo&&i.$viewChangeListeners.push(function(){var e=s.copyValueTo;a.a.forEach(e,function(e){r(e,t.model,i.$modelValue)})});var c=function(r){if(!s)return r;if(t.options&&t.options.tv4Validation===!1)return r;var n=e(s,r);Object.keys(i.$error).filter(function(e){return 0===e.indexOf("tv4-")}).forEach(function(e){i.$setValidity(e,!0)});{if(n.valid)return r;if(i.$setValidity("tv4-"+n.error.code,!1),l=n.error,i.$validators)return r}};"function"==typeof s.ngModel&&s.ngModel(i),["$parsers","$viewChangeListeners","$formatters"].forEach(function(e){s[e]&&i[e]&&s[e].forEach(function(t){i[e].push(t)})}),["$validators","$asyncValidators"].forEach(function(e){s[e]&&i[e]&&a.a.forEach(s[e],function(t,r){i[e][r]=t})}),i.$parsers.push(c),i.$validators&&(i.$validators.schemaForm=function(){return!Object.keys(i.$error).some(function(e){return"schemaForm"!==e})});var f=s.schema;t.validateField=function(e){void 0!=e&&i.$$parentForm.$name!==e||(f&&f.type.indexOf("array")!==-1&&c(i.$modelValue),i.$setDirty?(i.$setDirty(),i.$setViewValue(i.$viewValue),i.$commitViewValue(),"checkbox"===s.type?s.required&&void 0===i.$modelValue&&i.$setValidity("tv4-302",!1):s.required&&i.$isEmpty(i.$modelValue)&&i.$setValidity("tv4-302",!1)):i.$setViewValue(i.$viewValue))};var m=!0;i.$formatters.push(function(e){return!i.$pristine||!m||t.options&&t.options.validateOnRender===!0?(c(i.$modelValue),e):(m=!1,e)}),t.$on("schemaFormValidate",function(e,r){t.validateField(r)}),t.schemaError=function(){return l}}}}},function(e,t,r){"use strict";var n=r(0),a=r.n(n);t.a=function(e,t,r){return{scope:!0,controller:["$scope",function(e){this.key=e.form&&e.form.key?e.form.key.splice(0,-2):[]}],link:function(n,o,i){n.min=0,n.modelArray=n.$eval(i.sfNewArray);var l=function(){n.modelArray=n.$eval(i.sfNewArray),n.ngModel&&n.ngModel.$pristine&&n.firstDigest&&(!n.options||n.options.validateOnRender!==!0)||n.validateField&&n.validateField()},s=function(){n.form&&n.form.onChange&&(a.a.isFunction(n.form.onChange)?n.form.onChange(n.modelArray,n.form):n.evalExpr(n.form.onChange,{modelValue:n.modelArray,form:n.form}))},c=function(){var r=n.modelArray;if(!r){var a=t.parse(i.sfNewArray);r=[],e(a,n,r),n.modelArray=r}return r},f=n.$watch("form",function(e){if(e){if(e.titleMap||e.startEmpty===!0||n.modelArray&&0!==n.modelArray.length||n.appendToArray(),n.form&&n.form.schema&&n.form.schema.uniqueItems===!0?(n.$watch(i.sfNewArray,l,!0),n.$watch([i.sfNewArray,i.sfNewArray+".length"],s)):n.$watchGroup?n.$watchGroup([i.sfNewArray,i.sfNewArray+".length"],function(){l(),s()}):(n.$watch(i.sfNewArray,function(){l(),s()}),n.$watch(i.sfNewArray+".length",function(){l(),s()})),e.titleMap&&e.titleMap.length>0){n.titleMapValues=[];var t=function(t){n.titleMapValues=[],t=t||[],e.titleMap.forEach(function(e){n.titleMapValues.push(t.indexOf(e.value)!==-1)})};t(n.modelArray),n.$watchCollection("modelArray",t),n.$watchCollection("titleMapValues",function(t,r){if(t&&t!==r){var a=c();e.titleMap.forEach(function(e,r){var n=a.indexOf(e.value);n===-1&&t[r]&&a.push(e.value),n===-1||t[r]||a.splice(n,1)}),n.validateField&&n.validateField()}})}f()}});n.appendToArray=function(){var t,o=c();if(n.form&&n.form.schema&&n.form.schema.items){var i=n.form.schema.items;i.type&&i.type.indexOf("object")!==-1?(t={},n.options&&n.options.setSchemaDefaults===!1||(t=a.a.isDefined(i.default)?i.default:t,t&&r.traverseSchema(i,function(r,n){a.a.isDefined(r.default)&&e(n,t,r.default)}))):i.type&&i.type.indexOf("array")!==-1?(t=[],n.options&&n.options.setSchemaDefaults===!1||(t=i.default||t)):n.options&&n.options.setSchemaDefaults===!1||(t=i.default||t)}return o.push(t),o},n.deleteFromArray=function(e){var t=n.modelArray;return t&&t.splice(e,1),t};var m=function(e){return function(t){t.key&&(t.key[t.key.indexOf("")]=e)}},u={};n.copyWithIndex=function(e){var t=n.form;if(!u[e]){var o=t.items[0];if(t.items.length>1&&(o={type:"section",items:t.items.map(function(e){return e.ngModelOptions=t.ngModelOptions,a.a.isUndefined(e.readonly)&&(e.readonly=t.readonly),e})}),o){var i=a.a.copy(o);i.arrayIndex=e,r.traverseForm(i,m(e)),u[e]=i}}return u[e]}}}}},function(e,t,r){"use strict";var n=r(0),a=r.n(n);t.a=function(){return{require:"ngModel",restrict:"AC",scope:!1,link:function(e,t,r,n){var o=e.$eval(r.sfChanged);o&&o.onChange&&n.$viewChangeListeners.push(function(){a.a.isFunction(o.onChange)?o.onChange(n.$modelValue,o):e.evalExpr(o.onChange,{modelValue:n.$modelValue,form:o,arrayIndex:e.$index,arrayIndices:e.arrayIndices,path:e.path,$i:e.$i,$index:e.$index})})}}}},function(e,t,r){"use strict";var n=r(0),a=r.n(n),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.a=function(e,t,r,n,i,l,s,c,f){var m={COMPLETE:"*",PATH:"string",INDICES:"number"};return{restrict:"AE",replace:!1,transclude:!1,scope:!0,require:["^sfSchema","?^form","?^^sfKeyController"],link:{pre:function(e,t,r,n){var a=n[0];n[1],n[2];e.$on("schemaFormPropagateNgModelController",function(t,r){t.stopPropagation(),t.preventDefault(),e.ngModel=r}),e.initialForm=Object.assign({},a.lookup["f"+r.sfField]),e.form=a.lookup["f"+r.sfField]},post:function(e,t,r,n){var l=n[0],u=n[1];n[2];e.getKey=function(t){var r=t||m.COMPLETE,n=e.parentKey?e.parentKey.slice(0,e.parentKey.length-1):[];if(e.completeKey!==e.form.key&&("number"==typeof e.$index&&(n=n.concat(e.$index)),e.form.key&&e.form.key.length))if("number"==typeof n[n.length-1]&&e.form.key.length>=1){var a=e.form.key.length-n.length;e.completeKey=n.concat(e.form.key.slice(-a))}else e.completeKey=e.form.key.slice();if(Array.isArray(e.completeKey))return r===m.COMPLETE?e.completeKey:e.completeKey.reduce(function(e,t,n){return-1!==[r].indexOf("undefined"==typeof t?"undefined":o(t))?e.concat(t):e},[])},e.form.key&&(e.form.key=e.completeKey=e.getKey()),e.showTitle=function(){return e.form&&e.form.notitle!==!0&&e.form.title},e.fieldId=function(t,r){var n=r||!1,a=t&&u&&u.$name?u.$name:void 0,o=e.completeKey;return Array.isArray(o)?c.name(o,"-",a,n):""},e.listToCheckboxValues=function(e){var t={};return a.a.forEach(e,function(e){t[e]=!0}),t},e.checkboxValuesToList=function(e){var t=[];return a.a.forEach(e,function(e,r){e&&t.push(r)}),t},e.buttonClick=function(t,r){a.a.isFunction(r.onClick)?r.onClick(t,r):a.a.isString(r.onClick)&&(l?l.evalInParentScope(r.onClick,{$event:t,form:r}):e.$eval(r.onClick,{$event:t,form:r}))},e.evalExpr=function(t,r){return l?l.evalInParentScope(t,r):e.$eval(t,r)},e.evalInScope=function(t,r){if(t)return e.$eval(t,r)},e.interp=function(e,t){return e&&i(e)(t)},e.hasSuccess=function(){return!!e.ngModel&&(e.options&&e.options.pristine&&e.options.pristine.success===!1?e.ngModel.$valid&&!e.ngModel.$pristine&&!e.ngModel.$isEmpty(e.ngModel.$modelValue):e.ngModel.$valid&&(!e.ngModel.$pristine||!e.ngModel.$isEmpty(e.ngModel.$modelValue)))},e.hasError=function(){return!!e.ngModel&&(e.options&&e.options.pristine&&e.options.pristine.errors===!1?e.ngModel.$invalid&&!e.ngModel.$pristine:e.ngModel.$invalid)},e.errorMessage=function(t){return s.interpolate(t&&t.code+""||"default",e.ngModel&&e.ngModel.$modelValue||"",e.ngModel&&e.ngModel.$viewValue||"",e.form,e.options&&e.options.validationMessage)},e.form.htmlClass=e.form.htmlClass||"",e.idClass=e.fieldId(!1)+" "+e.fieldId(!1,!0);var d=e.form;d.key&&(e.$on("schemaForm.error."+d.key.join("."),function(t,r,n,a,o){o=a,n!==!0&&n!==!1||(a=n,n=void 0),void 0!=o&&e.ngModel.$$parentForm.$name!==o||e.ngModel&&r&&(e.ngModel.$setDirty?e.ngModel.$setDirty():(e.ngModel.$dirty=!0,e.ngModel.$pristine=!1),n&&(d.validationMessage||(d.validationMessage={}),d.validationMessage[r]=n),e.ngModel.$setValidity(r,a===!0),a===!0&&(e.ngModel.$validate(),e.$broadcast("schemaFormValidate")))}),e.$on("$destroy",function(){var t=e.getKey();if(!e.externalDestructionInProgress){var r=d.destroyStrategy||e.options&&e.options.destroyStrategy||"remove";if(t&&"retain"!==r){var n=e.model;if(t.length>1&&(n=f(t.slice(0,t.length-1),n)),void 0===n)return;var a=d.schema&&d.schema.type||"";"empty"===r&&a.indexOf("string")!==-1?n[t.slice(-1)]="":"empty"===r&&a.indexOf("object")!==-1?n[t.slice(-1)]={}:"empty"===r&&a.indexOf("array")!==-1?n[t.slice(-1)]=[]:"null"===r?n[t.slice(-1)]=null:delete n[t.slice(-1)]}}}))}}}}},function(e,t,r){"use strict";t.a=function(e,t){return{scope:!0,require:["?^^sfNewArray"],link:{pre:function(e,r,n,a){e.parentKey=e.parentKey||[];var o=t.parse(n.sfParentKey),i=o.length-e.parentKey.length;o.length>1&&(o=o.splice(-i)),e.parentKey=e.parentKey.concat(o,Number(n.sfIndex)),e.arrayIndex=Number(n.sfIndex),e.arrayIndices=e.arrayIndices||[],e.arrayIndices=e.arrayIndices.concat(e.arrayIndex),e.$i=e.arrayIndices,e.path=function(t){var r=-1;return t=t.replace(/\[\]/gi,function(t){return r++,"["+e.$i[r]+"]"}),e.evalExpr(t,e)}}}}}},function(e,t,r){"use strict";var n=r(0),a=r.n(n);t.a=function(e,t){var r=e.has("$sanitize")?e.get("$sanitize"):function(e){return e};return{scope:!1,restrict:"EA",link:function(e,n,o){var i="";o.sfMessage&&e.$watch(o.sfMessage,function(t){t&&(i=r(t),c(!!e.ngModel))});var l,s=function(e){e!==l&&(n.html(e),l=e)},c=function(r){if(r)if(e.hasError()){var n=[];a.a.forEach(e.ngModel&&e.ngModel.$error,function(e,t){e&&n.push(t)}),n=n.filter(function(e){return"schemaForm"!==e});var o=n[0];s(o?t.interpolate(o,e.ngModel.$modelValue,e.ngModel.$viewValue,e.form,e.options&&e.options.validationMessage):i)}else s(i);else s(i)};c();var f=e.$watch("ngModel",function(e){e&&(e.$parsers.push(function(e){return c(!0),e}),e.$formatters.push(function(e){return c(!0),e}),f())});e.$watchCollection("ngModel.$error",function(){c(!!e.ngModel)})}}}},function(e,t,r){"use strict";var n=r(0),a=r.n(n);t.a=function(e,t,r,n,o,i,l,s,c){return{scope:{schema:"=sfSchema",initialForm:"=sfForm",model:"=sfModel",options:"=sfOptions"},controller:["$scope",function(e){this.evalInParentScope=function(t,r){return e.$parent.$eval(t,r)};var t=this;e.lookup=function(e){return e&&(t.lookup=e),t.lookup}}],replace:!1,restrict:"A",transclude:!0,require:"?form",link:function(s,f,m,u,d){s.formCtrl=u;var p={};d(s,function(e){if(e.addClass("schema-form-ignore"),f.prepend(e),f[0].querySelectorAll){var t=f[0].querySelectorAll("[ng-model]");if(t)for(var r=0;r<t.length;r++){var n=t[r].getAttribute("ng-model");p[n.substring(n.indexOf(".")+1)]=!0}}});var h,g={},y=function(e,a){var i=[],l=o.merge(e,a,p,s.options,void 0,i);i.length>0?n.all(i.map(function(e){return t.get(e.templateUrl,{cache:r}).then(function(t){e.template=t.data})})).then(function(){v(e,a,l)}):v(e,a,l)},v=function(t,r,n){h&&(s.externalDestructionInProgress=!0,h.$destroy(),s.externalDestructionInProgress=!1),h=s.$new(),h.schemaForm={form:n,schema:t},f.children(":not(.schema-form-ignore)").remove();for(var u={},d=f[0].querySelectorAll("*[sf-insert-field]"),p=0;p<d.length;p++)u[d[p].getAttribute("sf-insert-field")]=d[p];var g=i.decorator(m.sfUseDecorator),y=Object.create(null);s.lookup(y),f[0].appendChild(c.build(n,g,u,y)),h.firstDigest=!0,setTimeout(function(){h.firstDigest=!1},0),e(f.children())(h),s.options&&s.options.setSchemaDefaults===!1||o.traverseSchema(t,function(e,t){if(a.a.isDefined(e.default)){var r=l(t,s.model);a.a.isUndefined(r)&&l(t,s.model,e.default)}}),s.$emit("sf-render-finished",f)},b=["*"];s.$watch(function(){var e=s.schema,t=s.initialForm||b;t&&e&&e.type&&(g.form!==t||g.schema!==e)&&Object.keys(e.properties).length>0&&(g.schema=e,g.form=t,y(e,t))}),s.$on("schemaFormRedraw",function(){var e=s.schema,t=s.initialForm?a.a.copy(s.initialForm):["*"];e&&y(e,t)}),s.$on("$destroy",function(){s.externalDestructionInProgress=!0}),s.evalExpr=function(e,t){return s.$parent.$eval(e,t)}}}}},function(e,t,r){"use strict";var n=r(0),a=r.n(n);t.a=function(e,t){var r="",n={},o=function(e,t){"sfDecorator"===e&&(e=r);var a=n[e];return a[t.type]?a[t.type].template:a.default.template},i=function(r){e.directive(r,["$parse","$compile","$http","$templateCache","$interpolate","$q","sfErrorMessage","sfPath","sfSelect",function(e,n,i,l,s,c,f,m,u){return{restrict:"AE",replace:!1,transclude:!1,scope:!0,require:["?^sfSchema","?^form"],link:function(e,d,p,h){var g=h[0],y=h[1];e.$on("schemaFormPropagateNgModelController",function(t,r){t.stopPropagation(),t.preventDefault(),e.ngModel=r}),e.showTitle=function(){return e.form&&e.form.notitle!==!0&&e.form.title},e.fieldId=function(t,r){var n=e.parentKey||[];if(e.form.key){if("number"==typeof n[n.length-1]){var a=n.concat(e.form.key.slice(-1)),o=t&&y&&y.$name?y.$name:void 0;return m.name(a,"-",o,r)}var o=t&&y&&y.$name?y.$name:void 0;return m.name(e.form.key,"-",o,r)}return""},e.listToCheckboxValues=function(e){var t={};return a.a.forEach(e,function(e){t[e]=!0}),t},e.checkboxValuesToList=function(e){var t=[];return a.a.forEach(e,function(e,r){e&&t.push(r)}),t},e.buttonClick=function(t,r){a.a.isFunction(r.onClick)?r.onClick(t,r):a.a.isString(r.onClick)&&(g?g.evalInParentScope(r.onClick,{$event:t,form:r}):e.$eval(r.onClick,{$event:t,form:r}))},e.evalExpr=function(t,r){return g?g.evalInParentScope(t,r):e.$eval(t,r)},e.evalInScope=function(t,r){if(t)return e.$eval(t,r)},e.interp=function(e,t){return e&&s(e)(t)},e.hasSuccess=function(){return!!e.ngModel&&(e.options&&e.options.pristine&&e.options.pristine.success===!1?e.ngModel.$valid&&!e.ngModel.$pristine&&!e.ngModel.$isEmpty(e.ngModel.$modelValue):e.ngModel.$valid&&(!e.ngModel.$pristine||!e.ngModel.$isEmpty(e.ngModel.$modelValue)))},e.hasError=function(){return!!e.ngModel&&(e.ngModel.$invalid&&!e.ngModel.$pristine)},e.errorMessage=function(t){return f.interpolate(t&&t.code+""||"default",e.ngModel&&e.ngModel.$modelValue||"",e.ngModel&&e.ngModel.$viewValue||"",e.form,e.options&&e.options.validationMessage)};var v=e.$watch(p.form,function(s){if(s){s.ngModelOptions=s.ngModelOptions||{},e.form=s;var f;if("template"===s.type&&s.template)f=c.when(s.template);else{var p="template"===s.type?s.templateUrl:o(r,s);f=i.get(p,{cache:l}).then(function(e){return e.data})}f.then(function(r){if(s.key){var o=s.key?t.stringify(s.key).replace(/"/g,"""):"";r=r.replace(/\$\$value\$\$/g,"model"+("["!==o[0]?".":"")+o)}if(d.html(r),s.condition){var i='evalExpr(form.condition,{ model: model, "arrayIndex": arrayIndex})';s.key&&(i='evalExpr(form.condition, {model: model, "arrayIndex": arrayIndex, "modelValue": model'+m.stringify(s.key)+"})"),a.a.forEach(d.children(),function(e){var t=e.getAttribute("ng-if");e.setAttribute("ng-if",t?"("+t+") || ("+i+")":i)})}n(d.contents())(e)}),s.key&&(e.$on("schemaForm.error."+s.key.join("."),function(t,r,n,a,o){o=a,n!==!0&&n!==!1||(a=n,n=void 0),void 0!=o&&e.ngModel.$$parentForm.$name!==o||e.ngModel&&r&&(e.ngModel.$setDirty?e.ngModel.$setDirty():(e.ngModel.$dirty=!0,e.ngModel.$pristine=!1),n&&(s.validationMessage||(s.validationMessage={}),s.validationMessage[r]=n),e.ngModel.$setValidity(r,a===!0),a===!0&&(e.ngModel.$validate(),e.$broadcast("schemaFormValidate")))}),e.$on("$destroy",function(){if(!e.externalDestructionInProgress){var t=s.destroyStrategy||e.options&&e.options.destroyStrategy||"remove";if(s.key&&"retain"!==t){var r=e.model;if(s.key.length>1&&(r=u(s.key.slice(0,s.key.length-1),r)),void 0===r)return;var n=s.schema&&s.schema.type||"";"empty"===t&&n.indexOf("string")!==-1?r[s.key.slice(-1)]="":"empty"===t&&n.indexOf("object")!==-1?r[s.key.slice(-1)]={}:"empty"===t&&n.indexOf("array")!==-1?r[s.key.slice(-1)]=[]:"null"===t?r[s.key.slice(-1)]=null:delete r[s.key.slice(-1)]}}})),v()}})}}}])},l=function(t,r,n){n=!!a.a.isDefined(n)&&n,e.directive("sf"+a.a.uppercase(t[0])+t.substr(1),function(){return{restrict:"EAC",scope:!0,replace:!0,transclude:n,template:'<sf-decorator form="form"></sf-decorator>',link:function(e,r,n){var o={items:"c",titleMap:"c",schema:"c"},i={type:t},l=!0;a.a.forEach(n,function(t,r){if("$"!==r[0]&&0!==r.indexOf("ng")&&"sfField"!==r){var s=function(t){a.a.isDefined(t)&&t!==i[r]&&(i[r]=t,l&&i.type&&(i.key||a.a.isUndefined(n.key))&&(e.form=i,l=!1))};"model"===r?e.$watch(t,function(t){t&&e.model!==t&&(e.model=t)}):"c"===o[r]?e.$watchCollection(t,s):n.$observe(r,s)}})}}})};this.createDecorator=function(e,t){n[e]={__name:e},a.a.forEach(t,function(t,r){n[e][r]={template:t,replace:!1,builder:[]}}),n[r]||(r=e),i(e)},this.defineDecorator=function(e,t){n[e]={__name:e},a.a.forEach(t,function(t,r){t.builder=t.builder||[],t.replace=!a.a.isDefined(t.replace)||t.replace,n[e][r]=t}),n[r]||(r=e),i(e)},this.createDirective=l,this.createDirectives=function(e){a.a.forEach(e,function(e,t){l(t,e)})},this.decorator=function(e){return e=e||r,n[e]},this.addMapping=function(e,t,r,a,o){n[e]&&(n[e][t]={template:r,builder:a,replace:!!o})},this.defineAddOn=function(e,t,r,a){n[e]&&(n[e][t]={template:r,builder:a,replace:!0})},this.$get=function(){return{decorator:function(e){return n[e]||n[r]},defaultDecorator:r}},i("sfDecorator")}},function(e,t,r){"use strict";var n=r(0),a=(r.n(n),r(1));r.n(a);t.a=function(){var e=function(e){return e},t=a.schemaDefaults.createDefaults();this.defaults=t,this.stdFormObj=a.schemaDefaults.stdFormObj,this.defaultFormDefinition=a.schemaDefaults.defaultFormDefinition,this.postProcess=function(t){e=t},this.appendRule=function(e,t){this.defaults[e]||(this.defaults[e]=[]),this.defaults[e].push(t)},this.prependRule=function(e,t){this.defaults[e]||(this.defaults[e]=[]),this.defaults[e].unshift(t)},this.createStandardForm=a.schemaDefaults.stdFormObj,this.$get=function(){var t={},n=this.defaults;return t.merge=function(t,o,i,l,s,c){o=o||["*"],l=l||{},s=s||t.readonly||t.readOnly;var f=a.schemaDefaults.defaultForm(t,n,i,l),m=o.indexOf("*");m!==-1&&(o=o.slice(0,m).concat(f.form).concat(o.slice(m+1)));var u=r.i(a.merge)(f.lookup,o,l,s,c);return e(u)},t.defaults=function(e,t,r,o){var i=t||n;return a.schemaDefaults.defaultForm(e,i,r,o)},t.typeDefault=n,t.traverseSchema=a.traverseSchema,t.traverseForm=a.traverseForm,t}}},function(e,t,r){"use strict";t.a=function(e){var t=/[A-Z]/g,r=function(e,r){return r=r||"_",e.replace(t,function(e,t){return(t?r:"")+e.toLowerCase()})},n=0,a={sfField:function(e){e.fieldFrag.firstChild.setAttribute("sf-field",n),e.lookup["f"+n]=e.form,n++},ngModel:function(t){if(t.form.key){var r=t.form.key;t.state.keyRedaction&&(r=r.slice(t.state.keyRedaction));var n;if(t.state.modelValue)n=t.state.modelValue;else{var a=e.stringify(r).replace(/"/g,""");n=t.state.modelName||"model",a&&(n+=("["!==a[0]?".":"")+a)}for(var o=t.fieldFrag.querySelectorAll("[sf-field-model]"),i=0;i<o.length;i++){var l=o[i],s=l.getAttribute("sf-field-model");if(s&&""!==s)if("replaceAll"===s)for(var c=l.attributes,f=0;f<c.length;f++)c[f].value&&c[f].value.indexOf("$$value")!==-1&&(c[f].value=c[f].value.replace(/\$\$value\$\$/g,n));else{var m=l.getAttribute(s);m&&m.indexOf("$$value$$")?l.setAttribute(s,m.replace(/\$\$value\$\$/g,n)):l.setAttribute(s,n)}else l.setAttribute("ng-model",n)}}},simpleTransclusion:function(e){var t=e.build(e.form.items,e.path+".items",e.state);e.fieldFrag.firstChild.appendChild(t)},ngModelOptions:function(e){e.form.ngModelOptions&&Object.keys(e.form.ngModelOptions).length>0&&e.fieldFrag.firstChild.setAttribute("ng-model-options",JSON.stringify(e.form.ngModelOptions))},transclusion:function(e){var t=e.fieldFrag.querySelectorAll("[sf-field-transclude]");if(t.length)for(var r=0;r<t.length;r++){var n=t[r],a=n.getAttribute("sf-field-transclude")||"items",o=e.form[a];if(o){var i=e.build(o,e.path+"."+a,e.state);n.appendChild(i)}}},condition:function(t){var r="",n="undefined",a="";if(t.form.condition){t.form.key&&(r=e.stringify(t.form.key),n="model"+("["===r[0]?"":".")+r);for(var o="evalExpr("+t.path+'.condition, { model: model, "arrayIndex": $index, "arrayIndices": arrayIndices, "path": path, "$i": $i, "$index": $index, "modelValue": '+n+"})",i=t.fieldFrag.children||t.fieldFrag.childNodes,l=0;l<i.length;l++){var s=i[l];s.hasAttribute&&s.hasAttribute("ng-if")&&(a=s.getAttribute("ng-if")),s.setAttribute&&s.setAttribute("ng-if",a?"("+a+") || ("+o+")":o)}}},array:function(t){var r=t.fieldFrag.querySelector("[schema-form-array-items]");if(t.form.key){t.form.key.filter(function(e){return""===e}).length}if(r){var n=angular.copy(t.state);if(n.keyRedaction=0,n.keyRedaction+=t.form.key.length+1,t.form.schema&&t.form.schema.items&&t.form.schema.items.type&&t.form.schema.items.type.indexOf("object")===-1&&t.form.schema.items.type.indexOf("array")===-1){e.stringify(t.form.key).replace(/"/g,""")+"[$index]";n.modelValue="modelArray[$index]"}else n.modelName="item";n.arrayCompatFlag=!0;var a=t.build(t.form.items,t.path+".items",n);r.appendChild(a)}},numeric:function(e){var t=e.fieldFrag.querySelector("input"),r=e.form.maximum||!1,n=e.form.exclusiveMaximum||!1,a=e.form.minimum||!1,o=e.form.exclusiveMinimum||!1,i=e.form.multipleOf||!1;t&&(i!==!1&&t.setAttribute("step",i),r!==!1&&(n!==!1&&i!==!1&&(r-=i),t.setAttribute("max",r)),a!==!1&&(o!==!1&&i!==!1&&(a+=i),t.setAttribute("min",a)))}};this.builders=a;var o=[a.sfField,a.ngModel,a.ngModelOptions,a.condition];this.stdBuilders=o,this.$get=["$templateCache","schemaFormDecorators","sfPath",function(e,t,n){var i=function(e,t){if(e.key){var r=t[n.stringify(e.key)];if(r){for(;r.firstChild;)r.removeChild(r.firstChild);return r}}},l=function e(t,n,a,o,l,s,c){s=s||{},s=s||{},c=c||Object.create(null),l=l||"schemaForm.form";var f=document.createDocumentFragment();return t.reduce(function(t,f,m){if(!f.type)return t;var u=n[f.type]||n.default;if(u.replace){var d;s.arrayCompatFlag=!1;var p=document.createElement("div"),h=a(f,u)||a(f,n.default);for(p.innerHTML=h,d=document.createDocumentFragment();p.childNodes.length>0;)d.appendChild(p.childNodes[0]);var g={fieldFrag:d,form:f,lookup:c,state:s,path:l+"["+m+"]",build:function(t,r,i){return e(t,n,a,o,r,i,c)}},y=f.builder||u.builder;"function"==typeof y?y(g):y.forEach(function(e){e(g)}),(i(f,o)||t).appendChild(d)}else{var v=document.createElement(r(n.__name,"-"));s.arrayCompatFlag?v.setAttribute("form","copyWithIndex($index)"):v.setAttribute("form",l+"["+m+"]"),(i(f,o)||t).appendChild(v)}return t},f),f};return{build:function(t,r,n,a){return l(t,r,function(t,r){return"template"===t.type?t.template:e.get(r.template);
},n,void 0,void 0,a)},builder:a,stdBuilders:o,internalBuild:l}}]}},function(e,t,r){"use strict";var n=r(0),a=r.n(n);t.a=function(){var e={default:"Field does not validate",0:"Invalid type, expected {{schema.type}}",1:"No enum match for: {{viewValue}}",10:'Data does not match any schemas from "anyOf"',11:'Data does not match any schemas from "oneOf"',12:'Data is valid against more than one schema from "oneOf"',13:'Data matches schema from "not"',100:"Value is not a multiple of {{schema.multipleOf}}",101:"{{viewValue}} is less than the allowed minimum of {{schema.minimum}}",102:"{{viewValue}} is equal to the exclusive minimum {{schema.minimum}}",103:"{{viewValue}} is greater than the allowed maximum of {{schema.maximum}}",104:"{{viewValue}} is equal to the exclusive maximum {{schema.maximum}}",105:"Value is not a valid number",200:"String is too short ({{viewValue.length}} chars), minimum {{schema.minLength}}",201:"String is too long ({{viewValue.length}} chars), maximum {{schema.maxLength}}",202:"String does not match pattern: {{schema.pattern}}",300:"Too few properties defined, minimum {{schema.minProperties}}",301:"Too many properties defined, maximum {{schema.maxProperties}}",302:"Required",303:"Additional properties not allowed",304:"Dependency failed - key must exist",400:"Array is too short ({{value.length}}), minimum {{schema.minItems}}",401:"Array is too long ({{value.length}}), maximum {{schema.maxItems}}",402:"Array items are not unique",403:"Additional items not allowed",500:"Format validation failed",501:'Keyword failed: "{{title}}"',600:"Circular $refs",1e3:"Unknown property (not in schema)"};e.number=e[105],e.required=e[302],e.min=e[101],e.max=e[103],e.maxlength=e[201],e.minlength=e[200],e.pattern=e[202],this.setDefaultMessages=function(t){e=t},this.getDefaultMessages=function(){return e},this.setDefaultMessage=function(t,r){e[t]=r},this.$get=["$interpolate",function(t){var r={};return r.defaultMessages=e,r.interpolate=function(r,n,o,i,l){l=l||{};var s=i.validationMessage||{};0===r.indexOf("tv4-")&&(r=r.substring(4));var c=s.default||l.default||"";[s,l,e].some(function(e){return a.a.isString(e)||a.a.isFunction(e)?(c=e,!0):e&&e[r]?(c=e[r],!0):void 0});var f={error:r,value:n,viewValue:o,form:i,schema:i.schema,title:i.title||i.schema&&i.schema.title};return a.a.isFunction(c)?c(f):t(c)(f)},r}]}},function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=r(1),o=(r.n(a),r(0)),i=(r.n(o),function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}()),l=function(){function e(){n(this,e),this.name=a.sfPath.name,this.parse=a.sfPath.parse,this.stringify=a.sfPath.stringify,this.normalize=a.sfPath.normalize}return i(e,[{key:"$get",value:function(){return a.sfPath}}]),e}();t.a=l},function(e,t,r){r(1),e.exports=r(2)}])},,,function(e,t,r){r(23),e.exports=r(3)}]);