New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

common-form-elements

Package Overview
Dependencies
Maintainers
1
Versions
86
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

common-form-elements - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

README.md

62

bundles/common-form-elements.umd.js

@@ -208,3 +208,3 @@ (function (global, factory) {

if (this.isOptionsClosure(this.options)) {
this.options$ = ( /** @type {?} */((( /** @type {?} */(changes['options'].currentValue)))(this.formControlRef, changes['context'].currentValue, ( /**
this.options$ = ( /** @type {?} */((( /** @type {?} */(this.options)))(this.formControlRef, this.context, ( /**
* @return {?}

@@ -399,31 +399,2 @@ */function () { return _this.dataLoadStatusDelegate.next('LOADING'); }), ( /**

/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m)
return m.call(o);
if (o && typeof o.length === "number")
return {
next: function () {
if (o && i >= o.length)
o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
/**

@@ -436,3 +407,2 @@ * @fileoverview added by tsickle

function CheckboxComponent() {
this.valuesInArr = [];
}

@@ -446,22 +416,2 @@ /**

function () {
var e_1, _a;
try {
for (var _b = __values(Object.keys(this.values)), _c = _b.next(); !_c.done; _c = _b.next()) {
var prop = _c.value;
this.valuesInArr.push(this.values[prop]);
}
}
catch (e_1_1) {
e_1 = { error: e_1_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_1)
throw e_1.error;
}
}
};

@@ -471,4 +421,4 @@ CheckboxComponent.decorators = [

selector: 'sb-checkbox',
template: "<div class=\"sb-checkbox\">\n <span><label>checkbox name</label></span>\n <div *ngFor=\"let value of valuesInArr\">\n <label>{{value}}</label>\n <span><input type=\"checkbox\" name=\"checkbox\" value={{value}}></span>\n </div>\n</div>",
styles: ["label{padding:10px;font-size:16px}"]
template: "<div class=\"sb-checkbox\">\n <div class=\"checkbox-row\">\n <label class=\"container\">\n <input type=\"checkbox\" [formControl]=\"formControlRef\" name=\"checkbox\" value=\"value\">\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"checkbox-label\">{{label}}</label>\n </div>\n</div>",
styles: ["label{font-size:16px}.sb-checkbox{padding:0 0 0 8px}.container{position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container .checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border:2px solid #000;border-radius:4px}.container input:checked~.checkmark{background-color:#2196f3}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-label{padding:2px 0 0 32px}.checkbox-row{display:-ms-grid;display:grid;-ms-grid-columns:10px 250px;grid-template-columns:10px 250px;grid-gap:0}"]
}] }

@@ -480,3 +430,5 @@ ];

label: [{ type: core.Input }],
values: [{ type: core.Input }]
code: [{ type: core.Input }],
value: [{ type: core.Input }],
formControlRef: [{ type: core.Input }]
};

@@ -747,3 +699,3 @@ return CheckboxComponent;

selector: 'sb-form',
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [label]=\"field.code\" [values]=\"field.templateOptions.labelHtml.values\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [code]=\"field.code\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\" [value]=\"field.default\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
styles: [""]

@@ -750,0 +702,0 @@ }] }

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("rxjs"),require("rxjs/operators"),require("@angular/forms"),require("@angular/core")):"function"==typeof define&&define.amd?define("common-form-elements",["exports","@angular/common","rxjs","rxjs/operators","@angular/forms","@angular/core"],e):e(t["common-form-elements"]={},t.ng.common,t.rxjs,t.rxjs.operators,t.ng.forms,t.ng.core)}(this,function(t,e,n,o,r,i){"use strict";var a=(l.prototype.ngOnInit=function(){},l.decorators=[{type:i.Component,args:[{selector:"sb-common-form-elements",template:"\n <p>\n common-form-elements works!\n </p>\n "}]}],l.ctorParameters=function(){return[]},l);function l(){}var s=(p.valueComparator=function(t,e){return"object"==typeof t&&"object"==typeof e?d.equals(t,e):t===e||!t&&!e},p);function p(){}var d=(u.equals=function(t,e){var o=function(t){var e=0;for(var n in t)t.hasOwnProperty(n)&&e++;return e},i=function(t,e){if(typeof t!=typeof e)return!1;if("function"==typeof t)return t.toString()===e.toString();if(t instanceof Object&&e instanceof Object){if(o(t)!==o(e))return!1;for(var n in t)if(!i(t[n],e[n]))return!1;return!0}return t===e};return i(t,e)},u.getPropDiff=function(n,o){return Object.keys(n).reduce(function(t,e){return u.equals(n[e],o[e])||t.push(e),t},[])},u.getTruthyProps=function(e){return Object.keys(e).filter(function(t){return!!e[t]})},u.toOrderedString=function(n){return JSON.stringify(Object.keys(n).sort().reduce(function(t,e){return t[e]=n[e],t},{}))},u);function u(){}var c=(f.prototype.ngOnChanges=function(t){var e=this;this.options||(this.options=[]),this.isOptionsClosure(this.options)&&(this.options$=t.options.currentValue(this.formControlRef,t.context.currentValue,function(){return e.dataLoadStatusDelegate.next("LOADING")},function(){return e.dataLoadStatusDelegate.next("LOADED")}))},f.prototype.ngOnInit=function(){var t=this;this.context&&(this.contextValueChangesSubscription=this.context.valueChanges.pipe(o.tap(function(){t.formControlRef.patchValue(null)})).subscribe())},f.prototype.ngOnDestroy=function(){},f.prototype.isOptionsArray=function(t){return Array.isArray(t)},f.prototype.isOptionsClosure=function(t){return"function"==typeof t},f.prototype.isOptionsMap=function(t){return!Array.isArray(t)&&"object"==typeof t},f.decorators=[{type:i.Component,args:[{selector:"sb-dropdown",template:'<div class="sb-dropdown">\n <label>{{label}}</label>\n <ng-container *ngIf="options">\n <div class="dropdown-container">\n <sb-icon-dropdown class="dropdown-icon"></sb-icon-dropdown>\n <select [attr.disabled]="disabled ? true : ( context ? (context.invalid ? true : null) : null )"\n [formControl]="formControlRef"\n [compareWith]="ValueComparator.valueComparator" class="sb-dropdown-select" id="sb-dropdown"\n name="sb-dropdown">\n <option [defaultSelected]="!default" [ngValue]="null" disabled>{{placeHolder}}\n </option>\n <ng-container *ngIf="isOptionsArray(options)">\n <option *ngFor="let option of options" [ngValue]="option.value">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf="isOptionsClosure(options)">\n <option *ngFor="let option of options$ | async" [ngValue]="option.value">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf="isOptionsMap(options) && context && context.value">\n <option *ngFor="let option of options[context.value]" [ngValue]="option.value">{{option.label}}</option>\n </ng-container>\n </select>\n </div>\n </ng-container>\n</div>\n',styles:["label{display:block;padding:10px;font-size:1rem}.dropdown-icon{position:absolute;top:.5rem;right:18px;z-index:1}.dropdown-container{position:relative}select[disabled]{opacity:.3}select{-webkit-appearance:none;-moz-appearance:none;text-indent:1px;text-overflow:''}.sb-dropdown-select{opacity:.99;color:#333;font-family:\"Noto Sans\";font-size:12px;font-weight:700;letter-spacing:0;line-height:17px}.sb-dropdown{margin-bottom:8px}.placeholder select option:first-child{color:#999}.option-default{color:#333;font-weight:700;font-size:12px}.sb-dropdown select{background-color:#fff;padding:10px 20px;font-size:14px;width:100%;border:.5px solid #333}"]}]}],f.ctorParameters=function(){return[]},f.propDecorators={disabled:[{type:i.Input}],options:[{type:i.Input}],label:[{type:i.Input}],placeHolder:[{type:i.Input}],isMultiple:[{type:i.Input}],context:[{type:i.Input}],formControlRef:[{type:i.Input}],"default":[{type:i.Input}],contextData:[{type:i.Input}],dataLoadStatusDelegate:[{type:i.Input}]},f);function f(){this.ValueComparator=s,this.options=[]}var m=(g.prototype.ngOnInit=function(){},g.decorators=[{type:i.Component,args:[{selector:"sb-textbox",template:'<div class="sb-input">\n <label>{{label}}</label>\n <input [formControl]="formControlRef" class="sb-textbox" placeholder={{placeholder}} type="text">\n</div>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:['label{display:block;padding:10px;font-size:1rem}.sb-textbox{width:100%;padding:8px 20px;border:.5px solid #333;box-sizing:border-box}::-moz-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}:-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}::-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}::placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}.sb-input{margin-bottom:10px}']}]}],g.ctorParameters=function(){return[]},g.propDecorators={label:[{type:i.Input}],placeholder:[{type:i.Input}],formControlRef:[{type:i.Input}]},g);function g(){}var h={INPUT:"input",CHECKBOX:"checkbox",SELECT:"select",LABEL:"label",TEXTAREA:"textarea",NESTED_SELECT:"nested_select",NESTED_GROUP:"nested_group"},b={REQUIRED:"required",MAXLENGTH:"maxLength",MINLENGTH:"minLength",PATTERN:"pattern"},y=(v.prototype.ngOnInit=function(){var e=this.config.validations&&this.config.validations.find(function(t){return t.type===b.MAXLENGTH});e&&(this.remainderValidLength$=this.formControlRef.valueChanges.pipe(o.startWith(""),o.map(function(t){return("number"==typeof e.value?e.value:0)-(t||"").length})))},v.decorators=[{type:i.Component,args:[{selector:"sb-textarea",template:'<div class="sb-textarea-container">\n <label>{{label}}</label>\n <textarea class="sb-textarea" [formControl]="formControlRef" rows="5" name="sb-textarea" placeholder={{placeholder}}>\n </textarea>\n <div class="remaining-length" *ngIf="remainderValidLength$">\n {{remainderValidLength$ | async}} Characters left\n </div>\n</div>\n',styles:['label{display:block;padding:10px;font-size:1rem}.sb-textarea{width:100%;padding:8px 20px;box-sizing:border-box;border:1px solid #ccc;border-radius:.25rem;resize:vertical}.sb-textarea-container{margin-bottom:10px;position:relative}.remaining-length{position:absolute;bottom:.5rem;right:1rem;font-size:10px;color:#999}::-moz-placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}:-ms-input-placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}::-ms-input-placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}::placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}']}]}],v.ctorParameters=function(){return[]},v.propDecorators={label:[{type:i.Input}],placeholder:[{type:i.Input}],formControlRef:[{type:i.Input}],config:[{type:i.Input}]},v);function v(){}var x=(C.prototype.ngOnInit=function(){var t,e;try{for(var n=function(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}(Object.keys(this.values)),o=n.next();!o.done;o=n.next()){var i=o.value;this.valuesInArr.push(this.values[i])}}catch(r){t={error:r}}finally{try{o&&!o.done&&(e=n["return"])&&e.call(n)}finally{if(t)throw t.error}}},C.decorators=[{type:i.Component,args:[{selector:"sb-checkbox",template:'<div class="sb-checkbox">\n <span><label>checkbox name</label></span>\n <div *ngFor="let value of valuesInArr">\n <label>{{value}}</label>\n <span><input type="checkbox" name="checkbox" value={{value}}></span>\n </div>\n</div>',styles:["label{padding:10px;font-size:16px}"]}]}],C.ctorParameters=function(){return[]},C.propDecorators={label:[{type:i.Input}],values:[{type:i.Input}]},C);function C(){this.valuesInArr=[]}var S=(O.prototype.ngOnDestroy=function(){this.finalize.emit(),this.statusChangesSubscription&&this.statusChangesSubscription.unsubscribe(),this.valueChangesSubscription&&this.valueChangesSubscription.unsubscribe(),this.dataLoadStatusSinkSubscription&&this.dataLoadStatusSinkSubscription.unsubscribe()},O.prototype.ngOnInit=function(){},O.prototype.ngOnChanges=function(t){var e=this;t.config&&(t.config.currentValue&&t.config.firstChange||t.config.previousValue!==t.config.currentValue)&&this.initializeForm(),this.dataLoadStatusSinkSubscription&&this.dataLoadStatusSinkSubscription.unsubscribe(),this.statusChangesSubscription&&this.statusChangesSubscription.unsubscribe(),this.valueChangesSubscription&&this.valueChangesSubscription.unsubscribe(),this.dataLoadStatusSinkSubscription=this.dataLoadStatusDelegate.pipe(o.scan(function(t,e){return"LOADED"===e?t.loadedCount++:t.loadingCount++,t},{loadingCount:0,loadedCount:0}),o.map(function(t){return t.loadingCount!==t.loadedCount?"LOADING":"LOADED"}),o.distinctUntilChanged(),o.tap(function(t){"LOADING"===t?e.dataLoadStatus.emit("LOADING"):e.dataLoadStatus.emit("LOADED")})).subscribe(),this.statusChangesSubscription=this.formGroup.valueChanges.pipe(o.tap(function(t){e.statusChanges.emit({isPristine:e.formGroup.pristine,isDirty:e.formGroup.dirty,isInvalid:e.formGroup.invalid,isValid:e.formGroup.valid})})).subscribe(),this.valueChangesSubscription=this.formGroup.valueChanges.pipe(o.tap(function(t){e.valueChanges.emit(t)})).subscribe()},O.prototype.onNestedFormFinalize=function(t,e){this.formGroup.get("children")&&this.formGroup.get("children."+e.code)&&(this.formGroup.get("children").removeControl(e.code),Object.keys(this.formGroup.get("children").controls).length||this.formGroup.removeControl("children"))},O.prototype.onNestedFormInitialize=function(t,e){this.formGroup.get("children")||this.formGroup.addControl("children",new r.FormGroup({})),this.formGroup.get("children").addControl(e.code,t)},O.prototype.initializeForm=function(){var o,i=this;this.config.length?(o={},this.config.forEach(function(t,e){var n;t.type!==h.LABEL&&(n=i.prepareFormValidationData(t,e),o[t.code]=n)}),this.formGroup=this.formBuilder.group(o),this.initialize.emit(this.formGroup)):console.error("FORM LIST IS EMPTY")},O.prototype.prepareFormValidationData=function(n,t){var e=[],o=[],i="";switch(n.type){case h.INPUT:i="number"===n.templateOptions.type?n["default"]&&Number.isInteger(n["default"])?n["default"]:0:null;break;case h.SELECT:case h.NESTED_SELECT:i=n.templateOptions.multiple?n["default"]&&Array.isArray(n["default"])?n["default"]:[]:n["default"]||null;break;case h.CHECKBOX:i=!!n["default"]}return e.push(i),n.validations&&n.validations.length&&n.validations.forEach(function(t,e){switch(t.type){case b.REQUIRED:n.type===h.CHECKBOX?o.push(r.Validators.requiredTrue):n.type===h.SELECT||n.type===h.NESTED_SELECT?o.push(function(t){return n.templateOptions.multiple?t.value&&t.value.length?null:"error":t.value?null:"error"}):o.push(r.Validators.required);break;case b.PATTERN:o.push(r.Validators.pattern(n.validations[e].value));break;case b.MINLENGTH:o.push(r.Validators.minLength(n.validations[e].value));break;case b.MAXLENGTH:o.push(r.Validators.maxLength(n.validations[e].value))}}),e.push(r.Validators.compose(o)),e},O.decorators=[{type:i.Component,args:[{selector:"sb-form",template:'<div [formGroup]="formGroup">\n <ng-container *ngFor="let field of config; let index = i">\n <div *ngIf="field.type === FieldConfigInputType.SELECT" [hidden]="field.templateOptions?.hidden || null">\n <sb-dropdown [context]="field.context ? formGroup.get(field.context) : null " [default]="field.default"\n [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [dataLoadStatusDelegate]="dataLoadStatusDelegate" [options]="field.templateOptions?.options"\n [disabled]="field.templateOptions?.disabled"\n [placeHolder]="field?.templateOptions?.placeHolder">\n </sb-dropdown>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.NESTED_SELECT" [hidden]="field.templateOptions?.hidden || null">\n <sb-dropdown [context]="field.context ? formGroup.get(field.context) : null " [default]="field.default"\n [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [dataLoadStatusDelegate]="dataLoadStatusDelegate" [options]="field.templateOptions?.options"\n [disabled]="field.templateOptions?.disabled"\n [placeHolder]="field?.templateOptions?.placeHolder">\n </sb-dropdown>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.INPUT" [hidden]="field.templateOptions?.hidden || null">\n <sb-textbox [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [placeholder]="field.templateOptions.placeHolder">\n </sb-textbox>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.TEXTAREA" [hidden]="field.templateOptions?.hidden || null">\n <sb-textarea [config]="field" [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [placeholder]="field.templateOptions.placeHolder">\n </sb-textarea>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.CHECKBOX" [hidden]="field.templateOptions?.hidden || null">\n <sb-checkbox [label]="field.code" [values]="field.templateOptions.labelHtml.values"></sb-checkbox>\n </div>\n <ng-container *ngIf="formGroup.get(field.code) as ref">\n <div *ngIf="ref && ref.value && field.children && field.children[ref.value]">\n <sb-form (initialize)="onNestedFormInitialize($event, field)"\n (finalize)="onNestedFormFinalize($event, field)"\n [dataLoadStatusDelegate]="dataLoadStatusDelegate"\n [config]="field.children[ref.value]"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n',styles:[""]}]}],O.ctorParameters=function(){return[{type:r.FormBuilder}]},O.propDecorators={initialize:[{type:i.Output}],finalize:[{type:i.Output}],valueChanges:[{type:i.Output}],statusChanges:[{type:i.Output}],dataLoadStatus:[{type:i.Output}],config:[{type:i.Input}],dataLoadStatusDelegate:[{type:i.Input}]},O);function O(t){this.formBuilder=t,this.initialize=new i.EventEmitter,this.finalize=new i.EventEmitter,this.valueChanges=new i.EventEmitter,this.statusChanges=new i.EventEmitter,this.dataLoadStatus=new i.EventEmitter,this.dataLoadStatusDelegate=new n.Subject,this.FieldConfigInputType=h,window.forms||(window.forms=[]),window.forms.push(this)}var E=(I.prototype.ngOnInit=function(){},I.decorators=[{type:i.Component,args:[{selector:"sb-option-group",template:"<p>\n option-group works!\n</p>\n",changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[""]}]}],I.ctorParameters=function(){return[]},I);function I(){}var w=(L.prototype.ngOnInit=function(){},L.decorators=[{type:i.Component,args:[{selector:"sb-icon-dropdown",template:'<svg width="14px" height="8px" viewBox="0 0 14 8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n \x3c!-- Generator: sketchtool 63.1 (101010) - https://sketch.com --\x3e\n <title>BE94B3C8-E695-41FA-A0FC-2CE95714B444@1.5x</title>\n <desc>Created with sketchtool.</desc>\n <g id="Schooling-@-home" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g id="My-classes-Copy" transform="translate(-316.000000, -248.000000)" fill="#333333">\n <g id="Group" transform="translate(16.000000, 205.000000)">\n <polygon id="Path" transform="translate(306.894756, 47.000000) rotate(-270.000000) translate(-306.894756, -47.000000) " points="304.599756 40.7073171 303.189756 42.1860976 307.769756 47 303.189756 51.8139024 304.599756 53.2926829 310.599756 47"></polygon>\n </g>\n </g>\n </g>\n</svg>\n',styles:[""]}]}],L.ctorParameters=function(){return[]},L);function L(){}var D=(T.decorators=[{type:i.NgModule,args:[{declarations:[a,c,m,y,x,S,E,w],imports:[e.CommonModule,r.ReactiveFormsModule,r.FormsModule],exports:[a,c,m,y,x,S,E,w]}]}],T);function T(){}t.CommonFormElementsComponent=a,t.CommonFormElementsModule=D,t.FieldConfigInputType=h,t.FieldConfigValidationType=b,t.ɵd=x,t.ɵa=c,t.ɵe=S,t.ɵg=w,t.ɵf=E,t.ɵc=y,t.ɵb=m,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("rxjs"),require("rxjs/operators"),require("@angular/forms"),require("@angular/core")):"function"==typeof define&&define.amd?define("common-form-elements",["exports","@angular/common","rxjs","rxjs/operators","@angular/forms","@angular/core"],e):e(t["common-form-elements"]={},t.ng.common,t.rxjs,t.rxjs.operators,t.ng.forms,t.ng.core)}(this,function(t,e,n,o,r,i){"use strict";var a=(l.prototype.ngOnInit=function(){},l.decorators=[{type:i.Component,args:[{selector:"sb-common-form-elements",template:"\n <p>\n common-form-elements works!\n </p>\n "}]}],l.ctorParameters=function(){return[]},l);function l(){}var s=(p.valueComparator=function(t,e){return"object"==typeof t&&"object"==typeof e?d.equals(t,e):t===e||!t&&!e},p);function p(){}var d=(c.equals=function(t,e){var o=function(t){var e=0;for(var n in t)t.hasOwnProperty(n)&&e++;return e},i=function(t,e){if(typeof t!=typeof e)return!1;if("function"==typeof t)return t.toString()===e.toString();if(t instanceof Object&&e instanceof Object){if(o(t)!==o(e))return!1;for(var n in t)if(!i(t[n],e[n]))return!1;return!0}return t===e};return i(t,e)},c.getPropDiff=function(n,o){return Object.keys(n).reduce(function(t,e){return c.equals(n[e],o[e])||t.push(e),t},[])},c.getTruthyProps=function(e){return Object.keys(e).filter(function(t){return!!e[t]})},c.toOrderedString=function(n){return JSON.stringify(Object.keys(n).sort().reduce(function(t,e){return t[e]=n[e],t},{}))},c);function c(){}var u=(f.prototype.ngOnChanges=function(t){var e=this;this.options||(this.options=[]),this.isOptionsClosure(this.options)&&(this.options$=this.options(this.formControlRef,this.context,function(){return e.dataLoadStatusDelegate.next("LOADING")},function(){return e.dataLoadStatusDelegate.next("LOADED")}))},f.prototype.ngOnInit=function(){var t=this;this.context&&(this.contextValueChangesSubscription=this.context.valueChanges.pipe(o.tap(function(){t.formControlRef.patchValue(null)})).subscribe())},f.prototype.ngOnDestroy=function(){},f.prototype.isOptionsArray=function(t){return Array.isArray(t)},f.prototype.isOptionsClosure=function(t){return"function"==typeof t},f.prototype.isOptionsMap=function(t){return!Array.isArray(t)&&"object"==typeof t},f.decorators=[{type:i.Component,args:[{selector:"sb-dropdown",template:'<div class="sb-dropdown">\n <label>{{label}}</label>\n <ng-container *ngIf="options">\n <div class="dropdown-container">\n <sb-icon-dropdown class="dropdown-icon"></sb-icon-dropdown>\n <select [attr.disabled]="disabled ? true : ( context ? (context.invalid ? true : null) : null )"\n [formControl]="formControlRef"\n [compareWith]="ValueComparator.valueComparator" class="sb-dropdown-select" id="sb-dropdown"\n name="sb-dropdown">\n <option [defaultSelected]="!default" [ngValue]="null" disabled>{{placeHolder}}\n </option>\n <ng-container *ngIf="isOptionsArray(options)">\n <option *ngFor="let option of options" [ngValue]="option.value">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf="isOptionsClosure(options)">\n <option *ngFor="let option of options$ | async" [ngValue]="option.value">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf="isOptionsMap(options) && context && context.value">\n <option *ngFor="let option of options[context.value]" [ngValue]="option.value">{{option.label}}</option>\n </ng-container>\n </select>\n </div>\n </ng-container>\n</div>\n',styles:["label{display:block;padding:10px;font-size:1rem}.dropdown-icon{position:absolute;top:.5rem;right:18px;z-index:1}.dropdown-container{position:relative}select[disabled]{opacity:.3}select{-webkit-appearance:none;-moz-appearance:none;text-indent:1px;text-overflow:''}.sb-dropdown-select{opacity:.99;color:#333;font-family:\"Noto Sans\";font-size:12px;font-weight:700;letter-spacing:0;line-height:17px}.sb-dropdown{margin-bottom:8px}.placeholder select option:first-child{color:#999}.option-default{color:#333;font-weight:700;font-size:12px}.sb-dropdown select{background-color:#fff;padding:10px 20px;font-size:14px;width:100%;border:.5px solid #333}"]}]}],f.ctorParameters=function(){return[]},f.propDecorators={disabled:[{type:i.Input}],options:[{type:i.Input}],label:[{type:i.Input}],placeHolder:[{type:i.Input}],isMultiple:[{type:i.Input}],context:[{type:i.Input}],formControlRef:[{type:i.Input}],"default":[{type:i.Input}],contextData:[{type:i.Input}],dataLoadStatusDelegate:[{type:i.Input}]},f);function f(){this.ValueComparator=s,this.options=[]}var m=(g.prototype.ngOnInit=function(){},g.decorators=[{type:i.Component,args:[{selector:"sb-textbox",template:'<div class="sb-input">\n <label>{{label}}</label>\n <input [formControl]="formControlRef" class="sb-textbox" placeholder={{placeholder}} type="text">\n</div>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:['label{display:block;padding:10px;font-size:1rem}.sb-textbox{width:100%;padding:8px 20px;border:.5px solid #333;box-sizing:border-box}::-moz-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}:-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}::-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}::placeholder{padding:.25rem;opacity:.99;color:#999;font-family:"Noto Sans";font-size:12px;font-weight:700}.sb-input{margin-bottom:10px}']}]}],g.ctorParameters=function(){return[]},g.propDecorators={label:[{type:i.Input}],placeholder:[{type:i.Input}],formControlRef:[{type:i.Input}]},g);function g(){}var h={INPUT:"input",CHECKBOX:"checkbox",SELECT:"select",LABEL:"label",TEXTAREA:"textarea",NESTED_SELECT:"nested_select",NESTED_GROUP:"nested_group"},b={REQUIRED:"required",MAXLENGTH:"maxLength",MINLENGTH:"minLength",PATTERN:"pattern"},y=(x.prototype.ngOnInit=function(){var e=this.config.validations&&this.config.validations.find(function(t){return t.type===b.MAXLENGTH});e&&(this.remainderValidLength$=this.formControlRef.valueChanges.pipe(o.startWith(""),o.map(function(t){return("number"==typeof e.value?e.value:0)-(t||"").length})))},x.decorators=[{type:i.Component,args:[{selector:"sb-textarea",template:'<div class="sb-textarea-container">\n <label>{{label}}</label>\n <textarea class="sb-textarea" [formControl]="formControlRef" rows="5" name="sb-textarea" placeholder={{placeholder}}>\n </textarea>\n <div class="remaining-length" *ngIf="remainderValidLength$">\n {{remainderValidLength$ | async}} Characters left\n </div>\n</div>\n',styles:['label{display:block;padding:10px;font-size:1rem}.sb-textarea{width:100%;padding:8px 20px;box-sizing:border-box;border:1px solid #ccc;border-radius:.25rem;resize:vertical}.sb-textarea-container{margin-bottom:10px;position:relative}.remaining-length{position:absolute;bottom:.5rem;right:1rem;font-size:10px;color:#999}::-moz-placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}:-ms-input-placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}::-ms-input-placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}::placeholder{padding:.25rem;color:#999;font-family:"Noto Sans";font-size:14px;letter-spacing:0;line-height:20px}']}]}],x.ctorParameters=function(){return[]},x.propDecorators={label:[{type:i.Input}],placeholder:[{type:i.Input}],formControlRef:[{type:i.Input}],config:[{type:i.Input}]},x);function x(){}var v=(C.prototype.ngOnInit=function(){},C.decorators=[{type:i.Component,args:[{selector:"sb-checkbox",template:'<div class="sb-checkbox">\n <div class="checkbox-row">\n <label class="container">\n <input type="checkbox" [formControl]="formControlRef" name="checkbox" value="value">\n <span class="checkmark"></span>\n </label>\n <label class="checkbox-label">{{label}}</label>\n </div>\n</div>',styles:['label{font-size:16px}.sb-checkbox{padding:0 0 0 8px}.container{position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container .checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border:2px solid #000;border-radius:4px}.container input:checked~.checkmark{background-color:#2196f3}.checkmark:after{content:"";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-label{padding:2px 0 0 32px}.checkbox-row{display:-ms-grid;display:grid;-ms-grid-columns:10px 250px;grid-template-columns:10px 250px;grid-gap:0}']}]}],C.ctorParameters=function(){return[]},C.propDecorators={label:[{type:i.Input}],code:[{type:i.Input}],value:[{type:i.Input}],formControlRef:[{type:i.Input}]},C);function C(){}var S=(O.prototype.ngOnDestroy=function(){this.finalize.emit(),this.statusChangesSubscription&&this.statusChangesSubscription.unsubscribe(),this.valueChangesSubscription&&this.valueChangesSubscription.unsubscribe(),this.dataLoadStatusSinkSubscription&&this.dataLoadStatusSinkSubscription.unsubscribe()},O.prototype.ngOnInit=function(){},O.prototype.ngOnChanges=function(t){var e=this;t.config&&(t.config.currentValue&&t.config.firstChange||t.config.previousValue!==t.config.currentValue)&&this.initializeForm(),this.dataLoadStatusSinkSubscription&&this.dataLoadStatusSinkSubscription.unsubscribe(),this.statusChangesSubscription&&this.statusChangesSubscription.unsubscribe(),this.valueChangesSubscription&&this.valueChangesSubscription.unsubscribe(),this.dataLoadStatusSinkSubscription=this.dataLoadStatusDelegate.pipe(o.scan(function(t,e){return"LOADED"===e?t.loadedCount++:t.loadingCount++,t},{loadingCount:0,loadedCount:0}),o.map(function(t){return t.loadingCount!==t.loadedCount?"LOADING":"LOADED"}),o.distinctUntilChanged(),o.tap(function(t){"LOADING"===t?e.dataLoadStatus.emit("LOADING"):e.dataLoadStatus.emit("LOADED")})).subscribe(),this.statusChangesSubscription=this.formGroup.valueChanges.pipe(o.tap(function(t){e.statusChanges.emit({isPristine:e.formGroup.pristine,isDirty:e.formGroup.dirty,isInvalid:e.formGroup.invalid,isValid:e.formGroup.valid})})).subscribe(),this.valueChangesSubscription=this.formGroup.valueChanges.pipe(o.tap(function(t){e.valueChanges.emit(t)})).subscribe()},O.prototype.onNestedFormFinalize=function(t,e){this.formGroup.get("children")&&this.formGroup.get("children."+e.code)&&(this.formGroup.get("children").removeControl(e.code),Object.keys(this.formGroup.get("children").controls).length||this.formGroup.removeControl("children"))},O.prototype.onNestedFormInitialize=function(t,e){this.formGroup.get("children")||this.formGroup.addControl("children",new r.FormGroup({})),this.formGroup.get("children").addControl(e.code,t)},O.prototype.initializeForm=function(){var o,i=this;this.config.length?(o={},this.config.forEach(function(t,e){var n;t.type!==h.LABEL&&(n=i.prepareFormValidationData(t,e),o[t.code]=n)}),this.formGroup=this.formBuilder.group(o),this.initialize.emit(this.formGroup)):console.error("FORM LIST IS EMPTY")},O.prototype.prepareFormValidationData=function(n,t){var e=[],o=[],i="";switch(n.type){case h.INPUT:i="number"===n.templateOptions.type?n["default"]&&Number.isInteger(n["default"])?n["default"]:0:null;break;case h.SELECT:case h.NESTED_SELECT:i=n.templateOptions.multiple?n["default"]&&Array.isArray(n["default"])?n["default"]:[]:n["default"]||null;break;case h.CHECKBOX:i=!!n["default"]}return e.push(i),n.validations&&n.validations.length&&n.validations.forEach(function(t,e){switch(t.type){case b.REQUIRED:n.type===h.CHECKBOX?o.push(r.Validators.requiredTrue):n.type===h.SELECT||n.type===h.NESTED_SELECT?o.push(function(t){return n.templateOptions.multiple?t.value&&t.value.length?null:"error":t.value?null:"error"}):o.push(r.Validators.required);break;case b.PATTERN:o.push(r.Validators.pattern(n.validations[e].value));break;case b.MINLENGTH:o.push(r.Validators.minLength(n.validations[e].value));break;case b.MAXLENGTH:o.push(r.Validators.maxLength(n.validations[e].value))}}),e.push(r.Validators.compose(o)),e},O.decorators=[{type:i.Component,args:[{selector:"sb-form",template:'<div [formGroup]="formGroup">\n <ng-container *ngFor="let field of config; let index = i">\n <div *ngIf="field.type === FieldConfigInputType.SELECT" [hidden]="field.templateOptions?.hidden || null">\n <sb-dropdown [context]="field.context ? formGroup.get(field.context) : null " [default]="field.default"\n [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [dataLoadStatusDelegate]="dataLoadStatusDelegate" [options]="field.templateOptions?.options"\n [disabled]="field.templateOptions?.disabled"\n [placeHolder]="field?.templateOptions?.placeHolder">\n </sb-dropdown>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.NESTED_SELECT" [hidden]="field.templateOptions?.hidden || null">\n <sb-dropdown [context]="field.context ? formGroup.get(field.context) : null " [default]="field.default"\n [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [dataLoadStatusDelegate]="dataLoadStatusDelegate" [options]="field.templateOptions?.options"\n [disabled]="field.templateOptions?.disabled"\n [placeHolder]="field?.templateOptions?.placeHolder">\n </sb-dropdown>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.INPUT" [hidden]="field.templateOptions?.hidden || null">\n <sb-textbox [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [placeholder]="field.templateOptions.placeHolder">\n </sb-textbox>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.TEXTAREA" [hidden]="field.templateOptions?.hidden || null">\n <sb-textarea [config]="field" [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label"\n [placeholder]="field.templateOptions.placeHolder">\n </sb-textarea>\n </div>\n <div *ngIf="field.type === FieldConfigInputType.CHECKBOX" [hidden]="field.templateOptions?.hidden || null">\n <sb-checkbox [code]="field.code" [formControlRef]="formGroup.get(field.code)" [label]="field.templateOptions.label" [value]="field.default"></sb-checkbox>\n </div>\n <ng-container *ngIf="formGroup.get(field.code) as ref">\n <div *ngIf="ref && ref.value && field.children && field.children[ref.value]">\n <sb-form (initialize)="onNestedFormInitialize($event, field)"\n (finalize)="onNestedFormFinalize($event, field)"\n [dataLoadStatusDelegate]="dataLoadStatusDelegate"\n [config]="field.children[ref.value]"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n',styles:[""]}]}],O.ctorParameters=function(){return[{type:r.FormBuilder}]},O.propDecorators={initialize:[{type:i.Output}],finalize:[{type:i.Output}],valueChanges:[{type:i.Output}],statusChanges:[{type:i.Output}],dataLoadStatus:[{type:i.Output}],config:[{type:i.Input}],dataLoadStatusDelegate:[{type:i.Input}]},O);function O(t){this.formBuilder=t,this.initialize=new i.EventEmitter,this.finalize=new i.EventEmitter,this.valueChanges=new i.EventEmitter,this.statusChanges=new i.EventEmitter,this.dataLoadStatus=new i.EventEmitter,this.dataLoadStatusDelegate=new n.Subject,this.FieldConfigInputType=h,window.forms||(window.forms=[]),window.forms.push(this)}var E=(w.prototype.ngOnInit=function(){},w.decorators=[{type:i.Component,args:[{selector:"sb-option-group",template:"<p>\n option-group works!\n</p>\n",changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[""]}]}],w.ctorParameters=function(){return[]},w);function w(){}var I=(k.prototype.ngOnInit=function(){},k.decorators=[{type:i.Component,args:[{selector:"sb-icon-dropdown",template:'<svg width="14px" height="8px" viewBox="0 0 14 8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n \x3c!-- Generator: sketchtool 63.1 (101010) - https://sketch.com --\x3e\n <title>BE94B3C8-E695-41FA-A0FC-2CE95714B444@1.5x</title>\n <desc>Created with sketchtool.</desc>\n <g id="Schooling-@-home" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g id="My-classes-Copy" transform="translate(-316.000000, -248.000000)" fill="#333333">\n <g id="Group" transform="translate(16.000000, 205.000000)">\n <polygon id="Path" transform="translate(306.894756, 47.000000) rotate(-270.000000) translate(-306.894756, -47.000000) " points="304.599756 40.7073171 303.189756 42.1860976 307.769756 47 303.189756 51.8139024 304.599756 53.2926829 310.599756 47"></polygon>\n </g>\n </g>\n </g>\n</svg>\n',styles:[""]}]}],k.ctorParameters=function(){return[]},k);function k(){}var L=(D.decorators=[{type:i.NgModule,args:[{declarations:[a,u,m,y,v,S,E,I],imports:[e.CommonModule,r.ReactiveFormsModule,r.FormsModule],exports:[a,u,m,y,v,S,E,I]}]}],D);function D(){}t.CommonFormElementsComponent=a,t.CommonFormElementsModule=L,t.FieldConfigInputType=h,t.FieldConfigValidationType=b,t.ɵd=v,t.ɵa=u,t.ɵe=S,t.ɵg=I,t.ɵf=E,t.ɵc=y,t.ɵb=m,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=common-form-elements.umd.min.js.map

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"CommonFormElementsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"sb-common-form-elements","template":"\n <p>\n common-form-elements works!\n </p>\n ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"CommonFormElementsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CommonFormElementsComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":13},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":15,"character":27},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":15,"character":48}],"exports":[{"__symbolic":"reference","name":"CommonFormElementsComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}]}]}],"members":{}},"FieldConfigInputType":{"INPUT":"input","CHECKBOX":"checkbox","SELECT":"select","LABEL":"label","TEXTAREA":"textarea","NESTED_SELECT":"nested_select","NESTED_GROUP":"nested_group"},"FieldConfigValidationType":{"REQUIRED":"required","MAXLENGTH":"maxLength","MINLENGTH":"minLength","PATTERN":"pattern"},"FieldConfigOptionsBuilder":{"__symbolic":"interface"},"AsyncValidatorFactory":{"__symbolic":"interface"},"FieldConfigOption":{"__symbolic":"interface"},"FieldConfigOptionAssociations":{"__symbolic":"interface"},"FieldConfig":{"__symbolic":"interface"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"sb-dropdown","template":"<div class=\"sb-dropdown\">\n <label>{{label}}</label>\n <ng-container *ngIf=\"options\">\n <div class=\"dropdown-container\">\n <sb-icon-dropdown class=\"dropdown-icon\"></sb-icon-dropdown>\n <select [attr.disabled]=\"disabled ? true : ( context ? (context.invalid ? true : null) : null )\"\n [formControl]=\"formControlRef\"\n [compareWith]=\"ValueComparator.valueComparator\" class=\"sb-dropdown-select\" id=\"sb-dropdown\"\n name=\"sb-dropdown\">\n <option [defaultSelected]=\"!default\" [ngValue]=\"null\" disabled>{{placeHolder}}\n </option>\n <ng-container *ngIf=\"isOptionsArray(options)\">\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf=\"isOptionsClosure(options)\">\n <option *ngFor=\"let option of options$ | async\" [ngValue]=\"option.value\">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf=\"isOptionsMap(options) && context && context.value\">\n <option *ngFor=\"let option of options[context.value]\" [ngValue]=\"option.value\">{{option.label}}</option>\n </ng-container>\n </select>\n </div>\n </ng-container>\n</div>\n","styles":["label{display:block;padding:10px;font-size:1rem}.dropdown-icon{position:absolute;top:.5rem;right:18px;z-index:1}.dropdown-container{position:relative}select[disabled]{opacity:.3}select{-webkit-appearance:none;-moz-appearance:none;text-indent:1px;text-overflow:''}.sb-dropdown-select{opacity:.99;color:#333;font-family:\"Noto Sans\";font-size:12px;font-weight:700;letter-spacing:0;line-height:17px}.sb-dropdown{margin-bottom:8px}.placeholder select option:first-child{color:#999}.option-default{color:#333;font-weight:700;font-size:12px}.sb-dropdown select{background-color:#fff;padding:10px 20px;font-size:14px;width:100%;border:.5px solid #333}"]}]}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"placeHolder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"isMultiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"context":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"formControlRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"default":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"contextData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"dataLoadStatusDelegate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isOptionsArray":[{"__symbolic":"method"}],"isOptionsClosure":[{"__symbolic":"method"}],"isOptionsMap":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"sb-textbox","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":19},"member":"OnPush"},"template":"<div class=\"sb-input\">\n <label>{{label}}</label>\n <input [formControl]=\"formControlRef\" class=\"sb-textbox\" placeholder={{placeholder}} type=\"text\">\n</div>\n","styles":["label{display:block;padding:10px;font-size:1rem}.sb-textbox{width:100%;padding:8px 20px;border:.5px solid #333;box-sizing:border-box}::-moz-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}:-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}::-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}::placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}.sb-input{margin-bottom:10px}"]}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"formControlRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"sb-textarea","template":"<div class=\"sb-textarea-container\">\n <label>{{label}}</label>\n <textarea class=\"sb-textarea\" [formControl]=\"formControlRef\" rows=\"5\" name=\"sb-textarea\" placeholder={{placeholder}}>\n </textarea>\n <div class=\"remaining-length\" *ngIf=\"remainderValidLength$\">\n {{remainderValidLength$ | async}} Characters left\n </div>\n</div>\n","styles":["label{display:block;padding:10px;font-size:1rem}.sb-textarea{width:100%;padding:8px 20px;box-sizing:border-box;border:1px solid #ccc;border-radius:.25rem;resize:vertical}.sb-textarea-container{margin-bottom:10px;position:relative}.remaining-length{position:absolute;bottom:.5rem;right:1rem;font-size:10px;color:#999}::-moz-placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}:-ms-input-placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}::-ms-input-placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}::placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}"]}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"formControlRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"sb-checkbox","template":"<div class=\"sb-checkbox\">\n <span><label>checkbox name</label></span>\n <div *ngFor=\"let value of valuesInArr\">\n <label>{{value}}</label>\n <span><input type=\"checkbox\" name=\"checkbox\" value={{value}}></span>\n </div>\n</div>","styles":["label{padding:10px;font-size:16px}"]}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"values":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"sb-form","template":"<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [label]=\"field.code\" [values]=\"field.templateOptions.labelHtml.values\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n","styles":[""]}]}],"members":{"initialize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"finalize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"valueChanges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"statusChanges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"dataLoadStatus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"dataLoadStatusDelegate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":30,"character":25}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"onNestedFormFinalize":[{"__symbolic":"method"}],"onNestedFormInitialize":[{"__symbolic":"method"}],"initializeForm":[{"__symbolic":"method"}],"prepareFormValidationData":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"sb-option-group","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"<p>\n option-group works!\n</p>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"sb-icon-dropdown","template":"<svg width=\"14px\" height=\"8px\" viewBox=\"0 0 14 8\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <!-- Generator: sketchtool 63.1 (101010) - https://sketch.com -->\n <title>BE94B3C8-E695-41FA-A0FC-2CE95714B444@1.5x</title>\n <desc>Created with sketchtool.</desc>\n <g id=\"Schooling-@-home\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"My-classes-Copy\" transform=\"translate(-316.000000, -248.000000)\" fill=\"#333333\">\n <g id=\"Group\" transform=\"translate(16.000000, 205.000000)\">\n <polygon id=\"Path\" transform=\"translate(306.894756, 47.000000) rotate(-270.000000) translate(-306.894756, -47.000000) \" points=\"304.599756 40.7073171 303.189756 42.1860976 307.769756 47 303.189756 51.8139024 304.599756 53.2926829 310.599756 47\"></polygon>\n </g>\n </g>\n </g>\n</svg>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"CommonFormElementsComponent":"./lib/common-form-elements.component","CommonFormElementsModule":"./lib/common-form-elements.module","FieldConfigInputType":"./lib/common-form-config","FieldConfigValidationType":"./lib/common-form-config","FieldConfigOptionsBuilder":"./lib/common-form-config","AsyncValidatorFactory":"./lib/common-form-config","FieldConfigOption":"./lib/common-form-config","FieldConfigOptionAssociations":"./lib/common-form-config","FieldConfig":"./lib/common-form-config","ɵa":"./lib/dropdown/dropdown.component","ɵb":"./lib/textbox/textbox.component","ɵc":"./lib/textarea/textarea.component","ɵd":"./lib/checkbox/checkbox.component","ɵe":"./lib/form/form.component","ɵf":"./lib/option-group/option-group.component","ɵg":"./lib/icon/dropdown/dropdownIcon.component"},"importAs":"common-form-elements"}
{"__symbolic":"module","version":4,"metadata":{"CommonFormElementsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"sb-common-form-elements","template":"\n <p>\n common-form-elements works!\n </p>\n ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"CommonFormElementsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CommonFormElementsComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":13},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":15,"character":27},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":15,"character":48}],"exports":[{"__symbolic":"reference","name":"CommonFormElementsComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}]}]}],"members":{}},"FieldConfigInputType":{"INPUT":"input","CHECKBOX":"checkbox","SELECT":"select","LABEL":"label","TEXTAREA":"textarea","NESTED_SELECT":"nested_select","NESTED_GROUP":"nested_group"},"FieldConfigValidationType":{"REQUIRED":"required","MAXLENGTH":"maxLength","MINLENGTH":"minLength","PATTERN":"pattern"},"FieldConfigOptionsBuilder":{"__symbolic":"interface"},"AsyncValidatorFactory":{"__symbolic":"interface"},"FieldConfigOption":{"__symbolic":"interface"},"FieldConfigOptionAssociations":{"__symbolic":"interface"},"FieldConfig":{"__symbolic":"interface"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"sb-dropdown","template":"<div class=\"sb-dropdown\">\n <label>{{label}}</label>\n <ng-container *ngIf=\"options\">\n <div class=\"dropdown-container\">\n <sb-icon-dropdown class=\"dropdown-icon\"></sb-icon-dropdown>\n <select [attr.disabled]=\"disabled ? true : ( context ? (context.invalid ? true : null) : null )\"\n [formControl]=\"formControlRef\"\n [compareWith]=\"ValueComparator.valueComparator\" class=\"sb-dropdown-select\" id=\"sb-dropdown\"\n name=\"sb-dropdown\">\n <option [defaultSelected]=\"!default\" [ngValue]=\"null\" disabled>{{placeHolder}}\n </option>\n <ng-container *ngIf=\"isOptionsArray(options)\">\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf=\"isOptionsClosure(options)\">\n <option *ngFor=\"let option of options$ | async\" [ngValue]=\"option.value\">{{option.label}}</option>\n </ng-container>\n\n <ng-container *ngIf=\"isOptionsMap(options) && context && context.value\">\n <option *ngFor=\"let option of options[context.value]\" [ngValue]=\"option.value\">{{option.label}}</option>\n </ng-container>\n </select>\n </div>\n </ng-container>\n</div>\n","styles":["label{display:block;padding:10px;font-size:1rem}.dropdown-icon{position:absolute;top:.5rem;right:18px;z-index:1}.dropdown-container{position:relative}select[disabled]{opacity:.3}select{-webkit-appearance:none;-moz-appearance:none;text-indent:1px;text-overflow:''}.sb-dropdown-select{opacity:.99;color:#333;font-family:\"Noto Sans\";font-size:12px;font-weight:700;letter-spacing:0;line-height:17px}.sb-dropdown{margin-bottom:8px}.placeholder select option:first-child{color:#999}.option-default{color:#333;font-weight:700;font-size:12px}.sb-dropdown select{background-color:#fff;padding:10px 20px;font-size:14px;width:100%;border:.5px solid #333}"]}]}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"placeHolder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"isMultiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"context":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"formControlRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"default":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"contextData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"dataLoadStatusDelegate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isOptionsArray":[{"__symbolic":"method"}],"isOptionsClosure":[{"__symbolic":"method"}],"isOptionsMap":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"sb-textbox","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":19},"member":"OnPush"},"template":"<div class=\"sb-input\">\n <label>{{label}}</label>\n <input [formControl]=\"formControlRef\" class=\"sb-textbox\" placeholder={{placeholder}} type=\"text\">\n</div>\n","styles":["label{display:block;padding:10px;font-size:1rem}.sb-textbox{width:100%;padding:8px 20px;border:.5px solid #333;box-sizing:border-box}::-moz-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}:-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}::-ms-input-placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}::placeholder{padding:.25rem;opacity:.99;color:#999;font-family:\"Noto Sans\";font-size:12px;font-weight:700}.sb-input{margin-bottom:10px}"]}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"formControlRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"sb-textarea","template":"<div class=\"sb-textarea-container\">\n <label>{{label}}</label>\n <textarea class=\"sb-textarea\" [formControl]=\"formControlRef\" rows=\"5\" name=\"sb-textarea\" placeholder={{placeholder}}>\n </textarea>\n <div class=\"remaining-length\" *ngIf=\"remainderValidLength$\">\n {{remainderValidLength$ | async}} Characters left\n </div>\n</div>\n","styles":["label{display:block;padding:10px;font-size:1rem}.sb-textarea{width:100%;padding:8px 20px;box-sizing:border-box;border:1px solid #ccc;border-radius:.25rem;resize:vertical}.sb-textarea-container{margin-bottom:10px;position:relative}.remaining-length{position:absolute;bottom:.5rem;right:1rem;font-size:10px;color:#999}::-moz-placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}:-ms-input-placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}::-ms-input-placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}::placeholder{padding:.25rem;color:#999;font-family:\"Noto Sans\";font-size:14px;letter-spacing:0;line-height:20px}"]}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"formControlRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"sb-checkbox","template":"<div class=\"sb-checkbox\">\n <div class=\"checkbox-row\">\n <label class=\"container\">\n <input type=\"checkbox\" [formControl]=\"formControlRef\" name=\"checkbox\" value=\"value\">\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"checkbox-label\">{{label}}</label>\n </div>\n</div>","styles":["label{font-size:16px}.sb-checkbox{padding:0 0 0 8px}.container{position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container .checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border:2px solid #000;border-radius:4px}.container input:checked~.checkmark{background-color:#2196f3}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-label{padding:2px 0 0 32px}.checkbox-row{display:-ms-grid;display:grid;-ms-grid-columns:10px 250px;grid-template-columns:10px 250px;grid-gap:0}"]}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"code":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"formControlRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"sb-form","template":"<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [code]=\"field.code\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\" [value]=\"field.default\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n","styles":[""]}]}],"members":{"initialize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"finalize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"valueChanges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"statusChanges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"dataLoadStatus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"dataLoadStatusDelegate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":30,"character":25}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"onNestedFormFinalize":[{"__symbolic":"method"}],"onNestedFormInitialize":[{"__symbolic":"method"}],"initializeForm":[{"__symbolic":"method"}],"prepareFormValidationData":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"sb-option-group","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"<p>\n option-group works!\n</p>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"sb-icon-dropdown","template":"<svg width=\"14px\" height=\"8px\" viewBox=\"0 0 14 8\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <!-- Generator: sketchtool 63.1 (101010) - https://sketch.com -->\n <title>BE94B3C8-E695-41FA-A0FC-2CE95714B444@1.5x</title>\n <desc>Created with sketchtool.</desc>\n <g id=\"Schooling-@-home\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"My-classes-Copy\" transform=\"translate(-316.000000, -248.000000)\" fill=\"#333333\">\n <g id=\"Group\" transform=\"translate(16.000000, 205.000000)\">\n <polygon id=\"Path\" transform=\"translate(306.894756, 47.000000) rotate(-270.000000) translate(-306.894756, -47.000000) \" points=\"304.599756 40.7073171 303.189756 42.1860976 307.769756 47 303.189756 51.8139024 304.599756 53.2926829 310.599756 47\"></polygon>\n </g>\n </g>\n </g>\n</svg>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"CommonFormElementsComponent":"./lib/common-form-elements.component","CommonFormElementsModule":"./lib/common-form-elements.module","FieldConfigInputType":"./lib/common-form-config","FieldConfigValidationType":"./lib/common-form-config","FieldConfigOptionsBuilder":"./lib/common-form-config","AsyncValidatorFactory":"./lib/common-form-config","FieldConfigOption":"./lib/common-form-config","FieldConfigOptionAssociations":"./lib/common-form-config","FieldConfig":"./lib/common-form-config","ɵa":"./lib/dropdown/dropdown.component","ɵb":"./lib/textbox/textbox.component","ɵc":"./lib/textarea/textarea.component","ɵd":"./lib/checkbox/checkbox.component","ɵe":"./lib/form/form.component","ɵf":"./lib/option-group/option-group.component","ɵg":"./lib/icon/dropdown/dropdownIcon.component"},"importAs":"common-form-elements"}

@@ -7,6 +7,5 @@ /**

import { Component, Input } from '@angular/core';
import { FormControl } from '@angular/forms';
export class CheckboxComponent {
constructor() {
this.valuesInArr = [];
}
constructor() { }
/**

@@ -16,5 +15,2 @@ * @return {?}

ngOnInit() {
for (const prop of Object.keys(this.values)) {
this.valuesInArr.push(this.values[prop]);
}
}

@@ -25,4 +21,4 @@ }

selector: 'sb-checkbox',
template: "<div class=\"sb-checkbox\">\n <span><label>checkbox name</label></span>\n <div *ngFor=\"let value of valuesInArr\">\n <label>{{value}}</label>\n <span><input type=\"checkbox\" name=\"checkbox\" value={{value}}></span>\n </div>\n</div>",
styles: ["label{padding:10px;font-size:16px}"]
template: "<div class=\"sb-checkbox\">\n <div class=\"checkbox-row\">\n <label class=\"container\">\n <input type=\"checkbox\" [formControl]=\"formControlRef\" name=\"checkbox\" value=\"value\">\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"checkbox-label\">{{label}}</label>\n </div>\n</div>",
styles: ["label{font-size:16px}.sb-checkbox{padding:0 0 0 8px}.container{position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container .checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border:2px solid #000;border-radius:4px}.container input:checked~.checkmark{background-color:#2196f3}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-label{padding:2px 0 0 32px}.checkbox-row{display:-ms-grid;display:grid;-ms-grid-columns:10px 250px;grid-template-columns:10px 250px;grid-gap:0}"]
}] }

@@ -34,3 +30,5 @@ ];

label: [{ type: Input }],
values: [{ type: Input }]
code: [{ type: Input }],
value: [{ type: Input }],
formControlRef: [{ type: Input }]
};

@@ -41,6 +39,8 @@ if (false) {

/** @type {?} */
CheckboxComponent.prototype.values;
CheckboxComponent.prototype.code;
/** @type {?} */
CheckboxComponent.prototype.valuesInArr;
CheckboxComponent.prototype.value;
/** @type {?} */
CheckboxComponent.prototype.formControlRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPekQsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QjtRQUZBLGdCQUFXLEdBQUcsRUFBRSxDQUFDO0lBRUQsQ0FBQzs7OztJQUVqQixRQUFRO1FBQ04sS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDOzs7WUFoQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2Qiw2UUFBd0M7O2FBRXpDOzs7OztvQkFFRSxLQUFLO3FCQUNMLEtBQUs7Ozs7SUFETixrQ0FBb0I7O0lBQ3BCLG1DQUFxQjs7SUFDckIsd0NBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWw6IGFueTtcbiAgQElucHV0KCkgdmFsdWVzOiBhbnk7XG4gIHZhbHVlc0luQXJyID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXModGhpcy52YWx1ZXMpKSB7XG4gICAgICB0aGlzLnZhbHVlc0luQXJyLnB1c2godGhpcy52YWx1ZXNbcHJvcF0pO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdDLE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsZ0JBQWdCLENBQUM7Ozs7SUFFakIsUUFBUTtJQUNSLENBQUM7OztZQWRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsd1dBQXdDOzthQUV6Qzs7Ozs7b0JBRUUsS0FBSzttQkFDTCxLQUFLO29CQUNMLEtBQUs7NkJBQ0wsS0FBSzs7OztJQUhOLGtDQUFvQjs7SUFDcEIsaUNBQW1COztJQUNuQixrQ0FBcUI7O0lBQ3JCLDJDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWw6IGFueTtcbiAgQElucHV0KCkgY29kZTogYW55O1xuICBASW5wdXQoKSB2YWx1ZT86IGFueTtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xSZWY/OiBGb3JtQ29udHJvbDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbn1cbiJdfQ==

@@ -25,3 +25,3 @@ /**

if (this.isOptionsClosure(this.options)) {
this.options$ = (/** @type {?} */ (((/** @type {?} */ (changes['options'].currentValue)))(this.formControlRef, changes['context'].currentValue, (/**
this.options$ = (/** @type {?} */ (((/** @type {?} */ (this.options)))(this.formControlRef, this.context, (/**
* @return {?}

@@ -124,2 +124,2 @@ */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPOUQsTUFBTSxPQUFPLGlCQUFpQjtJQWlCNUI7UUFoQkEsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFHekIsWUFBTyxHQUFRLEVBQUUsQ0FBQztJQWMzQixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNuQjtRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFBLENBQUMsbUJBQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBa0MsQ0FBQyxDQUNqRixJQUFJLENBQUMsY0FBYyxFQUNuQixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWTs7O1lBQy9CLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzs7WUFDakQsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDakQsRUFBTyxDQUFDO1NBQ1Y7SUFDSCxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNuRSxHQUFHOzs7WUFBQyxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQzs7OztJQUVELFdBQVc7SUFDWCxDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxPQUFZO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVoQyxDQUFDOzs7OztJQUVELGdCQUFnQixDQUFDLE9BQVk7UUFDM0IsT0FBTyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUM7SUFDdkMsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDNUQsQ0FBQzs7O1lBaEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIseXhDQUF3Qzs7YUFFekM7Ozs7O3VCQUlFLEtBQUs7c0JBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFDTCxLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsS0FBSzswQkFDTCxLQUFLO3FDQUNMLEtBQUs7Ozs7SUFYTiw0Q0FBa0M7O0lBRWxDLHFDQUE0Qjs7SUFDNUIsb0NBQTJCOztJQUMzQixrQ0FBd0I7O0lBQ3hCLHdDQUE4Qjs7SUFDOUIsdUNBQThCOztJQUM5QixvQ0FBK0I7O0lBQy9CLDJDQUFzQzs7SUFDdEMsb0NBQXVCOztJQUN2Qix3Q0FBMEI7O0lBQzFCLG1EQUErRDs7SUFFL0QscUNBQWdEOztJQUNoRCw0REFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZENvbmZpZ09wdGlvbiwgRmllbGRDb25maWdPcHRpb25zQnVpbGRlcn0gZnJvbSAnLi4vY29tbW9uLWZvcm0tY29uZmlnJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1ZhbHVlQ29tcGFyYXRvcn0gZnJvbSAnLi4vdXRpbGl0aWVzL3ZhbHVlLWNvbXBhcmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBWYWx1ZUNvbXBhcmF0b3IgPSBWYWx1ZUNvbXBhcmF0b3I7XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBvcHRpb25zOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBpc011bHRpcGxlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY29udGV4dD86IEZvcm1Db250cm9sO1xuICBASW5wdXQoKSBmb3JtQ29udHJvbFJlZj86IEZvcm1Db250cm9sO1xuICBASW5wdXQoKSBkZWZhdWx0PzogYW55O1xuICBASW5wdXQoKSBjb250ZXh0RGF0YTogYW55O1xuICBASW5wdXQoKSBkYXRhTG9hZFN0YXR1c0RlbGVnYXRlOiBTdWJqZWN0PCdMT0FESU5HJyB8ICdMT0FERUQnPjtcblxuICBvcHRpb25zJD86IE9ic2VydmFibGU8RmllbGRDb25maWdPcHRpb248YW55PltdPjtcbiAgY29udGV4dFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNPcHRpb25zQ2xvc3VyZSh0aGlzLm9wdGlvbnMpKSB7XG4gICAgICB0aGlzLm9wdGlvbnMkID0gKGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWUgYXMgRmllbGRDb25maWdPcHRpb25zQnVpbGRlcjxhbnk+KShcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZixcbiAgICAgICAgY2hhbmdlc1snY29udGV4dCddLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURJTkcnKSxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURFRCcpXG4gICAgICApIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmNvbnRleHQudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5wYXRjaFZhbHVlKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgfVxuXG4gIGlzT3B0aW9uc0FycmF5KG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9wdGlvbnMpO1xuXG4gIH1cblxuICBpc09wdGlvbnNDbG9zdXJlKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGlzT3B0aW9uc01hcChpbnB1dDogYW55KSB7XG4gICAgcmV0dXJuICFBcnJheS5pc0FycmF5KGlucHV0KSAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPOUQsTUFBTSxPQUFPLGlCQUFpQjtJQWlCNUI7UUFoQkEsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFHekIsWUFBTyxHQUFRLEVBQUUsQ0FBQztJQWMzQixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNuQjtRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFBLENBQUMsbUJBQUEsSUFBSSxDQUFDLE9BQU8sRUFBa0MsQ0FBQyxDQUM5RCxJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsT0FBTzs7O1lBQ1osR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7OztZQUNqRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUNqRCxFQUFPLENBQUM7U0FDVjtJQUNILENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ25FLEdBQUc7OztZQUFDLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxDQUFDLEVBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVztJQUNYLENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLE9BQVk7UUFDekIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWhDLENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsT0FBWTtRQUMzQixPQUFPLE9BQU8sT0FBTyxLQUFLLFVBQVUsQ0FBQztJQUN2QyxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUM1RCxDQUFDOzs7WUFoRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2Qix5eENBQXdDOzthQUV6Qzs7Ozs7dUJBSUUsS0FBSztzQkFDTCxLQUFLO29CQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7NkJBQ0wsS0FBSztzQkFDTCxLQUFLOzBCQUNMLEtBQUs7cUNBQ0wsS0FBSzs7OztJQVhOLDRDQUFrQzs7SUFFbEMscUNBQTRCOztJQUM1QixvQ0FBMkI7O0lBQzNCLGtDQUF3Qjs7SUFDeEIsd0NBQThCOztJQUM5Qix1Q0FBOEI7O0lBQzlCLG9DQUErQjs7SUFDL0IsMkNBQXNDOztJQUN0QyxvQ0FBdUI7O0lBQ3ZCLHdDQUEwQjs7SUFDMUIsbURBQStEOztJQUUvRCxxQ0FBZ0Q7O0lBQ2hELDREQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpZWxkQ29uZmlnT3B0aW9uLCBGaWVsZENvbmZpZ09wdGlvbnNCdWlsZGVyfSBmcm9tICcuLi9jb21tb24tZm9ybS1jb25maWcnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VmFsdWVDb21wYXJhdG9yfSBmcm9tICcuLi91dGlsaXRpZXMvdmFsdWUtY29tcGFyYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIFZhbHVlQ29tcGFyYXRvciA9IFZhbHVlQ29tcGFyYXRvcjtcblxuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueSA9IFtdO1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2VIb2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzTXVsdGlwbGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBjb250ZXh0PzogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sUmVmPzogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGRlZmF1bHQ/OiBhbnk7XG4gIEBJbnB1dCgpIGNvbnRleHREYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGRhdGFMb2FkU3RhdHVzRGVsZWdhdGU6IFN1YmplY3Q8J0xPQURJTkcnIHwgJ0xPQURFRCc+O1xuXG4gIG9wdGlvbnMkPzogT2JzZXJ2YWJsZTxGaWVsZENvbmZpZ09wdGlvbjxhbnk+W10+O1xuICBjb250ZXh0VmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc09wdGlvbnNDbG9zdXJlKHRoaXMub3B0aW9ucykpIHtcbiAgICAgIHRoaXMub3B0aW9ucyQgPSAodGhpcy5vcHRpb25zIGFzIEZpZWxkQ29uZmlnT3B0aW9uc0J1aWxkZXI8YW55PikoXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xSZWYsXG4gICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURJTkcnKSxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURFRCcpXG4gICAgICApIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmNvbnRleHQudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5wYXRjaFZhbHVlKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgfVxuXG4gIGlzT3B0aW9uc0FycmF5KG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9wdGlvbnMpO1xuXG4gIH1cblxuICBpc09wdGlvbnNDbG9zdXJlKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGlzT3B0aW9uc01hcChpbnB1dDogYW55KSB7XG4gICAgcmV0dXJuICFBcnJheS5pc0FycmF5KGlucHV0KSAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnO1xuICB9XG59XG4iXX0=

@@ -247,3 +247,3 @@ /**

selector: 'sb-form',
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [label]=\"field.code\" [values]=\"field.templateOptions.labelHtml.values\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [code]=\"field.code\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\" [value]=\"field.default\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
styles: [""]

@@ -305,2 +305,2 @@ }] }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb21tb24tZm9ybS1lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBYyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFPcEUsTUFBTSxPQUFPLGFBQWE7Ozs7SUFrQnhCLFlBQ1UsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFsQnhCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUUzRCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztRQUl0RSx5QkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQVMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMs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Q0FBQyxDQUFDO3dCQUNsRixNQUFNO29CQUNSLEtBQUsseUJBQXlCLENBQUMsU0FBUzt3QkFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLG1CQUFBLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUNsRixNQUFNO2lCQUNUO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUVELGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRXZELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OztZQS9NRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLDh0RkFBb0M7O2FBRXJDOzs7O1lBUk8sV0FBVzs7O3lCQVVoQixNQUFNO3VCQUNOLE1BQU07MkJBRU4sTUFBTTs0QkFDTixNQUFNOzZCQUNOLE1BQU07cUJBQ04sS0FBSztxQ0FDTCxLQUFLOzs7O0lBUE4sbUNBQTBDOztJQUMxQyxpQ0FBd0M7O0lBRXhDLHFDQUE0Qzs7SUFDNUMsc0NBQTZDOztJQUM3Qyx1Q0FBb0U7O0lBQ3BFLCtCQUFnQjs7SUFDaEIsK0NBQXNFOztJQUV0RSxrQ0FBcUI7O0lBRXJCLDZDQUE0Qzs7Ozs7SUFFNUMsa0RBQWdEOzs7OztJQUNoRCxpREFBK0M7Ozs7O0lBQy9DLHVEQUFxRDs7Ozs7SUFHbkQsb0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZpZWxkQ29uZmlnLCBGaWVsZENvbmZpZ0lucHV0VHlwZSwgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZX0gZnJvbSAnLi4vY29tbW9uLWZvcm0tY29uZmlnJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzY2FuLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAT3V0cHV0KCkgaW5pdGlhbGl6ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZpbmFsaXplID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGF0YUxvYWRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPCdMT0FESU5HJyB8ICdMT0FERUQnPigpO1xuICBASW5wdXQoKSBjb25maWc7XG4gIEBJbnB1dCgpIGRhdGFMb2FkU3RhdHVzRGVsZWdhdGUgPSBuZXcgU3ViamVjdDwnTE9BRElORycgfCAnTE9BREVEJz4oKTtcblxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICBGaWVsZENvbmZpZ0lucHV0VHlwZSA9IEZpZWxkQ29uZmlnSW5wdXRUeXBlO1xuXG4gIHByaXZhdGUgc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFMb2FkU3RhdHVzU2lua1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyXG4gICkge1xuICAgIGlmICghd2luZG93Wydmb3JtcyddKSB7XG4gICAgICB3aW5kb3dbJ2Zvcm1zJ10gPSBbXTtcbiAgICB9XG4gICAgd2luZG93Wydmb3JtcyddLnB1c2godGhpcyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFsaXplLmVtaXQoKTtcblxuICAgIGlmICh0aGlzLnN0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddKSB7XG4gICAgICBpZiAoKGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzWydjb25maWcnXS5maXJzdENoYW5nZSkgfHwgY2hhbmdlc1snY29uZmlnJ10ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLnBpcGUoXG4gICAgICBzY2FuPCdMT0FESU5HJyB8ICdMT0FERUQnLCB7IGxvYWRpbmdDb3VudDogMCwgbG9hZGVkQ291bnQ6IDAgfT4oKGFjYywgZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50ID09PSAnTE9BREVEJykge1xuICAgICAgICAgIGFjYy5sb2FkZWRDb3VudCsrO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICBhY2MubG9hZGluZ0NvdW50Kys7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7bG9hZGluZ0NvdW50OiAwLCBsb2FkZWRDb3VudDogMH0pLFxuICAgICAgbWFwPHsgbG9hZGluZ0NvdW50OiAwLCBsb2FkZWRDb3VudDogMCB9LCAnTE9BRElORycgfCAnTE9BREVEJz4oKGFnZ3JlZ2F0ZXMpID0+IHtcbiAgICAgICAgaWYgKGFnZ3JlZ2F0ZXMubG9hZGluZ0NvdW50ICE9PSBhZ2dyZWdhdGVzLmxvYWRlZENvdW50KSB7XG4gICAgICAgICAgcmV0dXJuICdMT0FESU5HJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnTE9BREVEJztcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRhcCgocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09ICdMT0FESU5HJykge1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXMuZW1pdCgnTE9BRElORycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXMuZW1pdCgnTE9BREVEJyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKCh2KSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHtcbiAgICAgICAgICBpc1ByaXN0aW5lOiB0aGlzLmZvcm1Hcm91cC5wcmlzdGluZSxcbiAgICAgICAgICBpc0RpcnR5OiB0aGlzLmZvcm1Hcm91cC5kaXJ0eSxcbiAgICAgICAgICBpc0ludmFsaWQ6IHRoaXMuZm9ybUdyb3VwLmludmFsaWQsXG4gICAgICAgICAgaXNWYWxpZDogdGhpcy5mb3JtR3JvdXAudmFsaWRcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKCh2KSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLmVtaXQodik7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvbk5lc3RlZEZvcm1GaW5hbGl6ZShuZXN0ZWRGb3JtR3JvdXA6IEZvcm1Hcm91cCwgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnPGFueT4pIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSB8fCAhdGhpcy5mb3JtR3JvdXAuZ2V0KGBjaGlsZHJlbi4ke2ZpZWxkQ29uZmlnLmNvZGV9YCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAodGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIGFzIEZvcm1Hcm91cCkucmVtb3ZlQ29udHJvbChmaWVsZENvbmZpZy5jb2RlKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoKHRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSBhcyBGb3JtR3JvdXApLmNvbnRyb2xzKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2NoaWxkcmVuJyk7XG4gICAgfVxuICB9XG5cbiAgb25OZXN0ZWRGb3JtSW5pdGlhbGl6ZShuZXN0ZWRGb3JtR3JvdXA6IEZvcm1Hcm91cCwgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnPGFueT4pIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnY2hpbGRyZW4nLCBuZXcgRm9ybUdyb3VwKHt9KSk7XG4gICAgfVxuXG4gICAgKHRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSBhcyBGb3JtR3JvdXApLmFkZENvbnRyb2woZmllbGRDb25maWcuY29kZSwgbmVzdGVkRm9ybUdyb3VwKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZvcm0oKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5sZW5ndGgpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZPUk0gTElTVCBJUyBFTVBUWScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtR3JvdXBEYXRhID0ge307XG4gICAgdGhpcy5jb25maWcuZm9yRWFjaCgoZWxlbWVudDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQudHlwZSAhPT0gRmllbGRDb25maWdJbnB1dFR5cGUuTEFCRUwpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlTGlzdCA9IHRoaXMucHJlcGFyZUZvcm1WYWxpZGF0aW9uRGF0YShlbGVtZW50LCBpbmRleCk7XG4gICAgICAgIGZvcm1Hcm91cERhdGFbZWxlbWVudC5jb2RlXSA9IGZvcm1WYWx1ZUxpc3Q7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoZm9ybUdyb3VwRGF0YSk7XG4gICAgdGhpcy5pbml0aWFsaXplLmVtaXQodGhpcy5mb3JtR3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlRm9ybVZhbGlkYXRpb25EYXRhKGVsZW1lbnQ6IEZpZWxkQ29uZmlnPGFueT4sIGluZGV4KSB7XG4gICAgY29uc3QgZm9ybVZhbHVlTGlzdCA9IFtdO1xuICAgIGNvbnN0IHZhbGlkYXRpb25MaXN0ID0gW107XG5cbiAgICBsZXQgZGVmYXVsdFZhbDogYW55ID0gJyc7XG4gICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgRmllbGRDb25maWdJbnB1dFR5cGUuSU5QVVQ6XG4gICAgICAgIGRlZmF1bHRWYWwgPSBlbGVtZW50LnRlbXBsYXRlT3B0aW9ucy50eXBlID09PSAnbnVtYmVyJyA/XG4gICAgICAgICAgKGVsZW1lbnQuZGVmYXVsdCAmJiBOdW1iZXIuaXNJbnRlZ2VyKGVsZW1lbnQuZGVmYXVsdCkgPyBlbGVtZW50LmRlZmF1bHQgOiAwKSA6IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZENvbmZpZ0lucHV0VHlwZS5TRUxFQ1Q6XG4gICAgICBjYXNlIEZpZWxkQ29uZmlnSW5wdXRUeXBlLk5FU1RFRF9TRUxFQ1Q6XG4gICAgICAgIGRlZmF1bHRWYWwgPSBlbGVtZW50LnRlbXBsYXRlT3B0aW9ucy5tdWx0aXBsZSA/XG4gICAgICAgICAgKGVsZW1lbnQuZGVmYXVsdCAmJiBBcnJheS5pc0FycmF5KGVsZW1lbnQuZGVmYXVsdCkgPyBlbGVtZW50LmRlZmF1bHQgOiBbXSkgOiAoZWxlbWVudC5kZWZhdWx0IHx8IG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmllbGRDb25maWdJbnB1dFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgIGRlZmF1bHRWYWwgPSBmYWxzZSB8fCAhIWVsZW1lbnQuZGVmYXVsdDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZm9ybVZhbHVlTGlzdC5wdXNoKGRlZmF1bHRWYWwpO1xuXG4gICAgaWYgKGVsZW1lbnQudmFsaWRhdGlvbnMgJiYgZWxlbWVudC52YWxpZGF0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGVsZW1lbnQudmFsaWRhdGlvbnMuZm9yRWFjaCgoZGF0YSwgaSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgICAgIGNhc2UgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZS5SRVFVSVJFRDpcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEZpZWxkQ29uZmlnSW5wdXRUeXBlLkNIRUNLQk9YKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09IEZpZWxkQ29uZmlnSW5wdXRUeXBlLlNFTEVDVCB8fCBlbGVtZW50LnR5cGUgPT09IEZpZWxkQ29uZmlnSW5wdXRUeXBlLk5FU1RFRF9TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaCgoYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnRlbXBsYXRlT3B0aW9ucy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGMudmFsdWUgJiYgYy52YWx1ZS5sZW5ndGggPyBudWxsIDogJ2Vycm9yJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhYy52YWx1ZSA/IG51bGwgOiAnZXJyb3InO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEZpZWxkQ29uZmlnVmFsaWRhdGlvblR5cGUuUEFUVEVSTjpcbiAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGVsZW1lbnQudmFsaWRhdGlvbnNbaV0udmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEZpZWxkQ29uZmlnVmFsaWRhdGlvblR5cGUuTUlOTEVOR1RIOlxuICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChlbGVtZW50LnZhbGlkYXRpb25zW2ldLnZhbHVlIGFzIG51bWJlcikpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBGaWVsZENvbmZpZ1ZhbGlkYXRpb25UeXBlLk1BWExFTkdUSDpcbiAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZWxlbWVudC52YWxpZGF0aW9uc1tpXS52YWx1ZSBhcyBudW1iZXIpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3JtVmFsdWVMaXN0LnB1c2goVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkYXRpb25MaXN0KSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlTGlzdDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb21tb24tZm9ybS1lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBYyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFPcEUsTUFBTSxPQUFPLGFBQWE7Ozs7SUFrQnhCLFlBQ1UsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFsQnhCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUUzRCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztRQUl0RSx5QkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQVMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMs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Q0FBQyxDQUFDO3dCQUNsRixNQUFNO29CQUNSLEtBQUsseUJBQXlCLENBQUMsU0FBUzt3QkFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLG1CQUFBLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUNsRixNQUFNO2lCQUNUO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUVELGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRXZELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OztZQS9NRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLDJ4RkFBb0M7O2FBRXJDOzs7O1lBUk8sV0FBVzs7O3lCQVVoQixNQUFNO3VCQUNOLE1BQU07MkJBRU4sTUFBTTs0QkFDTixNQUFNOzZCQUNOLE1BQU07cUJBQ04sS0FBSztxQ0FDTCxLQUFLOzs7O0lBUE4sbUNBQTBDOztJQUMxQyxpQ0FBd0M7O0lBRXhDLHFDQUE0Qzs7SUFDNUMsc0NBQTZDOztJQUM3Qyx1Q0FBb0U7O0lBQ3BFLCtCQUFnQjs7SUFDaEIsK0NBQXNFOztJQUV0RSxrQ0FBcUI7O0lBRXJCLDZDQUE0Qzs7Ozs7SUFFNUMsa0RBQWdEOzs7OztJQUNoRCxpREFBK0M7Ozs7O0lBQy9DLHVEQUFxRDs7Ozs7SUFHbkQsb0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZpZWxkQ29uZmlnLCBGaWVsZENvbmZpZ0lucHV0VHlwZSwgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZX0gZnJvbSAnLi4vY29tbW9uLWZvcm0tY29uZmlnJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzY2FuLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAT3V0cHV0KCkgaW5pdGlhbGl6ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZpbmFsaXplID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGF0YUxvYWRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPCdMT0FESU5HJyB8ICdMT0FERUQnPigpO1xuICBASW5wdXQoKSBjb25maWc7XG4gIEBJbnB1dCgpIGRhdGFMb2FkU3RhdHVzRGVsZWdhdGUgPSBuZXcgU3ViamVjdDwnTE9BRElORycgfCAnTE9BREVEJz4oKTtcblxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICBGaWVsZENvbmZpZ0lucHV0VHlwZSA9IEZpZWxkQ29uZmlnSW5wdXRUeXBlO1xuXG4gIHByaXZhdGUgc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFMb2FkU3RhdHVzU2lua1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyXG4gICkge1xuICAgIGlmICghd2luZG93Wydmb3JtcyddKSB7XG4gICAgICB3aW5kb3dbJ2Zvcm1zJ10gPSBbXTtcbiAgICB9XG4gICAgd2luZG93Wydmb3JtcyddLnB1c2godGhpcyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFsaXplLmVtaXQoKTtcblxuICAgIGlmICh0aGlzLnN0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddKSB7XG4gICAgICBpZiAoKGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzWydjb25maWcnXS5maXJzdENoYW5nZSkgfHwgY2hhbmdlc1snY29uZmlnJ10ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLnBpcGUoXG4gICAgICBzY2FuPCdMT0FESU5HJyB8ICdMT0FERUQnLCB7IGxvYWRpbmdDb3VudDogMCwgbG9hZGVkQ291bnQ6IDAgfT4oKGFjYywgZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50ID09PSAnTE9BREVEJykge1xuICAgICAgICAgIGFjYy5sb2FkZWRDb3VudCsrO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICBhY2MubG9hZGluZ0NvdW50Kys7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7bG9hZGluZ0NvdW50OiAwLCBsb2FkZWRDb3VudDogMH0pLFxuICAgICAgbWFwPHsgbG9hZGluZ0NvdW50OiAwLCBsb2FkZWRDb3VudDogMCB9LCAnTE9BRElORycgfCAnTE9BREVEJz4oKGFnZ3JlZ2F0ZXMpID0+IHtcbiAgICAgICAgaWYgKGFnZ3JlZ2F0ZXMubG9hZGluZ0NvdW50ICE9PSBhZ2dyZWdhdGVzLmxvYWRlZENvdW50KSB7XG4gICAgICAgICAgcmV0dXJuICdMT0FESU5HJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnTE9BREVEJztcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRhcCgocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09ICdMT0FESU5HJykge1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXMuZW1pdCgnTE9BRElORycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRTdGF0dXMuZW1pdCgnTE9BREVEJyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKCh2KSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHtcbiAgICAgICAgICBpc1ByaXN0aW5lOiB0aGlzLmZvcm1Hcm91cC5wcmlzdGluZSxcbiAgICAgICAgICBpc0RpcnR5OiB0aGlzLmZvcm1Hcm91cC5kaXJ0eSxcbiAgICAgICAgICBpc0ludmFsaWQ6IHRoaXMuZm9ybUdyb3VwLmludmFsaWQsXG4gICAgICAgICAgaXNWYWxpZDogdGhpcy5mb3JtR3JvdXAudmFsaWRcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKCh2KSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLmVtaXQodik7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvbk5lc3RlZEZvcm1GaW5hbGl6ZShuZXN0ZWRGb3JtR3JvdXA6IEZvcm1Hcm91cCwgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnPGFueT4pIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSB8fCAhdGhpcy5mb3JtR3JvdXAuZ2V0KGBjaGlsZHJlbi4ke2ZpZWxkQ29uZmlnLmNvZGV9YCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAodGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIGFzIEZvcm1Hcm91cCkucmVtb3ZlQ29udHJvbChmaWVsZENvbmZpZy5jb2RlKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoKHRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSBhcyBGb3JtR3JvdXApLmNvbnRyb2xzKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2NoaWxkcmVuJyk7XG4gICAgfVxuICB9XG5cbiAgb25OZXN0ZWRGb3JtSW5pdGlhbGl6ZShuZXN0ZWRGb3JtR3JvdXA6IEZvcm1Hcm91cCwgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnPGFueT4pIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnY2hpbGRyZW4nLCBuZXcgRm9ybUdyb3VwKHt9KSk7XG4gICAgfVxuXG4gICAgKHRoaXMuZm9ybUdyb3VwLmdldCgnY2hpbGRyZW4nKSBhcyBGb3JtR3JvdXApLmFkZENvbnRyb2woZmllbGRDb25maWcuY29kZSwgbmVzdGVkRm9ybUdyb3VwKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZvcm0oKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5sZW5ndGgpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZPUk0gTElTVCBJUyBFTVBUWScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtR3JvdXBEYXRhID0ge307XG4gICAgdGhpcy5jb25maWcuZm9yRWFjaCgoZWxlbWVudDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQudHlwZSAhPT0gRmllbGRDb25maWdJbnB1dFR5cGUuTEFCRUwpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlTGlzdCA9IHRoaXMucHJlcGFyZUZvcm1WYWxpZGF0aW9uRGF0YShlbGVtZW50LCBpbmRleCk7XG4gICAgICAgIGZvcm1Hcm91cERhdGFbZWxlbWVudC5jb2RlXSA9IGZvcm1WYWx1ZUxpc3Q7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoZm9ybUdyb3VwRGF0YSk7XG4gICAgdGhpcy5pbml0aWFsaXplLmVtaXQodGhpcy5mb3JtR3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlRm9ybVZhbGlkYXRpb25EYXRhKGVsZW1lbnQ6IEZpZWxkQ29uZmlnPGFueT4sIGluZGV4KSB7XG4gICAgY29uc3QgZm9ybVZhbHVlTGlzdCA9IFtdO1xuICAgIGNvbnN0IHZhbGlkYXRpb25MaXN0ID0gW107XG5cbiAgICBsZXQgZGVmYXVsdFZhbDogYW55ID0gJyc7XG4gICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgRmllbGRDb25maWdJbnB1dFR5cGUuSU5QVVQ6XG4gICAgICAgIGRlZmF1bHRWYWwgPSBlbGVtZW50LnRlbXBsYXRlT3B0aW9ucy50eXBlID09PSAnbnVtYmVyJyA/XG4gICAgICAgICAgKGVsZW1lbnQuZGVmYXVsdCAmJiBOdW1iZXIuaXNJbnRlZ2VyKGVsZW1lbnQuZGVmYXVsdCkgPyBlbGVtZW50LmRlZmF1bHQgOiAwKSA6IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZENvbmZpZ0lucHV0VHlwZS5TRUxFQ1Q6XG4gICAgICBjYXNlIEZpZWxkQ29uZmlnSW5wdXRUeXBlLk5FU1RFRF9TRUxFQ1Q6XG4gICAgICAgIGRlZmF1bHRWYWwgPSBlbGVtZW50LnRlbXBsYXRlT3B0aW9ucy5tdWx0aXBsZSA/XG4gICAgICAgICAgKGVsZW1lbnQuZGVmYXVsdCAmJiBBcnJheS5pc0FycmF5KGVsZW1lbnQuZGVmYXVsdCkgPyBlbGVtZW50LmRlZmF1bHQgOiBbXSkgOiAoZWxlbWVudC5kZWZhdWx0IHx8IG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmllbGRDb25maWdJbnB1dFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgIGRlZmF1bHRWYWwgPSBmYWxzZSB8fCAhIWVsZW1lbnQuZGVmYXVsdDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZm9ybVZhbHVlTGlzdC5wdXNoKGRlZmF1bHRWYWwpO1xuXG4gICAgaWYgKGVsZW1lbnQudmFsaWRhdGlvbnMgJiYgZWxlbWVudC52YWxpZGF0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGVsZW1lbnQudmFsaWRhdGlvbnMuZm9yRWFjaCgoZGF0YSwgaSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgICAgIGNhc2UgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZS5SRVFVSVJFRDpcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEZpZWxkQ29uZmlnSW5wdXRUeXBlLkNIRUNLQk9YKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09IEZpZWxkQ29uZmlnSW5wdXRUeXBlLlNFTEVDVCB8fCBlbGVtZW50LnR5cGUgPT09IEZpZWxkQ29uZmlnSW5wdXRUeXBlLk5FU1RFRF9TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaCgoYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnRlbXBsYXRlT3B0aW9ucy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGMudmFsdWUgJiYgYy52YWx1ZS5sZW5ndGggPyBudWxsIDogJ2Vycm9yJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhYy52YWx1ZSA/IG51bGwgOiAnZXJyb3InO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEZpZWxkQ29uZmlnVmFsaWRhdGlvblR5cGUuUEFUVEVSTjpcbiAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGVsZW1lbnQudmFsaWRhdGlvbnNbaV0udmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEZpZWxkQ29uZmlnVmFsaWRhdGlvblR5cGUuTUlOTEVOR1RIOlxuICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChlbGVtZW50LnZhbGlkYXRpb25zW2ldLnZhbHVlIGFzIG51bWJlcikpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBGaWVsZENvbmZpZ1ZhbGlkYXRpb25UeXBlLk1BWExFTkdUSDpcbiAgICAgICAgICAgIHZhbGlkYXRpb25MaXN0LnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZWxlbWVudC52YWxpZGF0aW9uc1tpXS52YWx1ZSBhcyBudW1iZXIpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3JtVmFsdWVMaXN0LnB1c2goVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkYXRpb25MaXN0KSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlTGlzdDtcbiAgfVxufVxuIl19

@@ -6,7 +6,6 @@ /**

*/
import * as tslib_1 from "tslib";
import { Component, Input } from '@angular/core';
import { FormControl } from '@angular/forms';
var CheckboxComponent = /** @class */ (function () {
function CheckboxComponent() {
this.valuesInArr = [];
}

@@ -20,16 +19,2 @@ /**

function () {
var e_1, _a;
try {
for (var _b = tslib_1.__values(Object.keys(this.values)), _c = _b.next(); !_c.done; _c = _b.next()) {
var prop = _c.value;
this.valuesInArr.push(this.values[prop]);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
};

@@ -39,4 +24,4 @@ CheckboxComponent.decorators = [

selector: 'sb-checkbox',
template: "<div class=\"sb-checkbox\">\n <span><label>checkbox name</label></span>\n <div *ngFor=\"let value of valuesInArr\">\n <label>{{value}}</label>\n <span><input type=\"checkbox\" name=\"checkbox\" value={{value}}></span>\n </div>\n</div>",
styles: ["label{padding:10px;font-size:16px}"]
template: "<div class=\"sb-checkbox\">\n <div class=\"checkbox-row\">\n <label class=\"container\">\n <input type=\"checkbox\" [formControl]=\"formControlRef\" name=\"checkbox\" value=\"value\">\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"checkbox-label\">{{label}}</label>\n </div>\n</div>",
styles: ["label{font-size:16px}.sb-checkbox{padding:0 0 0 8px}.container{position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container .checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border:2px solid #000;border-radius:4px}.container input:checked~.checkmark{background-color:#2196f3}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-label{padding:2px 0 0 32px}.checkbox-row{display:-ms-grid;display:grid;-ms-grid-columns:10px 250px;grid-template-columns:10px 250px;grid-gap:0}"]
}] }

@@ -48,3 +33,5 @@ ];

label: [{ type: Input }],
values: [{ type: Input }]
code: [{ type: Input }],
value: [{ type: Input }],
formControlRef: [{ type: Input }]
};

@@ -58,6 +45,8 @@ return CheckboxComponent;

/** @type {?} */
CheckboxComponent.prototype.values;
CheckboxComponent.prototype.code;
/** @type {?} */
CheckboxComponent.prototype.valuesInArr;
CheckboxComponent.prototype.value;
/** @type {?} */
CheckboxComponent.prototype.formControlRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpEO0lBVUU7UUFGQSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUVELENBQUM7Ozs7SUFFakIsb0NBQVE7OztJQUFSOzs7WUFDRSxLQUFtQixJQUFBLEtBQUEsaUJBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQXhDLElBQU0sSUFBSSxXQUFBO2dCQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUMxQzs7Ozs7Ozs7O0lBQ0gsQ0FBQzs7Z0JBaEJGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsNlFBQXdDOztpQkFFekM7Ozs7O3dCQUVFLEtBQUs7eUJBQ0wsS0FBSzs7SUFXUix3QkFBQztDQUFBLEFBbEJELElBa0JDO1NBYlksaUJBQWlCOzs7SUFDNUIsa0NBQW9COztJQUNwQixtQ0FBcUI7O0lBQ3JCLHdDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBhbnk7XG4gIEBJbnB1dCgpIHZhbHVlczogYW55O1xuICB2YWx1ZXNJbkFyciA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkge1xuICAgICAgdGhpcy52YWx1ZXNJbkFyci5wdXNoKHRoaXMudmFsdWVzW3Byb3BdKTtcbiAgICB9XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDO0lBV0U7SUFBZ0IsQ0FBQzs7OztJQUVqQixvQ0FBUTs7O0lBQVI7SUFDQSxDQUFDOztnQkFkRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLHdXQUF3Qzs7aUJBRXpDOzs7Ozt3QkFFRSxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSztpQ0FDTCxLQUFLOztJQU9SLHdCQUFDO0NBQUEsQUFoQkQsSUFnQkM7U0FYWSxpQkFBaUI7OztJQUM1QixrQ0FBb0I7O0lBQ3BCLGlDQUFtQjs7SUFDbkIsa0NBQXFCOztJQUNyQiwyQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBhbnk7XG4gIEBJbnB1dCgpIGNvZGU6IGFueTtcbiAgQElucHV0KCkgdmFsdWU/OiBhbnk7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sUmVmPzogRm9ybUNvbnRyb2w7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iXX0=

@@ -30,3 +30,3 @@ /**

if (this.isOptionsClosure(this.options)) {
this.options$ = (/** @type {?} */ (((/** @type {?} */ (changes['options'].currentValue)))(this.formControlRef, changes['context'].currentValue, (/**
this.options$ = (/** @type {?} */ (((/** @type {?} */ (this.options)))(this.formControlRef, this.context, (/**
* @return {?}

@@ -150,2 +150,2 @@ */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFOUQ7SUFzQkU7UUFoQkEsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFHekIsWUFBTyxHQUFRLEVBQUUsQ0FBQztJQWMzQixDQUFDOzs7OztJQUVELHVDQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjtRQUFsQyxpQkFhQztRQVpDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1NBQ25CO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsbUJBQUEsQ0FBQyxtQkFBQSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFrQyxDQUFDLENBQ2pGLElBQUksQ0FBQyxjQUFjLEVBQ25CLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZOzs7WUFDL0IsY0FBTSxPQUFBLEtBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQTNDLENBQTJDOzs7WUFDakQsY0FBTSxPQUFBLEtBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQTFDLENBQTBDLEVBQ2pELEVBQU8sQ0FBQztTQUNWO0lBQ0gsQ0FBQzs7OztJQUVELG9DQUFROzs7SUFBUjtRQUFBLGlCQVFDO1FBUEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ25FLEdBQUc7OztZQUFDO2dCQUNGLEtBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsRUFBQyxDQUNILENBQUMsU0FBUyxFQUFFLENBQUM7U0FDZjtJQUNILENBQUM7Ozs7SUFFRCx1Q0FBVzs7O0lBQVg7SUFDQSxDQUFDOzs7OztJQUVELDBDQUFjOzs7O0lBQWQsVUFBZSxPQUFZO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVoQyxDQUFDOzs7OztJQUVELDRDQUFnQjs7OztJQUFoQixVQUFpQixPQUFZO1FBQzNCLE9BQU8sT0FBTyxPQUFPLEtBQUssVUFBVSxDQUFDO0lBQ3ZDLENBQUM7Ozs7O0lBRUQsd0NBQVk7Ozs7SUFBWixVQUFhLEtBQVU7UUFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQzVELENBQUM7O2dCQWhFRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLHl4Q0FBd0M7O2lCQUV6Qzs7Ozs7MkJBSUUsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7OEJBQ0wsS0FBSzs2QkFDTCxLQUFLOzBCQUNMLEtBQUs7aUNBQ0wsS0FBSzswQkFDTCxLQUFLOzhCQUNMLEtBQUs7eUNBQ0wsS0FBSzs7SUFnRFIsd0JBQUM7Q0FBQSxBQWpFRCxJQWlFQztTQTVEWSxpQkFBaUI7OztJQUM1Qiw0Q0FBa0M7O0lBRWxDLHFDQUE0Qjs7SUFDNUIsb0NBQTJCOztJQUMzQixrQ0FBd0I7O0lBQ3hCLHdDQUE4Qjs7SUFDOUIsdUNBQThCOztJQUM5QixvQ0FBK0I7O0lBQy9CLDJDQUFzQzs7SUFDdEMsb0NBQXVCOztJQUN2Qix3Q0FBMEI7O0lBQzFCLG1EQUErRDs7SUFFL0QscUNBQWdEOztJQUNoRCw0REFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZENvbmZpZ09wdGlvbiwgRmllbGRDb25maWdPcHRpb25zQnVpbGRlcn0gZnJvbSAnLi4vY29tbW9uLWZvcm0tY29uZmlnJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1ZhbHVlQ29tcGFyYXRvcn0gZnJvbSAnLi4vdXRpbGl0aWVzL3ZhbHVlLWNvbXBhcmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBWYWx1ZUNvbXBhcmF0b3IgPSBWYWx1ZUNvbXBhcmF0b3I7XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBvcHRpb25zOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBpc011bHRpcGxlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY29udGV4dD86IEZvcm1Db250cm9sO1xuICBASW5wdXQoKSBmb3JtQ29udHJvbFJlZj86IEZvcm1Db250cm9sO1xuICBASW5wdXQoKSBkZWZhdWx0PzogYW55O1xuICBASW5wdXQoKSBjb250ZXh0RGF0YTogYW55O1xuICBASW5wdXQoKSBkYXRhTG9hZFN0YXR1c0RlbGVnYXRlOiBTdWJqZWN0PCdMT0FESU5HJyB8ICdMT0FERUQnPjtcblxuICBvcHRpb25zJD86IE9ic2VydmFibGU8RmllbGRDb25maWdPcHRpb248YW55PltdPjtcbiAgY29udGV4dFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNPcHRpb25zQ2xvc3VyZSh0aGlzLm9wdGlvbnMpKSB7XG4gICAgICB0aGlzLm9wdGlvbnMkID0gKGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWUgYXMgRmllbGRDb25maWdPcHRpb25zQnVpbGRlcjxhbnk+KShcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZixcbiAgICAgICAgY2hhbmdlc1snY29udGV4dCddLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURJTkcnKSxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURFRCcpXG4gICAgICApIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmNvbnRleHQudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5wYXRjaFZhbHVlKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgfVxuXG4gIGlzT3B0aW9uc0FycmF5KG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9wdGlvbnMpO1xuXG4gIH1cblxuICBpc09wdGlvbnNDbG9zdXJlKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGlzT3B0aW9uc01hcChpbnB1dDogYW55KSB7XG4gICAgcmV0dXJuICFBcnJheS5pc0FycmF5KGlucHV0KSAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tbW9uLWZvcm0tZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFOUQ7SUFzQkU7UUFoQkEsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFHekIsWUFBTyxHQUFRLEVBQUUsQ0FBQztJQWMzQixDQUFDOzs7OztJQUVELHVDQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjtRQUFsQyxpQkFhQztRQVpDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1NBQ25CO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsbUJBQUEsQ0FBQyxtQkFBQSxJQUFJLENBQUMsT0FBTyxFQUFrQyxDQUFDLENBQzlELElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxPQUFPOzs7WUFDWixjQUFNLE9BQUEsS0FBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBM0MsQ0FBMkM7OztZQUNqRCxjQUFNLE9BQUEsS0FBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBMUMsQ0FBMEMsRUFDakQsRUFBTyxDQUFDO1NBQ1Y7SUFDSCxDQUFDOzs7O0lBRUQsb0NBQVE7OztJQUFSO1FBQUEsaUJBUUM7UUFQQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDbkUsR0FBRzs7O1lBQUM7Z0JBQ0YsS0FBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQzs7OztJQUVELHVDQUFXOzs7SUFBWDtJQUNBLENBQUM7Ozs7O0lBRUQsMENBQWM7Ozs7SUFBZCxVQUFlLE9BQVk7UUFDekIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWhDLENBQUM7Ozs7O0lBRUQsNENBQWdCOzs7O0lBQWhCLFVBQWlCLE9BQVk7UUFDM0IsT0FBTyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUM7SUFDdkMsQ0FBQzs7Ozs7SUFFRCx3Q0FBWTs7OztJQUFaLFVBQWEsS0FBVTtRQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDNUQsQ0FBQzs7Z0JBaEVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIseXhDQUF3Qzs7aUJBRXpDOzs7OzsyQkFJRSxLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSzs4QkFDTCxLQUFLOzZCQUNMLEtBQUs7MEJBQ0wsS0FBSztpQ0FDTCxLQUFLOzBCQUNMLEtBQUs7OEJBQ0wsS0FBSzt5Q0FDTCxLQUFLOztJQWdEUix3QkFBQztDQUFBLEFBakVELElBaUVDO1NBNURZLGlCQUFpQjs7O0lBQzVCLDRDQUFrQzs7SUFFbEMscUNBQTRCOztJQUM1QixvQ0FBMkI7O0lBQzNCLGtDQUF3Qjs7SUFDeEIsd0NBQThCOztJQUM5Qix1Q0FBOEI7O0lBQzlCLG9DQUErQjs7SUFDL0IsMkNBQXNDOztJQUN0QyxvQ0FBdUI7O0lBQ3ZCLHdDQUEwQjs7SUFDMUIsbURBQStEOztJQUUvRCxxQ0FBZ0Q7O0lBQ2hELDREQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpZWxkQ29uZmlnT3B0aW9uLCBGaWVsZENvbmZpZ09wdGlvbnNCdWlsZGVyfSBmcm9tICcuLi9jb21tb24tZm9ybS1jb25maWcnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VmFsdWVDb21wYXJhdG9yfSBmcm9tICcuLi91dGlsaXRpZXMvdmFsdWUtY29tcGFyYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIFZhbHVlQ29tcGFyYXRvciA9IFZhbHVlQ29tcGFyYXRvcjtcblxuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueSA9IFtdO1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2VIb2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzTXVsdGlwbGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBjb250ZXh0PzogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sUmVmPzogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGRlZmF1bHQ/OiBhbnk7XG4gIEBJbnB1dCgpIGNvbnRleHREYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGRhdGFMb2FkU3RhdHVzRGVsZWdhdGU6IFN1YmplY3Q8J0xPQURJTkcnIHwgJ0xPQURFRCc+O1xuXG4gIG9wdGlvbnMkPzogT2JzZXJ2YWJsZTxGaWVsZENvbmZpZ09wdGlvbjxhbnk+W10+O1xuICBjb250ZXh0VmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc09wdGlvbnNDbG9zdXJlKHRoaXMub3B0aW9ucykpIHtcbiAgICAgIHRoaXMub3B0aW9ucyQgPSAodGhpcy5vcHRpb25zIGFzIEZpZWxkQ29uZmlnT3B0aW9uc0J1aWxkZXI8YW55PikoXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xSZWYsXG4gICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURJTkcnKSxcbiAgICAgICAgKCkgPT4gdGhpcy5kYXRhTG9hZFN0YXR1c0RlbGVnYXRlLm5leHQoJ0xPQURFRCcpXG4gICAgICApIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmNvbnRleHQudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5wYXRjaFZhbHVlKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgfVxuXG4gIGlzT3B0aW9uc0FycmF5KG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9wdGlvbnMpO1xuXG4gIH1cblxuICBpc09wdGlvbnNDbG9zdXJlKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGlzT3B0aW9uc01hcChpbnB1dDogYW55KSB7XG4gICAgcmV0dXJuICFBcnJheS5pc0FycmF5KGlucHV0KSAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnO1xuICB9XG59XG4iXX0=

@@ -275,3 +275,3 @@ /**

selector: 'sb-form',
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [label]=\"field.code\" [values]=\"field.templateOptions.labelHtml.values\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [code]=\"field.code\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\" [value]=\"field.default\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
styles: [""]

@@ -336,2 +336,2 @@ }] }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb21tb24tZm9ybS1lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBYyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEU7SUF1QkUsdUJBQ1UsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFsQnhCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUUzRCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztRQUl0RSx5QkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQVMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FB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QkFDbEYsTUFBTTtvQkFDUixLQUFLLHlCQUF5QixDQUFDLFNBQVM7d0JBQ3RDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxtQkFBQSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBVSxDQUFDLENBQUMsQ0FBQzt3QkFDbEYsTUFBTTtpQkFDVDtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFFRCxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUV2RCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOztnQkEvTUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQiw4dEZBQW9DOztpQkFFckM7Ozs7Z0JBUk8sV0FBVzs7OzZCQVVoQixNQUFNOzJCQUNOLE1BQU07K0JBRU4sTUFBTTtnQ0FDTixNQUFNO2lDQUNOLE1BQU07eUJBQ04sS0FBSzt5Q0FDTCxLQUFLOztJQW1NUixvQkFBQztDQUFBLEFBaE5ELElBZ05DO1NBM01ZLGFBQWE7OztJQUN4QixtQ0FBMEM7O0lBQzFDLGlDQUF3Qzs7SUFFeEMscUNBQTRDOztJQUM1QyxzQ0FBNkM7O0lBQzdDLHVDQUFvRTs7SUFDcEUsK0JBQWdCOztJQUNoQiwrQ0FBc0U7O0lBRXRFLGtDQUFxQjs7SUFFckIsNkNBQTRDOzs7OztJQUU1QyxrREFBZ0Q7Ozs7O0lBQ2hELGlEQUErQzs7Ozs7SUFDL0MsdURBQXFEOzs7OztJQUduRCxvQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RmllbGRDb25maWcsIEZpZWxkQ29uZmlnSW5wdXRUeXBlLCBGaWVsZENvbmZpZ1ZhbGlkYXRpb25UeXBlfSBmcm9tICcuLi9jb21tb24tZm9ybS1jb25maWcnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1N1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNjYW4sIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBpbml0aWFsaXplID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZmluYWxpemUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN0YXR1c0NoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkYXRhTG9hZFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8J0xPQURJTkcnIHwgJ0xPQURFRCc+KCk7XG4gIEBJbnB1dCgpIGNvbmZpZztcbiAgQElucHV0KCkgZGF0YUxvYWRTdGF0dXNEZWxlZ2F0ZSA9IG5ldyBTdWJqZWN0PCdMT0FESU5HJyB8ICdMT0FERUQnPigpO1xuXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIEZpZWxkQ29uZmlnSW5wdXRUeXBlID0gRmllbGRDb25maWdJbnB1dFR5cGU7XG5cbiAgcHJpdmF0ZSBzdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgaWYgKCF3aW5kb3dbJ2Zvcm1zJ10pIHtcbiAgICAgIHdpbmRvd1snZm9ybXMnXSA9IFtdO1xuICAgIH1cbiAgICB3aW5kb3dbJ2Zvcm1zJ10ucHVzaCh0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZmluYWxpemUuZW1pdCgpO1xuXG4gICAgaWYgKHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFMb2FkU3RhdHVzU2lua1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcbiAgICAgIGlmICgoY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlICYmIGNoYW5nZXNbJ2NvbmZpZyddLmZpcnN0Q2hhbmdlKSB8fCBjaGFuZ2VzWydjb25maWcnXS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFMb2FkU3RhdHVzU2lua1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFMb2FkU3RhdHVzRGVsZWdhdGUucGlwZShcbiAgICAgIHNjYW48J0xPQURJTkcnIHwgJ0xPQURFRCcsIHsgbG9hZGluZ0NvdW50OiAwLCBsb2FkZWRDb3VudDogMCB9PigoYWNjLCBldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgPT09ICdMT0FERUQnKSB7XG4gICAgICAgICAgYWNjLmxvYWRlZENvdW50Kys7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuXG4gICAgICAgIGFjYy5sb2FkaW5nQ291bnQrKztcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHtsb2FkaW5nQ291bnQ6IDAsIGxvYWRlZENvdW50OiAwfSksXG4gICAgICBtYXA8eyBsb2FkaW5nQ291bnQ6IDAsIGxvYWRlZENvdW50OiAwIH0sICdMT0FESU5HJyB8ICdMT0FERUQnPigoYWdncmVnYXRlcykgPT4ge1xuICAgICAgICBpZiAoYWdncmVnYXRlcy5sb2FkaW5nQ291bnQgIT09IGFnZ3JlZ2F0ZXMubG9hZGVkQ291bnQpIHtcbiAgICAgICAgICByZXR1cm4gJ0xPQURJTkcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICdMT0FERUQnO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgdGFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ0xPQURJTkcnKSB7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1cy5lbWl0KCdMT0FESU5HJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1cy5lbWl0KCdMT0FERUQnKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YXAoKHYpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQoe1xuICAgICAgICAgIGlzUHJpc3RpbmU6IHRoaXMuZm9ybUdyb3VwLnByaXN0aW5lLFxuICAgICAgICAgIGlzRGlydHk6IHRoaXMuZm9ybUdyb3VwLmRpcnR5LFxuICAgICAgICAgIGlzSW52YWxpZDogdGhpcy5mb3JtR3JvdXAuaW52YWxpZCxcbiAgICAgICAgICBpc1ZhbGlkOiB0aGlzLmZvcm1Hcm91cC52YWxpZFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YXAoKHYpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMuZW1pdCh2KTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uTmVzdGVkRm9ybUZpbmFsaXplKG5lc3RlZEZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZENvbmZpZzogRmllbGRDb25maWc8YW55Pikge1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIHx8ICF0aGlzLmZvcm1Hcm91cC5nZXQoYGNoaWxkcmVuLiR7ZmllbGRDb25maWcuY29kZX1gKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgICh0aGlzLmZvcm1Hcm91cC5nZXQoJ2NoaWxkcmVuJykgYXMgRm9ybUdyb3VwKS5yZW1vdmVDb250cm9sKGZpZWxkQ29uZmlnLmNvZGUpO1xuXG4gICAgaWYgKCFPYmplY3Qua2V5cygodGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIGFzIEZvcm1Hcm91cCkuY29udHJvbHMpLmxlbmd0aCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnY2hpbGRyZW4nKTtcbiAgICB9XG4gIH1cblxuICBvbk5lc3RlZEZvcm1Jbml0aWFsaXplKG5lc3RlZEZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZENvbmZpZzogRmllbGRDb25maWc8YW55Pikge1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdjaGlsZHJlbicsIG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICB9XG5cbiAgICAodGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIGFzIEZvcm1Hcm91cCkuYWRkQ29udHJvbChmaWVsZENvbmZpZy5jb2RlLCBuZXN0ZWRGb3JtR3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmxlbmd0aCkge1xuICAgICAgY29uc29sZS5lcnJvcignRk9STSBMSVNUIElTIEVNUFRZJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Hcm91cERhdGEgPSB7fTtcbiAgICB0aGlzLmNvbmZpZy5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4KSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlICE9PSBGaWVsZENvbmZpZ0lucHV0VHlwZS5MQUJFTCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWVMaXN0ID0gdGhpcy5wcmVwYXJlRm9ybVZhbGlkYXRpb25EYXRhKGVsZW1lbnQsIGluZGV4KTtcbiAgICAgICAgZm9ybUdyb3VwRGF0YVtlbGVtZW50LmNvZGVdID0gZm9ybVZhbHVlTGlzdDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cChmb3JtR3JvdXBEYXRhKTtcbiAgICB0aGlzLmluaXRpYWxpemUuZW1pdCh0aGlzLmZvcm1Hcm91cCk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVGb3JtVmFsaWRhdGlvbkRhdGEoZWxlbWVudDogRmllbGRDb25maWc8YW55PiwgaW5kZXgpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVMaXN0ID0gW107XG4gICAgY29uc3QgdmFsaWRhdGlvbkxpc3QgPSBbXTtcblxuICAgIGxldCBkZWZhdWx0VmFsOiBhbnkgPSAnJztcbiAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuICAgICAgY2FzZSBGaWVsZENvbmZpZ0lucHV0VHlwZS5JTlBVVDpcbiAgICAgICAgZGVmYXVsdFZhbCA9IGVsZW1lbnQudGVtcGxhdGVPcHRpb25zLnR5cGUgPT09ICdudW1iZXInID9cbiAgICAgICAgICAoZWxlbWVudC5kZWZhdWx0ICYmIE51bWJlci5pc0ludGVnZXIoZWxlbWVudC5kZWZhdWx0KSA/IGVsZW1lbnQuZGVmYXVsdCA6IDApIDogbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEZpZWxkQ29uZmlnSW5wdXRUeXBlLlNFTEVDVDpcbiAgICAgIGNhc2UgRmllbGRDb25maWdJbnB1dFR5cGUuTkVTVEVEX1NFTEVDVDpcbiAgICAgICAgZGVmYXVsdFZhbCA9IGVsZW1lbnQudGVtcGxhdGVPcHRpb25zLm11bHRpcGxlID9cbiAgICAgICAgICAoZWxlbWVudC5kZWZhdWx0ICYmIEFycmF5LmlzQXJyYXkoZWxlbWVudC5kZWZhdWx0KSA/IGVsZW1lbnQuZGVmYXVsdCA6IFtdKSA6IChlbGVtZW50LmRlZmF1bHQgfHwgbnVsbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZENvbmZpZ0lucHV0VHlwZS5DSEVDS0JPWDpcbiAgICAgICAgZGVmYXVsdFZhbCA9IGZhbHNlIHx8ICEhZWxlbWVudC5kZWZhdWx0O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBmb3JtVmFsdWVMaXN0LnB1c2goZGVmYXVsdFZhbCk7XG5cbiAgICBpZiAoZWxlbWVudC52YWxpZGF0aW9ucyAmJiBlbGVtZW50LnZhbGlkYXRpb25zLmxlbmd0aCkge1xuICAgICAgZWxlbWVudC52YWxpZGF0aW9ucy5mb3JFYWNoKChkYXRhLCBpKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZENvbmZpZ1ZhbGlkYXRpb25UeXBlLlJFUVVJUkVEOlxuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRmllbGRDb25maWdJbnB1dFR5cGUuQ0hFQ0tCT1gpIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQudHlwZSA9PT0gRmllbGRDb25maWdJbnB1dFR5cGUuU0VMRUNUIHx8IGVsZW1lbnQudHlwZSA9PT0gRmllbGRDb25maWdJbnB1dFR5cGUuTkVTVEVEX1NFTEVDVCkge1xuICAgICAgICAgICAgICB2YWxpZGF0aW9uTGlzdC5wdXNoKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudGVtcGxhdGVPcHRpb25zLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYy52YWx1ZSAmJiBjLnZhbHVlLmxlbmd0aCA/IG51bGwgOiAnZXJyb3InO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gISFjLnZhbHVlID8gbnVsbCA6ICdlcnJvcic7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZS5QQVRURVJOOlxuICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oZWxlbWVudC52YWxpZGF0aW9uc1tpXS52YWx1ZSBhcyBzdHJpbmcpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZS5NSU5MRU5HVEg6XG4gICAgICAgICAgICB2YWxpZGF0aW9uTGlzdC5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGVsZW1lbnQudmFsaWRhdGlvbnNbaV0udmFsdWUgYXMgbnVtYmVyKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEZpZWxkQ29uZmlnVmFsaWRhdGlvblR5cGUuTUFYTEVOR1RIOlxuICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChlbGVtZW50LnZhbGlkYXRpb25zW2ldLnZhbHVlIGFzIG51bWJlcikpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvcm1WYWx1ZUxpc3QucHVzaChWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRhdGlvbkxpc3QpKTtcblxuICAgIHJldHVybiBmb3JtVmFsdWVMaXN0O1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb21tb24tZm9ybS1lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBYyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEU7SUF1QkUsdUJBQ1UsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFsQnhCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUUzRCwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztRQUl0RSx5QkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQVMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FB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QkFDbEYsTUFBTTtvQkFDUixLQUFLLHlCQUF5QixDQUFDLFNBQVM7d0JBQ3RDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxtQkFBQSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBVSxDQUFDLENBQUMsQ0FBQzt3QkFDbEYsTUFBTTtpQkFDVDtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFFRCxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUV2RCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOztnQkEvTUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQiwyeEZBQW9DOztpQkFFckM7Ozs7Z0JBUk8sV0FBVzs7OzZCQVVoQixNQUFNOzJCQUNOLE1BQU07K0JBRU4sTUFBTTtnQ0FDTixNQUFNO2lDQUNOLE1BQU07eUJBQ04sS0FBSzt5Q0FDTCxLQUFLOztJQW1NUixvQkFBQztDQUFBLEFBaE5ELElBZ05DO1NBM01ZLGFBQWE7OztJQUN4QixtQ0FBMEM7O0lBQzFDLGlDQUF3Qzs7SUFFeEMscUNBQTRDOztJQUM1QyxzQ0FBNkM7O0lBQzdDLHVDQUFvRTs7SUFDcEUsK0JBQWdCOztJQUNoQiwrQ0FBc0U7O0lBRXRFLGtDQUFxQjs7SUFFckIsNkNBQTRDOzs7OztJQUU1QyxrREFBZ0Q7Ozs7O0lBQ2hELGlEQUErQzs7Ozs7SUFDL0MsdURBQXFEOzs7OztJQUduRCxvQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RmllbGRDb25maWcsIEZpZWxkQ29uZmlnSW5wdXRUeXBlLCBGaWVsZENvbmZpZ1ZhbGlkYXRpb25UeXBlfSBmcm9tICcuLi9jb21tb24tZm9ybS1jb25maWcnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1N1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNjYW4sIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBpbml0aWFsaXplID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZmluYWxpemUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN0YXR1c0NoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkYXRhTG9hZFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8J0xPQURJTkcnIHwgJ0xPQURFRCc+KCk7XG4gIEBJbnB1dCgpIGNvbmZpZztcbiAgQElucHV0KCkgZGF0YUxvYWRTdGF0dXNEZWxlZ2F0ZSA9IG5ldyBTdWJqZWN0PCdMT0FESU5HJyB8ICdMT0FERUQnPigpO1xuXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIEZpZWxkQ29uZmlnSW5wdXRUeXBlID0gRmllbGRDb25maWdJbnB1dFR5cGU7XG5cbiAgcHJpdmF0ZSBzdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZGF0YUxvYWRTdGF0dXNTaW5rU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgaWYgKCF3aW5kb3dbJ2Zvcm1zJ10pIHtcbiAgICAgIHdpbmRvd1snZm9ybXMnXSA9IFtdO1xuICAgIH1cbiAgICB3aW5kb3dbJ2Zvcm1zJ10ucHVzaCh0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZmluYWxpemUuZW1pdCgpO1xuXG4gICAgaWYgKHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFMb2FkU3RhdHVzU2lua1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcbiAgICAgIGlmICgoY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlICYmIGNoYW5nZXNbJ2NvbmZpZyddLmZpcnN0Q2hhbmdlKSB8fCBjaGFuZ2VzWydjb25maWcnXS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFMb2FkU3RhdHVzU2lua1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhTG9hZFN0YXR1c1NpbmtTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFMb2FkU3RhdHVzRGVsZWdhdGUucGlwZShcbiAgICAgIHNjYW48J0xPQURJTkcnIHwgJ0xPQURFRCcsIHsgbG9hZGluZ0NvdW50OiAwLCBsb2FkZWRDb3VudDogMCB9PigoYWNjLCBldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgPT09ICdMT0FERUQnKSB7XG4gICAgICAgICAgYWNjLmxvYWRlZENvdW50Kys7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuXG4gICAgICAgIGFjYy5sb2FkaW5nQ291bnQrKztcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHtsb2FkaW5nQ291bnQ6IDAsIGxvYWRlZENvdW50OiAwfSksXG4gICAgICBtYXA8eyBsb2FkaW5nQ291bnQ6IDAsIGxvYWRlZENvdW50OiAwIH0sICdMT0FESU5HJyB8ICdMT0FERUQnPigoYWdncmVnYXRlcykgPT4ge1xuICAgICAgICBpZiAoYWdncmVnYXRlcy5sb2FkaW5nQ291bnQgIT09IGFnZ3JlZ2F0ZXMubG9hZGVkQ291bnQpIHtcbiAgICAgICAgICByZXR1cm4gJ0xPQURJTkcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICdMT0FERUQnO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgdGFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ0xPQURJTkcnKSB7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1cy5lbWl0KCdMT0FESU5HJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZFN0YXR1cy5lbWl0KCdMT0FERUQnKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YXAoKHYpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQoe1xuICAgICAgICAgIGlzUHJpc3RpbmU6IHRoaXMuZm9ybUdyb3VwLnByaXN0aW5lLFxuICAgICAgICAgIGlzRGlydHk6IHRoaXMuZm9ybUdyb3VwLmRpcnR5LFxuICAgICAgICAgIGlzSW52YWxpZDogdGhpcy5mb3JtR3JvdXAuaW52YWxpZCxcbiAgICAgICAgICBpc1ZhbGlkOiB0aGlzLmZvcm1Hcm91cC52YWxpZFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YXAoKHYpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMuZW1pdCh2KTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uTmVzdGVkRm9ybUZpbmFsaXplKG5lc3RlZEZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZENvbmZpZzogRmllbGRDb25maWc8YW55Pikge1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIHx8ICF0aGlzLmZvcm1Hcm91cC5nZXQoYGNoaWxkcmVuLiR7ZmllbGRDb25maWcuY29kZX1gKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgICh0aGlzLmZvcm1Hcm91cC5nZXQoJ2NoaWxkcmVuJykgYXMgRm9ybUdyb3VwKS5yZW1vdmVDb250cm9sKGZpZWxkQ29uZmlnLmNvZGUpO1xuXG4gICAgaWYgKCFPYmplY3Qua2V5cygodGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIGFzIEZvcm1Hcm91cCkuY29udHJvbHMpLmxlbmd0aCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnY2hpbGRyZW4nKTtcbiAgICB9XG4gIH1cblxuICBvbk5lc3RlZEZvcm1Jbml0aWFsaXplKG5lc3RlZEZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZENvbmZpZzogRmllbGRDb25maWc8YW55Pikge1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdjaGlsZHJlbicsIG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICB9XG5cbiAgICAodGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGlsZHJlbicpIGFzIEZvcm1Hcm91cCkuYWRkQ29udHJvbChmaWVsZENvbmZpZy5jb2RlLCBuZXN0ZWRGb3JtR3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmxlbmd0aCkge1xuICAgICAgY29uc29sZS5lcnJvcignRk9STSBMSVNUIElTIEVNUFRZJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Hcm91cERhdGEgPSB7fTtcbiAgICB0aGlzLmNvbmZpZy5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4KSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlICE9PSBGaWVsZENvbmZpZ0lucHV0VHlwZS5MQUJFTCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWVMaXN0ID0gdGhpcy5wcmVwYXJlRm9ybVZhbGlkYXRpb25EYXRhKGVsZW1lbnQsIGluZGV4KTtcbiAgICAgICAgZm9ybUdyb3VwRGF0YVtlbGVtZW50LmNvZGVdID0gZm9ybVZhbHVlTGlzdDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cChmb3JtR3JvdXBEYXRhKTtcbiAgICB0aGlzLmluaXRpYWxpemUuZW1pdCh0aGlzLmZvcm1Hcm91cCk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVGb3JtVmFsaWRhdGlvbkRhdGEoZWxlbWVudDogRmllbGRDb25maWc8YW55PiwgaW5kZXgpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVMaXN0ID0gW107XG4gICAgY29uc3QgdmFsaWRhdGlvbkxpc3QgPSBbXTtcblxuICAgIGxldCBkZWZhdWx0VmFsOiBhbnkgPSAnJztcbiAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuICAgICAgY2FzZSBGaWVsZENvbmZpZ0lucHV0VHlwZS5JTlBVVDpcbiAgICAgICAgZGVmYXVsdFZhbCA9IGVsZW1lbnQudGVtcGxhdGVPcHRpb25zLnR5cGUgPT09ICdudW1iZXInID9cbiAgICAgICAgICAoZWxlbWVudC5kZWZhdWx0ICYmIE51bWJlci5pc0ludGVnZXIoZWxlbWVudC5kZWZhdWx0KSA/IGVsZW1lbnQuZGVmYXVsdCA6IDApIDogbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEZpZWxkQ29uZmlnSW5wdXRUeXBlLlNFTEVDVDpcbiAgICAgIGNhc2UgRmllbGRDb25maWdJbnB1dFR5cGUuTkVTVEVEX1NFTEVDVDpcbiAgICAgICAgZGVmYXVsdFZhbCA9IGVsZW1lbnQudGVtcGxhdGVPcHRpb25zLm11bHRpcGxlID9cbiAgICAgICAgICAoZWxlbWVudC5kZWZhdWx0ICYmIEFycmF5LmlzQXJyYXkoZWxlbWVudC5kZWZhdWx0KSA/IGVsZW1lbnQuZGVmYXVsdCA6IFtdKSA6IChlbGVtZW50LmRlZmF1bHQgfHwgbnVsbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZENvbmZpZ0lucHV0VHlwZS5DSEVDS0JPWDpcbiAgICAgICAgZGVmYXVsdFZhbCA9IGZhbHNlIHx8ICEhZWxlbWVudC5kZWZhdWx0O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBmb3JtVmFsdWVMaXN0LnB1c2goZGVmYXVsdFZhbCk7XG5cbiAgICBpZiAoZWxlbWVudC52YWxpZGF0aW9ucyAmJiBlbGVtZW50LnZhbGlkYXRpb25zLmxlbmd0aCkge1xuICAgICAgZWxlbWVudC52YWxpZGF0aW9ucy5mb3JFYWNoKChkYXRhLCBpKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZENvbmZpZ1ZhbGlkYXRpb25UeXBlLlJFUVVJUkVEOlxuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRmllbGRDb25maWdJbnB1dFR5cGUuQ0hFQ0tCT1gpIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQudHlwZSA9PT0gRmllbGRDb25maWdJbnB1dFR5cGUuU0VMRUNUIHx8IGVsZW1lbnQudHlwZSA9PT0gRmllbGRDb25maWdJbnB1dFR5cGUuTkVTVEVEX1NFTEVDVCkge1xuICAgICAgICAgICAgICB2YWxpZGF0aW9uTGlzdC5wdXNoKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudGVtcGxhdGVPcHRpb25zLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYy52YWx1ZSAmJiBjLnZhbHVlLmxlbmd0aCA/IG51bGwgOiAnZXJyb3InO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gISFjLnZhbHVlID8gbnVsbCA6ICdlcnJvcic7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZS5QQVRURVJOOlxuICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oZWxlbWVudC52YWxpZGF0aW9uc1tpXS52YWx1ZSBhcyBzdHJpbmcpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRmllbGRDb25maWdWYWxpZGF0aW9uVHlwZS5NSU5MRU5HVEg6XG4gICAgICAgICAgICB2YWxpZGF0aW9uTGlzdC5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGVsZW1lbnQudmFsaWRhdGlvbnNbaV0udmFsdWUgYXMgbnVtYmVyKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEZpZWxkQ29uZmlnVmFsaWRhdGlvblR5cGUuTUFYTEVOR1RIOlxuICAgICAgICAgICAgdmFsaWRhdGlvbkxpc3QucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChlbGVtZW50LnZhbGlkYXRpb25zW2ldLnZhbHVlIGFzIG51bWJlcikpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvcm1WYWx1ZUxpc3QucHVzaChWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRhdGlvbkxpc3QpKTtcblxuICAgIHJldHVybiBmb3JtVmFsdWVMaXN0O1xuICB9XG59XG4iXX0=

@@ -178,3 +178,3 @@ import { CommonModule } from '@angular/common';

if (this.isOptionsClosure(this.options)) {
this.options$ = (/** @type {?} */ (((/** @type {?} */ (changes['options'].currentValue)))(this.formControlRef, changes['context'].currentValue, (/**
this.options$ = (/** @type {?} */ (((/** @type {?} */ (this.options)))(this.formControlRef, this.context, (/**
* @return {?}

@@ -352,5 +352,3 @@ */

class CheckboxComponent {
constructor() {
this.valuesInArr = [];
}
constructor() { }
/**

@@ -360,5 +358,2 @@ * @return {?}

ngOnInit() {
for (const prop of Object.keys(this.values)) {
this.valuesInArr.push(this.values[prop]);
}
}

@@ -369,4 +364,4 @@ }

selector: 'sb-checkbox',
template: "<div class=\"sb-checkbox\">\n <span><label>checkbox name</label></span>\n <div *ngFor=\"let value of valuesInArr\">\n <label>{{value}}</label>\n <span><input type=\"checkbox\" name=\"checkbox\" value={{value}}></span>\n </div>\n</div>",
styles: ["label{padding:10px;font-size:16px}"]
template: "<div class=\"sb-checkbox\">\n <div class=\"checkbox-row\">\n <label class=\"container\">\n <input type=\"checkbox\" [formControl]=\"formControlRef\" name=\"checkbox\" value=\"value\">\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"checkbox-label\">{{label}}</label>\n </div>\n</div>",
styles: ["label{font-size:16px}.sb-checkbox{padding:0 0 0 8px}.container{position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container .checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border:2px solid #000;border-radius:4px}.container input:checked~.checkmark{background-color:#2196f3}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-label{padding:2px 0 0 32px}.checkbox-row{display:-ms-grid;display:grid;-ms-grid-columns:10px 250px;grid-template-columns:10px 250px;grid-gap:0}"]
}] }

@@ -378,3 +373,5 @@ ];

label: [{ type: Input }],
values: [{ type: Input }]
code: [{ type: Input }],
value: [{ type: Input }],
formControlRef: [{ type: Input }]
};

@@ -623,3 +620,3 @@

selector: 'sb-form',
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [label]=\"field.code\" [values]=\"field.templateOptions.labelHtml.values\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [code]=\"field.code\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\" [value]=\"field.default\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
styles: [""]

@@ -626,0 +623,0 @@ }] }

import { CommonModule } from '@angular/common';
import { __values } from 'tslib';
import { Subject } from 'rxjs';

@@ -214,3 +213,3 @@ import { tap, map, startWith, distinctUntilChanged, scan } from 'rxjs/operators';

if (this.isOptionsClosure(this.options)) {
this.options$ = (/** @type {?} */ (((/** @type {?} */ (changes['options'].currentValue)))(this.formControlRef, changes['context'].currentValue, (/**
this.options$ = (/** @type {?} */ (((/** @type {?} */ (this.options)))(this.formControlRef, this.context, (/**
* @return {?}

@@ -417,3 +416,2 @@ */

function CheckboxComponent() {
this.valuesInArr = [];
}

@@ -427,16 +425,2 @@ /**

function () {
var e_1, _a;
try {
for (var _b = __values(Object.keys(this.values)), _c = _b.next(); !_c.done; _c = _b.next()) {
var prop = _c.value;
this.valuesInArr.push(this.values[prop]);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
};

@@ -446,4 +430,4 @@ CheckboxComponent.decorators = [

selector: 'sb-checkbox',
template: "<div class=\"sb-checkbox\">\n <span><label>checkbox name</label></span>\n <div *ngFor=\"let value of valuesInArr\">\n <label>{{value}}</label>\n <span><input type=\"checkbox\" name=\"checkbox\" value={{value}}></span>\n </div>\n</div>",
styles: ["label{padding:10px;font-size:16px}"]
template: "<div class=\"sb-checkbox\">\n <div class=\"checkbox-row\">\n <label class=\"container\">\n <input type=\"checkbox\" [formControl]=\"formControlRef\" name=\"checkbox\" value=\"value\">\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"checkbox-label\">{{label}}</label>\n </div>\n</div>",
styles: ["label{font-size:16px}.sb-checkbox{padding:0 0 0 8px}.container{position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container .checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border:2px solid #000;border-radius:4px}.container input:checked~.checkmark{background-color:#2196f3}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-label{padding:2px 0 0 32px}.checkbox-row{display:-ms-grid;display:grid;-ms-grid-columns:10px 250px;grid-template-columns:10px 250px;grid-gap:0}"]
}] }

@@ -455,3 +439,5 @@ ];

label: [{ type: Input }],
values: [{ type: Input }]
code: [{ type: Input }],
value: [{ type: Input }],
formControlRef: [{ type: Input }]
};

@@ -730,3 +716,3 @@ return CheckboxComponent;

selector: 'sb-form',
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [label]=\"field.code\" [values]=\"field.templateOptions.labelHtml.values\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngFor=\"let field of config; let index = i\">\n <div *ngIf=\"field.type === FieldConfigInputType.SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.NESTED_SELECT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-dropdown [context]=\"field.context ? formGroup.get(field.context) : null \" [default]=\"field.default\"\n [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\" [options]=\"field.templateOptions?.options\"\n [disabled]=\"field.templateOptions?.disabled\"\n [placeHolder]=\"field?.templateOptions?.placeHolder\">\n </sb-dropdown>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.INPUT\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textbox [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textbox>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.TEXTAREA\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-textarea [config]=\"field\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\"\n [placeholder]=\"field.templateOptions.placeHolder\">\n </sb-textarea>\n </div>\n <div *ngIf=\"field.type === FieldConfigInputType.CHECKBOX\" [hidden]=\"field.templateOptions?.hidden || null\">\n <sb-checkbox [code]=\"field.code\" [formControlRef]=\"formGroup.get(field.code)\" [label]=\"field.templateOptions.label\" [value]=\"field.default\"></sb-checkbox>\n </div>\n <ng-container *ngIf=\"formGroup.get(field.code) as ref\">\n <div *ngIf=\"ref && ref.value && field.children && field.children[ref.value]\">\n <sb-form (initialize)=\"onNestedFormInitialize($event, field)\"\n (finalize)=\"onNestedFormFinalize($event, field)\"\n [dataLoadStatusDelegate]=\"dataLoadStatusDelegate\"\n [config]=\"field.children[ref.value]\"></sb-form>\n </div>\n </ng-container>\n </ng-container>\n</div>\n",
styles: [""]

@@ -733,0 +719,0 @@ }] }

import { OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
export declare class CheckboxComponent implements OnInit {
label: any;
values: any;
valuesInArr: any[];
code: any;
value?: any;
formControlRef?: FormControl;
constructor();
ngOnInit(): void;
}
{
"name": "common-form-elements",
"version": "0.0.1",
"version": "0.0.2",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^7.1.0",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc