This commit is contained in:
antelle 2020-03-14 20:29:55 +01:00
parent 3a5a7063cd
commit 29c0e840d3
10 changed files with 925 additions and 348 deletions

View File

@ -59,7 +59,7 @@ class KeyHandler {
const keyShortcuts = this.shortcuts[code];
if (keyShortcuts && keyShortcuts.length) {
for (const sh of keyShortcuts) {
if (FocusManager.modal && (sh.modal !== FocusManager.modal && sh.modal !== '*')) {
if (FocusManager.modal && sh.modal !== FocusManager.modal && sh.modal !== '*') {
e.stopPropagation();
continue;
}

View File

@ -1,3 +1,4 @@
/* eslint-disable import/no-commonjs */
import kdbxweb from 'kdbxweb';
import { RuntimeInfo } from 'const/runtime-info';
import { Links } from 'const/links';

View File

@ -105,7 +105,11 @@ const Launcher = {
);
},
fileExists(path, callback) {
window.resolveLocalFileSystemURL(path, fileEntry => callback(true), () => callback(false));
window.resolveLocalFileSystemURL(
path,
fileEntry => callback(true),
() => callback(false)
);
},
deleteFile(path, callback) {
window.resolveLocalFileSystemURL(

View File

@ -12,6 +12,11 @@ const DoesNotBubble = {
focus: true
};
const DefaultTemplateOptions = {
allowProtoPropertiesByDefault: true,
allowedProtoProperties: { length: true, active: true }
};
class View extends EventEmitter {
parent = undefined;
template = undefined;
@ -60,7 +65,7 @@ class View extends EventEmitter {
}
renderElement(templateData) {
const html = this.template(templateData);
const html = this.template(templateData, DefaultTemplateOptions);
if (this.el) {
const mountRoot = this.options.ownParent ? this.el.firstChild : this.el;
morphdom(mountRoot, html);
@ -279,4 +284,4 @@ class View extends EventEmitter {
}
}
export { View };
export { View, DefaultTemplateOptions };

View File

@ -1,3 +1,5 @@
/* eslint-disable import/no-commonjs */
const Libs = {
kdbxweb: require('kdbxweb'),
hbs: require('hbs'),

View File

@ -1,4 +1,4 @@
import { View } from 'framework/views/view';
import { View, DefaultTemplateOptions } from 'framework/views/view';
import { Events } from 'framework/events';
import { Shortcuts } from 'comp/app/shortcuts';
import { KeyHandler } from 'comp/browser/key-handler';
@ -78,7 +78,7 @@ class AutoTypeSelectView extends View {
const itemTemplate = this.itemTemplate;
this.entries.forEach(entry => {
presenter.present(entry);
itemsHtml += itemTemplate(presenter);
itemsHtml += itemTemplate(presenter, DefaultTemplateOptions);
});
super.render({
filterText: this.model.filter.text,

View File

@ -1,4 +1,4 @@
import { View } from 'framework/views/view';
import { View, DefaultTemplateOptions } from 'framework/views/view';
import { Events } from 'framework/events';
import { SearchResultCollection } from 'collections/search-result-collection';
import { DragDropInfo } from 'comp/app/drag-drop-info';
@ -102,12 +102,15 @@ class ListView extends View {
let itemsHtml = '';
this.items.forEach(item => {
presenter.present(item);
itemsHtml += itemTemplate(presenter);
itemsHtml += itemTemplate(presenter, DefaultTemplateOptions);
}, this);
const html = itemsTemplate({ items: itemsHtml, columns: this.tableColumns });
const html = itemsTemplate(
{ items: itemsHtml, columns: this.tableColumns },
DefaultTemplateOptions
);
this.itemsEl.html(html);
} else {
this.itemsEl.html(this.emptyTemplate());
this.itemsEl.html(this.emptyTemplate({}, DefaultTemplateOptions));
}
this.pageResized();
}

View File

@ -132,9 +132,9 @@ function config(options) {
},
{
test: /fonts[\\/].*\.(woff|ttf|eot|svg)$/,
use: ['url-loader', 'ignore-loader']
use: ['base64-inline-loader', 'ignore-loader']
},
{ test: /\.woff2$/, loader: 'url-loader' },
{ test: /\.woff2$/, loader: 'base64-inline-loader' },
{ test: /\.pem$/, loader: 'raw-loader' },
{ test: /\.kdbx$/, loader: 'base64-loader' }
]

1163
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -10,28 +10,29 @@
"url": "https://github.com/keeweb/keeweb"
},
"dependencies": {
"@babel/core": "^7.6.4",
"@babel/plugin-external-helpers": "^7.2.0",
"@babel/plugin-proposal-class-properties": "^7.5.5",
"@babel/preset-env": "^7.6.3",
"argon2-browser": "1.12.0",
"autoprefixer": "^9.7.0",
"@babel/core": "^7.8.7",
"@babel/plugin-external-helpers": "^7.8.3",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/preset-env": "^7.8.7",
"argon2-browser": "1.13.0",
"autoprefixer": "^9.7.4",
"babel-cli": "^6.26.0",
"babel-eslint": "^10.0.3",
"babel-eslint": "^10.1.0",
"babel-loader": "8.0.6",
"baron": "3.0.3",
"base64-inline-loader": "^1.1.1",
"base64-loader": "1.0.0",
"bourbon": "^6.0.0",
"chai": "^4.2.0",
"cross-env": "^6.0.3",
"dompurify": "^2.0.7",
"electron": "^7.0.0",
"eslint": "^6.6.0",
"eslint-config-prettier": "^6.5.0",
"cross-env": "^7.0.2",
"dompurify": "^2.0.8",
"electron": "^8.1.1",
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.10.0",
"eslint-config-standard": "^14.1.0",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-node": "^10.0.0",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-node": "^11.0.0",
"eslint-plugin-prettier": "^3.1.2",
"eslint-plugin-promise": "4.2.1",
"eslint-plugin-standard": "4.0.1",
"exports-loader": "0.7.0",
@ -51,52 +52,52 @@
"grunt-inline-alt": "github:keeweb/grunt-inline-alt#ec9f6ad",
"grunt-string-replace": "1.3.1",
"grunt-webpack": "3.1.3",
"handlebars": "^4.4.5",
"handlebars": "^4.7.3",
"handlebars-loader": "1.7.1",
"html-minifier": "4.0.0",
"ignore-loader": "^0.1.2",
"jquery": "3.4.1",
"json-loader": "^0.5.7",
"jsqrcode": "github:antelle/jsqrcode#0.1.3",
"kdbxweb": "1.5.6",
"kdbxweb": "1.5.7",
"load-grunt-tasks": "5.1.0",
"lodash": "^4.17.15",
"marked": "^0.7.0",
"mini-css-extract-plugin": "^0.8.0",
"mocha": "^6.2.2",
"morphdom": "^2.5.10",
"node-sass": "^4.13.0",
"node-stream-zip": "1.8.2",
"marked": "^0.8.0",
"mini-css-extract-plugin": "^0.9.0",
"mocha": "^7.1.0",
"morphdom": "^2.5.12",
"node-sass": "^4.13.1",
"node-stream-zip": "1.9.1",
"normalize.css": "8.0.1",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"pikaday": "1.8.0",
"pkcs15-smartcard-sign": "^1.0.0",
"postcss-loader": "^3.0.0",
"prettier": "^1.18.2",
"puppeteer": "^2.0.0",
"raw-loader": "^3.1.0",
"sass-loader": "^8.0.0",
"prettier": "^1.19.1",
"puppeteer": "^2.1.1",
"raw-loader": "^4.0.0",
"sass-loader": "^8.0.2",
"stats-webpack-plugin": "0.7.0",
"string-replace-webpack-plugin": "0.1.3",
"strip-sourcemap-loader": "0.0.1",
"sumchecker": "^3.0.0",
"terser-webpack-plugin": "^2.2.1",
"sumchecker": "^3.0.1",
"terser-webpack-plugin": "^2.3.5",
"time-grunt": "2.0.0",
"url-loader": "^2.2.0",
"webpack": "^4.41.2",
"webpack-bundle-analyzer": "^3.6.0",
"webpack-dev-server": "^3.9.0"
"url-loader": "^3.0.0",
"webpack": "^4.42.0",
"webpack-bundle-analyzer": "^3.6.1",
"webpack-dev-server": "^3.10.3"
},
"optionalDependencies": {
"grunt-appdmg": "github:keeweb/grunt-appdmg#874ad83",
"keytar": "^5.0.0-beta.0"
"keytar": "^5.4.0"
},
"scripts": {
"start": "grunt",
"test": "grunt test --no-sign",
"postinstall": "cd desktop && npm install",
"build-beta": "grunt --beta && cp dist/index.html ../keeweb-beta/index.html && cd ../keeweb-beta && git add index.html && git commit -a -m 'beta' && git push origin master",
"electron": "cross-env ELECTRON_DISABLE_SECURITY_WARNINGS=1 electron desktop --htmlpath=http://localhost:8085",
"electron": "cross-env ELECTRON_DISABLE_SECURITY_WARNINGS=1 electron desktop --htmlpath=http://localhost:8085 --devtools",
"dev": "grunt dev --no-sign",
"babel-helpers": "babel-external-helpers -l 'slicedToArray,toConsumableArray,defineProperty,typeof' -t global > app/lib/babel-helpers.js"
},