[{"__symbolic":"module","version":3,"metadata":{"EditableTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"nv-editable-table","template":"\n          <table class=\"{{class}}\">\n              <thead>\n                <tr>\n                  <th *ngFor=\"let title of service.tableHeadersObjects\">{{title.content}}</th>\n                  <th *ngIf=\"canEditRows||canDeleteRows\"></th>\n                </tr>\n              </thead>\n              <tbody>\n                <tr class=\"{{trClass}}\" *ngFor=\"let row of service.tableRowsObjects\">\n                  <td class=\"{{tdClass}}\" *ngFor=\"let cell of row.cells\">\n                    <span *ngIf=\"service.isEditing.indexOf(row) === -1 && checkTypeOf(cell.content) !== 'boolean'\">{{cell.content}}</span>\n                    <span *ngIf=\"service.isEditing.indexOf(row) === -1 && checkTypeOf(cell.content) == 'boolean'\">\n                      {{cell.content ? 'Activo' : 'Inactivo'}}\n                    </span>\n                    <div class=\"ui input\" *ngIf=\"!(service.isEditing.indexOf(row) == -1) && checkTypeOf(cell.content) !== 'boolean' \n                     && !isRequired\">\n                      <input type=\"text\" [(ngModel)]=\"cell.content\" [name]=\"cell.content\">\n                    </div>\n                    <div class=\"ui input requiredInput\" [ngClass]=\"{errorClass: !cell.content && cell.touched}\" *ngIf=\"!(service.isEditing.indexOf(row) == -1) && checkTypeOf(cell.content) !== 'boolean' && isRequired\">\n                      <input type=\"text\" [(ngModel)]=\"cell.content\" [name]=\"cell.content\" #[cell.content]=\"ngModel\" required />\n                        <div [ngClass]=\"{'show': !cell.content && cell.touched, \n                                  'hide': cell.content}\" class=\"divmessage\" style=\"Color: red;\" [hidden]=\"cell.content\">\n                              <div>{{requiredMessage}}</div>\n                          </div>\n                        </div>\n        <div *ngIf=\"!(service.isEditing.indexOf(row) == -1) && checkTypeOf(cell.content) === 'boolean'\" class=\"field checkboxContainer\">\n            <div class=\"ui toggle checkbox\">\n                <input type=\"checkbox\" name=\"public\" [(ngModel)]=\"cell.content\" name=\"active\">\n                <label>{{cell.content ? 'Activo' : 'Inactivo'}}</label>\n            </div>\n        </div>\n                  </td>\n                  <td class={{buttonsTdClass}} *ngIf=\"canEditRows||canDeleteRows\">\n                    <button class={{editButtonClass}} *ngIf=\"service.isEditing.indexOf(row) === -1 && canEditRows\" (click)=\"editRow(row)\">\n                      <i class=\"{{editIcon}}\"></i>{{editButtonLabel}}\n                    </button>\n                    <button class={{editButtonClass}} *ngIf=\"!(service.isEditing.indexOf(row) == -1) && canEditRows\" \n                      (click)=\"saveRow(row)\">\n                      <i class=\"{{saveIcon}}\"></i>{{saveButtonLabel}}\n                    </button>\n                    <button class={{deleteButtonClass}} *ngIf=\"canDeleteRows && service.isEditing.indexOf(row) === -1\" \n                    (click)=\"deleteRow(row)\">\n                      <i class=\"{{deleteIcon}}\"></i>{{deleteButtonLabel}}\n                    </button>\n                    <button class={{deleteButtonClass}} *ngIf=\"!(service.isEditing.indexOf(row) == -1) && canEditRows\"\n                     (click)=\"deleteRow(row)\">\n                      <i class=\"{{deleteIcon}}\"></i>{{cancelButtonLabel}}\n                    </button>\n                  </td>\n                </tr>\n              </tbody>\n              <tfoot>\n                <tr>\n                  <th *ngFor=\"let title of service.tableHeadersObjects\"></th>\n                  <th *ngIf=\"canEditRows||canDeleteRows\">\n                      <button class={{addButtonClass}} (click)=\"addRow()\" *ngIf=\"canAddRows\">\n                          <i class=\"{{addIcon}}\"></i>{{addButtonLabel}}\n                      </button>\n                  </th>\n                </tr>\n              </tfoot>\n            </table>\n  ","styles":["tfoot{text-align: right;} \n  .myerror{color:red} \n  .requiredInput.divmessage{display:none} \n  .requiredInput.divmessage.show{display:block !important} \n  .requiredInput.divmessage.hide{display:none}"],"providers":[{"__symbolic":"reference","module":"./editable-table.service","name":"EditableTableService"}]}]}],"members":{"tableHeaders":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["table-headers"]}]}],"tableRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["table-rows"]}]}],"tableRowsWithId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["table-rows-with-id"]}]}],"canDeleteRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["can-delete-rows"]}]}],"canEditRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["can-edit-rows"]}]}],"canAddRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["can-add-rows"]}]}],"addButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["add-button-label"]}]}],"editButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["edit-button-label"]}]}],"saveButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["save-button-label"]}]}],"cancelButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["cancel-button-label"]}]}],"deleteButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["delete-button-label"]}]}],"addIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["add-icon"]}]}],"editIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["edit-icon"]}]}],"saveIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["save-icon"]}]}],"deleteIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["delete-icon"]}]}],"addButtonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["add-button-class"]}]}],"editButtonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["edit-button-class"]}]}],"deleteButtonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["delete-button-class"]}]}],"trClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["tr-class"]}]}],"tdClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["td-class"]}]}],"buttonsTdClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["buttons-td-class"]}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["class"]}]}],"dataType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["data-type"]}]}],"errorClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isRequired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"requiredMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"onSave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./editable-table.service","name":"EditableTableService"}]}],"ngOnInit":[{"__symbolic":"method"}],"addRow":[{"__symbolic":"method"}],"editRow":[{"__symbolic":"method"}],"cancelEdition":[{"__symbolic":"method"}],"saveRow":[{"__symbolic":"method"}],"deleteRow":[{"__symbolic":"method"}],"checkTypeOf":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"EditableTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"nv-editable-table","template":"\n          <table class=\"{{class}}\">\n              <thead>\n                <tr>\n                  <th *ngFor=\"let title of service.tableHeadersObjects\">{{title.content}}</th>\n                  <th *ngIf=\"canEditRows||canDeleteRows\"></th>\n                </tr>\n              </thead>\n              <tbody>\n                <tr class=\"{{trClass}}\" *ngFor=\"let row of service.tableRowsObjects\">\n                  <td class=\"{{tdClass}}\" *ngFor=\"let cell of row.cells\">\n                    <span *ngIf=\"service.isEditing.indexOf(row) === -1 && checkTypeOf(cell.content) !== 'boolean'\">{{cell.content}}</span>\n                    <span *ngIf=\"service.isEditing.indexOf(row) === -1 && checkTypeOf(cell.content) == 'boolean'\">\n                      {{cell.content ? 'Activo' : 'Inactivo'}}\n                    </span>\n                    <div class=\"ui input\" *ngIf=\"!(service.isEditing.indexOf(row) == -1) && checkTypeOf(cell.content) !== 'boolean' \n                     && !isRequired\">\n                      <input type=\"text\" [(ngModel)]=\"cell.content\" [name]=\"cell.content\">\n                    </div>\n                    <div class=\"ui input requiredInput\" [ngClass]=\"{errorClass: !cell.content && cell.touched}\" *ngIf=\"!(service.isEditing.indexOf(row) == -1) && checkTypeOf(cell.content) !== 'boolean' && isRequired\">\n                      <input type=\"text\" [(ngModel)]=\"cell.content\" [name]=\"cell.content\" #[cell.content]=\"ngModel\" required />\n                        <div [ngClass]=\"{'show': !cell.content && cell.touched, \n                                  'hide': cell.content}\" class=\"divmessage\" style=\"Color: red;\" [hidden]=\"cell.content\">\n                              <div>{{requiredMessage}}</div>\n                          </div>\n                        </div>\n        <div *ngIf=\"!(service.isEditing.indexOf(row) == -1) && checkTypeOf(cell.content) === 'boolean'\" class=\"field checkboxContainer\">\n            <div class=\"ui toggle checkbox\">\n                <input type=\"checkbox\" name=\"public\" [(ngModel)]=\"cell.content\" name=\"active\">\n                <label>{{cell.content ? 'Activo' : 'Inactivo'}}</label>\n            </div>\n        </div>\n                  </td>\n                  <td class={{buttonsTdClass}} *ngIf=\"canEditRows||canDeleteRows\">\n                    <button class={{editButtonClass}} *ngIf=\"service.isEditing.indexOf(row) === -1 && canEditRows\" (click)=\"editRow(row)\">\n                      <i class=\"{{editIcon}}\"></i>{{editButtonLabel}}\n                    </button>\n                    <button class={{editButtonClass}} *ngIf=\"!(service.isEditing.indexOf(row) == -1) && canEditRows\" \n                      (click)=\"saveRow(row)\">\n                      <i class=\"{{saveIcon}}\"></i>{{saveButtonLabel}}\n                    </button>\n                    <button class={{deleteButtonClass}} *ngIf=\"canDeleteRows && service.isEditing.indexOf(row) === -1\" \n                    (click)=\"deleteRow(row)\">\n                      <i class=\"{{deleteIcon}}\"></i>{{deleteButtonLabel}}\n                    </button>\n                    <button class={{deleteButtonClass}} *ngIf=\"!(service.isEditing.indexOf(row) == -1) && canEditRows\"\n                     (click)=\"deleteRow(row)\">\n                      <i class=\"{{deleteIcon}}\"></i>{{cancelButtonLabel}}\n                    </button>\n                  </td>\n                </tr>\n              </tbody>\n              <tfoot>\n                <tr>\n                  <th *ngFor=\"let title of service.tableHeadersObjects\"></th>\n                  <th *ngIf=\"canEditRows||canDeleteRows\">\n                      <button class={{addButtonClass}} (click)=\"addRow()\" *ngIf=\"canAddRows\">\n                          <i class=\"{{addIcon}}\"></i>{{addButtonLabel}}\n                      </button>\n                  </th>\n                </tr>\n              </tfoot>\n            </table>\n  ","styles":["tfoot{text-align: right;} \n  .myerror{color:red} \n  .requiredInput.divmessage{display:none} \n  .requiredInput.divmessage.show{display:block !important} \n  .requiredInput.divmessage.hide{display:none}"],"providers":[{"__symbolic":"reference","module":"./editable-table.service","name":"EditableTableService"}]}]}],"members":{"tableHeaders":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["table-headers"]}]}],"tableRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["table-rows"]}]}],"tableRowsWithId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["table-rows-with-id"]}]}],"canDeleteRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["can-delete-rows"]}]}],"canEditRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["can-edit-rows"]}]}],"canAddRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["can-add-rows"]}]}],"addButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["add-button-label"]}]}],"editButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["edit-button-label"]}]}],"saveButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["save-button-label"]}]}],"cancelButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["cancel-button-label"]}]}],"deleteButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["delete-button-label"]}]}],"addIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["add-icon"]}]}],"editIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["edit-icon"]}]}],"saveIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["save-icon"]}]}],"deleteIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["delete-icon"]}]}],"addButtonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["add-button-class"]}]}],"editButtonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["edit-button-class"]}]}],"deleteButtonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["delete-button-class"]}]}],"trClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["tr-class"]}]}],"tdClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["td-class"]}]}],"buttonsTdClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["buttons-td-class"]}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["class"]}]}],"dataType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["data-type"]}]}],"errorClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isRequired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"requiredMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"onSave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./editable-table.service","name":"EditableTableService"}]}],"ngOnInit":[{"__symbolic":"method"}],"addRow":[{"__symbolic":"method"}],"editRow":[{"__symbolic":"method"}],"cancelEdition":[{"__symbolic":"method"}],"saveRow":[{"__symbolic":"method"}],"deleteRow":[{"__symbolic":"method"}],"checkTypeOf":[{"__symbolic":"method"}]}}}}]