diff --git a/src/domain_abstract/view/DomainViews.js b/src/domain_abstract/view/DomainViews.ts similarity index 80% rename from src/domain_abstract/view/DomainViews.js rename to src/domain_abstract/view/DomainViews.ts index 0783e8e3f..a5fafa73b 100644 --- a/src/domain_abstract/view/DomainViews.js +++ b/src/domain_abstract/view/DomainViews.ts @@ -1,7 +1,12 @@ import { includes } from 'underscore'; -import Backbone from 'backbone'; +import { ObjectAny, View } from '../../common'; + +export default class DomainViews extends View { + config?: any; + items: any[]; + ns?: string; + itemView?: any; -export default class DomainViews extends Backbone.View { // Defines the View per type itemsView = ''; @@ -9,7 +14,7 @@ export default class DomainViews extends Backbone.View { reuseView = false; - constructor(opts = {}, config, autoAdd = false) { + constructor(opts: any = {}, config?: any, autoAdd = false) { super(opts); this.config = config || opts.config || {}; autoAdd && this.listenTo(this.collection, 'add', this.addTo); @@ -21,11 +26,11 @@ export default class DomainViews extends Backbone.View { * @param {Model} model * @private * */ - addTo(model) { + addTo(model: any) { this.add(model); } - itemViewNotFound(type) { + itemViewNotFound(type: string) { const { config, ns } = this; const { em } = config; const warn = `${ns ? `[${ns}]: ` : ''}'${type}' type not found`; @@ -38,8 +43,9 @@ export default class DomainViews extends Backbone.View { * @param {Object} fragment Fragment collection * @private * */ - add(model, fragment) { - const { config, reuseView, items, itemsView = {} } = this; + add(model: any, fragment?: DocumentFragment) { + const { config, reuseView, items } = this; + const itemsView = (this.itemsView || {}) as ObjectAny; const inputTypes = [ 'button', 'checkbox', @@ -95,6 +101,7 @@ export default class DomainViews extends Backbone.View { if (this.collection.length) this.collection.each(function (model) { + // @ts-ignore this.add(model, frag); }, this); @@ -104,16 +111,16 @@ export default class DomainViews extends Backbone.View { } onRender() {} - - onRemoveBefore() {} - onRemove() {} + onRemoveBefore(items?: any, opts?: any) {} + onRemove(items?: any, opts?: any) {} remove(opts = {}) { const { items } = this; this.onRemoveBefore(items, opts); this.clearItems(); - Backbone.View.prototype.remove.apply(this, arguments); + super.remove(); this.onRemove(items, opts); + return this; } clearItems() {