svogv
Version:
A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.
1 lines • 36.7 kB
JSON
{"__symbolic":"module","version":4,"metadata":{"Required":{"__symbolic":"function"},"MaxLength":{"__symbolic":"function"},"MinLength":{"__symbolic":"function"},"StringLength":{"__symbolic":"function"},"Pattern":{"__symbolic":"function"},"Email":{"__symbolic":"function"},"Range":{"__symbolic":"function"},"Compare":{"__symbolic":"function"},"Display":{"__symbolic":"function"},"UiHint":{"__symbolic":"function"},"DisplayGroup":{"__symbolic":"function"},"Placeholder":{"__symbolic":"function"},"TemplateHint":{"__symbolic":"function"},"Hidden":{"__symbolic":"function"},"Sortable":{"__symbolic":"function"},"Readonly":{"__symbolic":"function"},"FormatPipe":{"__symbolic":"function"},"FormValidatorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":21,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":21,"character":39}]}],"build":[{"__symbolic":"method"}]}},"displayGroupType":{"__symbolic":"interface"},"displayType":{"__symbolic":"interface"},"formatType":{"__symbolic":"interface"},"hiddenType":{"__symbolic":"interface"},"placeHolderType":{"__symbolic":"interface"},"readonlyType":{"__symbolic":"interface"},"templateHintType":{"__symbolic":"interface"},"validatorType":{"__symbolic":"interface"},"compareType":{"__symbolic":"interface"},"emailType":{"__symbolic":"interface"},"maxlengthType":{"__symbolic":"interface"},"minlengthType":{"__symbolic":"interface"},"patternType":{"__symbolic":"interface"},"rangeType":{"__symbolic":"interface"},"requiredType":{"__symbolic":"interface"},"stringLengthType":{"__symbolic":"interface"},"FormValidatorModel":{"__symbolic":"interface"},"DataGridPaginationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"ac-datagrid-pagination","template":"<div>\n <ul class=\"pagination float-right\" [ngClass]=\"{ 'pagination-sm': size == 'sm', 'pagination-lg': size == 'lg' }\">\n <li [class.disabled]=\"currentPageNumber === 1 || !maxPageIndex\" class=\"page-item\">\n <a href (click)=\"setCurrentPage(1, $event)\" aria-label=\"Previous\" class=\"page-link\">\n <span aria-hidden=\"true\">«</span>\n </a>\n </li>\n <li [class.disabled]=\"currentPageNumber === 1 || !maxPageIndex\" class=\"page-item\">\n <a\n href\n aria-label=\"Previous\"\n (click)=\"setCurrentPage(currentPageNumber - 1, $event)\"\n class=\"page-link\">\n <span aria-hidden=\"true\">‹</span>\n </a>\n </li>\n <li\n *ngFor=\"let index of range(pageStartNumber, pageEndNumber)\"\n [class.active]=\"currentPageNumber === index\"\n class=\"page-item\">\n <a href (click)=\"setCurrentPage(index, $event)\" class=\"page-link\">\n <span aria-hidden=\"true\">{{ index }}</span>\n </a>\n </li>\n <li [class.disabled]=\"currentPageNumber === maxPageIndex || !maxPageIndex\">\n <a class=\"page-link\"\n href\n (click)=\"setCurrentPage(currentPageNumber + 1, $event)\"\n aria-label=\"Last\"\n >\n <span aria-hidden=\"true\">›</span>\n </a>\n </li>\n <li [class.disabled]=\"currentPageNumber === maxPageIndex || !maxPageIndex\" class=\"page-item\">\n <a href (click)=\"setCurrentPage(maxPageIndex, $event)\" aria-label=\"Last\" class=\"page-link\">\n <span aria-hidden=\"true\">»</span>\n </a>\n </li>\n </ul>\n</div>\n","styles":[""]}]}],"members":{"maxPageIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"pageNumberChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"setCurrentPage":[{"__symbolic":"method"}],"range":[{"__symbolic":"method"}]}},"Direction":{"Ascending":0,"Descending":1},"DataGridModel":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":21,"context":{"typeName":"T"},"module":"./lib/widgets/datagrid/models/datagrid.model"}]},{"__symbolic":"reference","name":"Type","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":37,"context":{"typeName":"T"},"module":"./lib/widgets/datagrid/models/datagrid.model"}]},null]}],"sortColumn":[{"__symbolic":"method"}],"removeColumn":[{"__symbolic":"method"}],"addColumn":[{"__symbolic":"method"}],"editItem":[{"__symbolic":"method"}],"deleteItem":[{"__symbolic":"method"}],"createHeadersForType":[{"__symbolic":"method"}]}},"DataGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":62,"character":1},"arguments":[{"selector":"ac-datagrid","template":"<div class=\"row\" *ngIf=\"model && model.headers\">\n <div class=\"col-md-12\">\n <table class=\"table table-condensed\">\n <colgroup class=\"colborders\" [ngStyle]=\"columnStyle ? columnStyle.group : null\">\n <col class=\"first\" [ngStyle]=\"columnStyle ? columnStyle.first : null\" />\n <col class=\"middle\" [ngStyle]=\"columnStyle ? columnStyle.middle : null\" />\n <col class=\"middle\" [ngStyle]=\"columnStyle ? columnStyle.middle : null\" />\n <col class=\"middle\" [ngStyle]=\"columnStyle ? columnStyle.middle : null\" />\n <col class=\"last\" [ngStyle]=\"columnStyle ? columnStyle.last : null\" />\n </colgroup>\n <thead>\n <tr [ngStyle]=\"columnStyle ? columnStyle.header : null\" >\n <th *ngFor=\"let header of model.headers\"\n [ngClass]=\"{ 'sortableHeader': header.isSortable }\"\n [ngStyle]=\"header.uiHint || {}\"\n [title]=\"header.desc\"\n (click)=\"header.isSortable ? model.sortColumn(header.prop, null, header.sortCallback) : null\">\n <span class=\"headerText\">{{ header.text }}</span>\n <span class=\"sort\" [ngStyle]=\"columnStyle ? columnStyle.headerButton : null\" *ngIf=\"header.isSortable\">\n <button (click)=\"model.sortColumn(header.prop, directionEnumHelper.Ascending, header.sortCallback)\"\n class=\"up\"\n [hidden]=\"model.sortDirection[header.prop] === directionEnumHelper.Descending\"\n [ngStyle]=\"columnStyle ? columnStyle.headerSortButton : null\">\n <i class=\"fa fa-sort-asc\"></i>\n </button>\n <button (click)=\"model.sortColumn(header.prop, directionEnumHelper.Descending, header.sortCallback)\"\n class=\"down\"\n [hidden]=\"model.sortDirection[header.prop] === directionEnumHelper.Ascending\"\n [ngStyle]=\"columnStyle ? columnStyle.headerSortButton : null\">\n <i class=\"fa fa-sort-desc\"></i>\n </button>\n </span>\n </th>\n <th *ngIf=\"showActions\">\n {{ textButtonsHeader }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngIf=\"!model.totalFilteredRows\">\n <td [attr.colspan]=\"model.headers.length\" class=\"text-center\">\n <div class=\"alert alert-warning\">\n <span #warningNoItems>\n <ng-content select=\"[data-warning-noitems]\"></ng-content>\n </span>\n <ng-container *ngIf=\"!warningNoItems.innerHTML.trim()\">{{ textNoItems }}</ng-container>\n </div>\n </td>\n </tr>\n <tr *ngFor=\"let item of model.itemsOnCurrentPage\">\n <td *ngFor=\"let header of model.headers\">\n <ng-container\n [ngTemplateOutlet]=\"getActiveTemplate(header.templateHint, header.prop)\"\n [ngTemplateOutletContext]=\"{ $implicit: item[header.prop], pipe: header.pipe, params: header.pipeParams }\"\n ></ng-container>\n </td>\n <td *ngIf=\"showActions\" [ngStyle]=\"columnStyle ? columnStyle.actionCell : null\" >\n <button class=\"btn btn-primary btn-sm\" type=\"button\" (click)=\"model.editItem(item)\">\n {{ textEditButton }}\n </button>\n <button class=\"btn btn-danger btn-sm\" type=\"button\" (click)=\"model.deleteItem(item)\">\n {{ textDeleteButton }}\n </button>\n </td>\n </tr>\n </tbody>\n <tfoot>\n <tr [ngStyle]=\"columnStyle ? columnStyle.footer : null\" >\n <td [attr.colspan]=\"model.headers.length + (showActions ? 1 : 0)\">\n <div #footerRef>\n <ng-content select=\"[data-footer]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!footerRef.innerHTML.trim()\">©</ng-container>\n </td>\n </tr>\n </tfoot>\n </table>\n </div>\n</div>\n<ng-template #string let-data let-modelpipe=\"pipe\" let-params=\"params\">\n {{ data | formatData: modelpipe: params }}\n</ng-template>\n<ng-template #boolean let-data>\n <input type=\"checkbox\" disabled [checked]=\"data\" />\n</ng-template>\n<ng-template #date let-data let-modelpipe=\"pipe\" let-params=\"params\">\n {{ data | formatData: modelpipe: params }}\n</ng-template>\n<ng-template #enum let-data>\n {{ data }}\n</ng-template>\n<ng-template #number let-data let-modelpipe=\"pipe\" let-params=\"params\">\n {{ data | formatData: modelpipe: params }}\n</ng-template>\n","styles":[".colborders col{border-right:1px solid azure}col.last{border-right:none!important}col.first{background-color:#eee}th{background:none}th.sortableHeader{cursor:pointer}.headerText{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sort{float:right}.sort button{background-color:transparent!important;border:0;border-radius:0;cursor:pointer;height:16px;padding:1px;width:16px}.sort button.up{left:0}.sort button.down{left:-16px}.rearrange{background-color:transparent;border:none;float:right;height:16px;margin:2px;width:16px}"]}]}],"members":{"stringFallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":87,"character":3},"arguments":["string",{"static":true}]}]}],"string":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":92,"character":3},"arguments":["string",{"static":true}]}]}],"booleanFallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":105,"character":3},"arguments":["boolean",{"static":true}]}]}],"boolean":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":110,"character":3},"arguments":["boolean",{"static":true}]}]}],"dateFallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":125,"character":3},"arguments":["date",{"static":true}]}]}],"date":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":130,"character":3},"arguments":["date",{"static":true}]}]}],"enumFallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":143,"character":3},"arguments":["enum",{"static":true}]}]}],"enum":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":148,"character":3},"arguments":["enum",{"static":true}]}]}],"numberFallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":163,"character":3},"arguments":["number",{"static":true}]}]}],"number":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":168,"character":3},"arguments":["number",{"static":true}]}]}],"externals":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":170,"character":3}}]}],"columnStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":177,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":183,"character":3}}]}],"showDeleteButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":189,"character":3}}]}],"showEditButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":194,"character":3}}]}],"showActions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":201,"character":3}}]}],"textDeleteButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":207,"character":3}}]}],"textEditButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"textButtonsHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":217,"character":3}}]}],"textNoItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":229,"character":3}}]}],"filter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":244,"character":3}}]}],"reArrangeColumns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":254,"character":3}}]}],"editItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":261,"character":3}}]}],"deleteItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":268,"character":3}}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getActiveTemplate":[{"__symbolic":"method"}]}},"FormatDataPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":6,"character":1},"arguments":[{"name":"formatData"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":10,"character":39}]}],"transform":[{"__symbolic":"method"}]}},"EditorComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ac-editor","styles":["input[type=\"checkbox\"] { display: none; }","input[type=\"checkbox\"] + label:before { font-family: FontAwesome; }","input[type=\"checkbox\"] + label:before { content: \"\\f096\"; }","input[type=\"checkbox\"]:checked + label:before { content: \"\\f046\"; }","\n input[type='checkbox'] + label {\n display: inline-block;\n width: 15px;\n height: 20px;\n margin: -1px 4px 0 0;\n vertical-align: middle;\n cursor: pointer;\n }\n "],"template":"<div class=\"form-group row\"\n [formGroup]=\"formGroup\"\n *ngIf=\"type != 'hidden' && formGroup\"\n [ngClass]=\"{ 'has-danger': !formGroup.controls[name].valid && formGroup.controls[name].touched }\">\n <label class=\"col-form-label col-md-3 col-sm-10\"\n [attr.for]=\"name\"\n [attr.title]=\"tooltip\" >{{ label }}{{ labelDivider }} </label>\n <div [ngClass]=\"{ 'col-md-7 col-sm-10': inline }\">\n <textarea *ngIf=\"type == 'textarea'\"\n class=\"form-control\"\n [id]=\"name\"\n [readOnly]='readonly'\n [formControlName]=\"name\"\n [attr.rows]=\"getParams('rows')\"\n [attr.cols]=\"getParams('cols')\">\n </textarea>\n <select *ngIf=\"type == 'enum' && enumValues\" class=\"form-control\" [id]=\"name\"\n [formControlName]=\"name\" [disabled]='readonly'>\n <option *ngFor=\"let option of enumValues\" [value]=\"option.key\">{{option.val}}</option>\n </select>\n <select *ngIf=\"type == 'list' && listValues\" class=\"form-control\" [id]=\"name\"\n [formControlName]=\"name\" [disabled]='readonly'>\n <option *ngFor=\"let option of listValues\" [value]=\"option.key\">{{option.val}}</option>\n </select>\n <input *ngIf=\"type == 'range'\" type=\"range\"\n class=\"form-control\"\n [placeholder]=\"waterMark\"\n [attr.minvalue]=\"fromValue\"\n [attr.maxvalue]=\"toValue\"\n [attr.min]=\"fromValue\"\n [attr.max]=\"toValue\"\n [id]=\"name\"\n [formControlName]=\"name\"\n [title]=\"tooltip\" />\n <input *ngIf=\"type == 'calendar'\" type=\"date\"\n class=\"form-control\"\n [placeholder]=\"waterMark\"\n [readOnly]='readonly'\n [id]=\"name\"\n [formControlName]=\"name\"\n [title]=\"tooltip\" />\n <input *ngIf=\"type == 'number'\" type=\"number\"\n class=\"form-control\"\n [placeholder]=\"waterMark\"\n [readOnly]='readonly'\n [id]=\"name\"\n [formControlName]=\"name\"\n [title]=\"tooltip\" />\n <input *ngIf=\"type == 'boolean'\" type=\"checkbox\"\n class=\"form-control\"\n [readOnly]='readonly'\n [id]=\"name\"\n [formControlName]=\"name\"\n [title]=\"tooltip\" />\n <label *ngIf=\"type == 'boolean'\" [attr.for]=\"name\"></label>\n <input *ngIf=\"type == 'text' || type == ''\" [placeholder]=\"waterMark\"\n [readOnly]='readonly'\n type=\"text\" class=\"form-control\" [id]=\"name\" [formControlName]=\"name\" />\n <ng-container *ngIf=\"type == 'template'\">\n <ng-content></ng-content>\n </ng-container>\n <span class=\"fa fa-warning text-danger form-control-feedback\"\n [hidden]=\"formGroup.controls[name].valid || formGroup.controls[name].pristine\"></span>\n <small class=\"text-danger\"\n [hidden]=\"formGroup.controls[name].valid || formGroup.controls[name].pristine\">\n <span *ngFor=\"let error of errors\">{{ formGroup.controls[name]['messages'][error] }}</span>\n </small>\n </div>\n</div>\n<div>\n <input *ngIf=\"type == 'hidden'\" [id]=\"name\" [formControlName]=\"name\" type=\"hidden\" />\n</div>\n"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"labelDivider":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"tooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"inline":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"enumValues":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"listValues":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"fromValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"toValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"waterMark":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":84,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"getParams":[{"__symbolic":"method"}],"first":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"onValueChanged":[{"__symbolic":"method"}]}},"AutoFormComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"ac-autoform","styles":["fieldset { border-top: 1px silver solid; padding: 10px; }","legend { width: auto; padding-left: 10px; padding-right: 10px; font-size: 1em;}"],"template":"<ng-content></ng-content>\n<ng-container *ngIf=\"!ungroupedAfter\">\n <ac-editor *ngFor=\"let editor of editors\" [name]=\"editor.editor\" [formGroup]=\"formGroup\"></ac-editor>\n</ng-container>\n<ng-container *ngIf=\"grouped()\">\n <fieldset *ngFor=\"let group of groups\">\n <legend [attr.title]=\"group.desc\" *ngIf=\"group.name\">{{ group.name }}</legend>\n <ac-editor *ngFor=\"let editor of group.editors\" [name]=\"editor.editor\" [formGroup]=\"formGroup\"></ac-editor>\n </fieldset>\n</ng-container>\n<ng-container *ngIf=\"ungroupedAfter\">\n <ac-editor *ngFor=\"let editor of editors\" [name]=\"editor.editor\" [formGroup]=\"formGroup\"></ac-editor>\n</ng-container>\n"}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"ungroupedAfter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"grouped":[{"__symbolic":"method"}]}},"TreeViewComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"ac-tree","styles":[".treeview { list-style: none; margin-left: -25px; }"],"template":"<ul class=\"treeview\">\n <ac-treenode\n [node]=\"nodes\"\n (nodeClick)=\"onNodeClick($event)\"\n (checkChanged)=\"onCheckChanged($event)\"\n (selectedChanged)=\"onSelectedChanged($event)\"\n (collapseChanged)=\"onCollapseChanged($event)\"\n ></ac-treenode>\n</ul>\n"}]}],"members":{"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"checkChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"selectedChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"collapseChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"onNodeClick":[{"__symbolic":"method"}],"onCheckChanged":[{"__symbolic":"method"}],"onSelectedChanged":[{"__symbolic":"method"}],"onCollapseChanged":[{"__symbolic":"method"}]}},"TreeViewNodeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":29,"character":1},"arguments":[{"selector":"ac-treenode","template":"<li class=\"treeview\" (click)=\"handleClick($event)\">\n <i class=\"ac-collapse\" [ngClass]=\"collapseClasses\" *ngIf=\"node.hasChildren\" (click)=\"handleCollapse()\"></i>\n <i class=\"ac-collapse\" *ngIf=\"!node.hasChildren\"></i>\n <i class=\"ac-icon\" [ngClass]=\"iconClasses\" [style.color]=\"node.options.iconColor\" *ngIf=\"!node.options.checkable\"></i>\n <input type=\"checkbox\" [id]=\"node.name\" *ngIf=\"node.options.checkable\" \n [checked]=\"node.stateIsChecked\" (click)=\"handleCheckChange()\">\n <label [attr.for]=\"node.name\"></label>\n <a class=\"ac-container\"\n [href]=\"href\"\n [style.color]=\"foreColor\" \n [style.background-color]=\"backColor\" \n (mouseover)=\"handlePreSelection(true)\"\n (mouseout)=\"handlePreSelection(false)\"\n (click)=\"handleSelection($event)\">\n {{ node.text }}\n </a>\n <ul class=\"treeview\" *ngIf=\"node.hasChildren\" [hidden]=\"!isExpanded\">\n <ac-treenode *ngFor=\"let child of node.children\" \n [node]=\"child\"\n (nodeClick)=\"onNodeClick($event)\" \n (checkChanged)=\"onCheckChanged($event)\"\n (selectedChanged)=\"onSelectedChanged($event)\"\n (collapseChanged)=\"onCollapseChanged($event)\">\n </ac-treenode>\n </ul> \n</li>","styles":["ul.treeview{list-style:none;margin-left:-2em}li.treeview{box-sizing:border-box;margin-bottom:3px;margin-left:10px}li.treeview a.ac-container{border-radius:2px;display:inline-block;padding:3px;text-decoration:none}li.treeview input[type=checkbox]{display:none}li.treeview input[type=checkbox]+label:before{content:\"\\f096\";font-family:FontAwesome}li.treeview input[type=checkbox]:checked+label:before{content:\"\\f046\"}li.treeview input[type=checkbox]+label{cursor:pointer;display:inline-block;height:20px;margin:-1px 4px 0 0;vertical-align:middle;width:15px}li.treeview i.ac-collapse{margin-left:-1.7em}li.treeview i.ac-collapse,li.treeview i.ac-icon{cursor:pointer;display:inline-block;width:15px}li.treeview .ac-node-disabled{color:silver;cursor:not-allowed}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":36,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":36,"character":56}]}],"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":3}}]}],"checkChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":59,"character":3}}]}],"selectedChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":3}}]}],"collapseChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"onNodeClick":[{"__symbolic":"method"}],"onCheckChanged":[{"__symbolic":"method"}],"onSelectedChanged":[{"__symbolic":"method"}],"onCollapseChanged":[{"__symbolic":"method"}],"handleCheckChange":[{"__symbolic":"method"}],"handleClick":[{"__symbolic":"method"}],"handleCollapse":[{"__symbolic":"method"}],"handlePreSelection":[{"__symbolic":"method"}],"handleSelection":[{"__symbolic":"method"}]},"statics":{"pfxIcon":"fa","opnIcon":"fa-plus","clsIcon":"fa-minus"}},"TreeNodeBaseModel":{"__symbolic":"interface"},"TreeNodeState":{"undefined":0,"checked":1,"disabled":2,"expanded":4,"selected":8},"TreeNodeOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeNodeOptions"}]}]}},"TreeNodeModel":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeNodeOptions"},{"__symbolic":"reference","name":"TreeNodeModel"}]}],"hasDirectAncestor":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"TextTreeNodeModel":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"TreeNodeModel"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"TreeNodeOptions"},{"__symbolic":"reference","name":"TreeNodeModel"}]}]}},"TreeNodeComponentModel":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"TreeNodeModel"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Type","module":"@angular/core","arguments":[{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":30}]},{"__symbolic":"reference","name":"TreeNodeOptions"},{"__symbolic":"reference","name":"TreeNodeModel"}]}]}},"SvogvModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":24,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":12},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":25,"character":26},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":25,"character":40},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":25,"character":61}],"declarations":[{"__symbolic":"reference","name":"DataGridComponent"},{"__symbolic":"reference","name":"DataGridPaginationComponent"},{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"TreeViewNodeComponent"},{"__symbolic":"reference","name":"EditorComponent"},{"__symbolic":"reference","name":"AutoFormComponent"},{"__symbolic":"reference","name":"FormatDataPipe"}],"providers":[{"__symbolic":"reference","name":"FormValidatorService"}],"exports":[{"__symbolic":"reference","name":"DataGridComponent"},{"__symbolic":"reference","name":"DataGridPaginationComponent"},{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"TreeViewNodeComponent"},{"__symbolic":"reference","name":"EditorComponent"},{"__symbolic":"reference","name":"AutoFormComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"SvogvModule"},"providers":[{"__symbolic":"reference","name":"FormValidatorService"}]}}}}},"origins":{"Required":"./lib/decorators/val-required.decorator","MaxLength":"./lib/decorators/val-maxlength.decorator","MinLength":"./lib/decorators/val-minlength.decorator","StringLength":"./lib/decorators/val-stringlength.decorator","Pattern":"./lib/decorators/val-pattern.decorator","Email":"./lib/decorators/val-email.decorator","Range":"./lib/decorators/val-range.decorator","Compare":"./lib/decorators/val-compare.decorator","Display":"./lib/decorators/hint-display.decorator","UiHint":"./lib/decorators/hint-uihint.decorator","DisplayGroup":"./lib/decorators/hint-displaygroup.decorator","Placeholder":"./lib/decorators/hint-placeholder.decorator","TemplateHint":"./lib/decorators/hint-templatehint.decorator","Hidden":"./lib/decorators/hint-hidden.decorator","Sortable":"./lib/decorators/hint-sortable.decorator","Readonly":"./lib/decorators/hint-readonly.decorator","FormatPipe":"./lib/decorators/hint-formatpipe.decorator","FormValidatorService":"./lib/services/formvalidator.service","displayGroupType":"./lib/services/formvalidator.model","displayType":"./lib/services/formvalidator.model","formatType":"./lib/services/formvalidator.model","hiddenType":"./lib/services/formvalidator.model","placeHolderType":"./lib/services/formvalidator.model","readonlyType":"./lib/services/formvalidator.model","templateHintType":"./lib/services/formvalidator.model","validatorType":"./lib/services/formvalidator.model","compareType":"./lib/services/formvalidator.model","emailType":"./lib/services/formvalidator.model","maxlengthType":"./lib/services/formvalidator.model","minlengthType":"./lib/services/formvalidator.model","patternType":"./lib/services/formvalidator.model","rangeType":"./lib/services/formvalidator.model","requiredType":"./lib/services/formvalidator.model","stringLengthType":"./lib/services/formvalidator.model","FormValidatorModel":"./lib/services/formvalidator.model","DataGridPaginationComponent":"./lib/widgets/datagrid/pagination/datagridpagination.component","Direction":"./lib/widgets/datagrid/models/datagrid.model","DataGridModel":"./lib/widgets/datagrid/models/datagrid.model","DataGridComponent":"./lib/widgets/datagrid/datagrid.component","FormatDataPipe":"./lib/widgets/datagrid/pipe/formatdata.pipe","EditorComponent":"./lib/widgets/editors/editor/editor.component","AutoFormComponent":"./lib/widgets/editors/autoform/autoform.component","TreeViewComponent":"./lib/widgets/treeview/treeview.component","TreeViewNodeComponent":"./lib/widgets/treeview/treeviewnode/treeviewnode.component","TreeNodeBaseModel":"./lib/widgets/treeview/models/treenodebase.model","TreeNodeState":"./lib/widgets/treeview/models/treenodeoptions.model","TreeNodeOptions":"./lib/widgets/treeview/models/treenodeoptions.model","TreeNodeModel":"./lib/widgets/treeview/models/treenode.model","TextTreeNodeModel":"./lib/widgets/treeview/models/texttreenode.model","TreeNodeComponentModel":"./lib/widgets/treeview/models/treenodecomponent.model","SvogvModule":"./lib/svogv.module"},"importAs":"svogv"}