mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-29 20:19:22 +03:00
Bugfix: conflicting File object with native JS
Cleanup: Stores and tooltips
This commit is contained in:
parent
1df2e00862
commit
db0d03db83
43 changed files with 204 additions and 295 deletions
26
dev/External/User/ko.js
vendored
26
dev/External/User/ko.js
vendored
|
|
@ -230,3 +230,29 @@ ko.bindingHandlers.onEsc = {
|
|||
ko.utils.domNodeDisposal.addDisposeCallback(element, () => element.removeEventListener('keyup', fn));
|
||||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.registerBootstrapDropdown = {
|
||||
init: element => {
|
||||
rl.Dropdowns.register(element);
|
||||
element.ddBtn = new BSN.Dropdown(element.querySelector('[data-toggle="dropdown"]'));
|
||||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.openDropdownTrigger = {
|
||||
update: (element, fValueAccessor) => {
|
||||
if (ko.unwrap(fValueAccessor())) {
|
||||
const el = element.ddBtn;
|
||||
el.open || el.toggle();
|
||||
// el.focus();
|
||||
|
||||
rl.Dropdowns.detectVisibility();
|
||||
fValueAccessor()(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.dropdownCloser = {
|
||||
init: element => element.closest('.dropdown').addEventListener('click', event =>
|
||||
event.target.closestWithin('.e-item', element) && element.ddBtn.toggle()
|
||||
)
|
||||
};
|
||||
|
|
|
|||
63
dev/External/ko.js
vendored
63
dev/External/ko.js
vendored
|
|
@ -1,5 +1,5 @@
|
|||
import { i18n, i18nToNodes, trigger } from 'Common/Translator';
|
||||
import { doc, createElement, dropdownVisibility } from 'Common/Globals';
|
||||
import { doc, createElement } from 'Common/Globals';
|
||||
import { SaveSettingsStep } from 'Common/Enums';
|
||||
|
||||
const
|
||||
|
|
@ -9,27 +9,11 @@ const
|
|||
ko.bindingHandlers.tooltip = {
|
||||
init: (element, fValueAccessor) => {
|
||||
const sValue = koValue(fValueAccessor());
|
||||
|
||||
if ('off' === element.dataset.tooltipI18n) {
|
||||
element.title = sValue;
|
||||
} else {
|
||||
element.title = i18n(sValue);
|
||||
trigger.subscribe(() =>
|
||||
element.title = i18n(sValue)
|
||||
);
|
||||
dropdownVisibility.subscribe(() =>
|
||||
element.title = i18n(sValue)
|
||||
);
|
||||
}
|
||||
element.title = i18n(sValue);
|
||||
trigger.subscribe(() => element.title = i18n(sValue));
|
||||
},
|
||||
update: (element, fValueAccessor) => {
|
||||
const sValue = koValue(fValueAccessor());
|
||||
if (sValue) {
|
||||
element.title = 'off' === element.dataset.tooltipI18n ? sValue : i18n(sValue);
|
||||
} else {
|
||||
element.title = '';
|
||||
}
|
||||
}
|
||||
update: (element, fValueAccessor) =>
|
||||
element.title = i18n(koValue(fValueAccessor()))
|
||||
};
|
||||
|
||||
ko.bindingHandlers.tooltipErrorTip = {
|
||||
|
|
@ -46,32 +30,6 @@ ko.bindingHandlers.tooltipErrorTip = {
|
|||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.registerBootstrapDropdown = {
|
||||
init: element => {
|
||||
rl.Dropdowns.register(element);
|
||||
element.ddBtn = new BSN.Dropdown(element.querySelector('[data-toggle="dropdown"]'));
|
||||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.openDropdownTrigger = {
|
||||
update: (element, fValueAccessor) => {
|
||||
if (ko.unwrap(fValueAccessor())) {
|
||||
const el = element.ddBtn;
|
||||
el.open || el.toggle();
|
||||
// el.focus();
|
||||
|
||||
rl.Dropdowns.detectVisibility();
|
||||
fValueAccessor()(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.dropdownCloser = {
|
||||
init: element => element.closest('.dropdown').addEventListener('click', event =>
|
||||
event.target.closestWithin('.e-item', element) && element.ddBtn.toggle()
|
||||
)
|
||||
};
|
||||
|
||||
ko.bindingHandlers.onEnter = {
|
||||
init: (element, fValueAccessor, fAllBindingsAccessor, viewModel) => {
|
||||
let fn = event => {
|
||||
|
|
@ -230,17 +188,6 @@ ko.extenders.limitedList = (target, limitedList) => {
|
|||
return result;
|
||||
};
|
||||
|
||||
ko.extenders.reversible = (target) => {
|
||||
let value = target();
|
||||
|
||||
target.commit = () => value = target();
|
||||
|
||||
target.reverse = () => target(value);
|
||||
|
||||
target.commitedValue = () => value;
|
||||
return target;
|
||||
};
|
||||
|
||||
ko.extenders.toggleSubscribeProperty = (target, options) => {
|
||||
const prop = options[1];
|
||||
if (prop) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue