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'
);