diff --git a/dev/Common/Html.js b/dev/Common/Html.js index 19c1a1864..227f2e181 100644 --- a/dev/Common/Html.js +++ b/dev/Common/Html.js @@ -19,20 +19,6 @@ export function encodeHtml(text) { } class HtmlEditor { - editor; - blurTimer = 0; - - __resizable = false; - __inited = false; - - onBlur = null; - onReady = null; - onModeChange = null; - - element; - - resize; - /** * @param {Object} element * @param {Function=} onBlur @@ -40,6 +26,12 @@ class HtmlEditor { * @param {Function=} onModeChange */ constructor(element, onBlur = null, onReady = null, onModeChange = null) { + this.editor; + this.blurTimer = 0; + + this.__resizable = false; + this.__inited = false; + this.onBlur = onBlur; this.onReady = onReady; this.onModeChange = onModeChange; diff --git a/dev/Common/Selector.js b/dev/Common/Selector.js index 287c69d4d..c1bf55c7d 100644 --- a/dev/Common/Selector.js +++ b/dev/Common/Selector.js @@ -1,33 +1,11 @@ import ko from 'ko'; export class Selector { - list; - listChecked; - isListChecked; - - focusedItem; - selectedItem; - - selectedItemUseCallback = true; - - iSelectNextHelper = 0; - iFocusedNextHelper = 0; - oContentScrollable; - - sItemSelector; - sItemSelectedSelector; - sItemCheckedSelector; - sItemFocusedSelector; - - sLastUid = ''; - oCallbacks = {}; - /** * @param {koProperty} koList * @param {koProperty} koSelectedItem * @param {koProperty} koFocusedItem * @param {string} sItemSelector - * @param {string} sItemSelectedSelector * @param {string} sItemCheckedSelector * @param {string} sItemFocusedSelector */ @@ -36,18 +14,29 @@ export class Selector { koSelectedItem, koFocusedItem, sItemSelector, - sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector ) { this.list = koList; - this.listChecked = ko.computed(() => this.list.filter(item => item.checked())).extend({ rateLimit: 0 }); this.isListChecked = ko.computed(() => 0 < this.listChecked().length); this.focusedItem = koFocusedItem || ko.observable(null); this.selectedItem = koSelectedItem || ko.observable(null); + this.selectedItemUseCallback = true; + + this.iSelectNextHelper = 0; + this.iFocusedNextHelper = 0; + this.oContentScrollable; + + this.sItemSelector = sItemSelector; + this.sItemCheckedSelector = sItemCheckedSelector; + this.sItemFocusedSelector = sItemFocusedSelector; + + this.sLastUid = ''; + this.oCallbacks = {}; + const itemSelectedThrottle = (item => this.itemSelected(item)).debounce(300); this.listChecked.subscribe((items) => { @@ -81,11 +70,6 @@ export class Selector { this.selectedItem = this.selectedItem.extend({ toggleSubscribeProperty: [this, 'selected'] }); this.focusedItem = this.focusedItem.extend({ toggleSubscribeProperty: [null, 'focused'] }); - this.sItemSelector = sItemSelector; - this.sItemSelectedSelector = sItemSelectedSelector; - this.sItemCheckedSelector = sItemCheckedSelector; - this.sItemFocusedSelector = sItemFocusedSelector; - this.focusedItem.subscribe(item => item && (this.sLastUid = this.getItemUid(item)), this); let aCache = [], diff --git a/dev/Component/Abstract.js b/dev/Component/Abstract.js index 61640cae0..848414571 100644 --- a/dev/Component/Abstract.js +++ b/dev/Component/Abstract.js @@ -1,6 +1,8 @@ export class AbstractComponent { - disposable = []; + constructor() { + this.disposable = []; + } dispose() { this.disposable.forEach((funcToDispose) => { diff --git a/dev/Knoin/AbstractModel.js b/dev/Knoin/AbstractModel.js index 9dd3df28b..dae0fc1bb 100644 --- a/dev/Knoin/AbstractModel.js +++ b/dev/Knoin/AbstractModel.js @@ -23,14 +23,13 @@ function typeCast(curValue, newValue) { } export class AbstractModel { - subscribables = []; - constructor() { /* if (new.target === AbstractModel) { throw new Error("Can't instantiate AbstractModel!"); } */ + this.subscribables = []; } addObservables(observables) { diff --git a/dev/Knoin/AbstractScreen.js b/dev/Knoin/AbstractScreen.js index a4311bcf5..dc07bff77 100644 --- a/dev/Knoin/AbstractScreen.js +++ b/dev/Knoin/AbstractScreen.js @@ -1,9 +1,6 @@ export class AbstractScreen { - oCross = null; - sScreenName; - aViewModels; - constructor(screenName, viewModels = []) { + this.oCross = null; this.sScreenName = screenName; this.aViewModels = Array.isArray(viewModels) ? viewModels : []; } diff --git a/dev/Model/Email.js b/dev/Model/Email.js index 71fb88369..3257b1d91 100644 --- a/dev/Model/Email.js +++ b/dev/Model/Email.js @@ -261,11 +261,6 @@ class Tokenizer } class EmailModel extends AbstractModel { - email = ''; - name = ''; - dkimStatus = ''; - dkimValue = ''; - /** * @param {string=} email = '' * @param {string=} name = '' diff --git a/dev/View/Popup/Contacts.js b/dev/View/Popup/Contacts.js index f0507bbad..060f3ad23 100644 --- a/dev/View/Popup/Contacts.js +++ b/dev/View/Popup/Contacts.js @@ -76,7 +76,6 @@ class ContactsPopupView extends AbstractViewPopup { this.currentContact, null, '.e-contact-item .actionHandle', - '.e-contact-item.selected', '.e-contact-item .checkboxItem', '.e-contact-item.focused' ); diff --git a/dev/View/User/MailBox/MessageList.js b/dev/View/User/MailBox/MessageList.js index 057fd50e8..df688cee5 100644 --- a/dev/View/User/MailBox/MessageList.js +++ b/dev/View/User/MailBox/MessageList.js @@ -186,7 +186,6 @@ export class MessageListMailBoxUserView extends AbstractViewRight { this.selectorMessageSelected, this.selectorMessageFocused, '.messageListItem .actionHandle', - '.messageListItem.selected', '.messageListItem .checkboxMessage', '.messageListItem.focused' );